Update dashboard, memory, root +2 more (+3 ~5)

This commit is contained in:
Echo
2026-02-02 16:21:41 +00:00
parent 2e8d47353b
commit 84701a062e
2212 changed files with 2938184 additions and 37 deletions

View File

@@ -0,0 +1,225 @@
{
"basePath": "",
"baseUrl": "https://abusiveexperiencereport.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Abusive Experience Report",
"description": "Views Abusive Experience Report data, and gets a list of sites that have a significant number of abusive experiences.",
"discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/abusive-experience-report/",
"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": "abusiveexperiencereport:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://abusiveexperiencereport.mtls.googleapis.com/",
"name": "abusiveexperiencereport",
"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": {
"sites": {
"methods": {
"get": {
"description": "Gets a site's Abusive Experience Report summary.",
"flatPath": "v1/sites/{sitesId}",
"httpMethod": "GET",
"id": "abusiveexperiencereport.sites.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The name of the site whose summary to get, e.g. `sites/http%3A%2F%2Fwww.google.com%2F`. Format: `sites/{site}`",
"location": "path",
"pattern": "^sites/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "SiteSummaryResponse"
}
}
}
},
"violatingSites": {
"methods": {
"list": {
"description": "Lists sites that are failing in the Abusive Experience Report.",
"flatPath": "v1/violatingSites",
"httpMethod": "GET",
"id": "abusiveexperiencereport.violatingSites.list",
"parameterOrder": [],
"parameters": {},
"path": "v1/violatingSites",
"response": {
"$ref": "ViolatingSitesResponse"
}
}
}
}
},
"revision": "20240610",
"rootUrl": "https://abusiveexperiencereport.googleapis.com/",
"schemas": {
"SiteSummaryResponse": {
"description": "Response message for GetSiteSummary.",
"id": "SiteSummaryResponse",
"properties": {
"abusiveStatus": {
"description": "The site's Abusive Experience Report status.",
"enum": [
"UNKNOWN",
"PASSING",
"FAILING"
],
"enumDescriptions": [
"Not reviewed.",
"Passing.",
"Failing."
],
"type": "string"
},
"enforcementTime": {
"description": "The time at which [enforcement](https://support.google.com/webtools/answer/7538608) against the site began or will begin. Not set when the filter_status is OFF.",
"format": "google-datetime",
"type": "string"
},
"filterStatus": {
"description": "The site's [enforcement status](https://support.google.com/webtools/answer/7538608).",
"enum": [
"UNKNOWN",
"ON",
"OFF",
"PAUSED",
"PENDING"
],
"enumDescriptions": [
"N/A.",
"Enforcement is on.",
"Enforcement is off.",
"Enforcement is paused.",
"Enforcement is pending."
],
"type": "string"
},
"lastChangeTime": {
"description": "The time at which the site's status last changed.",
"format": "google-datetime",
"type": "string"
},
"reportUrl": {
"description": "A link to the full Abusive Experience Report for the site. Not set in ViolatingSitesResponse. Note that you must complete the [Search Console verification process](https://support.google.com/webmasters/answer/9008080) for the site before you can access the full report.",
"type": "string"
},
"reviewedSite": {
"description": "The name of the reviewed site, e.g. `google.com`.",
"type": "string"
},
"underReview": {
"description": "Whether the site is currently under review.",
"type": "boolean"
}
},
"type": "object"
},
"ViolatingSitesResponse": {
"description": "Response message for ListViolatingSites.",
"id": "ViolatingSitesResponse",
"properties": {
"violatingSites": {
"description": "The list of violating sites.",
"items": {
"$ref": "SiteSummaryResponse"
},
"type": "array"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Abusive Experience Report API",
"version": "v1",
"version_module": true
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -0,0 +1,856 @@
{
"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/maps-platform.addressvalidation": {
"description": "Private Service: https://www.googleapis.com/auth/maps-platform.addressvalidation"
}
}
}
},
"basePath": "",
"baseUrl": "https://addressvalidation.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Address Validation",
"description": "The Address Validation API allows developers to verify the accuracy of addresses. Given an address, it returns information about the correctness of the components of the parsed address, a geocode, and a verdict on the deliverability of the parsed address.",
"discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/maps/documentation/addressvalidation",
"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": "addressvalidation:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://addressvalidation.mtls.googleapis.com/",
"name": "addressvalidation",
"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": {
"v1": {
"methods": {
"provideValidationFeedback": {
"description": "Feedback about the outcome of the sequence of validation attempts. This should be the last call made after a sequence of validation calls for the same address, and should be called once the transaction is concluded. This should only be sent once for the sequence of `ValidateAddress` requests needed to validate an address fully.",
"flatPath": "v1:provideValidationFeedback",
"httpMethod": "POST",
"id": "addressvalidation.provideValidationFeedback",
"parameterOrder": [],
"parameters": {},
"path": "v1:provideValidationFeedback",
"request": {
"$ref": "GoogleMapsAddressvalidationV1ProvideValidationFeedbackRequest"
},
"response": {
"$ref": "GoogleMapsAddressvalidationV1ProvideValidationFeedbackResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/maps-platform.addressvalidation"
]
},
"validateAddress": {
"description": "Validates an address.",
"flatPath": "v1:validateAddress",
"httpMethod": "POST",
"id": "addressvalidation.validateAddress",
"parameterOrder": [],
"parameters": {},
"path": "v1:validateAddress",
"request": {
"$ref": "GoogleMapsAddressvalidationV1ValidateAddressRequest"
},
"response": {
"$ref": "GoogleMapsAddressvalidationV1ValidateAddressResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/maps-platform.addressvalidation"
]
}
}
}
},
"revision": "20250618",
"rootUrl": "https://addressvalidation.googleapis.com/",
"schemas": {
"GoogleGeoTypeViewport": {
"description": "A latitude-longitude viewport, represented as two diagonally opposite `low` and `high` points. A viewport is considered a closed region, i.e. it includes its boundary. The latitude bounds must range between -90 to 90 degrees inclusive, and the longitude bounds must range between -180 to 180 degrees inclusive. Various cases include: - If `low` = `high`, the viewport consists of that single point. - If `low.longitude` > `high.longitude`, the longitude range is inverted (the viewport crosses the 180 degree longitude line). - If `low.longitude` = -180 degrees and `high.longitude` = 180 degrees, the viewport includes all longitudes. - If `low.longitude` = 180 degrees and `high.longitude` = -180 degrees, the longitude range is empty. - If `low.latitude` > `high.latitude`, the latitude range is empty. Both `low` and `high` must be populated, and the represented box cannot be empty (as specified by the definitions above). An empty viewport will result in an error. For example, this viewport fully encloses New York City: { \"low\": { \"latitude\": 40.477398, \"longitude\": -74.259087 }, \"high\": { \"latitude\": 40.91618, \"longitude\": -73.70018 } }",
"id": "GoogleGeoTypeViewport",
"properties": {
"high": {
"$ref": "GoogleTypeLatLng",
"description": "Required. The high point of the viewport."
},
"low": {
"$ref": "GoogleTypeLatLng",
"description": "Required. The low point of the viewport."
}
},
"type": "object"
},
"GoogleMapsAddressvalidationV1Address": {
"description": "Details of the post-processed address. Post-processing includes correcting misspelled parts of the address, replacing incorrect parts, and inferring missing parts.",
"id": "GoogleMapsAddressvalidationV1Address",
"properties": {
"addressComponents": {
"description": "Unordered list. The individual address components of the formatted and corrected address, along with validation information. This provides information on the validation status of the individual components. Address components are not ordered in a particular way. Do not make any assumptions on the ordering of the address components in the list.",
"items": {
"$ref": "GoogleMapsAddressvalidationV1AddressComponent"
},
"type": "array"
},
"formattedAddress": {
"description": "The post-processed address, formatted as a single-line address following the address formatting rules of the region where the address is located. Note: the format of this address may not match the format of the address in the `postal_address` field. For example, the `postal_address` always represents the country as a 2 letter `region_code`, such as \"US\" or \"NZ\". By contrast, this field uses a longer form of the country name, such as \"USA\" or \"New Zealand\".",
"type": "string"
},
"missingComponentTypes": {
"description": "The types of components that were expected to be present in a correctly formatted mailing address but were not found in the input AND could not be inferred. An example might be `['street_number', 'route']` for an input like \"Boulder, Colorado, 80301, USA\". The list of possible types can be found [here](https://developers.google.com/maps/documentation/geocoding/requests-geocoding#Types). **Note: you might see a missing component type when you think you've already supplied the missing component.** For example, this can happen when the input address contains the building name, but not the premise number. In the address \"\u6e0b\u8c37\u533a\u6e0b\u8c37\uff13\u4e01\u76ee\u3000Shibuya Stream\", the building name \"Shibuya Stream\" has the component type `premise`, but the premise number is missing, so `missing_component_types` will contain `premise`.",
"items": {
"type": "string"
},
"type": "array"
},
"postalAddress": {
"$ref": "GoogleTypePostalAddress",
"description": "The post-processed address represented as a postal address."
},
"unconfirmedComponentTypes": {
"description": "The types of the components that are present in the `address_components` but could not be confirmed to be correct. This field is provided for the sake of convenience: its contents are equivalent to iterating through the `address_components` to find the types of all the components where the confirmation_level is not CONFIRMED or the inferred flag is not set to `true`. The list of possible types can be found [here](https://developers.google.com/maps/documentation/geocoding/requests-geocoding#Types).",
"items": {
"type": "string"
},
"type": "array"
},
"unresolvedTokens": {
"description": "Any tokens in the input that could not be resolved. This might be an input that was not recognized as a valid part of an address. For example, for an input such as \"Parcel 0000123123 & 0000456456 Str # Guthrie Center IA 50115 US\", the unresolved tokens might look like `[\"Parcel\", \"0000123123\", \"&\", \"0000456456\"]`.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"GoogleMapsAddressvalidationV1AddressComponent": {
"description": "Represents an address component, such as a street, city, or state.",
"id": "GoogleMapsAddressvalidationV1AddressComponent",
"properties": {
"componentName": {
"$ref": "GoogleMapsAddressvalidationV1ComponentName",
"description": "The name for this component."
},
"componentType": {
"description": "The type of the address component. See [Table 2: Additional types returned by the Places service](https://developers.google.com/places/web-service/supported_types#table2) for a list of possible types.",
"type": "string"
},
"confirmationLevel": {
"description": "Indicates the level of certainty that we have that the component is correct.",
"enum": [
"CONFIRMATION_LEVEL_UNSPECIFIED",
"CONFIRMED",
"UNCONFIRMED_BUT_PLAUSIBLE",
"UNCONFIRMED_AND_SUSPICIOUS"
],
"enumDescriptions": [
"Default value. This value is unused.",
"We were able to verify that this component exists and makes sense in the context of the rest of the address.",
"This component could not be confirmed, but it is plausible that it exists. For example, a street number within a known valid range of numbers on a street where specific house numbers are not known.",
"This component was not confirmed and is likely to be wrong. For example, a neighborhood that does not fit the rest of the address."
],
"type": "string"
},
"inferred": {
"description": "Indicates that the component was not part of the input, but we inferred it for the address location and believe it should be provided for a complete address.",
"type": "boolean"
},
"replaced": {
"description": "Indicates the name of the component was replaced with a completely different one, for example a wrong postal code being replaced with one that is correct for the address. This is not a cosmetic change, the input component has been changed to a different one.",
"type": "boolean"
},
"spellCorrected": {
"description": "Indicates a correction to a misspelling in the component name. The API does not always flag changes from one spelling variant to another, such as when changing \"centre\" to \"center\". It also does not always flag common misspellings, such as when changing \"Amphitheater Pkwy\" to \"Amphitheatre Pkwy\".",
"type": "boolean"
},
"unexpected": {
"description": "Indicates an address component that is not expected to be present in a postal address for the given region. We have retained it only because it was part of the input.",
"type": "boolean"
}
},
"type": "object"
},
"GoogleMapsAddressvalidationV1AddressMetadata": {
"description": "The metadata for the post-processed address. `metadata` is not guaranteed to be fully populated for every address sent to the Address Validation API.",
"id": "GoogleMapsAddressvalidationV1AddressMetadata",
"properties": {
"business": {
"description": "Indicates that this is the address of a business. If unset, indicates that the value is unknown.",
"type": "boolean"
},
"poBox": {
"description": "Indicates that the address of a PO box. If unset, indicates that the value is unknown.",
"type": "boolean"
},
"residential": {
"description": "Indicates that this is the address of a residence. If unset, indicates that the value is unknown.",
"type": "boolean"
}
},
"type": "object"
},
"GoogleMapsAddressvalidationV1ComponentName": {
"description": "A wrapper for the name of the component.",
"id": "GoogleMapsAddressvalidationV1ComponentName",
"properties": {
"languageCode": {
"description": "The BCP-47 language code. This will not be present if the component name is not associated with a language, such as a street number.",
"type": "string"
},
"text": {
"description": "The name text. For example, \"5th Avenue\" for a street name or \"1253\" for a street number.",
"type": "string"
}
},
"type": "object"
},
"GoogleMapsAddressvalidationV1Geocode": {
"description": "Contains information about the place the input was geocoded to.",
"id": "GoogleMapsAddressvalidationV1Geocode",
"properties": {
"bounds": {
"$ref": "GoogleGeoTypeViewport",
"description": "The bounds of the geocoded place."
},
"featureSizeMeters": {
"description": "The size of the geocoded place, in meters. This is another measure of the coarseness of the geocoded location, but in physical size rather than in semantic meaning.",
"format": "float",
"type": "number"
},
"location": {
"$ref": "GoogleTypeLatLng",
"description": "The geocoded location of the input. Using place IDs is preferred over using addresses, latitude/longitude coordinates, or plus codes. Using coordinates when routing or calculating driving directions will always result in the point being snapped to the road nearest to those coordinates. This may not be a road that will quickly or safely lead to the destination and may not be near an access point to the property. Additionally, when a location is reverse geocoded, there is no guarantee that the returned address will match the original."
},
"placeId": {
"description": "The PlaceID of the place this input geocodes to. For more information about Place IDs see [here](https://developers.google.com/maps/documentation/places/web-service/place-id).",
"type": "string"
},
"placeTypes": {
"description": "The type(s) of place that the input geocoded to. For example, `['locality', 'political']`. The full list of types can be found [here](https://developers.google.com/maps/documentation/geocoding/requests-geocoding#Types).",
"items": {
"type": "string"
},
"type": "array"
},
"plusCode": {
"$ref": "GoogleMapsAddressvalidationV1PlusCode",
"description": "The plus code corresponding to the `location`."
}
},
"type": "object"
},
"GoogleMapsAddressvalidationV1LanguageOptions": {
"description": "Preview: This feature is in Preview (pre-GA). Pre-GA products and features might have limited support, and changes to pre-GA products and features might not be compatible with other pre-GA versions. Pre-GA Offerings are covered by the [Google Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms). For more information, see the [launch stage descriptions](https://developers.google.com/maps/launch-stages). Enables the Address Validation API to include additional information in the response.",
"id": "GoogleMapsAddressvalidationV1LanguageOptions",
"properties": {
"returnEnglishLatinAddress": {
"description": "Preview: Return a [google.maps.addressvalidation.v1.Address] in English. See [google.maps.addressvalidation.v1.ValidationResult.english_latin_address] for details.",
"type": "boolean"
}
},
"type": "object"
},
"GoogleMapsAddressvalidationV1PlusCode": {
"description": "Plus code (http://plus.codes) is a location reference with two formats: global code defining a 14mx14m (1/8000th of a degree) or smaller rectangle, and compound code, replacing the prefix with a reference location.",
"id": "GoogleMapsAddressvalidationV1PlusCode",
"properties": {
"compoundCode": {
"description": "Place's compound code, such as \"33GV+HQ, Ramberg, Norway\", containing the suffix of the global code and replacing the prefix with a formatted name of a reference entity.",
"type": "string"
},
"globalCode": {
"description": "Place's global (full) code, such as \"9FWM33GV+HQ\", representing an 1/8000 by 1/8000 degree area (~14 by 14 meters).",
"type": "string"
}
},
"type": "object"
},
"GoogleMapsAddressvalidationV1ProvideValidationFeedbackRequest": {
"description": "The request for sending validation feedback.",
"id": "GoogleMapsAddressvalidationV1ProvideValidationFeedbackRequest",
"properties": {
"conclusion": {
"description": "Required. The outcome of the sequence of validation attempts. If this field is set to `VALIDATION_CONCLUSION_UNSPECIFIED`, an `INVALID_ARGUMENT` error will be returned.",
"enum": [
"VALIDATION_CONCLUSION_UNSPECIFIED",
"VALIDATED_VERSION_USED",
"USER_VERSION_USED",
"UNVALIDATED_VERSION_USED",
"UNUSED"
],
"enumDescriptions": [
"This value is unused. If the `ProvideValidationFeedbackRequest.conclusion` field is set to `VALIDATION_CONCLUSION_UNSPECIFIED`, an `INVALID_ARGUMENT` error will be returned.",
"The version of the address returned by the Address Validation API was used for the transaction.",
"The version of the address provided by the user was used for the transaction",
"A version of the address that was entered after the last validation attempt but that was not re-validated was used for the transaction.",
"The transaction was abandoned and the address was not used."
],
"type": "string"
},
"responseId": {
"description": "Required. The ID of the response that this feedback is for. This should be the response_id from the first response in a series of address validation attempts.",
"type": "string"
}
},
"type": "object"
},
"GoogleMapsAddressvalidationV1ProvideValidationFeedbackResponse": {
"description": "The response for validation feedback. The response is empty if the feedback is sent successfully.",
"id": "GoogleMapsAddressvalidationV1ProvideValidationFeedbackResponse",
"properties": {},
"type": "object"
},
"GoogleMapsAddressvalidationV1UspsAddress": {
"description": "USPS representation of a US address.",
"id": "GoogleMapsAddressvalidationV1UspsAddress",
"properties": {
"city": {
"description": "City name.",
"type": "string"
},
"cityStateZipAddressLine": {
"description": "City + state + postal code.",
"type": "string"
},
"firm": {
"description": "Firm name.",
"type": "string"
},
"firstAddressLine": {
"description": "First address line.",
"type": "string"
},
"secondAddressLine": {
"description": "Second address line.",
"type": "string"
},
"state": {
"description": "2 letter state code.",
"type": "string"
},
"urbanization": {
"description": "Puerto Rican urbanization name.",
"type": "string"
},
"zipCode": {
"description": "Postal code e.g. 10009.",
"type": "string"
},
"zipCodeExtension": {
"description": "4-digit postal code extension e.g. 5023.",
"type": "string"
}
},
"type": "object"
},
"GoogleMapsAddressvalidationV1UspsData": {
"description": "The USPS data for the address. `uspsData` is not guaranteed to be fully populated for every US or PR address sent to the Address Validation API. It's recommended to integrate the backup address fields in the response if you utilize uspsData as the primary part of the response.",
"id": "GoogleMapsAddressvalidationV1UspsData",
"properties": {
"abbreviatedCity": {
"description": "Abbreviated city.",
"type": "string"
},
"addressRecordType": {
"description": "Type of the address record that matches the input address. * `F`: FIRM. This is a match to a Firm Record, which is the finest level of match available for an address. * `G`: GENERAL DELIVERY. This is a match to a General Delivery record. * `H`: BUILDING / APARTMENT. This is a match to a Building or Apartment record. * `P`: POST OFFICE BOX. This is a match to a Post Office Box. * `R`: RURAL ROUTE or HIGHWAY CONTRACT: This is a match to either a Rural Route or a Highway Contract record, both of which may have associated Box Number ranges. * `S`: STREET RECORD: This is a match to a Street record containing a valid primary number range.",
"type": "string"
},
"carrierRoute": {
"description": "The carrier route code. A four character code consisting of a one letter prefix and a three digit route designator. Prefixes: * `C`: Carrier route (or city route) * `R`: Rural route * `H`: Highway Contract Route * `B`: Post Office Box Section * `G`: General delivery unit",
"type": "string"
},
"carrierRouteIndicator": {
"description": "Carrier route rate sort indicator.",
"type": "string"
},
"cassProcessed": {
"description": "Indicator that the request has been CASS processed.",
"type": "boolean"
},
"county": {
"description": "County name.",
"type": "string"
},
"defaultAddress": {
"description": "Indicator that a default address was found, but more specific addresses exists.",
"type": "boolean"
},
"deliveryPointCheckDigit": {
"description": "The delivery point check digit. This number is added to the end of the delivery_point_barcode for mechanically scanned mail. Adding all the digits of the delivery_point_barcode, delivery_point_check_digit, postal code, and ZIP+4 together should yield a number divisible by 10.",
"type": "string"
},
"deliveryPointCode": {
"description": "2 digit delivery point code",
"type": "string"
},
"dpvCmra": {
"description": "Indicates if the address is a CMRA (Commercial Mail Receiving Agency)--a private business receiving mail for clients. Returns a single character. * `Y`: The address is a CMRA * `N`: The address is not a CMRA",
"type": "string"
},
"dpvConfirmation": {
"description": "The possible values for DPV confirmation. Returns a single character or returns no value. * `N`: Primary and any secondary number information failed to DPV confirm. * `D`: Address was DPV confirmed for the primary number only, and the secondary number information was missing. * `S`: Address was DPV confirmed for the primary number only, and the secondary number information was present but not confirmed. * `Y`: Address was DPV confirmed for primary and any secondary numbers. * Empty: If the response does not contain a `dpv_confirmation` value, the address was not submitted for DPV confirmation.",
"type": "string"
},
"dpvDoorNotAccessible": {
"description": "Flag indicates addresses where USPS cannot knock on a door to deliver mail. Returns a single character. * `Y`: The door is not accessible. * `N`: No indication the door is not accessible.",
"type": "string"
},
"dpvDrop": {
"description": "Flag indicates mail is delivered to a single receptable at a site. Returns a single character. * `Y`: The mail is delivered to a single receptable at a site. * `N`: The mail is not delivered to a single receptable at a site.",
"type": "string"
},
"dpvEnhancedDeliveryCode": {
"description": "Indicates that more than one DPV return code is valid for the address. Returns a single character. * `Y`: Address was DPV confirmed for primary and any secondary numbers. * `N`: Primary and any secondary number information failed to DPV confirm. * `S`: Address was DPV confirmed for the primary number only, and the secondary number information was present but not confirmed, or a single trailing alpha on a primary number was dropped to make a DPV match and secondary information required. * `D`: Address was DPV confirmed for the primary number only, and the secondary number information was missing. * `R`: Address confirmed but assigned to phantom route R777 and R779 and USPS delivery is not provided.",
"type": "string"
},
"dpvFootnote": {
"description": "The footnotes from delivery point validation. Multiple footnotes may be strung together in the same string. * `AA`: Input address matched to the ZIP+4 file * `A1`: Input address was not matched to the ZIP+4 file * `BB`: Matched to DPV (all components) * `CC`: Secondary number not matched and not required * `C1`: Secondary number not matched but required * `N1`: High-rise address missing secondary number * `M1`: Primary number missing * `M3`: Primary number invalid * `P1`: Input address PO, RR or HC box number missing * `P3`: Input address PO, RR, or HC Box number invalid * `F1`: Input address matched to a military address * `G1`: Input address matched to a general delivery address * `U1`: Input address matched to a unique ZIP code * `PB`: Input address matched to PBSA record * `RR`: DPV confirmed address with PMB information * `R1`: DPV confirmed address without PMB information * `R7`: Carrier Route R777 or R779 record * `IA`: Informed Address identified * `TA`: Primary number matched by dropping a trailing alpha",
"type": "string"
},
"dpvNoSecureLocation": {
"description": "Flag indicates door is accessible, but package will not be left due to security concerns. Returns a single character. * `Y`: The package will not be left due to security concerns. * `N`: No indication the package will not be left due to security concerns.",
"type": "string"
},
"dpvNoStat": {
"description": "Is this a no stat address or an active address? No stat addresses are ones which are not continuously occupied or addresses that the USPS does not service. Returns a single character. * `Y`: The address is not active * `N`: The address is active",
"type": "string"
},
"dpvNoStatReasonCode": {
"description": "Indicates the NoStat type. Returns a reason code as int. * `1`: IDA (Internal Drop Address) \u2013 Addresses that do not receive mail directly from the USPS but are delivered to a drop address that services them. * `2`: CDS - Addresses that have not yet become deliverable. For example, a new subdivision where lots and primary numbers have been determined, but no structure exists yet for occupancy. * `3`: Collision - Addresses that do not actually DPV confirm. * `4`: CMZ (College, Military and Other Types) - ZIP + 4 records USPS has incorporated into the data. * `5`: Regular - Indicates addresses not receiving delivery and the addresses are not counted as possible deliveries. * `6`: Secondary Required - The address requires secondary information.",
"format": "int32",
"type": "integer"
},
"dpvNonDeliveryDays": {
"description": "Flag indicates mail delivery is not performed every day of the week. Returns a single character. * `Y`: The mail delivery is not performed every day of the week. * `N`: No indication the mail delivery is not performed every day of the week.",
"type": "string"
},
"dpvNonDeliveryDaysValues": {
"description": "Integer identifying non-delivery days. It can be interrogated using bit flags: 0x40 \u2013 Sunday is a non-delivery day 0x20 \u2013 Monday is a non-delivery day 0x10 \u2013 Tuesday is a non-delivery day 0x08 \u2013 Wednesday is a non-delivery day 0x04 \u2013 Thursday is a non-delivery day 0x02 \u2013 Friday is a non-delivery day 0x01 \u2013 Saturday is a non-delivery day",
"format": "int32",
"type": "integer"
},
"dpvPbsa": {
"description": "Indicates the address was matched to PBSA record. Returns a single character. * `Y`: The address was matched to PBSA record. * `N`: The address was not matched to PBSA record.",
"type": "string"
},
"dpvThrowback": {
"description": "Indicates that mail is not delivered to the street address. Returns a single character. * `Y`: The mail is not delivered to the street address. * `N`: The mail is delivered to the street address.",
"type": "string"
},
"dpvVacant": {
"description": "Is this place vacant? Returns a single character. * `Y`: The address is vacant * `N`: The address is not vacant",
"type": "string"
},
"elotFlag": {
"description": "eLOT Ascending/Descending Flag (A/D).",
"type": "string"
},
"elotNumber": {
"description": "Enhanced Line of Travel (eLOT) number.",
"type": "string"
},
"errorMessage": {
"description": "Error message for USPS data retrieval. This is populated when USPS processing is suspended because of the detection of artificially created addresses. The USPS data fields might not be populated when this error is present.",
"type": "string"
},
"ewsNoMatch": {
"description": "The delivery address is matchable, but the EWS file indicates that an exact match will be available soon.",
"type": "boolean"
},
"fipsCountyCode": {
"description": "FIPS county code.",
"type": "string"
},
"lacsLinkIndicator": {
"description": "LACSLink indicator.",
"type": "string"
},
"lacsLinkReturnCode": {
"description": "LACSLink return code.",
"type": "string"
},
"pmbDesignator": {
"description": "PMB (Private Mail Box) unit designator.",
"type": "string"
},
"pmbNumber": {
"description": "PMB (Private Mail Box) number;",
"type": "string"
},
"poBoxOnlyPostalCode": {
"description": "PO Box only postal code.",
"type": "boolean"
},
"postOfficeCity": {
"description": "Main post office city.",
"type": "string"
},
"postOfficeState": {
"description": "Main post office state.",
"type": "string"
},
"standardizedAddress": {
"$ref": "GoogleMapsAddressvalidationV1UspsAddress",
"description": "USPS standardized address."
},
"suitelinkFootnote": {
"description": "Footnotes from matching a street or highrise record to suite information. If business name match is found, the secondary number is returned. * `A`: SuiteLink record match, business address improved. * `00`: No match, business address is not improved.",
"type": "string"
}
},
"type": "object"
},
"GoogleMapsAddressvalidationV1ValidateAddressRequest": {
"description": "The request for validating an address.",
"id": "GoogleMapsAddressvalidationV1ValidateAddressRequest",
"properties": {
"address": {
"$ref": "GoogleTypePostalAddress",
"description": "Required. The address being validated. Unformatted addresses should be submitted via `address_lines`. The total length of the fields in this input must not exceed 280 characters. Supported regions can be found [here](https://developers.google.com/maps/documentation/address-validation/coverage). The language_code value in the input address is reserved for future uses and is ignored today. The validated address result will be populated based on the preferred language for the given address, as identified by the system. The Address Validation API ignores the values in recipients and organization. Any values in those fields will be discarded and not returned. Please do not set them."
},
"enableUspsCass": {
"description": "Enables USPS CASS compatible mode. This affects _only_ the [google.maps.addressvalidation.v1.ValidationResult.usps_data] field of [google.maps.addressvalidation.v1.ValidationResult]. Note: for USPS CASS enabled requests for addresses in Puerto Rico, a [google.type.PostalAddress.region_code] of the `address` must be provided as \"PR\", or an [google.type.PostalAddress.administrative_area] of the `address` must be provided as \"Puerto Rico\" (case-insensitive) or \"PR\". It's recommended to use a componentized `address`, or alternatively specify at least two [google.type.PostalAddress.address_lines] where the first line contains the street number and name and the second line contains the city, state, and zip code.",
"type": "boolean"
},
"languageOptions": {
"$ref": "GoogleMapsAddressvalidationV1LanguageOptions",
"description": "Optional. Preview: This feature is in Preview (pre-GA). Pre-GA products and features might have limited support, and changes to pre-GA products and features might not be compatible with other pre-GA versions. Pre-GA Offerings are covered by the [Google Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms). For more information, see the [launch stage descriptions](https://developers.google.com/maps/launch-stages). Enables the Address Validation API to include additional information in the response."
},
"previousResponseId": {
"description": "This field must be empty for the first address validation request. If more requests are necessary to fully validate a single address (for example if the changes the user makes after the initial validation need to be re-validated), then each followup request must populate this field with the response_id from the very first response in the validation sequence.",
"type": "string"
},
"sessionToken": {
"description": "Optional. A string which identifies an Autocomplete session for billing purposes. Must be a URL and filename safe base64 string with at most 36 ASCII characters in length. Otherwise an INVALID_ARGUMENT error is returned. The session begins when the user makes an Autocomplete query, and concludes when they select a place and a call to Place Details or Address Validation is made. Each session can have multiple Autocomplete queries, followed by one Place Details or Address Validation request. The credentials used for each request within a session must belong to the same Google Cloud Console project. Once a session has concluded, the token is no longer valid; your app must generate a fresh token for each session. If the `sessionToken` parameter is omitted, or if you reuse a session token, the session is charged as if no session token was provided (each request is billed separately). Note: Address Validation can only be used in sessions with the Autocomplete (New) API, not the Autocomplete API. See https://developers.google.com/maps/documentation/places/web-service/session-pricing for more details.",
"type": "string"
}
},
"type": "object"
},
"GoogleMapsAddressvalidationV1ValidateAddressResponse": {
"description": "The response to an address validation request.",
"id": "GoogleMapsAddressvalidationV1ValidateAddressResponse",
"properties": {
"responseId": {
"description": "The UUID that identifies this response. If the address needs to be re-validated, this UUID *must* accompany the new request.",
"type": "string"
},
"result": {
"$ref": "GoogleMapsAddressvalidationV1ValidationResult",
"description": "The result of the address validation."
}
},
"type": "object"
},
"GoogleMapsAddressvalidationV1ValidationResult": {
"description": "The result of validating an address.",
"id": "GoogleMapsAddressvalidationV1ValidationResult",
"properties": {
"address": {
"$ref": "GoogleMapsAddressvalidationV1Address",
"description": "Information about the address itself as opposed to the geocode."
},
"englishLatinAddress": {
"$ref": "GoogleMapsAddressvalidationV1Address",
"description": "Preview: This feature is in Preview (pre-GA). Pre-GA products and features might have limited support, and changes to pre-GA products and features might not be compatible with other pre-GA versions. Pre-GA Offerings are covered by the [Google Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms). For more information, see the [launch stage descriptions](https://developers.google.com/maps/launch-stages). The address translated to English. Translated addresses are not reusable as API input. The service provides them so that the user can use their native language to confirm or deny the validation of the originally-provided address. If part of the address doesn't have an English translation, the service returns that part in an alternate language that uses a Latin script. See [here](https://developers.google.com/maps/documentation/address-validation/convert-addresses-english) for an explanation of how the alternate language is selected. If part of the address doesn't have any translations or transliterations in a language that uses a Latin script, the service returns that part in the local language associated with the address. Enable this output by using the [google.maps.addressvalidation.v1.LanguageOptions.return_english_latin_address] flag. Note: the [google.maps.addressvalidation.v1.Address.unconfirmed_component_types] field in the `english_latin_address` and the [google.maps.addressvalidation.v1.AddressComponent.confirmation_level] fields in `english_latin_address.address_components` are not populated."
},
"geocode": {
"$ref": "GoogleMapsAddressvalidationV1Geocode",
"description": "Information about the location and place that the address geocoded to."
},
"metadata": {
"$ref": "GoogleMapsAddressvalidationV1AddressMetadata",
"description": "Other information relevant to deliverability. `metadata` is not guaranteed to be fully populated for every address sent to the Address Validation API."
},
"uspsData": {
"$ref": "GoogleMapsAddressvalidationV1UspsData",
"description": "Extra deliverability flags provided by USPS. Only provided in region `US` and `PR`."
},
"verdict": {
"$ref": "GoogleMapsAddressvalidationV1Verdict",
"description": "Overall verdict flags"
}
},
"type": "object"
},
"GoogleMapsAddressvalidationV1Verdict": {
"description": "High level overview of the address validation result and geocode.",
"id": "GoogleMapsAddressvalidationV1Verdict",
"properties": {
"addressComplete": {
"description": "The post-processed address is considered complete if there are no unresolved tokens, no unexpected or missing address components. If unset, indicates that the value is `false`. See `missing_component_types`, `unresolved_tokens` or `unexpected` fields for more details.",
"type": "boolean"
},
"geocodeGranularity": {
"description": "Information about the granularity of the `geocode`. This can be understood as the semantic meaning of how coarse or fine the geocoded location is. This can differ from the `validation_granularity` above occasionally. For example, our database might record the existence of an apartment number but do not have a precise location for the apartment within a big apartment complex. In that case, the `validation_granularity` will be `SUB_PREMISE` but the `geocode_granularity` will be `PREMISE`.",
"enum": [
"GRANULARITY_UNSPECIFIED",
"SUB_PREMISE",
"PREMISE",
"PREMISE_PROXIMITY",
"BLOCK",
"ROUTE",
"OTHER"
],
"enumDescriptions": [
"Default value. This value is unused.",
"Below-building level result, such as an apartment.",
"Building-level result.",
"A geocode that approximates the building-level location of the address.",
"The address or geocode indicates a block. Only used in regions which have block-level addressing, such as Japan.",
"The geocode or address is granular to route, such as a street, road, or highway.",
"All other granularities, which are bucketed together since they are not deliverable."
],
"type": "string"
},
"hasInferredComponents": {
"description": "At least one address component was inferred (added) that wasn't in the input, see [google.maps.addressvalidation.v1.Address.address_components] for details.",
"type": "boolean"
},
"hasReplacedComponents": {
"description": "At least one address component was replaced, see [google.maps.addressvalidation.v1.Address.address_components] for details.",
"type": "boolean"
},
"hasSpellCorrectedComponents": {
"description": "At least one address component was spell-corrected, see [google.maps.addressvalidation.v1.Address.address_components] for details.",
"type": "boolean"
},
"hasUnconfirmedComponents": {
"description": "At least one address component cannot be categorized or validated, see [google.maps.addressvalidation.v1.Address.address_components] for details.",
"type": "boolean"
},
"inputGranularity": {
"description": "The granularity of the **input** address. This is the result of parsing the input address and does not give any validation signals. For validation signals, refer to `validation_granularity` below. For example, if the input address includes a specific apartment number, then the `input_granularity` here will be `SUB_PREMISE`. If the address validation service cannot match the apartment number in the databases or the apartment number is invalid, the `validation_granularity` will likely be `PREMISE` or more coarse.",
"enum": [
"GRANULARITY_UNSPECIFIED",
"SUB_PREMISE",
"PREMISE",
"PREMISE_PROXIMITY",
"BLOCK",
"ROUTE",
"OTHER"
],
"enumDescriptions": [
"Default value. This value is unused.",
"Below-building level result, such as an apartment.",
"Building-level result.",
"A geocode that approximates the building-level location of the address.",
"The address or geocode indicates a block. Only used in regions which have block-level addressing, such as Japan.",
"The geocode or address is granular to route, such as a street, road, or highway.",
"All other granularities, which are bucketed together since they are not deliverable."
],
"type": "string"
},
"possibleNextAction": {
"description": "Preview: This feature is in Preview (pre-GA). Pre-GA products and features might have limited support, and changes to pre-GA products and features might not be compatible with other pre-GA versions. Pre-GA Offerings are covered by the [Google Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms). For more information, see the [launch stage descriptions](https://developers.google.com/maps/launch-stages). Offers an interpretive summary of the API response, intended to assist in determining a potential subsequent action to take. This field is derived from other fields in the API response and should not be considered as a guarantee of address accuracy or deliverability. See [Build your validation logic](https://developers.google.com/maps/documentation/address-validation/build-validation-logic) for more details.",
"enum": [
"POSSIBLE_NEXT_ACTION_UNSPECIFIED",
"FIX",
"CONFIRM_ADD_SUBPREMISES",
"CONFIRM",
"ACCEPT"
],
"enumDescriptions": [
"Default value. This value is unused.",
"One or more fields of the API response indicate a potential issue with the post-processed address, for example the `verdict.validation_granularity` is `OTHER`. Prompting your customer to edit the address could help improve the quality of the address.",
"The API response indicates the post-processed address might be missing a subpremises. Prompting your customer to review the address and consider adding a unit number could help improve the quality of the address. The post-processed address might also have other minor issues. Note: this enum value can only be returned for US addresses.",
"One or more fields of the API response indicate potential minor issues with the post-processed address, for example the `postal_code` address component was `replaced`. Prompting your customer to review the address could help improve the quality of the address.",
"The API response does not contain signals that warrant one of the other PossibleNextAction values. You might consider using the post-processed address without further prompting your customer, though this does not guarantee the address is valid, and the address might still contain corrections. It is your responsibility to determine if and how to prompt your customer, depending on your own risk assessment."
],
"type": "string"
},
"validationGranularity": {
"description": "The level of granularity for the post-processed address that the API can fully validate. For example, a `validation_granularity` of `PREMISE` indicates all address components at the level of `PREMISE` or more coarse can be validated. Per address component validation result can be found in [google.maps.addressvalidation.v1.Address.address_components].",
"enum": [
"GRANULARITY_UNSPECIFIED",
"SUB_PREMISE",
"PREMISE",
"PREMISE_PROXIMITY",
"BLOCK",
"ROUTE",
"OTHER"
],
"enumDescriptions": [
"Default value. This value is unused.",
"Below-building level result, such as an apartment.",
"Building-level result.",
"A geocode that approximates the building-level location of the address.",
"The address or geocode indicates a block. Only used in regions which have block-level addressing, such as Japan.",
"The geocode or address is granular to route, such as a street, road, or highway.",
"All other granularities, which are bucketed together since they are not deliverable."
],
"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"
},
"GoogleTypePostalAddress": {
"description": "Represents a postal address, such as for postal delivery or payments addresses. With a postal address, a postal service can deliver items to a premise, P.O. box, or similar. A postal address is not intended to model geographical locations like roads, towns, or 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 or 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 or 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). In 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. 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 or 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 or zip code validation in the United States).",
"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\" (C\u00f4te d'Ivoire).",
"type": "string"
},
"sublocality": {
"description": "Optional. Sublocality of the address. For example, this can be a neighborhood, borough, or district.",
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Address Validation API",
"version": "v1",
"version_module": true
}

View File

@@ -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"
}

View File

@@ -0,0 +1,268 @@
{
"basePath": "",
"baseUrl": "https://adexperiencereport.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Ad Experience Report",
"description": "Views Ad Experience Report data, and gets a list of sites that have a significant number of annoying ads.",
"discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/ad-experience-report/",
"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": "adexperiencereport:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://adexperiencereport.mtls.googleapis.com/",
"name": "adexperiencereport",
"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": {
"sites": {
"methods": {
"get": {
"description": "Gets a site's Ad Experience Report summary.",
"flatPath": "v1/sites/{sitesId}",
"httpMethod": "GET",
"id": "adexperiencereport.sites.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The name of the site whose summary to get, e.g. `sites/http%3A%2F%2Fwww.google.com%2F`. Format: `sites/{site}`",
"location": "path",
"pattern": "^sites/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "SiteSummaryResponse"
}
}
}
},
"violatingSites": {
"methods": {
"list": {
"description": "Lists sites that are failing in the Ad Experience Report on at least one platform.",
"flatPath": "v1/violatingSites",
"httpMethod": "GET",
"id": "adexperiencereport.violatingSites.list",
"parameterOrder": [],
"parameters": {},
"path": "v1/violatingSites",
"response": {
"$ref": "ViolatingSitesResponse"
}
}
}
}
},
"revision": "20240610",
"rootUrl": "https://adexperiencereport.googleapis.com/",
"schemas": {
"PlatformSummary": {
"description": "A site's Ad Experience Report summary on a single platform.",
"id": "PlatformSummary",
"properties": {
"betterAdsStatus": {
"description": "The site's Ad Experience Report status on this platform.",
"enum": [
"UNKNOWN",
"PASSING",
"WARNING",
"FAILING"
],
"enumDeprecated": [
false,
false,
true,
false
],
"enumDescriptions": [
"Not reviewed.",
"Passing.",
"Warning. No longer a possible status.",
"Failing."
],
"type": "string"
},
"enforcementTime": {
"description": "The time at which [enforcement](https://support.google.com/webtools/answer/7308033) against the site began or will begin on this platform. Not set when the filter_status is OFF.",
"format": "google-datetime",
"type": "string"
},
"filterStatus": {
"description": "The site's [enforcement status](https://support.google.com/webtools/answer/7308033) on this platform.",
"enum": [
"UNKNOWN",
"ON",
"OFF",
"PAUSED",
"PENDING"
],
"enumDescriptions": [
"N/A.",
"Ad filtering is on.",
"Ad filtering is off.",
"Ad filtering is paused.",
"Ad filtering is pending."
],
"type": "string"
},
"lastChangeTime": {
"description": "The time at which the site's status last changed on this platform.",
"format": "google-datetime",
"type": "string"
},
"region": {
"deprecated": true,
"description": "The site's regions on this platform. No longer populated, because there is no longer any semantic difference between sites in different regions.",
"items": {
"enum": [
"REGION_UNKNOWN",
"REGION_A",
"REGION_B",
"REGION_C"
],
"enumDescriptions": [
"Ad standard not yet defined for your region.",
"Region A.",
"Region B.",
"Region C."
],
"type": "string"
},
"type": "array"
},
"reportUrl": {
"description": "A link to the full Ad Experience Report for the site on this platform.. Not set in ViolatingSitesResponse. Note that you must complete the [Search Console verification process](https://support.google.com/webmasters/answer/9008080) for the site before you can access the full report.",
"type": "string"
},
"underReview": {
"description": "Whether the site is currently under review on this platform.",
"type": "boolean"
}
},
"type": "object"
},
"SiteSummaryResponse": {
"description": "Response message for GetSiteSummary.",
"id": "SiteSummaryResponse",
"properties": {
"desktopSummary": {
"$ref": "PlatformSummary",
"description": "The site's Ad Experience Report summary on desktop."
},
"mobileSummary": {
"$ref": "PlatformSummary",
"description": "The site's Ad Experience Report summary on mobile."
},
"reviewedSite": {
"description": "The name of the reviewed site, e.g. `google.com`.",
"type": "string"
}
},
"type": "object"
},
"ViolatingSitesResponse": {
"description": "Response message for ListViolatingSites.",
"id": "ViolatingSitesResponse",
"properties": {
"violatingSites": {
"description": "The list of violating sites.",
"items": {
"$ref": "SiteSummaryResponse"
},
"type": "array"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Ad Experience Report API",
"version": "v1",
"version_module": true
}

View File

@@ -0,0 +1,453 @@
{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/admin.datatransfer": {
"description": "View and manage data transfers between users in your organization"
},
"https://www.googleapis.com/auth/admin.datatransfer.readonly": {
"description": "View data transfers between users in your organization"
}
}
}
},
"basePath": "",
"baseUrl": "https://admin.googleapis.com/",
"batchPath": "batch",
"canonicalName": "DataTransfer",
"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/workspace/admin/",
"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:datatransfer_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": {
"applications": {
"methods": {
"get": {
"description": "Retrieves information about an application for the given application ID.",
"flatPath": "admin/datatransfer/v1/applications/{applicationId}",
"httpMethod": "GET",
"id": "datatransfer.applications.get",
"parameterOrder": [
"applicationId"
],
"parameters": {
"applicationId": {
"description": "ID of the application resource to be retrieved.",
"format": "int64",
"location": "path",
"required": true,
"type": "string"
}
},
"path": "admin/datatransfer/v1/applications/{applicationId}",
"response": {
"$ref": "Application"
},
"scopes": [
"https://www.googleapis.com/auth/admin.datatransfer",
"https://www.googleapis.com/auth/admin.datatransfer.readonly"
]
},
"list": {
"description": "Lists the applications available for data transfer for a customer.",
"flatPath": "admin/datatransfer/v1/applications",
"httpMethod": "GET",
"id": "datatransfer.applications.list",
"parameterOrder": [],
"parameters": {
"customerId": {
"description": "Immutable ID of the Google Workspace account.",
"location": "query",
"type": "string"
},
"maxResults": {
"description": "Maximum number of results to return. Default is 100.",
"format": "int32",
"location": "query",
"maximum": "500",
"minimum": "1",
"type": "integer"
},
"pageToken": {
"description": "Token to specify next page in the list.",
"location": "query",
"type": "string"
}
},
"path": "admin/datatransfer/v1/applications",
"response": {
"$ref": "ApplicationsListResponse"
},
"scopes": [
"https://www.googleapis.com/auth/admin.datatransfer",
"https://www.googleapis.com/auth/admin.datatransfer.readonly"
]
}
}
},
"transfers": {
"methods": {
"get": {
"description": "Retrieves a data transfer request by its resource ID.",
"flatPath": "admin/datatransfer/v1/transfers/{dataTransferId}",
"httpMethod": "GET",
"id": "datatransfer.transfers.get",
"parameterOrder": [
"dataTransferId"
],
"parameters": {
"dataTransferId": {
"description": "ID of the resource to be retrieved. This is returned in the response from the insert method.",
"location": "path",
"required": true,
"type": "string"
}
},
"path": "admin/datatransfer/v1/transfers/{dataTransferId}",
"response": {
"$ref": "DataTransfer"
},
"scopes": [
"https://www.googleapis.com/auth/admin.datatransfer",
"https://www.googleapis.com/auth/admin.datatransfer.readonly"
]
},
"insert": {
"description": "Inserts a data transfer request. See the [Transfer parameters](https://developers.google.com/workspace/admin/data-transfer/v1/parameters) reference for specific application requirements.",
"flatPath": "admin/datatransfer/v1/transfers",
"httpMethod": "POST",
"id": "datatransfer.transfers.insert",
"parameterOrder": [],
"parameters": {},
"path": "admin/datatransfer/v1/transfers",
"request": {
"$ref": "DataTransfer"
},
"response": {
"$ref": "DataTransfer"
},
"scopes": [
"https://www.googleapis.com/auth/admin.datatransfer"
]
},
"list": {
"description": "Lists the transfers for a customer by source user, destination user, or status.",
"flatPath": "admin/datatransfer/v1/transfers",
"httpMethod": "GET",
"id": "datatransfer.transfers.list",
"parameterOrder": [],
"parameters": {
"customerId": {
"description": "Immutable ID of the Google Workspace account.",
"location": "query",
"type": "string"
},
"maxResults": {
"description": "Maximum number of results to return. Default is 100.",
"format": "int32",
"location": "query",
"maximum": "500",
"minimum": "1",
"type": "integer"
},
"newOwnerUserId": {
"description": "Destination user's profile ID.",
"location": "query",
"type": "string"
},
"oldOwnerUserId": {
"description": "Source user's profile ID.",
"location": "query",
"type": "string"
},
"pageToken": {
"description": "Token to specify the next page in the list.",
"location": "query",
"type": "string"
},
"status": {
"description": "Status of the transfer.",
"location": "query",
"type": "string"
}
},
"path": "admin/datatransfer/v1/transfers",
"response": {
"$ref": "DataTransfersListResponse"
},
"scopes": [
"https://www.googleapis.com/auth/admin.datatransfer",
"https://www.googleapis.com/auth/admin.datatransfer.readonly"
]
}
}
}
},
"revision": "20250707",
"rootUrl": "https://admin.googleapis.com/",
"schemas": {
"Application": {
"description": "Application resources represent applications installed on the domain that support transferring ownership of user data.",
"id": "Application",
"properties": {
"etag": {
"description": "Etag of the resource.",
"type": "string"
},
"id": {
"description": "The application's ID. Retrievable by using the [`applications.list()`](https://developers.google.com/workspace/admin/data-transfer/reference/rest/v1/applications/list) method.",
"format": "int64",
"type": "string"
},
"kind": {
"default": "admin#datatransfer#ApplicationResource",
"description": "Identifies the resource as a DataTransfer Application Resource.",
"type": "string"
},
"name": {
"description": "The application's name.",
"type": "string"
},
"transferParams": {
"description": "The list of all possible transfer parameters for this application. These parameters select which categories of the user's data to transfer.",
"items": {
"$ref": "ApplicationTransferParam"
},
"type": "array"
}
},
"type": "object"
},
"ApplicationDataTransfer": {
"description": "Template to map fields of ApplicationDataTransfer resource.",
"id": "ApplicationDataTransfer",
"properties": {
"applicationId": {
"description": "The application's ID.",
"format": "int64",
"type": "string"
},
"applicationTransferParams": {
"description": "The transfer parameters for the application. These parameters are used to select the data which will get transferred in context of this application. For more information about the specific values available for each application, see the [Transfer parameters](https://developers.google.com/workspace/admin/data-transfer/v1/parameters) reference.",
"items": {
"$ref": "ApplicationTransferParam"
},
"type": "array"
},
"applicationTransferStatus": {
"description": "Read-only. Current status of transfer for this application.",
"type": "string"
}
},
"type": "object"
},
"ApplicationTransferParam": {
"description": "Template for application transfer parameters.",
"id": "ApplicationTransferParam",
"properties": {
"key": {
"description": "The type of the transfer parameter, such as `PRIVACY_LEVEL`.",
"type": "string"
},
"value": {
"description": "The value of the transfer parameter, such as `PRIVATE` or `SHARED`.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"ApplicationsListResponse": {
"description": "Template for a collection of Applications.",
"id": "ApplicationsListResponse",
"properties": {
"applications": {
"description": "The list of applications that support data transfer and are also installed for the customer.",
"items": {
"$ref": "Application"
},
"type": "array"
},
"etag": {
"description": "ETag of the resource.",
"type": "string"
},
"kind": {
"default": "admin#datatransfer#applicationsList",
"description": "Identifies the resource as a collection of Applications.",
"type": "string"
},
"nextPageToken": {
"description": "Token to specify the next page in the list.",
"type": "string"
}
},
"type": "object"
},
"DataTransfer": {
"description": "A Transfer resource represents the transfer of the ownership of user data between users.",
"id": "DataTransfer",
"properties": {
"applicationDataTransfers": {
"description": "The list of per-application data transfer resources. It contains details of the applications associated with this transfer resource, and also specifies the applications for which data transfer has to be done at the time of the transfer resource creation.",
"items": {
"$ref": "ApplicationDataTransfer"
},
"type": "array"
},
"etag": {
"description": "ETag of the resource.",
"type": "string"
},
"id": {
"description": "Read-only. The transfer's ID.",
"type": "string"
},
"kind": {
"default": "admin#datatransfer#DataTransfer",
"description": "Identifies the resource as a DataTransfer request.",
"type": "string"
},
"newOwnerUserId": {
"description": "ID of the user to whom the data is being transferred.",
"type": "string"
},
"oldOwnerUserId": {
"description": "ID of the user whose data is being transferred.",
"type": "string"
},
"overallTransferStatusCode": {
"description": "Read-only. Overall transfer status.",
"type": "string"
},
"requestTime": {
"description": "Read-only. The time at which the data transfer was requested.",
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"DataTransfersListResponse": {
"description": "Template for a collection of DataTransfer resources.",
"id": "DataTransfersListResponse",
"properties": {
"dataTransfers": {
"description": "List of data transfer requests.",
"items": {
"$ref": "DataTransfer"
},
"type": "array"
},
"etag": {
"description": "ETag of the resource.",
"type": "string"
},
"kind": {
"default": "admin#datatransfer#dataTransfersList",
"description": "Identifies the resource as a collection of data transfer requests.",
"type": "string"
},
"nextPageToken": {
"description": "Token to specify the next page in the list.",
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Admin SDK API",
"version": "datatransfer_v1"
}

View File

@@ -0,0 +1,453 @@
{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/admin.datatransfer": {
"description": "View and manage data transfers between users in your organization"
},
"https://www.googleapis.com/auth/admin.datatransfer.readonly": {
"description": "View data transfers between users in your organization"
}
}
}
},
"basePath": "",
"baseUrl": "https://admin.googleapis.com/",
"batchPath": "batch",
"canonicalName": "DataTransfer",
"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/workspace/admin/",
"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:datatransfer_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": {
"applications": {
"methods": {
"get": {
"description": "Retrieves information about an application for the given application ID.",
"flatPath": "admin/datatransfer/v1/applications/{applicationId}",
"httpMethod": "GET",
"id": "datatransfer.applications.get",
"parameterOrder": [
"applicationId"
],
"parameters": {
"applicationId": {
"description": "ID of the application resource to be retrieved.",
"format": "int64",
"location": "path",
"required": true,
"type": "string"
}
},
"path": "admin/datatransfer/v1/applications/{applicationId}",
"response": {
"$ref": "Application"
},
"scopes": [
"https://www.googleapis.com/auth/admin.datatransfer",
"https://www.googleapis.com/auth/admin.datatransfer.readonly"
]
},
"list": {
"description": "Lists the applications available for data transfer for a customer.",
"flatPath": "admin/datatransfer/v1/applications",
"httpMethod": "GET",
"id": "datatransfer.applications.list",
"parameterOrder": [],
"parameters": {
"customerId": {
"description": "Immutable ID of the Google Workspace account.",
"location": "query",
"type": "string"
},
"maxResults": {
"description": "Maximum number of results to return. Default is 100.",
"format": "int32",
"location": "query",
"maximum": "500",
"minimum": "1",
"type": "integer"
},
"pageToken": {
"description": "Token to specify next page in the list.",
"location": "query",
"type": "string"
}
},
"path": "admin/datatransfer/v1/applications",
"response": {
"$ref": "ApplicationsListResponse"
},
"scopes": [
"https://www.googleapis.com/auth/admin.datatransfer",
"https://www.googleapis.com/auth/admin.datatransfer.readonly"
]
}
}
},
"transfers": {
"methods": {
"get": {
"description": "Retrieves a data transfer request by its resource ID.",
"flatPath": "admin/datatransfer/v1/transfers/{dataTransferId}",
"httpMethod": "GET",
"id": "datatransfer.transfers.get",
"parameterOrder": [
"dataTransferId"
],
"parameters": {
"dataTransferId": {
"description": "ID of the resource to be retrieved. This is returned in the response from the insert method.",
"location": "path",
"required": true,
"type": "string"
}
},
"path": "admin/datatransfer/v1/transfers/{dataTransferId}",
"response": {
"$ref": "DataTransfer"
},
"scopes": [
"https://www.googleapis.com/auth/admin.datatransfer",
"https://www.googleapis.com/auth/admin.datatransfer.readonly"
]
},
"insert": {
"description": "Inserts a data transfer request. See the [Transfer parameters](https://developers.google.com/workspace/admin/data-transfer/v1/parameters) reference for specific application requirements.",
"flatPath": "admin/datatransfer/v1/transfers",
"httpMethod": "POST",
"id": "datatransfer.transfers.insert",
"parameterOrder": [],
"parameters": {},
"path": "admin/datatransfer/v1/transfers",
"request": {
"$ref": "DataTransfer"
},
"response": {
"$ref": "DataTransfer"
},
"scopes": [
"https://www.googleapis.com/auth/admin.datatransfer"
]
},
"list": {
"description": "Lists the transfers for a customer by source user, destination user, or status.",
"flatPath": "admin/datatransfer/v1/transfers",
"httpMethod": "GET",
"id": "datatransfer.transfers.list",
"parameterOrder": [],
"parameters": {
"customerId": {
"description": "Immutable ID of the Google Workspace account.",
"location": "query",
"type": "string"
},
"maxResults": {
"description": "Maximum number of results to return. Default is 100.",
"format": "int32",
"location": "query",
"maximum": "500",
"minimum": "1",
"type": "integer"
},
"newOwnerUserId": {
"description": "Destination user's profile ID.",
"location": "query",
"type": "string"
},
"oldOwnerUserId": {
"description": "Source user's profile ID.",
"location": "query",
"type": "string"
},
"pageToken": {
"description": "Token to specify the next page in the list.",
"location": "query",
"type": "string"
},
"status": {
"description": "Status of the transfer.",
"location": "query",
"type": "string"
}
},
"path": "admin/datatransfer/v1/transfers",
"response": {
"$ref": "DataTransfersListResponse"
},
"scopes": [
"https://www.googleapis.com/auth/admin.datatransfer",
"https://www.googleapis.com/auth/admin.datatransfer.readonly"
]
}
}
}
},
"revision": "20250707",
"rootUrl": "https://admin.googleapis.com/",
"schemas": {
"Application": {
"description": "Application resources represent applications installed on the domain that support transferring ownership of user data.",
"id": "Application",
"properties": {
"etag": {
"description": "Etag of the resource.",
"type": "string"
},
"id": {
"description": "The application's ID. Retrievable by using the [`applications.list()`](https://developers.google.com/workspace/admin/data-transfer/reference/rest/v1/applications/list) method.",
"format": "int64",
"type": "string"
},
"kind": {
"default": "admin#datatransfer#ApplicationResource",
"description": "Identifies the resource as a DataTransfer Application Resource.",
"type": "string"
},
"name": {
"description": "The application's name.",
"type": "string"
},
"transferParams": {
"description": "The list of all possible transfer parameters for this application. These parameters select which categories of the user's data to transfer.",
"items": {
"$ref": "ApplicationTransferParam"
},
"type": "array"
}
},
"type": "object"
},
"ApplicationDataTransfer": {
"description": "Template to map fields of ApplicationDataTransfer resource.",
"id": "ApplicationDataTransfer",
"properties": {
"applicationId": {
"description": "The application's ID.",
"format": "int64",
"type": "string"
},
"applicationTransferParams": {
"description": "The transfer parameters for the application. These parameters are used to select the data which will get transferred in context of this application. For more information about the specific values available for each application, see the [Transfer parameters](https://developers.google.com/workspace/admin/data-transfer/v1/parameters) reference.",
"items": {
"$ref": "ApplicationTransferParam"
},
"type": "array"
},
"applicationTransferStatus": {
"description": "Read-only. Current status of transfer for this application.",
"type": "string"
}
},
"type": "object"
},
"ApplicationTransferParam": {
"description": "Template for application transfer parameters.",
"id": "ApplicationTransferParam",
"properties": {
"key": {
"description": "The type of the transfer parameter, such as `PRIVACY_LEVEL`.",
"type": "string"
},
"value": {
"description": "The value of the transfer parameter, such as `PRIVATE` or `SHARED`.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"ApplicationsListResponse": {
"description": "Template for a collection of Applications.",
"id": "ApplicationsListResponse",
"properties": {
"applications": {
"description": "The list of applications that support data transfer and are also installed for the customer.",
"items": {
"$ref": "Application"
},
"type": "array"
},
"etag": {
"description": "ETag of the resource.",
"type": "string"
},
"kind": {
"default": "admin#datatransfer#applicationsList",
"description": "Identifies the resource as a collection of Applications.",
"type": "string"
},
"nextPageToken": {
"description": "Token to specify the next page in the list.",
"type": "string"
}
},
"type": "object"
},
"DataTransfer": {
"description": "A Transfer resource represents the transfer of the ownership of user data between users.",
"id": "DataTransfer",
"properties": {
"applicationDataTransfers": {
"description": "The list of per-application data transfer resources. It contains details of the applications associated with this transfer resource, and also specifies the applications for which data transfer has to be done at the time of the transfer resource creation.",
"items": {
"$ref": "ApplicationDataTransfer"
},
"type": "array"
},
"etag": {
"description": "ETag of the resource.",
"type": "string"
},
"id": {
"description": "Read-only. The transfer's ID.",
"type": "string"
},
"kind": {
"default": "admin#datatransfer#DataTransfer",
"description": "Identifies the resource as a DataTransfer request.",
"type": "string"
},
"newOwnerUserId": {
"description": "ID of the user to whom the data is being transferred.",
"type": "string"
},
"oldOwnerUserId": {
"description": "ID of the user whose data is being transferred.",
"type": "string"
},
"overallTransferStatusCode": {
"description": "Read-only. Overall transfer status.",
"type": "string"
},
"requestTime": {
"description": "Read-only. The time at which the data transfer was requested.",
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"DataTransfersListResponse": {
"description": "Template for a collection of DataTransfer resources.",
"id": "DataTransfersListResponse",
"properties": {
"dataTransfers": {
"description": "List of data transfer requests.",
"items": {
"$ref": "DataTransfer"
},
"type": "array"
},
"etag": {
"description": "ETag of the resource.",
"type": "string"
},
"kind": {
"default": "admin#datatransfer#dataTransfersList",
"description": "Identifies the resource as a collection of data transfer requests.",
"type": "string"
},
"nextPageToken": {
"description": "Token to specify the next page in the list.",
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Admin SDK API",
"version": "datatransfer_v1"
}

View File

@@ -0,0 +1,721 @@
{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/adsense": {
"description": "View and manage your AdSense data"
},
"https://www.googleapis.com/auth/adsense.readonly": {
"description": "View your AdSense data"
}
}
}
},
"basePath": "",
"baseUrl": "https://adsenseplatform.googleapis.com/",
"batchPath": "batch",
"canonicalName": "AdSense Platform",
"description": "",
"discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/adsense/platforms/",
"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": "adsenseplatform:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://adsenseplatform.mtls.googleapis.com/",
"name": "adsenseplatform",
"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": {
"accounts": {
"methods": {
"close": {
"description": "Closes a sub-account.",
"flatPath": "v1/platforms/{platformsId}/accounts/{accountsId}:close",
"httpMethod": "POST",
"id": "adsenseplatform.platforms.accounts.close",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Account to close. Format: platforms/{platform}/accounts/{account_id}",
"location": "path",
"pattern": "^platforms/[^/]+/accounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}:close",
"request": {
"$ref": "CloseAccountRequest"
},
"response": {
"$ref": "CloseAccountResponse"
},
"scopes": [
"https://www.googleapis.com/auth/adsense"
]
},
"create": {
"description": "Creates a sub-account.",
"flatPath": "v1/platforms/{platformsId}/accounts",
"httpMethod": "POST",
"id": "adsenseplatform.platforms.accounts.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. Platform to create an account for. Format: platforms/{platform}",
"location": "path",
"pattern": "^platforms/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+parent}/accounts",
"request": {
"$ref": "Account"
},
"response": {
"$ref": "Account"
},
"scopes": [
"https://www.googleapis.com/auth/adsense"
]
},
"get": {
"description": "Gets information about the selected sub-account.",
"flatPath": "v1/platforms/{platformsId}/accounts/{accountsId}",
"httpMethod": "GET",
"id": "adsenseplatform.platforms.accounts.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Account to get information about. Format: platforms/{platform}/accounts/{account_id}",
"location": "path",
"pattern": "^platforms/[^/]+/accounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Account"
},
"scopes": [
"https://www.googleapis.com/auth/adsense",
"https://www.googleapis.com/auth/adsense.readonly"
]
},
"list": {
"description": "Lists a partial view of sub-accounts for a specific parent account.",
"flatPath": "v1/platforms/{platformsId}/accounts",
"httpMethod": "GET",
"id": "adsenseplatform.platforms.accounts.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "Optional. The maximum number of accounts to include in the response, used for paging. If unspecified, at most 10000 accounts will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "Optional. A page token, received from a previous `ListAccounts` call. Provide this to retrieve the subsequent page.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. Platform who parents the accounts. Format: platforms/{platform}",
"location": "path",
"pattern": "^platforms/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+parent}/accounts",
"response": {
"$ref": "ListAccountsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/adsense",
"https://www.googleapis.com/auth/adsense.readonly"
]
},
"lookup": {
"description": "Looks up information about a sub-account for a specified creation_request_id. If no account exists for the given creation_request_id, returns 404.",
"flatPath": "v1/platforms/{platformsId}/accounts:lookup",
"httpMethod": "GET",
"id": "adsenseplatform.platforms.accounts.lookup",
"parameterOrder": [
"parent"
],
"parameters": {
"creationRequestId": {
"description": "Optional. The creation_request_id provided when calling createAccount.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. Platform who parents the account. Format: platforms/{platform}",
"location": "path",
"pattern": "^platforms/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+parent}/accounts:lookup",
"response": {
"$ref": "LookupAccountResponse"
},
"scopes": [
"https://www.googleapis.com/auth/adsense",
"https://www.googleapis.com/auth/adsense.readonly"
]
}
},
"resources": {
"events": {
"methods": {
"create": {
"description": "Creates an account event.",
"flatPath": "v1/platforms/{platformsId}/accounts/{accountsId}/events",
"httpMethod": "POST",
"id": "adsenseplatform.platforms.accounts.events.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. Account to log events about. Format: platforms/{platform}/accounts/{account}",
"location": "path",
"pattern": "^platforms/[^/]+/accounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+parent}/events",
"request": {
"$ref": "Event"
},
"response": {
"$ref": "Event"
},
"scopes": [
"https://www.googleapis.com/auth/adsense"
]
}
}
},
"sites": {
"methods": {
"create": {
"description": "Creates a site for a specified account.",
"flatPath": "v1/platforms/{platformsId}/accounts/{accountsId}/sites",
"httpMethod": "POST",
"id": "adsenseplatform.platforms.accounts.sites.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. Account to create site. Format: platforms/{platform}/accounts/{account_id}",
"location": "path",
"pattern": "^platforms/[^/]+/accounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+parent}/sites",
"request": {
"$ref": "Site"
},
"response": {
"$ref": "Site"
},
"scopes": [
"https://www.googleapis.com/auth/adsense"
]
},
"delete": {
"description": "Deletes a site from a specified account.",
"flatPath": "v1/platforms/{platformsId}/accounts/{accountsId}/sites/{sitesId}",
"httpMethod": "DELETE",
"id": "adsenseplatform.platforms.accounts.sites.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The name of the site to delete. Format: platforms/{platform}/accounts/{account}/sites/{site}",
"location": "path",
"pattern": "^platforms/[^/]+/accounts/[^/]+/sites/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Empty"
},
"scopes": [
"https://www.googleapis.com/auth/adsense"
]
},
"get": {
"description": "Gets a site from a specified sub-account.",
"flatPath": "v1/platforms/{platformsId}/accounts/{accountsId}/sites/{sitesId}",
"httpMethod": "GET",
"id": "adsenseplatform.platforms.accounts.sites.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The name of the site to retrieve. Format: platforms/{platform}/accounts/{account}/sites/{site}",
"location": "path",
"pattern": "^platforms/[^/]+/accounts/[^/]+/sites/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Site"
},
"scopes": [
"https://www.googleapis.com/auth/adsense",
"https://www.googleapis.com/auth/adsense.readonly"
]
},
"list": {
"description": "Lists sites for a specific account.",
"flatPath": "v1/platforms/{platformsId}/accounts/{accountsId}/sites",
"httpMethod": "GET",
"id": "adsenseplatform.platforms.accounts.sites.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "The maximum number of sites to include in the response, used for paging. If unspecified, at most 10000 sites will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "A page token, received from a previous `ListSites` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListSites` must match the call that provided the page token.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. The account which owns the sites. Format: platforms/{platform}/accounts/{account}",
"location": "path",
"pattern": "^platforms/[^/]+/accounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+parent}/sites",
"response": {
"$ref": "ListSitesResponse"
},
"scopes": [
"https://www.googleapis.com/auth/adsense",
"https://www.googleapis.com/auth/adsense.readonly"
]
},
"requestReview": {
"description": "Requests the review of a site. The site should be in REQUIRES_REVIEW or NEEDS_ATTENTION state. Note: Make sure you place an [ad tag](https://developers.google.com/adsense/platforms/direct/ad-tags) on your site before requesting a review.",
"flatPath": "v1/platforms/{platformsId}/accounts/{accountsId}/sites/{sitesId}:requestReview",
"httpMethod": "POST",
"id": "adsenseplatform.platforms.accounts.sites.requestReview",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The name of the site to submit for review. Format: platforms/{platform}/accounts/{account}/sites/{site}",
"location": "path",
"pattern": "^platforms/[^/]+/accounts/[^/]+/sites/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}:requestReview",
"response": {
"$ref": "RequestSiteReviewResponse"
},
"scopes": [
"https://www.googleapis.com/auth/adsense"
]
}
}
}
}
}
}
}
},
"revision": "20241204",
"rootUrl": "https://adsenseplatform.googleapis.com/",
"schemas": {
"Account": {
"description": "Representation of an Account.",
"id": "Account",
"properties": {
"createTime": {
"description": "Output only. Creation time of the account.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"creationRequestId": {
"description": "Required. An opaque token that uniquely identifies the account among all the platform's accounts. This string may contain at most 64 non-whitespace ASCII characters, but otherwise has no predefined structure. However, it is expected to be a platform-specific identifier for the user creating the account, so that only a single account can be created for any given user. This field must not contain any information that is recognizable as personally identifiable information. e.g. it should not be an email address or login name. Once an account has been created, a second attempt to create an account using the same creation_request_id will result in an ALREADY_EXISTS error.",
"type": "string"
},
"displayName": {
"description": "Display name of this account.",
"type": "string"
},
"name": {
"description": "Output only. Resource name of the account. Format: platforms/pub-[0-9]+/accounts/pub-[0-9]+",
"readOnly": true,
"type": "string"
},
"regionCode": {
"description": "Required. Input only. CLDR region code of the country/region of the address. Set this to country code of the child account if known, otherwise to your own country code.",
"type": "string"
},
"state": {
"description": "Output only. Approval state of the account.",
"enum": [
"STATE_UNSPECIFIED",
"UNCHECKED",
"APPROVED",
"DISAPPROVED"
],
"enumDescriptions": [
"Unspecified.",
"Unchecked.",
"The account is ready to serve ads.",
"The account has been blocked from serving ads."
],
"readOnly": true,
"type": "string"
},
"timeZone": {
"$ref": "TimeZone",
"description": "Required. The IANA TZ timezone code of this account. For more information, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. This field is used for reporting. It is recommended to set it to the same value for all child accounts."
}
},
"type": "object"
},
"Address": {
"description": "Address data.",
"id": "Address",
"properties": {
"address1": {
"description": "First line of address. Max length 64 bytes or 30 characters.",
"type": "string"
},
"address2": {
"description": "Second line of address. Max length 64 bytes or 30 characters.",
"type": "string"
},
"city": {
"description": "City. Max length 60 bytes or 30 characters.",
"type": "string"
},
"company": {
"description": "Name of the company. Max length 255 bytes or 34 characters.",
"type": "string"
},
"contact": {
"description": "Contact name of the company. Max length 128 bytes or 34 characters.",
"type": "string"
},
"fax": {
"description": "Fax number with international code (i.e. +441234567890).",
"type": "string"
},
"phone": {
"description": "Phone number with international code (i.e. +441234567890).",
"type": "string"
},
"regionCode": {
"description": "Country/Region code. The region is specified as a CLDR region code (e.g. \"US\", \"FR\").",
"type": "string"
},
"state": {
"description": "State. Max length 60 bytes or 30 characters.",
"type": "string"
},
"zip": {
"description": "Zip/post code. Max length 10 bytes or 10 characters.",
"type": "string"
}
},
"type": "object"
},
"CloseAccountRequest": {
"description": "Request definition for the account close rpc.",
"id": "CloseAccountRequest",
"properties": {},
"type": "object"
},
"CloseAccountResponse": {
"description": "Response definition for the account close rpc.",
"id": "CloseAccountResponse",
"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"
},
"Event": {
"description": "A platform sub-account event to record spam signals.",
"id": "Event",
"properties": {
"eventInfo": {
"$ref": "EventInfo",
"description": "Required. Information associated with the event."
},
"eventTime": {
"description": "Required. Event timestamp.",
"format": "google-datetime",
"type": "string"
},
"eventType": {
"description": "Required. Event type.",
"enum": [
"EVENT_TYPE_UNSPECIFIED",
"LOG_IN_VIA_PLATFORM",
"SIGN_UP_VIA_PLATFORM"
],
"enumDescriptions": [
"Do not use. You must set an event type explicitly.",
"Log in via platform.",
"Sign up via platform."
],
"type": "string"
}
},
"type": "object"
},
"EventInfo": {
"description": "Private information for partner recorded events (PII).",
"id": "EventInfo",
"properties": {
"billingAddress": {
"$ref": "Address",
"description": "The billing address of the publisher associated with this event, if available."
},
"email": {
"description": "Required. The email address that is associated with the publisher when performing the event.",
"type": "string"
}
},
"type": "object"
},
"ListAccountsResponse": {
"description": "Response definition for the list accounts rpc.",
"id": "ListAccountsResponse",
"properties": {
"accounts": {
"description": "The Accounts returned in the list response. Represented by a partial view of the Account resource, populating `name` and `creation_request_id`.",
"items": {
"$ref": "Account"
},
"type": "array"
},
"nextPageToken": {
"description": "Continuation token used to page through accounts. To retrieve the next page of the results, set the next request's \"page_token\" value to this.",
"type": "string"
}
},
"type": "object"
},
"ListSitesResponse": {
"description": "Response definition for the site list rpc.",
"id": "ListSitesResponse",
"properties": {
"nextPageToken": {
"description": "Continuation token used to page through sites. To retrieve the next page of the results, set the next request's \"page_token\" value to this.",
"type": "string"
},
"sites": {
"description": "The sites returned in this list response.",
"items": {
"$ref": "Site"
},
"type": "array"
}
},
"type": "object"
},
"LookupAccountResponse": {
"description": "Response definition for the lookup account rpc.",
"id": "LookupAccountResponse",
"properties": {
"name": {
"description": "The name of the Account Format: platforms/{platform}/accounts/{account_id}",
"type": "string"
}
},
"type": "object"
},
"RequestSiteReviewResponse": {
"description": "Response definition for the site request review rpc.",
"id": "RequestSiteReviewResponse",
"properties": {},
"type": "object"
},
"Site": {
"description": "Representation of a Site.",
"id": "Site",
"properties": {
"domain": {
"description": "Domain/sub-domain of the site. Must be a valid domain complying with [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt) and formatted as punycode [RFC 3492](https://www.ietf.org/rfc/rfc3492.txt) in case the domain contains unicode characters.",
"type": "string"
},
"name": {
"description": "Output only. Resource name of a site. Format: platforms/{platform}/accounts/{account}/sites/{site}",
"readOnly": true,
"type": "string"
},
"state": {
"description": "Output only. State of a site.",
"enum": [
"STATE_UNSPECIFIED",
"REQUIRES_REVIEW",
"GETTING_READY",
"READY",
"NEEDS_ATTENTION"
],
"enumDescriptions": [
"State unspecified.",
"Either: - The site hasn't been checked yet. - The site is inactive and needs another review before it can show ads again. Learn how to [request a review for an inactive site](https://support.google.com/adsense/answer/9393996).",
"Google is running some checks on the site. This usually takes a few days, but in some cases it can take two to four weeks.",
"The site is ready to show ads. Learn how to [set up ads on the site](https://support.google.com/adsense/answer/7037624).",
"Publisher needs to fix some issues before the site is ready to show ads. Learn what to do [if a new site isn't ready](https://support.google.com/adsense/answer/9061852)."
],
"readOnly": true,
"type": "string"
}
},
"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": "AdSense Platform API",
"version": "v1",
"version_module": true
}

View File

@@ -0,0 +1,656 @@
{
"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://advisorynotifications.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Advisorynotifications",
"description": "An API for accessing Advisory Notifications in Google Cloud",
"discoveryVersion": "v1",
"documentationLink": "https://cloud.google.com/advisory-notifications",
"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": "advisorynotifications:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://advisorynotifications.mtls.googleapis.com/",
"name": "advisorynotifications",
"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": {
"getSettings": {
"description": "Get notification settings.",
"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/settings",
"httpMethod": "GET",
"id": "advisorynotifications.organizations.locations.getSettings",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The resource name of the settings to retrieve. Format: organizations/{organization}/locations/{location}/settings or projects/{projects}/locations/{location}/settings.",
"location": "path",
"pattern": "^organizations/[^/]+/locations/[^/]+/settings$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "GoogleCloudAdvisorynotificationsV1Settings"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"updateSettings": {
"description": "Update notification settings.",
"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/settings",
"httpMethod": "PATCH",
"id": "advisorynotifications.organizations.locations.updateSettings",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Identifier. The resource name of the settings to retrieve. Format: organizations/{organization}/locations/{location}/settings or projects/{projects}/locations/{location}/settings.",
"location": "path",
"pattern": "^organizations/[^/]+/locations/[^/]+/settings$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"request": {
"$ref": "GoogleCloudAdvisorynotificationsV1Settings"
},
"response": {
"$ref": "GoogleCloudAdvisorynotificationsV1Settings"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
},
"resources": {
"notifications": {
"methods": {
"get": {
"description": "Gets a notification.",
"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/notifications/{notificationsId}",
"httpMethod": "GET",
"id": "advisorynotifications.organizations.locations.notifications.get",
"parameterOrder": [
"name"
],
"parameters": {
"languageCode": {
"description": "ISO code for requested localization language. If unset, will be interpereted as \"en\". If the requested language is valid, but not supported for this notification, English will be returned with an \"Not applicable\" LocalizationState. If the ISO code is invalid (i.e. not a real language), this RPC will throw an error.",
"location": "query",
"type": "string"
},
"name": {
"description": "Required. A name of the notification to retrieve. Format: organizations/{organization}/locations/{location}/notifications/{notification} or projects/{projects}/locations/{location}/notifications/{notification}.",
"location": "path",
"pattern": "^organizations/[^/]+/locations/[^/]+/notifications/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "GoogleCloudAdvisorynotificationsV1Notification"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"list": {
"description": "Lists notifications under a given parent.",
"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/notifications",
"httpMethod": "GET",
"id": "advisorynotifications.organizations.locations.notifications.list",
"parameterOrder": [
"parent"
],
"parameters": {
"languageCode": {
"description": "ISO code for requested localization language. If unset, will be interpereted as \"en\". If the requested language is valid, but not supported for this notification, English will be returned with an \"Not applicable\" LocalizationState. If the ISO code is invalid (i.e. not a real language), this RPC will throw an error.",
"location": "query",
"type": "string"
},
"pageSize": {
"description": "The maximum number of notifications to return. The service may return fewer than this value. If unspecified or equal to 0, at most 50 notifications will be returned. The maximum value is 50; values above 50 will be coerced to 50.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "A page token returned from a previous request. When paginating, all other parameters provided in the request must match the call that returned the page token.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. The parent, which owns this collection of notifications. Must be of the form \"organizations/{organization}/locations/{location}\" or \"projects/{project}/locations/{location}\".",
"location": "path",
"pattern": "^organizations/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
},
"view": {
"description": "Specifies which parts of the notification resource should be returned in the response.",
"enum": [
"NOTIFICATION_VIEW_UNSPECIFIED",
"BASIC",
"FULL"
],
"enumDescriptions": [
"Not specified, equivalent to BASIC.",
"Server responses only include title, creation time and Notification ID. Note: for internal use responses also include the last update time, the latest message text and whether notification has attachments.",
"Include everything."
],
"location": "query",
"type": "string"
}
},
"path": "v1/{+parent}/notifications",
"response": {
"$ref": "GoogleCloudAdvisorynotificationsV1ListNotificationsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
}
}
}
}
},
"projects": {
"resources": {
"locations": {
"methods": {
"getSettings": {
"description": "Get notification settings.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/settings",
"httpMethod": "GET",
"id": "advisorynotifications.projects.locations.getSettings",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The resource name of the settings to retrieve. Format: organizations/{organization}/locations/{location}/settings or projects/{projects}/locations/{location}/settings.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/settings$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "GoogleCloudAdvisorynotificationsV1Settings"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"updateSettings": {
"description": "Update notification settings.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/settings",
"httpMethod": "PATCH",
"id": "advisorynotifications.projects.locations.updateSettings",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Identifier. The resource name of the settings to retrieve. Format: organizations/{organization}/locations/{location}/settings or projects/{projects}/locations/{location}/settings.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/settings$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"request": {
"$ref": "GoogleCloudAdvisorynotificationsV1Settings"
},
"response": {
"$ref": "GoogleCloudAdvisorynotificationsV1Settings"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
},
"resources": {
"notifications": {
"methods": {
"get": {
"description": "Gets a notification.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notifications/{notificationsId}",
"httpMethod": "GET",
"id": "advisorynotifications.projects.locations.notifications.get",
"parameterOrder": [
"name"
],
"parameters": {
"languageCode": {
"description": "ISO code for requested localization language. If unset, will be interpereted as \"en\". If the requested language is valid, but not supported for this notification, English will be returned with an \"Not applicable\" LocalizationState. If the ISO code is invalid (i.e. not a real language), this RPC will throw an error.",
"location": "query",
"type": "string"
},
"name": {
"description": "Required. A name of the notification to retrieve. Format: organizations/{organization}/locations/{location}/notifications/{notification} or projects/{projects}/locations/{location}/notifications/{notification}.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/notifications/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "GoogleCloudAdvisorynotificationsV1Notification"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"list": {
"description": "Lists notifications under a given parent.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notifications",
"httpMethod": "GET",
"id": "advisorynotifications.projects.locations.notifications.list",
"parameterOrder": [
"parent"
],
"parameters": {
"languageCode": {
"description": "ISO code for requested localization language. If unset, will be interpereted as \"en\". If the requested language is valid, but not supported for this notification, English will be returned with an \"Not applicable\" LocalizationState. If the ISO code is invalid (i.e. not a real language), this RPC will throw an error.",
"location": "query",
"type": "string"
},
"pageSize": {
"description": "The maximum number of notifications to return. The service may return fewer than this value. If unspecified or equal to 0, at most 50 notifications will be returned. The maximum value is 50; values above 50 will be coerced to 50.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "A page token returned from a previous request. When paginating, all other parameters provided in the request must match the call that returned the page token.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. The parent, which owns this collection of notifications. Must be of the form \"organizations/{organization}/locations/{location}\" or \"projects/{project}/locations/{location}\".",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
},
"view": {
"description": "Specifies which parts of the notification resource should be returned in the response.",
"enum": [
"NOTIFICATION_VIEW_UNSPECIFIED",
"BASIC",
"FULL"
],
"enumDescriptions": [
"Not specified, equivalent to BASIC.",
"Server responses only include title, creation time and Notification ID. Note: for internal use responses also include the last update time, the latest message text and whether notification has attachments.",
"Include everything."
],
"location": "query",
"type": "string"
}
},
"path": "v1/{+parent}/notifications",
"response": {
"$ref": "GoogleCloudAdvisorynotificationsV1ListNotificationsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
}
}
}
}
}
},
"revision": "20240707",
"rootUrl": "https://advisorynotifications.googleapis.com/",
"schemas": {
"GoogleCloudAdvisorynotificationsV1Attachment": {
"description": "Attachment with specific information about the issue.",
"id": "GoogleCloudAdvisorynotificationsV1Attachment",
"properties": {
"csv": {
"$ref": "GoogleCloudAdvisorynotificationsV1Csv",
"description": "A CSV file attachment. Max size is 10 MB."
},
"displayName": {
"description": "The title of the attachment.",
"type": "string"
}
},
"type": "object"
},
"GoogleCloudAdvisorynotificationsV1Csv": {
"description": "A representation of a CSV file attachment, as a list of column headers and a list of data rows.",
"id": "GoogleCloudAdvisorynotificationsV1Csv",
"properties": {
"dataRows": {
"description": "The list of data rows in a CSV file, as string arrays rather than as a single comma-separated string.",
"items": {
"$ref": "GoogleCloudAdvisorynotificationsV1CsvCsvRow"
},
"type": "array"
},
"headers": {
"description": "The list of headers for data columns in a CSV file.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"GoogleCloudAdvisorynotificationsV1CsvCsvRow": {
"description": "A representation of a single data row in a CSV file.",
"id": "GoogleCloudAdvisorynotificationsV1CsvCsvRow",
"properties": {
"entries": {
"description": "The data entries in a CSV file row, as a string array rather than a single comma-separated string.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"GoogleCloudAdvisorynotificationsV1ListNotificationsResponse": {
"description": "Response of ListNotifications endpoint.",
"id": "GoogleCloudAdvisorynotificationsV1ListNotificationsResponse",
"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"
},
"notifications": {
"description": "List of notifications under a given parent.",
"items": {
"$ref": "GoogleCloudAdvisorynotificationsV1Notification"
},
"type": "array"
},
"totalSize": {
"description": "Estimation of a total number of notifications.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"GoogleCloudAdvisorynotificationsV1Message": {
"description": "A message which contains notification details.",
"id": "GoogleCloudAdvisorynotificationsV1Message",
"properties": {
"attachments": {
"description": "The attachments to download.",
"items": {
"$ref": "GoogleCloudAdvisorynotificationsV1Attachment"
},
"type": "array"
},
"body": {
"$ref": "GoogleCloudAdvisorynotificationsV1MessageBody",
"description": "The message content."
},
"createTime": {
"description": "The Message creation timestamp.",
"format": "google-datetime",
"type": "string"
},
"localizationTime": {
"description": "Time when Message was localized",
"format": "google-datetime",
"type": "string"
}
},
"type": "object"
},
"GoogleCloudAdvisorynotificationsV1MessageBody": {
"description": "A message body containing text.",
"id": "GoogleCloudAdvisorynotificationsV1MessageBody",
"properties": {
"text": {
"$ref": "GoogleCloudAdvisorynotificationsV1Text",
"description": "The text content of the message body."
}
},
"type": "object"
},
"GoogleCloudAdvisorynotificationsV1Notification": {
"description": "A notification object for notifying customers about security and privacy issues.",
"id": "GoogleCloudAdvisorynotificationsV1Notification",
"properties": {
"createTime": {
"description": "Output only. Time the notification was created.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"messages": {
"description": "A list of messages in the notification.",
"items": {
"$ref": "GoogleCloudAdvisorynotificationsV1Message"
},
"type": "array"
},
"name": {
"description": "The resource name of the notification. Format: organizations/{organization}/locations/{location}/notifications/{notification} or projects/{project}/locations/{location}/notifications/{notification}.",
"type": "string"
},
"notificationType": {
"description": "Type of notification",
"enum": [
"NOTIFICATION_TYPE_UNSPECIFIED",
"NOTIFICATION_TYPE_SECURITY_PRIVACY_ADVISORY",
"NOTIFICATION_TYPE_SENSITIVE_ACTIONS",
"NOTIFICATION_TYPE_SECURITY_MSA",
"NOTIFICATION_TYPE_THREAT_HORIZONS"
],
"enumDescriptions": [
"Default type",
"Security and privacy advisory notifications",
"Sensitive action notifications",
"General security MSA",
"Threat horizons MSA"
],
"type": "string"
},
"subject": {
"$ref": "GoogleCloudAdvisorynotificationsV1Subject",
"description": "The subject line of the notification."
}
},
"type": "object"
},
"GoogleCloudAdvisorynotificationsV1NotificationSettings": {
"description": "Settings for each NotificationType.",
"id": "GoogleCloudAdvisorynotificationsV1NotificationSettings",
"properties": {
"enabled": {
"description": "Whether the associated NotificationType is enabled.",
"type": "boolean"
}
},
"type": "object"
},
"GoogleCloudAdvisorynotificationsV1Settings": {
"description": "Settings for Advisory Notifications.",
"id": "GoogleCloudAdvisorynotificationsV1Settings",
"properties": {
"etag": {
"description": "Required. Fingerprint for optimistic concurrency returned in Get requests. Must be provided for Update requests. If the value provided does not match the value known to the server, ABORTED will be thrown, and the client should retry the read-modify-write cycle.",
"type": "string"
},
"name": {
"description": "Identifier. The resource name of the settings to retrieve. Format: organizations/{organization}/locations/{location}/settings or projects/{projects}/locations/{location}/settings.",
"type": "string"
},
"notificationSettings": {
"additionalProperties": {
"$ref": "GoogleCloudAdvisorynotificationsV1NotificationSettings"
},
"description": "Required. Map of each notification type and its settings to get/set all settings at once. The server will validate the value for each notification type.",
"type": "object"
}
},
"type": "object"
},
"GoogleCloudAdvisorynotificationsV1Subject": {
"description": "A subject line of a notification.",
"id": "GoogleCloudAdvisorynotificationsV1Subject",
"properties": {
"text": {
"$ref": "GoogleCloudAdvisorynotificationsV1Text",
"description": "The text content."
}
},
"type": "object"
},
"GoogleCloudAdvisorynotificationsV1Text": {
"description": "A text object containing the English text and its localized copies.",
"id": "GoogleCloudAdvisorynotificationsV1Text",
"properties": {
"enText": {
"description": "The English copy.",
"type": "string"
},
"localizationState": {
"description": "Status of the localization.",
"enum": [
"LOCALIZATION_STATE_UNSPECIFIED",
"LOCALIZATION_STATE_NOT_APPLICABLE",
"LOCALIZATION_STATE_PENDING",
"LOCALIZATION_STATE_COMPLETED"
],
"enumDescriptions": [
"Not used.",
"Localization is not applicable for requested language. This can happen when: - The requested language was not supported by Advisory Notifications at the time of localization (including notifications created before the localization feature was launched). - The requested language is English, so only the English text is returned.",
"Localization for requested language is in progress, and not ready yet.",
"Localization for requested language is completed."
],
"type": "string"
},
"localizedText": {
"description": "The requested localized copy (if applicable).",
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Advisory Notifications API",
"version": "v1",
"version_module": true
}

View File

@@ -0,0 +1,875 @@
{
"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://airquality.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Air Quality",
"description": "The Air Quality API.",
"discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/maps/documentation/air-quality",
"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": "airquality:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://airquality.mtls.googleapis.com/",
"name": "airquality",
"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": {
"currentConditions": {
"methods": {
"lookup": {
"description": "The Current Conditions endpoint provides hourly air quality information in more than 100 countries, up to a 500 x 500 meters resolution. Includes over 70 local indexes and global air quality index and categories.",
"flatPath": "v1/currentConditions:lookup",
"httpMethod": "POST",
"id": "airquality.currentConditions.lookup",
"parameterOrder": [],
"parameters": {},
"path": "v1/currentConditions:lookup",
"request": {
"$ref": "LookupCurrentConditionsRequest"
},
"response": {
"$ref": "LookupCurrentConditionsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
},
"forecast": {
"methods": {
"lookup": {
"description": "Returns air quality forecast for a specific location for a given time range.",
"flatPath": "v1/forecast:lookup",
"httpMethod": "POST",
"id": "airquality.forecast.lookup",
"parameterOrder": [],
"parameters": {},
"path": "v1/forecast:lookup",
"request": {
"$ref": "LookupForecastRequest"
},
"response": {
"$ref": "LookupForecastResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
},
"history": {
"methods": {
"lookup": {
"description": "Returns air quality history for a specific location for a given time range.",
"flatPath": "v1/history:lookup",
"httpMethod": "POST",
"id": "airquality.history.lookup",
"parameterOrder": [],
"parameters": {},
"path": "v1/history:lookup",
"request": {
"$ref": "LookupHistoryRequest"
},
"response": {
"$ref": "LookupHistoryResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
},
"mapTypes": {
"resources": {
"heatmapTiles": {
"methods": {
"lookupHeatmapTile": {
"description": "Returns a bytes array containing the data of the tile PNG image.",
"flatPath": "v1/mapTypes/{mapType}/heatmapTiles/{zoom}/{x}/{y}",
"httpMethod": "GET",
"id": "airquality.mapTypes.heatmapTiles.lookupHeatmapTile",
"parameterOrder": [
"mapType",
"zoom",
"x",
"y"
],
"parameters": {
"mapType": {
"description": "Required. The type of the air quality heatmap. Defines the pollutant that the map will graphically represent. Allowed values: - UAQI_RED_GREEN (UAQI, red-green palette) - UAQI_INDIGO_PERSIAN (UAQI, indigo-persian palette) - PM25_INDIGO_PERSIAN - GBR_DEFRA - DEU_UBA - CAN_EC - FRA_ATMO - US_AQI",
"enum": [
"MAP_TYPE_UNSPECIFIED",
"UAQI_RED_GREEN",
"UAQI_INDIGO_PERSIAN",
"PM25_INDIGO_PERSIAN",
"GBR_DEFRA",
"DEU_UBA",
"CAN_EC",
"FRA_ATMO",
"US_AQI"
],
"enumDescriptions": [
"The default value. The server ignores it if it is passed as a parameter.",
"Universal Air Quality Index red-green palette.",
"Universal Air Quality Index indigo-persian palette.",
"PM2.5 index indigo-persian palette.",
"Daily Air Quality Index (UK) color palette.",
"German Local Air Quality Index color palette.",
"Canadian Air Quality Health Index color palette.",
"France Air Quality Index color palette.",
"US Air Quality Index color palette."
],
"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": "20240901",
"rootUrl": "https://airquality.googleapis.com/",
"schemas": {
"AdditionalInfo": {
"description": "The emission sources and health effects of a given pollutant.",
"id": "AdditionalInfo",
"properties": {
"effects": {
"description": "Text representing the pollutant's main health effects.",
"type": "string"
},
"sources": {
"description": "Text representing the pollutant's main emission sources.",
"type": "string"
}
},
"type": "object"
},
"AirQualityIndex": {
"description": "The basic object for representing different air quality metrics. When brought together, these metrics provide a snapshot about the current air quality conditions. There are multiple indexes in the world serving different purposes and groups interested in measuring different aspects of air quality.",
"id": "AirQualityIndex",
"properties": {
"aqi": {
"description": " The index's numeric score. Examples: 10, 100. The value is not normalized and should only be interpreted in the context of its related air-quality index. For non-numeric indexes, this field will not be returned. Note: This field should be used for calculations, graph display, etc. For displaying the index score, you should use the AQI display field.",
"format": "int32",
"type": "integer"
},
"aqiDisplay": {
"description": "Textual representation of the index numeric score, that may include prefix or suffix symbols, which usually represents the worst index score. Example: >100 or 10+. Note: This field should be used when you want to display the index score. For non-numeric indexes, this field is empty.",
"type": "string"
},
"category": {
"description": "Textual classification of the index numeric score interpretation. For example: \"Excellent air quality\".",
"type": "string"
},
"code": {
"description": "The index's code. This field represents the index for programming purposes by using snake case instead of spaces. Examples: \"uaqi\", \"fra_atmo\".",
"type": "string"
},
"color": {
"$ref": "Color",
"description": "The color used to represent the AQI numeric score."
},
"displayName": {
"description": "A human readable representation of the index name. Example: \"AQI (US)\"",
"type": "string"
},
"dominantPollutant": {
"description": "The chemical symbol of the dominant pollutant. For example: \"CO\".",
"type": "string"
}
},
"type": "object"
},
"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"
},
"Concentration": {
"description": "The concentration of a given pollutant in the air.",
"id": "Concentration",
"properties": {
"units": {
"description": "Units for measuring this pollutant concentration.",
"enum": [
"UNIT_UNSPECIFIED",
"PARTS_PER_BILLION",
"MICROGRAMS_PER_CUBIC_METER"
],
"enumDescriptions": [
"Unspecified concentration unit.",
"The ppb (parts per billion) concentration unit.",
"The \"\u00b5g/m^3\" (micrograms per cubic meter) concentration unit."
],
"type": "string"
},
"value": {
"description": "Value of the pollutant concentration.",
"format": "float",
"type": "number"
}
},
"type": "object"
},
"CustomLocalAqi": {
"description": "Expresses a 'country/region to AQI' relationship. Pairs a country/region with a desired AQI so that air quality data that is required for that country/region will be displayed according to the chosen AQI.",
"id": "CustomLocalAqi",
"properties": {
"aqi": {
"description": "The AQI to associate the country/region with. Value should be a [valid index](/maps/documentation/air-quality/laqis) code.",
"type": "string"
},
"regionCode": {
"description": "The country/region requiring the custom AQI. Value should be provided using [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code.",
"type": "string"
}
},
"type": "object"
},
"HealthRecommendations": {
"description": "Health recommendations for different population groups in a free text format. The recommendations are derived from their associated air quality conditions.",
"id": "HealthRecommendations",
"properties": {
"athletes": {
"description": "Sports and other strenuous outdoor activities.",
"type": "string"
},
"children": {
"description": "Younger populations including children, toddlers, and babies.",
"type": "string"
},
"elderly": {
"description": "Retirees and people older than the general population.",
"type": "string"
},
"generalPopulation": {
"description": "No specific sensitivities.",
"type": "string"
},
"heartDiseasePopulation": {
"description": "Heart and circulatory system diseases.",
"type": "string"
},
"lungDiseasePopulation": {
"description": "Respiratory related problems and asthma suffers.",
"type": "string"
},
"pregnantWomen": {
"description": "Women at all stages of pregnancy.",
"type": "string"
}
},
"type": "object"
},
"HourInfo": {
"description": "Contains the air quality information for each hour in the requested range. For example, if the request is for 48 hours of history there will be 48 elements of hourly info.",
"id": "HourInfo",
"properties": {
"dateTime": {
"description": "A rounded down timestamp indicating the time the data refers to in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. For example: \"2014-10-02T15:00:00Z\".",
"format": "google-datetime",
"type": "string"
},
"healthRecommendations": {
"$ref": "HealthRecommendations",
"description": "Health advice and recommended actions related to the reported air quality conditions. Recommendations are tailored differently for populations at risk, groups with greater sensitivities to pollutants, and the general population."
},
"indexes": {
"description": "Based on the request parameters, this list will include (up to) two air quality indexes: - Universal AQI. Will be returned if the universalAqi boolean is set to true. - Local AQI. Will be returned if the LOCAL_AQI extra computation is specified.",
"items": {
"$ref": "AirQualityIndex"
},
"type": "array"
},
"pollutants": {
"description": "A list of pollutants affecting the location specified in the request. Note: This field will be returned only for requests that specified one or more of the following extra computations: POLLUTANT_ADDITIONAL_INFO, DOMINANT_POLLUTANT_CONCENTRATION, POLLUTANT_CONCENTRATION.",
"items": {
"$ref": "Pollutant"
},
"type": "array"
}
},
"type": "object"
},
"HourlyForecast": {
"description": "Contains the air quality information for each hour in the requested range. For example, if the request is for 48 hours of forecast there will be 48 elements of hourly forecasts.",
"id": "HourlyForecast",
"properties": {
"dateTime": {
"description": "A rounded down timestamp indicating the time (hour) the data refers to in RFC3339 UTC \"Zulu\" format. For example: \"2014-10-02T15:00:00Z\".",
"format": "google-datetime",
"type": "string"
},
"healthRecommendations": {
"$ref": "HealthRecommendations",
"description": "Health advice and recommended actions related to the reported air quality conditions. Recommendations are tailored differently for populations at risk, groups with greater sensitivities to pollutants, and the general population."
},
"indexes": {
"description": "Based on the request parameters, this list will include (up to) two air quality indexes: - Universal AQI. Will be returned if the `universal_aqi` boolean is set to true. - Local AQI. Will be returned if the LOCAL_AQI extra computation is specified.",
"items": {
"$ref": "AirQualityIndex"
},
"type": "array"
},
"pollutants": {
"description": "A list of pollutants affecting the location specified in the request. Note: This field will be returned only for requests that specified one or more of the following extra computations: POLLUTANT_ADDITIONAL_INFO, DOMINANT_POLLUTANT_CONCENTRATION, POLLUTANT_CONCENTRATION.",
"items": {
"$ref": "Pollutant"
},
"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"
},
"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"
},
"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"
},
"LookupCurrentConditionsRequest": {
"description": "The request definition of the air quality current conditions.",
"id": "LookupCurrentConditionsRequest",
"properties": {
"customLocalAqis": {
"description": "Optional. Expresses a 'country/region to AQI' relationship. Pairs a country/region with a desired AQI so that air quality data that is required for that country/region will be displayed according to the chosen AQI. This parameter can be used to specify a non-default AQI for a given country, for example, to get the US EPA index for Canada rather than the default index for Canada.",
"items": {
"$ref": "CustomLocalAqi"
},
"type": "array"
},
"extraComputations": {
"description": "Optional. Additional features that can be optionally enabled. Specifying extra computations will result in the relevant elements and fields to be returned in the response.",
"items": {
"enum": [
"EXTRA_COMPUTATION_UNSPECIFIED",
"LOCAL_AQI",
"HEALTH_RECOMMENDATIONS",
"POLLUTANT_ADDITIONAL_INFO",
"DOMINANT_POLLUTANT_CONCENTRATION",
"POLLUTANT_CONCENTRATION"
],
"enumDescriptions": [
"The default value. The server ignores it if it is passed as a parameter.",
"Determines whether to include the local (national) AQI of the requested location (country) in the response. If specified, the response will contain an 'air_quality_index' data structure with all the relevant data on the location's local AQI.",
"Determines whether the response will include the health advice and recommended actions for the current AQI conditions. The recommendations are tailored for the general population and six populations at risk groups with greater sensitivities to pollutants than the general population. If specified, the `health_recommendations` field will be populated in the response when the relevant data is available.",
"Determines whether to include in the response the additional information of each pollutant. If specified, each air quality index object contained in the 'indexes' field response will include an `additional_info` field when the data is available.",
"Determines whether the response would include the concentrations of the dominant pollutants measured according to global and/or local indexes. If the request specified both the global AQI and the local AQI, there may be up to two pollutant codes returned. If specified, the dominant pollutant object contained in the 'pollutants' list will include a `concentration` field when the data is available.",
"Determines whether the response would include the concentrations of all pollutants with available measurements according to global and/or local indexes. If specified, each pollutant object contained in the 'pollutants' field in the response will include a `concentration` field when the data is available."
],
"type": "string"
},
"type": "array"
},
"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 standard. Default value is en.",
"type": "string"
},
"location": {
"$ref": "LatLng",
"description": "Required. The longitude and latitude from which the API looks for air quality current conditions data."
},
"uaqiColorPalette": {
"description": "Optional. Determines the color palette used for data provided by the 'Universal Air Quality Index' (UAQI). This color palette is relevant just for UAQI, other AQIs have a predetermined color palette that can't be controlled.",
"enum": [
"COLOR_PALETTE_UNSPECIFIED",
"RED_GREEN",
"INDIGO_PERSIAN_DARK",
"INDIGO_PERSIAN_LIGHT"
],
"enumDescriptions": [
"The default value. Ignored if passed as a parameter.",
"Determines whether to use a red/green palette.",
"Determines whether to use a indigo/persian palette (dark theme).",
"Determines whether to use a indigo/persian palette (light theme)."
],
"type": "string"
},
"universalAqi": {
"description": "Optional. If set to true, the Universal AQI will be included in the 'indexes' field of the response. Default value is true.",
"type": "boolean"
}
},
"type": "object"
},
"LookupCurrentConditionsResponse": {
"id": "LookupCurrentConditionsResponse",
"properties": {
"dateTime": {
"description": "A rounded down timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. For example: \"2014-10-02T15:00:00Z\".",
"format": "google-datetime",
"type": "string"
},
"healthRecommendations": {
"$ref": "HealthRecommendations",
"description": "Health advice and recommended actions related to the reported air quality conditions. Recommendations are tailored differently for populations at risk, groups with greater sensitivities to pollutants, and the general population."
},
"indexes": {
"description": "Based on the request parameters, this list will include (up to) two air quality indexes: - Universal AQI. Will be returned if the universalAqi boolean is set to true. - Local AQI. Will be returned if the LOCAL_AQI extra computation is specified.",
"items": {
"$ref": "AirQualityIndex"
},
"type": "array"
},
"pollutants": {
"description": "A list of pollutants affecting the location specified in the request. Note: This field will be returned only for requests that specified one or more of the following extra computations: POLLUTANT_ADDITIONAL_INFO, DOMINANT_POLLUTANT_CONCENTRATION, POLLUTANT_CONCENTRATION.",
"items": {
"$ref": "Pollutant"
},
"type": "array"
},
"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"
},
"LookupForecastRequest": {
"description": "The request object of the air quality forecast API.",
"id": "LookupForecastRequest",
"properties": {
"customLocalAqis": {
"description": "Optional. Expresses a 'country/region to AQI' relationship. Pairs a country/region with a desired AQI so that air quality data that is required for that country/region will be displayed according to the chosen AQI. This parameter can be used to specify a non-default AQI for a given country, for example, to get the US EPA index for Canada rather than the default index for Canada.",
"items": {
"$ref": "CustomLocalAqi"
},
"type": "array"
},
"dateTime": {
"description": "A timestamp for which to return the data for a specific point in time. The timestamp is rounded to the previous exact hour. Note: this will return hourly data for the requested timestamp only (i.e. a single hourly info element). For example, a request sent where the date_time parameter is set to 2023-01-03T11:05:49Z will be rounded down to 2023-01-03T11:00:00Z.",
"format": "google-datetime",
"type": "string"
},
"extraComputations": {
"description": "Optional. Additional features that can be optionally enabled. Specifying extra computations will result in the relevant elements and fields to be returned in the response.",
"items": {
"enum": [
"EXTRA_COMPUTATION_UNSPECIFIED",
"LOCAL_AQI",
"HEALTH_RECOMMENDATIONS",
"POLLUTANT_ADDITIONAL_INFO",
"DOMINANT_POLLUTANT_CONCENTRATION",
"POLLUTANT_CONCENTRATION"
],
"enumDescriptions": [
"The default value. The server ignores it if it is passed as a parameter.",
"Determines whether to include the local (national) AQI of the requested location (country) in the response. If specified, the response will contain an 'air_quality_index' data structure with all the relevant data on the location's local AQI.",
"Determines whether the response will include the health advice and recommended actions for the current AQI conditions. The recommendations are tailored for the general population and six populations at risk groups with greater sensitivities to pollutants than the general population. If specified, the `health_recommendations` field will be populated in the response when the relevant data is available.",
"Determines whether to include in the response the additional information of each pollutant. If specified, each air quality index object contained in the 'indexes' field response will include an `additional_info` field when the data is available.",
"Determines whether the response would include the concentrations of the dominant pollutants measured according to global and/or local indexes. If the request specified both the global AQI and the local AQI, there may be up to two pollutant codes returned. If specified, the dominant pollutant object contained in the 'pollutants' list will include a `concentration` field when the data is available.",
"Determines whether the response would include the concentrations of all pollutants with available measurements according to global and/or local indexes. If specified, each pollutant object contained in the 'pollutants' field in the response will include a `concentration` field when the data is available."
],
"type": "string"
},
"type": "array"
},
"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 standard (default = 'en').",
"type": "string"
},
"location": {
"$ref": "LatLng",
"description": "Required. The latitude and longitude for which the API looks for air quality data."
},
"pageSize": {
"description": "Optional. The maximum number of hourly info records to return per page (default = 24).",
"format": "int32",
"type": "integer"
},
"pageToken": {
"description": "Optional. A page token received from a previous forecast call. It is used to retrieve the subsequent page.",
"type": "string"
},
"period": {
"$ref": "Interval",
"description": "Indicates the start and end period for which to get the forecast data. The timestamp is rounded to the previous exact hour."
},
"uaqiColorPalette": {
"description": "Optional. Determines the color palette used for data provided by the 'Universal Air Quality Index' (UAQI). This color palette is relevant just for UAQI, other AQIs have a predetermined color palette that can't be controlled.",
"enum": [
"COLOR_PALETTE_UNSPECIFIED",
"RED_GREEN",
"INDIGO_PERSIAN_DARK",
"INDIGO_PERSIAN_LIGHT"
],
"enumDescriptions": [
"The default value. Ignored if passed as a parameter.",
"Determines whether to use a red/green palette.",
"Determines whether to use a indigo/persian palette (dark theme).",
"Determines whether to use a indigo/persian palette (light theme)."
],
"type": "string"
},
"universalAqi": {
"description": "Optional. If set to true, the Universal AQI will be included in the 'indexes' field of the response (default = true).",
"type": "boolean"
}
},
"type": "object"
},
"LookupForecastResponse": {
"description": "The response object of the air quality forecast API.",
"id": "LookupForecastResponse",
"properties": {
"hourlyForecasts": {
"description": "Optional. Contains the air quality information for each hour in the requested range. For example, if the request is for 48 hours of forecast there will be 48 elements of hourly forecasts.",
"items": {
"$ref": "HourlyForecast"
},
"type": "array"
},
"nextPageToken": {
"description": "Optional. The token to retrieve the next page.",
"type": "string"
},
"regionCode": {
"description": "Optional. 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"
},
"LookupHistoryRequest": {
"description": "The request object of the air quality history API.",
"id": "LookupHistoryRequest",
"properties": {
"customLocalAqis": {
"description": "Optional. Expresses a 'country/region to AQI' relationship. Pairs a country/region with a desired AQI so that air quality data that is required for that country/region will be displayed according to the chosen AQI. This parameter can be used to specify a non-default AQI for a given country, for example, to get the US EPA index for Canada rather than the default index for Canada.",
"items": {
"$ref": "CustomLocalAqi"
},
"type": "array"
},
"dateTime": {
"description": "A timestamp for which to return historical data. The timestamp is rounded to the previous exact hour. Note: this will return hourly data for the requested timestamp only (i.e. a single hourly info element). For example, a request sent where the dateTime parameter is set to 2023-01-03T11:05:49Z will be rounded down to 2023-01-03T11:00:00Z. A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".",
"format": "google-datetime",
"type": "string"
},
"extraComputations": {
"description": "Optional. Additional features that can be optionally enabled. Specifying extra computations will result in the relevant elements and fields to be returned in the response.",
"items": {
"enum": [
"EXTRA_COMPUTATION_UNSPECIFIED",
"LOCAL_AQI",
"HEALTH_RECOMMENDATIONS",
"POLLUTANT_ADDITIONAL_INFO",
"DOMINANT_POLLUTANT_CONCENTRATION",
"POLLUTANT_CONCENTRATION"
],
"enumDescriptions": [
"The default value. The server ignores it if it is passed as a parameter.",
"Determines whether to include the local (national) AQI of the requested location (country) in the response. If specified, the response will contain an 'air_quality_index' data structure with all the relevant data on the location's local AQI.",
"Determines whether the response will include the health advice and recommended actions for the current AQI conditions. The recommendations are tailored for the general population and six populations at risk groups with greater sensitivities to pollutants than the general population. If specified, the `health_recommendations` field will be populated in the response when the relevant data is available.",
"Determines whether to include in the response the additional information of each pollutant. If specified, each air quality index object contained in the 'indexes' field response will include an `additional_info` field when the data is available.",
"Determines whether the response would include the concentrations of the dominant pollutants measured according to global and/or local indexes. If the request specified both the global AQI and the local AQI, there may be up to two pollutant codes returned. If specified, the dominant pollutant object contained in the 'pollutants' list will include a `concentration` field when the data is available.",
"Determines whether the response would include the concentrations of all pollutants with available measurements according to global and/or local indexes. If specified, each pollutant object contained in the 'pollutants' field in the response will include a `concentration` field when the data is available."
],
"type": "string"
},
"type": "array"
},
"hours": {
"description": "Number from 1 to 720 that indicates the hours range for the request. For example: A value of 48 will yield data from the last 48 hours.",
"format": "int32",
"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 standard. Default value is en.",
"type": "string"
},
"location": {
"$ref": "LatLng",
"description": "Required. The latitude and longitude for which the API looks for air quality history data."
},
"pageSize": {
"description": "Optional. The maximum number of hourly info records to return per page. The default is 72 and the max value is 168 (7 days of data).",
"format": "int32",
"type": "integer"
},
"pageToken": {
"description": "Optional. A page token received from a previous history call. It is used to retrieve the subsequent page. Note that when providing a value for this parameter all other parameters provided must match the call that provided the page token (the previous call).",
"type": "string"
},
"period": {
"$ref": "Interval",
"description": "Indicates the start and end period for which to get the historical data. The timestamp is rounded to the previous exact hour."
},
"uaqiColorPalette": {
"description": "Optional. Determines the color palette used for data provided by the 'Universal Air Quality Index' (UAQI). This color palette is relevant just for UAQI, other AQIs have a predetermined color palette that can't be controlled.",
"enum": [
"COLOR_PALETTE_UNSPECIFIED",
"RED_GREEN",
"INDIGO_PERSIAN_DARK",
"INDIGO_PERSIAN_LIGHT"
],
"enumDescriptions": [
"The default value. Ignored if passed as a parameter.",
"Determines whether to use a red/green palette.",
"Determines whether to use a indigo/persian palette (dark theme).",
"Determines whether to use a indigo/persian palette (light theme)."
],
"type": "string"
},
"universalAqi": {
"description": "Optional. If set to true, the Universal AQI will be included in the 'indexes' field of the response. Default value is true.",
"type": "boolean"
}
},
"type": "object"
},
"LookupHistoryResponse": {
"id": "LookupHistoryResponse",
"properties": {
"hoursInfo": {
"description": "Optional. Contains the air quality information for each hour in the requested range. For example, if the request is for 48 hours of history there will be 48 elements of hourly info.",
"items": {
"$ref": "HourInfo"
},
"type": "array"
},
"nextPageToken": {
"description": "Optional. The token to retrieve the next page.",
"type": "string"
},
"regionCode": {
"description": "Optional. 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"
},
"Pollutant": {
"description": "Data regarding an air quality pollutant.",
"id": "Pollutant",
"properties": {
"additionalInfo": {
"$ref": "AdditionalInfo",
"description": "Additional information about the pollutant."
},
"code": {
"description": "The pollutant's code name (for example, \"so2\"). For a list of supported pollutant codes, see [Reported pollutants](/maps/documentation/air-quality/pollutants#reported_pollutants).",
"type": "string"
},
"concentration": {
"$ref": "Concentration",
"description": "The pollutant's concentration level measured by one of the standard air pollutation measure units."
},
"displayName": {
"description": "The pollutant's display name. For example: \"NOx\".",
"type": "string"
},
"fullName": {
"description": "The pollutant's full name. For chemical compounds, this is the IUPAC name. Example: \"Sulfur Dioxide\". For more information about the IUPAC names table, see https://iupac.org/what-we-do/periodic-table-of-elements/.",
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Air Quality API",
"version": "v1",
"version_module": true
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,702 @@
{
"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://apikeys.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Api Keys Service",
"description": "Manages the API keys associated with developer projects.",
"discoveryVersion": "v1",
"documentationLink": "https://cloud.google.com/api-keys/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": "apikeys:v2",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://apikeys.mtls.googleapis.com/",
"name": "apikeys",
"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": {
"keys": {
"methods": {
"lookupKey": {
"description": "Find the parent project and resource name of the API key that matches the key string in the request. If the API key has been purged, resource name will not be set. The service account must have the `apikeys.keys.lookup` permission on the parent project.",
"flatPath": "v2/keys:lookupKey",
"httpMethod": "GET",
"id": "apikeys.keys.lookupKey",
"parameterOrder": [],
"parameters": {
"keyString": {
"description": "Required. Finds the project that owns the key string value.",
"location": "query",
"type": "string"
}
},
"path": "v2/keys:lookupKey",
"response": {
"$ref": "V2LookupKeyResponse"
},
"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": "v2/operations/{operationsId}",
"httpMethod": "GET",
"id": "apikeys.operations.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the operation resource.",
"location": "path",
"pattern": "^operations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+name}",
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
]
}
}
},
"projects": {
"resources": {
"locations": {
"resources": {
"keys": {
"methods": {
"create": {
"description": "Creates a new API key. NOTE: Key is a global resource; hence the only supported value for location is `global`.",
"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/keys",
"httpMethod": "POST",
"id": "apikeys.projects.locations.keys.create",
"parameterOrder": [
"parent"
],
"parameters": {
"keyId": {
"description": "User specified key id (optional). If specified, it will become the final component of the key resource name. The id must be unique within the project, must conform with RFC-1034, is restricted to lower-cased letters, and has a maximum length of 63 characters. In another word, the id must match the regular expression: `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`. The id must NOT be a UUID-like string.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. The project in which the API key is created.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+parent}/keys",
"request": {
"$ref": "V2Key"
},
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"delete": {
"description": "Deletes an API key. Deleted key can be retrieved within 30 days of deletion. Afterward, key will be purged from the project. NOTE: Key is a global resource; hence the only supported value for location is `global`.",
"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/keys/{keysId}",
"httpMethod": "DELETE",
"id": "apikeys.projects.locations.keys.delete",
"parameterOrder": [
"name"
],
"parameters": {
"etag": {
"description": "Optional. The etag known to the client for the expected state of the key. This is to be used for optimistic concurrency.",
"location": "query",
"type": "string"
},
"name": {
"description": "Required. The resource name of the API key to be deleted.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/keys/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+name}",
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"get": {
"description": "Gets the metadata for an API key. The key string of the API key isn't included in the response. NOTE: Key is a global resource; hence the only supported value for location is `global`.",
"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/keys/{keysId}",
"httpMethod": "GET",
"id": "apikeys.projects.locations.keys.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The resource name of the API key to get.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/keys/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+name}",
"response": {
"$ref": "V2Key"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
]
},
"getKeyString": {
"description": "Get the key string for an API key. NOTE: Key is a global resource; hence the only supported value for location is `global`.",
"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/keys/{keysId}/keyString",
"httpMethod": "GET",
"id": "apikeys.projects.locations.keys.getKeyString",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The resource name of the API key to be retrieved.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/keys/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+name}/keyString",
"response": {
"$ref": "V2GetKeyStringResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
]
},
"list": {
"description": "Lists the API keys owned by a project. The key string of the API key isn't included in the response. NOTE: Key is a global resource; hence the only supported value for location is `global`.",
"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/keys",
"httpMethod": "GET",
"id": "apikeys.projects.locations.keys.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "Optional. Specifies the maximum number of results to be returned at a time.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "Optional. Requests a specific page of results.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. Lists all API keys associated with this project.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
},
"showDeleted": {
"description": "Optional. Indicate that keys deleted in the past 30 days should also be returned.",
"location": "query",
"type": "boolean"
}
},
"path": "v2/{+parent}/keys",
"response": {
"$ref": "V2ListKeysResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/cloud-platform.read-only"
]
},
"patch": {
"description": "Patches the modifiable fields of an API key. The key string of the API key isn't included in the response. NOTE: Key is a global resource; hence the only supported value for location is `global`.",
"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/keys/{keysId}",
"httpMethod": "PATCH",
"id": "apikeys.projects.locations.keys.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Output only. The resource name of the key. The `name` has the form: `projects//locations/global/keys/`. For example: `projects/123456867718/locations/global/keys/b7ff1f9f-8275-410a-94dd-3855ee9b5dd2` NOTE: Key is a global resource; hence the only supported value for location is `global`.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/keys/[^/]+$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "The field mask specifies which fields to be updated as part of this request. All other fields are ignored. Mutable fields are: `display_name`, `restrictions`, and `annotations`. If an update mask is not provided, the service treats it as an implied mask equivalent to all allowed fields that are set on the wire. If the field mask has a special value \"*\", the service treats it equivalent to replace all allowed mutable fields.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v2/{+name}",
"request": {
"$ref": "V2Key"
},
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"undelete": {
"description": "Undeletes an API key which was deleted within 30 days. NOTE: Key is a global resource; hence the only supported value for location is `global`.",
"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/keys/{keysId}:undelete",
"httpMethod": "POST",
"id": "apikeys.projects.locations.keys.undelete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The resource name of the API key to be undeleted.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/keys/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+name}:undelete",
"request": {
"$ref": "V2UndeleteKeyRequest"
},
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
}
}
}
}
}
},
"revision": "20241016",
"rootUrl": "https://apikeys.googleapis.com/",
"schemas": {
"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"
},
"V2AndroidApplication": {
"description": "Identifier of an Android application for key use.",
"id": "V2AndroidApplication",
"properties": {
"packageName": {
"description": "The package name of the application.",
"type": "string"
},
"sha1Fingerprint": {
"description": "The SHA1 fingerprint of the application. For example, both sha1 formats are acceptable : DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09 or DA39A3EE5E6B4B0D3255BFEF95601890AFD80709. Output format is the latter.",
"type": "string"
}
},
"type": "object"
},
"V2AndroidKeyRestrictions": {
"description": "The Android apps that are allowed to use the key.",
"id": "V2AndroidKeyRestrictions",
"properties": {
"allowedApplications": {
"description": "A list of Android applications that are allowed to make API calls with this key.",
"items": {
"$ref": "V2AndroidApplication"
},
"type": "array"
}
},
"type": "object"
},
"V2ApiTarget": {
"description": "A restriction for a specific service and optionally one or multiple specific methods. Both fields are case insensitive.",
"id": "V2ApiTarget",
"properties": {
"methods": {
"description": "Optional. List of one or more methods that can be called. If empty, all methods for the service are allowed. A wildcard (*) can be used as the last symbol. Valid examples: `google.cloud.translate.v2.TranslateService.GetSupportedLanguage` `TranslateText` `Get*` `translate.googleapis.com.Get*`",
"items": {
"type": "string"
},
"type": "array"
},
"service": {
"description": "The service for this restriction. It should be the canonical service name, for example: `translate.googleapis.com`. You can use [`gcloud services list`](https://cloud.google.com/sdk/gcloud/reference/services/list) to get a list of services that are enabled in the project.",
"type": "string"
}
},
"type": "object"
},
"V2BrowserKeyRestrictions": {
"description": "The HTTP referrers (websites) that are allowed to use the key.",
"id": "V2BrowserKeyRestrictions",
"properties": {
"allowedReferrers": {
"description": "A list of regular expressions for the referrer URLs that are allowed to make API calls with this key.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"V2GetKeyStringResponse": {
"description": "Response message for `GetKeyString` method.",
"id": "V2GetKeyStringResponse",
"properties": {
"keyString": {
"description": "An encrypted and signed value of the key.",
"type": "string"
}
},
"type": "object"
},
"V2IosKeyRestrictions": {
"description": "The iOS apps that are allowed to use the key.",
"id": "V2IosKeyRestrictions",
"properties": {
"allowedBundleIds": {
"description": "A list of bundle IDs that are allowed when making API calls with this key.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"V2Key": {
"description": "The representation of a key managed by the API Keys API.",
"id": "V2Key",
"properties": {
"annotations": {
"additionalProperties": {
"type": "string"
},
"description": "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.",
"type": "object"
},
"createTime": {
"description": "Output only. A timestamp identifying the time this key was originally created.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"deleteTime": {
"description": "Output only. A timestamp when this key was deleted. If the resource is not deleted, this must be empty.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"displayName": {
"description": "Human-readable display name of this key that you can modify. The maximum length is 63 characters.",
"type": "string"
},
"etag": {
"description": "Output only. A checksum computed by the server based on the current value of the Key resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. See https://google.aip.dev/154.",
"readOnly": true,
"type": "string"
},
"keyString": {
"description": "Output only. An encrypted and signed value held by this key. This field can be accessed only through the `GetKeyString` method.",
"readOnly": true,
"type": "string"
},
"name": {
"description": "Output only. The resource name of the key. The `name` has the form: `projects//locations/global/keys/`. For example: `projects/123456867718/locations/global/keys/b7ff1f9f-8275-410a-94dd-3855ee9b5dd2` NOTE: Key is a global resource; hence the only supported value for location is `global`.",
"readOnly": true,
"type": "string"
},
"restrictions": {
"$ref": "V2Restrictions",
"description": "Key restrictions."
},
"serviceAccountEmail": {
"description": "Optional. The email address of [the service account](https://cloud.google.com/iam/docs/service-accounts) the key is bound to.",
"type": "string"
},
"uid": {
"description": "Output only. Unique id in UUID4 format.",
"readOnly": true,
"type": "string"
},
"updateTime": {
"description": "Output only. A timestamp identifying the time this key was last updated.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"V2ListKeysResponse": {
"description": "Response message for `ListKeys` method.",
"id": "V2ListKeysResponse",
"properties": {
"keys": {
"description": "A list of API keys.",
"items": {
"$ref": "V2Key"
},
"type": "array"
},
"nextPageToken": {
"description": "The pagination token for the next page of results.",
"type": "string"
}
},
"type": "object"
},
"V2LookupKeyResponse": {
"description": "Response message for `LookupKey` method.",
"id": "V2LookupKeyResponse",
"properties": {
"name": {
"description": "The resource name of the API key. If the API key has been purged, resource name is empty.",
"type": "string"
},
"parent": {
"description": "The project that owns the key with the value specified in the request.",
"type": "string"
}
},
"type": "object"
},
"V2Restrictions": {
"description": "Describes the restrictions on the key.",
"id": "V2Restrictions",
"properties": {
"androidKeyRestrictions": {
"$ref": "V2AndroidKeyRestrictions",
"description": "The Android apps that are allowed to use the key."
},
"apiTargets": {
"description": "A restriction for a specific service and optionally one or more specific methods. Requests are allowed if they match any of these restrictions. If no restrictions are specified, all targets are allowed.",
"items": {
"$ref": "V2ApiTarget"
},
"type": "array"
},
"browserKeyRestrictions": {
"$ref": "V2BrowserKeyRestrictions",
"description": "The HTTP referrers (websites) that are allowed to use the key."
},
"iosKeyRestrictions": {
"$ref": "V2IosKeyRestrictions",
"description": "The iOS apps that are allowed to use the key."
},
"serverKeyRestrictions": {
"$ref": "V2ServerKeyRestrictions",
"description": "The IP addresses of callers that are allowed to use the key."
}
},
"type": "object"
},
"V2ServerKeyRestrictions": {
"description": "The IP addresses of callers that are allowed to use the key.",
"id": "V2ServerKeyRestrictions",
"properties": {
"allowedIps": {
"description": "A list of the caller IP addresses that are allowed to make API calls with this key.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"V2UndeleteKeyRequest": {
"description": "Request message for `UndeleteKey` method.",
"id": "V2UndeleteKeyRequest",
"properties": {},
"type": "object"
}
},
"servicePath": "",
"title": "API Keys API",
"version": "v2",
"version_module": true
}

View File

@@ -0,0 +1,283 @@
{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/appsmarketplace.license": {
"description": "View your installed application's licensing information"
}
}
}
},
"basePath": "",
"baseUrl": "https://appsmarket.googleapis.com/",
"batchPath": "batch",
"canonicalName": "G Suite Marketplace API",
"description": "Lets your Google Workspace Marketplace applications integrate with Google's installtion and licensing services. ",
"discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/workspace/marketplace",
"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": "appsmarket:v2",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://appsmarket.mtls.googleapis.com/",
"name": "appsmarket",
"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": {
"customerLicense": {
"methods": {
"get": {
"description": "Gets the status of a license for a customer to determine if they have access for a given app.",
"flatPath": "appsmarket/v2/customerLicense/{applicationId}/{customerId}",
"httpMethod": "GET",
"id": "appsmarket.customerLicense.get",
"parameterOrder": [
"applicationId",
"customerId"
],
"parameters": {
"applicationId": {
"description": "Application Id",
"location": "path",
"required": true,
"type": "string"
},
"customerId": {
"description": "Customer Id",
"location": "path",
"required": true,
"type": "string"
}
},
"path": "appsmarket/v2/customerLicense/{applicationId}/{customerId}",
"response": {
"$ref": "CustomerLicense"
},
"scopes": [
"https://www.googleapis.com/auth/appsmarketplace.license"
]
}
}
},
"userLicense": {
"methods": {
"get": {
"description": "Gets the user's licensing status for their permission to use a given app.",
"flatPath": "appsmarket/v2/userLicense/{applicationId}/{userId}",
"httpMethod": "GET",
"id": "appsmarket.userLicense.get",
"parameterOrder": [
"applicationId",
"userId"
],
"parameters": {
"applicationId": {
"description": "Application Id",
"location": "path",
"required": true,
"type": "string"
},
"userId": {
"description": "User Id",
"location": "path",
"required": true,
"type": "string"
}
},
"path": "appsmarket/v2/userLicense/{applicationId}/{userId}",
"response": {
"$ref": "UserLicense"
},
"scopes": [
"https://www.googleapis.com/auth/appsmarketplace.license"
]
}
}
}
},
"revision": "20251217",
"rootUrl": "https://appsmarket.googleapis.com/",
"schemas": {
"CustomerLicense": {
"id": "CustomerLicense",
"properties": {
"applicationId": {
"description": "The ID of the application corresponding to this license query.",
"type": "string"
},
"customerId": {
"description": "The domain name of the customer.",
"type": "string"
},
"editions": {
"deprecated": true,
"description": "(Deprecated)",
"items": {
"$ref": "Editions"
},
"type": "array"
},
"id": {
"description": "The ID of the customer license.",
"type": "string"
},
"kind": {
"description": "The type of API resource. This is always appsmarket#customerLicense.",
"type": "string"
},
"state": {
"description": "The customer's license status. One of: - `ACTIVE`: The customer has a valid license. - `UNLICENSED`: There is no license: either this customer has never installed your application, or else has deleted it.",
"type": "string"
}
},
"type": "object"
},
"Editions": {
"id": "Editions",
"properties": {
"assignedSeats": {
"deprecated": true,
"description": "(Deprecated)",
"format": "int32",
"type": "integer"
},
"editionId": {
"deprecated": true,
"description": "(Deprecated)",
"type": "string"
},
"seatCount": {
"deprecated": true,
"description": "(Deprecated)",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"UserLicense": {
"id": "UserLicense",
"properties": {
"applicationId": {
"description": "The ID of the application corresponding to the license query.",
"type": "string"
},
"customerId": {
"description": "The domain name of the user.",
"type": "string"
},
"editionId": {
"deprecated": true,
"description": "(Deprecated)",
"type": "string"
},
"enabled": {
"description": "The domain administrator has activated the application for this domain.",
"type": "boolean"
},
"id": {
"description": "The ID of user license.",
"type": "string"
},
"kind": {
"description": "The type of API resource. This is always appsmarket#userLicense.",
"type": "string"
},
"state": {
"description": "The user's licensing status. One of: - `ACTIVE`: The user has a valid license and should be permitted to use the application. - `UNLICENSED`: The administrator of this user's domain never assigned a seat for the application to this user. - `EXPIRED`: The administrator assigned a seat to this user, but the license is expired.",
"type": "string"
},
"userId": {
"description": "The email address of the user.",
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Google Workspace Marketplace API",
"version": "v2",
"version_module": true
}

View File

@@ -0,0 +1,998 @@
{
"auth": {
"oauth2": {
"scopes": {
"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.readonly": {
"description": "See and download all your Google Drive files"
},
"https://www.googleapis.com/auth/spreadsheets": {
"description": "See, edit, create, and delete all your Google Sheets spreadsheets"
},
"https://www.googleapis.com/auth/spreadsheets.readonly": {
"description": "See all your Google Sheets spreadsheets"
},
"https://www.googleapis.com/auth/tables": {
"description": "See, edit, create, and delete your tables in Tables by Area 120"
}
}
}
},
"basePath": "",
"baseUrl": "https://area120tables.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Area120 Tables",
"description": "",
"discoveryVersion": "v1",
"documentationLink": "https://support.google.com/area120-tables/answer/10011390",
"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": "area120tables:v1alpha1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://area120tables.mtls.googleapis.com/",
"name": "area120tables",
"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": {
"tables": {
"methods": {
"get": {
"description": "Gets a table. Returns NOT_FOUND if the table does not exist.",
"flatPath": "v1alpha1/tables/{tablesId}",
"httpMethod": "GET",
"id": "area120tables.tables.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The name of the table to retrieve. Format: tables/{table}",
"location": "path",
"pattern": "^tables/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1alpha1/{+name}",
"response": {
"$ref": "Table"
},
"scopes": [
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/drive.readonly",
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/spreadsheets.readonly",
"https://www.googleapis.com/auth/tables"
]
},
"list": {
"description": "Lists tables for the user.",
"flatPath": "v1alpha1/tables",
"httpMethod": "GET",
"id": "area120tables.tables.list",
"parameterOrder": [],
"parameters": {
"orderBy": {
"description": "Optional. Sorting order for the list of tables on createTime/updateTime.",
"location": "query",
"type": "string"
},
"pageSize": {
"description": "The maximum number of tables to return. The service may return fewer than this value. If unspecified, at most 20 tables 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 `ListTables` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListTables` must match the call that provided the page token.",
"location": "query",
"type": "string"
}
},
"path": "v1alpha1/tables",
"response": {
"$ref": "ListTablesResponse"
},
"scopes": [
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/drive.readonly",
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/spreadsheets.readonly",
"https://www.googleapis.com/auth/tables"
]
}
},
"resources": {
"rows": {
"methods": {
"batchCreate": {
"description": "Creates multiple rows.",
"flatPath": "v1alpha1/tables/{tablesId}/rows:batchCreate",
"httpMethod": "POST",
"id": "area120tables.tables.rows.batchCreate",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. The parent table where the rows will be created. Format: tables/{table}",
"location": "path",
"pattern": "^tables/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1alpha1/{+parent}/rows:batchCreate",
"request": {
"$ref": "BatchCreateRowsRequest"
},
"response": {
"$ref": "BatchCreateRowsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/tables"
]
},
"batchDelete": {
"description": "Deletes multiple rows.",
"flatPath": "v1alpha1/tables/{tablesId}/rows:batchDelete",
"httpMethod": "POST",
"id": "area120tables.tables.rows.batchDelete",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. The parent table shared by all rows being deleted. Format: tables/{table}",
"location": "path",
"pattern": "^tables/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1alpha1/{+parent}/rows:batchDelete",
"request": {
"$ref": "BatchDeleteRowsRequest"
},
"response": {
"$ref": "Empty"
},
"scopes": [
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/tables"
]
},
"batchUpdate": {
"description": "Updates multiple rows.",
"flatPath": "v1alpha1/tables/{tablesId}/rows:batchUpdate",
"httpMethod": "POST",
"id": "area120tables.tables.rows.batchUpdate",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. The parent table shared by all rows being updated. Format: tables/{table}",
"location": "path",
"pattern": "^tables/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1alpha1/{+parent}/rows:batchUpdate",
"request": {
"$ref": "BatchUpdateRowsRequest"
},
"response": {
"$ref": "BatchUpdateRowsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/tables"
]
},
"create": {
"description": "Creates a row.",
"flatPath": "v1alpha1/tables/{tablesId}/rows",
"httpMethod": "POST",
"id": "area120tables.tables.rows.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. The parent table where this row will be created. Format: tables/{table}",
"location": "path",
"pattern": "^tables/[^/]+$",
"required": true,
"type": "string"
},
"view": {
"description": "Optional. Column key to use for values in the row. Defaults to user entered name.",
"enum": [
"VIEW_UNSPECIFIED",
"COLUMN_ID_VIEW"
],
"enumDescriptions": [
"Defaults to user entered text.",
"Uses internally generated column id to identify values."
],
"location": "query",
"type": "string"
}
},
"path": "v1alpha1/{+parent}/rows",
"request": {
"$ref": "Row"
},
"response": {
"$ref": "Row"
},
"scopes": [
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/tables"
]
},
"delete": {
"description": "Deletes a row.",
"flatPath": "v1alpha1/tables/{tablesId}/rows/{rowsId}",
"httpMethod": "DELETE",
"id": "area120tables.tables.rows.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The name of the row to delete. Format: tables/{table}/rows/{row}",
"location": "path",
"pattern": "^tables/[^/]+/rows/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1alpha1/{+name}",
"response": {
"$ref": "Empty"
},
"scopes": [
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/tables"
]
},
"get": {
"description": "Gets a row. Returns NOT_FOUND if the row does not exist in the table.",
"flatPath": "v1alpha1/tables/{tablesId}/rows/{rowsId}",
"httpMethod": "GET",
"id": "area120tables.tables.rows.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The name of the row to retrieve. Format: tables/{table}/rows/{row}",
"location": "path",
"pattern": "^tables/[^/]+/rows/[^/]+$",
"required": true,
"type": "string"
},
"view": {
"description": "Optional. Column key to use for values in the row. Defaults to user entered name.",
"enum": [
"VIEW_UNSPECIFIED",
"COLUMN_ID_VIEW"
],
"enumDescriptions": [
"Defaults to user entered text.",
"Uses internally generated column id to identify values."
],
"location": "query",
"type": "string"
}
},
"path": "v1alpha1/{+name}",
"response": {
"$ref": "Row"
},
"scopes": [
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/drive.readonly",
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/spreadsheets.readonly",
"https://www.googleapis.com/auth/tables"
]
},
"list": {
"description": "Lists rows in a table. Returns NOT_FOUND if the table does not exist.",
"flatPath": "v1alpha1/tables/{tablesId}/rows",
"httpMethod": "GET",
"id": "area120tables.tables.rows.list",
"parameterOrder": [
"parent"
],
"parameters": {
"filter": {
"description": "Optional. Filter to only include resources matching the requirements. For more information, see [Filtering list results](https://support.google.com/area120-tables/answer/10503371).",
"location": "query",
"type": "string"
},
"orderBy": {
"description": "Optional. Sorting order for the list of rows on createTime/updateTime.",
"location": "query",
"type": "string"
},
"pageSize": {
"description": "The maximum number of rows to return. The service may return fewer than this value. If unspecified, at most 50 rows are returned. The maximum value is 1,000; values above 1,000 are coerced to 1,000.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "A page token, received from a previous `ListRows` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListRows` must match the call that provided the page token.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. The parent table. Format: tables/{table}",
"location": "path",
"pattern": "^tables/[^/]+$",
"required": true,
"type": "string"
},
"view": {
"description": "Optional. Column key to use for values in the row. Defaults to user entered name.",
"enum": [
"VIEW_UNSPECIFIED",
"COLUMN_ID_VIEW"
],
"enumDescriptions": [
"Defaults to user entered text.",
"Uses internally generated column id to identify values."
],
"location": "query",
"type": "string"
}
},
"path": "v1alpha1/{+parent}/rows",
"response": {
"$ref": "ListRowsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/drive.readonly",
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/spreadsheets.readonly",
"https://www.googleapis.com/auth/tables"
]
},
"patch": {
"description": "Updates a row.",
"flatPath": "v1alpha1/tables/{tablesId}/rows/{rowsId}",
"httpMethod": "PATCH",
"id": "area120tables.tables.rows.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The resource name of the row. Row names have the form `tables/{table}/rows/{row}`. The name is ignored when creating a row.",
"location": "path",
"pattern": "^tables/[^/]+/rows/[^/]+$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "The list of fields to update.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
},
"view": {
"description": "Optional. Column key to use for values in the row. Defaults to user entered name.",
"enum": [
"VIEW_UNSPECIFIED",
"COLUMN_ID_VIEW"
],
"enumDescriptions": [
"Defaults to user entered text.",
"Uses internally generated column id to identify values."
],
"location": "query",
"type": "string"
}
},
"path": "v1alpha1/{+name}",
"request": {
"$ref": "Row"
},
"response": {
"$ref": "Row"
},
"scopes": [
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/tables"
]
}
}
}
}
},
"workspaces": {
"methods": {
"get": {
"description": "Gets a workspace. Returns NOT_FOUND if the workspace does not exist.",
"flatPath": "v1alpha1/workspaces/{workspacesId}",
"httpMethod": "GET",
"id": "area120tables.workspaces.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The name of the workspace to retrieve. Format: workspaces/{workspace}",
"location": "path",
"pattern": "^workspaces/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1alpha1/{+name}",
"response": {
"$ref": "Workspace"
},
"scopes": [
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/drive.readonly",
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/spreadsheets.readonly",
"https://www.googleapis.com/auth/tables"
]
},
"list": {
"description": "Lists workspaces for the user.",
"flatPath": "v1alpha1/workspaces",
"httpMethod": "GET",
"id": "area120tables.workspaces.list",
"parameterOrder": [],
"parameters": {
"pageSize": {
"description": "The maximum number of workspaces to return. The service may return fewer than this value. If unspecified, at most 10 workspaces are returned. The maximum value is 25; values above 25 are coerced to 25.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "A page token, received from a previous `ListWorkspaces` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListWorkspaces` must match the call that provided the page token.",
"location": "query",
"type": "string"
}
},
"path": "v1alpha1/workspaces",
"response": {
"$ref": "ListWorkspacesResponse"
},
"scopes": [
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/drive.readonly",
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/spreadsheets.readonly",
"https://www.googleapis.com/auth/tables"
]
}
}
}
},
"revision": "20240707",
"rootUrl": "https://area120tables.googleapis.com/",
"schemas": {
"BatchCreateRowsRequest": {
"description": "Request message for TablesService.BatchCreateRows.",
"id": "BatchCreateRowsRequest",
"properties": {
"requests": {
"description": "Required. The request message specifying the rows to create. A maximum of 500 rows can be created in a single batch.",
"items": {
"$ref": "CreateRowRequest"
},
"type": "array"
}
},
"type": "object"
},
"BatchCreateRowsResponse": {
"description": "Response message for TablesService.BatchCreateRows.",
"id": "BatchCreateRowsResponse",
"properties": {
"rows": {
"description": "The created rows.",
"items": {
"$ref": "Row"
},
"type": "array"
}
},
"type": "object"
},
"BatchDeleteRowsRequest": {
"description": "Request message for TablesService.BatchDeleteRows",
"id": "BatchDeleteRowsRequest",
"properties": {
"names": {
"description": "Required. The names of the rows to delete. All rows must belong to the parent table or else the entire batch will fail. A maximum of 500 rows can be deleted in a batch. Format: tables/{table}/rows/{row}",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"BatchUpdateRowsRequest": {
"description": "Request message for TablesService.BatchUpdateRows.",
"id": "BatchUpdateRowsRequest",
"properties": {
"requests": {
"description": "Required. The request messages specifying the rows to update. A maximum of 500 rows can be modified in a single batch.",
"items": {
"$ref": "UpdateRowRequest"
},
"type": "array"
}
},
"type": "object"
},
"BatchUpdateRowsResponse": {
"description": "Response message for TablesService.BatchUpdateRows.",
"id": "BatchUpdateRowsResponse",
"properties": {
"rows": {
"description": "The updated rows.",
"items": {
"$ref": "Row"
},
"type": "array"
}
},
"type": "object"
},
"ColumnDescription": {
"description": "Details on a column in the table.",
"id": "ColumnDescription",
"properties": {
"dataType": {
"description": "Data type of the column Supported types are auto_id, boolean, boolean_list, creator, create_timestamp, date, dropdown, location, integer, integer_list, number, number_list, person, person_list, tags, check_list, text, text_list, update_timestamp, updater, relationship, file_attachment_list. These types directly map to the column types supported on Tables website.",
"type": "string"
},
"dateDetails": {
"$ref": "DateDetails",
"description": "Optional. Additional details about a date column."
},
"id": {
"description": "Internal id for a column.",
"type": "string"
},
"labels": {
"description": "Optional. Range of labeled values for the column. Some columns like tags and drop-downs limit the values to a set of possible values. We return the range of values in such cases to help clients implement better user data validation.",
"items": {
"$ref": "LabeledItem"
},
"type": "array"
},
"lookupDetails": {
"$ref": "LookupDetails",
"description": "Optional. Indicates that this is a lookup column whose value is derived from the relationship column specified in the details. Lookup columns can not be updated directly. To change the value you must update the associated relationship column."
},
"multipleValuesDisallowed": {
"description": "Optional. Indicates whether or not multiple values are allowed for array types where such a restriction is possible.",
"type": "boolean"
},
"name": {
"description": "column name",
"type": "string"
},
"readonly": {
"description": "Optional. Indicates that values for the column cannot be set by the user.",
"type": "boolean"
},
"relationshipDetails": {
"$ref": "RelationshipDetails",
"description": "Optional. Additional details about a relationship column. Specified when data_type is relationship."
}
},
"type": "object"
},
"CreateRowRequest": {
"description": "Request message for TablesService.CreateRow.",
"id": "CreateRowRequest",
"properties": {
"parent": {
"description": "Required. The parent table where this row will be created. Format: tables/{table}",
"type": "string"
},
"row": {
"$ref": "Row",
"description": "Required. The row to create."
},
"view": {
"description": "Optional. Column key to use for values in the row. Defaults to user entered name.",
"enum": [
"VIEW_UNSPECIFIED",
"COLUMN_ID_VIEW"
],
"enumDescriptions": [
"Defaults to user entered text.",
"Uses internally generated column id to identify values."
],
"type": "string"
}
},
"type": "object"
},
"DateDetails": {
"description": "Details about a date column.",
"id": "DateDetails",
"properties": {
"hasTime": {
"description": "Whether the date column includes time.",
"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"
},
"LabeledItem": {
"description": "A single item in a labeled column.",
"id": "LabeledItem",
"properties": {
"id": {
"description": "Internal id associated with the item.",
"type": "string"
},
"name": {
"description": "Display string as entered by user.",
"type": "string"
}
},
"type": "object"
},
"ListRowsResponse": {
"description": "Response message for TablesService.ListRows.",
"id": "ListRowsResponse",
"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"
},
"rows": {
"description": "The rows from the specified table.",
"items": {
"$ref": "Row"
},
"type": "array"
}
},
"type": "object"
},
"ListTablesResponse": {
"description": "Response message for TablesService.ListTables.",
"id": "ListTablesResponse",
"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"
},
"tables": {
"description": "The list of tables.",
"items": {
"$ref": "Table"
},
"type": "array"
}
},
"type": "object"
},
"ListWorkspacesResponse": {
"description": "Response message for TablesService.ListWorkspaces.",
"id": "ListWorkspacesResponse",
"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"
},
"workspaces": {
"description": "The list of workspaces.",
"items": {
"$ref": "Workspace"
},
"type": "array"
}
},
"type": "object"
},
"LookupDetails": {
"description": "Details about a lookup column whose value comes from the associated relationship.",
"id": "LookupDetails",
"properties": {
"relationshipColumn": {
"description": "The name of the relationship column associated with the lookup.",
"type": "string"
},
"relationshipColumnId": {
"description": "The id of the relationship column.",
"type": "string"
}
},
"type": "object"
},
"RelationshipDetails": {
"description": "Details about a relationship column.",
"id": "RelationshipDetails",
"properties": {
"linkedTable": {
"description": "The name of the table this relationship is linked to.",
"type": "string"
}
},
"type": "object"
},
"Row": {
"description": "A single row in a table.",
"id": "Row",
"properties": {
"createTime": {
"description": "Time when the row was created.",
"format": "google-datetime",
"type": "string"
},
"name": {
"description": "The resource name of the row. Row names have the form `tables/{table}/rows/{row}`. The name is ignored when creating a row.",
"type": "string"
},
"updateTime": {
"description": "Time when the row was last updated.",
"format": "google-datetime",
"type": "string"
},
"values": {
"additionalProperties": {
"type": "any"
},
"description": "The values of the row. This is a map of column key to value. Key is user entered name(default) or the internal column id based on the view in the request.",
"type": "object"
}
},
"type": "object"
},
"SavedView": {
"description": "A saved view of a table. NextId: 3",
"id": "SavedView",
"properties": {
"id": {
"description": "Internal id associated with the saved view.",
"type": "string"
},
"name": {
"description": "Display name of the saved view.",
"type": "string"
}
},
"type": "object"
},
"Table": {
"description": "A single table. NextId: 8",
"id": "Table",
"properties": {
"columns": {
"description": "List of columns in this table. Order of columns matches the display order.",
"items": {
"$ref": "ColumnDescription"
},
"type": "array"
},
"createTime": {
"description": "Time when the table was created.",
"format": "google-datetime",
"type": "string"
},
"displayName": {
"description": "The human readable title of the table.",
"type": "string"
},
"name": {
"description": "The resource name of the table. Table names have the form `tables/{table}`.",
"type": "string"
},
"savedViews": {
"description": "Saved views for this table.",
"items": {
"$ref": "SavedView"
},
"type": "array"
},
"timeZone": {
"description": "The time zone of the table. IANA Time Zone Database time zone, e.g. \"America/New_York\".",
"type": "string"
},
"updateTime": {
"description": "Time when the table was last updated excluding updates to individual rows",
"format": "google-datetime",
"type": "string"
}
},
"type": "object"
},
"UpdateRowRequest": {
"description": "Request message for TablesService.UpdateRow.",
"id": "UpdateRowRequest",
"properties": {
"row": {
"$ref": "Row",
"description": "Required. The row to update."
},
"updateMask": {
"description": "The list of fields to update.",
"format": "google-fieldmask",
"type": "string"
},
"view": {
"description": "Optional. Column key to use for values in the row. Defaults to user entered name.",
"enum": [
"VIEW_UNSPECIFIED",
"COLUMN_ID_VIEW"
],
"enumDescriptions": [
"Defaults to user entered text.",
"Uses internally generated column id to identify values."
],
"type": "string"
}
},
"type": "object"
},
"Workspace": {
"description": "A single workspace.",
"id": "Workspace",
"properties": {
"createTime": {
"description": "Time when the workspace was created.",
"format": "google-datetime",
"type": "string"
},
"displayName": {
"description": "The human readable title of the workspace.",
"type": "string"
},
"name": {
"description": "The resource name of the workspace. Workspace names have the form `workspaces/{workspace}`.",
"type": "string"
},
"tables": {
"description": "The list of tables in the workspace.",
"items": {
"$ref": "Table"
},
"type": "array"
},
"updateTime": {
"description": "Time when the workspace was last updated.",
"format": "google-datetime",
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Area120 Tables API",
"version": "v1alpha1",
"version_module": true
}

View File

@@ -0,0 +1,402 @@
{
"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://areainsights.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Area Insights",
"description": "Places Aggregate API.",
"discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/maps/documentation/places-aggregate/overview",
"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": "areainsights:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://areainsights.mtls.googleapis.com/",
"name": "areainsights",
"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": {
"v1": {
"methods": {
"computeInsights": {
"description": "This method lets you retrieve insights about areas using a variety of filter such as: area, place type, operating status, price level and ratings. Currently \"count\" and \"places\" insights are supported. With \"count\" insights you can answer questions such as \"How many restaurant are located in California that are operational, are inexpensive and have an average rating of at least 4 stars\" (see `insight` enum for more details). With \"places\" insights, you can determine which places match the requested filter. Clients can then use those place resource names to fetch more details about each individual place using the Places API.",
"flatPath": "v1:computeInsights",
"httpMethod": "POST",
"id": "areainsights.computeInsights",
"parameterOrder": [],
"parameters": {},
"path": "v1:computeInsights",
"request": {
"$ref": "ComputeInsightsRequest"
},
"response": {
"$ref": "ComputeInsightsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
}
},
"revision": "20250622",
"rootUrl": "https://areainsights.googleapis.com/",
"schemas": {
"Circle": {
"description": "A circle is defined by a center point and radius in meters.",
"id": "Circle",
"properties": {
"latLng": {
"$ref": "LatLng",
"description": "The latitude and longitude of the center of the circle."
},
"place": {
"description": "**Format:** Must be in the format `places/PLACE_ID`, where `PLACE_ID` is the unique identifier of a place. For example: `places/ChIJgUbEo8cfqokR5lP9_Wh_DaM`.",
"type": "string"
},
"radius": {
"description": "Optional. The radius of the circle in meters",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"ComputeInsightsRequest": {
"description": "Request for the ComputeInsights RPC.",
"id": "ComputeInsightsRequest",
"properties": {
"filter": {
"$ref": "Filter",
"description": "Required. Insight filter."
},
"insights": {
"description": "Required. Insights to compute. Currently only INSIGHT_COUNT and INSIGHT_PLACES are supported.",
"items": {
"enum": [
"INSIGHT_UNSPECIFIED",
"INSIGHT_COUNT",
"INSIGHT_PLACES"
],
"enumDescriptions": [
"Not Specified.",
"Count insight. When this insight is specified ComputeInsights returns the number of places that match the specified filter criteria. Example request: ``` { \"insights\": [\"INSIGHT_COUNT\"], \"filter\": { \"locationFilter\": { \"region\": { \"place\": \"places/ChIJPV4oX_65j4ARVW8IJ6IJUYs\" } }, \"typeFilter\": { \"includedTypes\": [\"restaurant\"] }, \"operatingStatus\": [\"OPERATING_STATUS_OPERATIONAL\"], \"priceLevels\": [ \"PRICE_LEVEL_FREE\", \"PRICE_LEVEL_INEXPENSIVE\" ], \"ratingFilter\": { \"minRating\": 4.0 } } } ``` Example response: ``` { \"count\": 1234 } ```",
"Return Places When this insight is specified ComputeInsights returns places IDs that match the specified filter criteria. Example request: ``` { \"insights\": [\"INSIGHT_PLACES\"], \"filter\": { \"locationFilter\": { \"region\": { \"place\": \"places/ChIJPV4oX_65j4ARVW8IJ6IJUYs\" } }, \"typeFilter\": { \"includedTypes\": [\"restaurant\"] }, \"operatingStatus\": [\"OPERATING_STATUS_OPERATIONAL\"], \"priceLevels\": [ \"PRICE_LEVEL_FREE\", \"PRICE_LEVEL_INEXPENSIVE\" ], \"ratingFilter\": { \"minRating\": 4.0 } } } ``` Example response: ``` { \"placeInsights\": [ {\"place\": \"places/ABC\"}, {\"place\": \"places/PQR\"}, {\"place\": \"places/XYZ\"} ] } ```"
],
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"ComputeInsightsResponse": {
"description": "Response for the ComputeInsights RPC.",
"id": "ComputeInsightsResponse",
"properties": {
"count": {
"description": "Result for Insights.INSIGHT_COUNT.",
"format": "int64",
"type": "string"
},
"placeInsights": {
"description": "Result for Insights.INSIGHT_PLACES.",
"items": {
"$ref": "PlaceInsight"
},
"type": "array"
}
},
"type": "object"
},
"CustomArea": {
"description": "Custom Area.",
"id": "CustomArea",
"properties": {
"polygon": {
"$ref": "Polygon",
"description": "Required. The custom area represented as a polygon"
}
},
"type": "object"
},
"Filter": {
"description": "Filters for the ComputeInsights RPC.",
"id": "Filter",
"properties": {
"locationFilter": {
"$ref": "LocationFilter",
"description": "Required. Restricts results to places which are located in the area specified by location filters."
},
"operatingStatus": {
"description": "Optional. Restricts results to places whose operating status is included on this list. If operating_status is not set, OPERATING_STATUS_OPERATIONAL is used as default.",
"items": {
"enum": [
"OPERATING_STATUS_UNSPECIFIED",
"OPERATING_STATUS_OPERATIONAL",
"OPERATING_STATUS_PERMANENTLY_CLOSED",
"OPERATING_STATUS_TEMPORARILY_CLOSED"
],
"enumDescriptions": [
"Not specified. This value should not be used.",
"The place is operational and its open during its defined hours.",
"The Place is no longer in business.",
"The place is temporarily closed and expected to reopen in the future."
],
"type": "string"
},
"type": "array"
},
"priceLevels": {
"description": "Optional. Restricts results to places whose price level is included on this list. If `price_levels` is not set, all price levels are included in the results.",
"items": {
"enum": [
"PRICE_LEVEL_UNSPECIFIED",
"PRICE_LEVEL_FREE",
"PRICE_LEVEL_INEXPENSIVE",
"PRICE_LEVEL_MODERATE",
"PRICE_LEVEL_EXPENSIVE",
"PRICE_LEVEL_VERY_EXPENSIVE"
],
"enumDescriptions": [
"Not specified. This value should not be used.",
"Place provides free services.",
"Place provides inexpensive services.",
"Place provides moderately priced services.",
"Place provides expensive services.",
"Place provides very expensive services."
],
"type": "string"
},
"type": "array"
},
"ratingFilter": {
"$ref": "RatingFilter",
"description": "Optional. Restricts results to places whose average user ratings are in the range specified by rating_filter. If rating_filter is not set, all ratings are included in the result."
},
"typeFilter": {
"$ref": "TypeFilter",
"description": "Required. Place type filters."
}
},
"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"
},
"LocationFilter": {
"description": "Location filters. Specifies the area of interest for the insight.",
"id": "LocationFilter",
"properties": {
"circle": {
"$ref": "Circle",
"description": "Area as a circle."
},
"customArea": {
"$ref": "CustomArea",
"description": "Custom area specified by a polygon."
},
"region": {
"$ref": "Region",
"description": "Area as region."
}
},
"type": "object"
},
"PlaceInsight": {
"description": "Holds information about a place",
"id": "PlaceInsight",
"properties": {
"place": {
"description": "The unique identifier of the place. This resource name can be used to retrieve details about the place using the [Places API](https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/places/get).",
"type": "string"
}
},
"type": "object"
},
"Polygon": {
"description": "A polygon is represented by a series of connected coordinates in an counterclockwise ordered sequence. The coordinates form a closed loop and define a filled region. The first and last coordinates are equivalent, and they must contain identical values. The format is a simplified version of GeoJSON polygons (we only support one counterclockwise exterior ring).",
"id": "Polygon",
"properties": {
"coordinates": {
"description": "Optional. The coordinates that define the polygon.",
"items": {
"$ref": "LatLng"
},
"type": "array"
}
},
"type": "object"
},
"RatingFilter": {
"description": "Average user rating filters.",
"id": "RatingFilter",
"properties": {
"maxRating": {
"description": "Optional. Restricts results to places whose average user rating is strictly less than or equal to max_rating. Values must be between 1.0 and 5.0.",
"format": "float",
"type": "number"
},
"minRating": {
"description": "Optional. Restricts results to places whose average user rating is greater than or equal to min_rating. Values must be between 1.0 and 5.0.",
"format": "float",
"type": "number"
}
},
"type": "object"
},
"Region": {
"description": "A region is a geographic boundary such as: cities, postal codes, counties, states, etc.",
"id": "Region",
"properties": {
"place": {
"description": "The [place ID](https://developers.google.com/maps/documentation/places/web-service/place-id) of the geographic region. Not all region types are supported; see documentation for details. **Format:** Must be in the format `places/PLACE_ID`, where `PLACE_ID` is the unique identifier of a place. For example: `places/ChIJPV4oX_65j4ARVW8IJ6IJUYs`.",
"type": "string"
}
},
"type": "object"
},
"TypeFilter": {
"description": "Place type filters. Only Place types from [Table a](https://developers.google.com/maps/documentation/places/web-service/place-types#table-a) are supported. A place can only have a single primary type associated with it. For example, the primary type might be \"mexican_restaurant\" or \"steak_house\". Use included_primary_types and excluded_primary_types to filter the results on a place's primary type. A place can also have multiple type values associated with it. For example a restaurant might have the following types: \"seafood_restaurant\", \"restaurant\", \"food\", \"point_of_interest\", \"establishment\". Use included_types and excluded_types to filter the results on the list of types associated with a place. If a search is specified with multiple type restrictions, only places that satisfy all of the restrictions are returned. For example, if you specify {\"included_types\": [\"restaurant\"], \"excluded_primary_types\": [\"steak_house\"]}, the returned places provide \"restaurant\" related services but do not operate primarily as a \"steak_house\". If there are any conflicting types, i.e. a type appears in both included_types and excluded_types types or included_primary_types and excluded_primary_types, an INVALID_ARGUMENT error is returned. One of included_types or included_primary_types must be set.",
"id": "TypeFilter",
"properties": {
"excludedPrimaryTypes": {
"description": "Optional. Excluded primary Place types.",
"items": {
"type": "string"
},
"type": "array"
},
"excludedTypes": {
"description": "Optional. Excluded Place types.",
"items": {
"type": "string"
},
"type": "array"
},
"includedPrimaryTypes": {
"description": "Optional. Included primary Place types.",
"items": {
"type": "string"
},
"type": "array"
},
"includedTypes": {
"description": "Optional. Included Place types.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Places Aggregate API",
"version": "v1",
"version_module": true
}

View File

@@ -0,0 +1,331 @@
{
"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://baremetalsolution.googleapis.com/",
"batchPath": "batch",
"description": "Provides ways to manage Bare Metal Solution hardware installed in a regional extension located near a Google Cloud data center.",
"discoveryVersion": "v1",
"documentationLink": "https://cloud.google.com/bare-metal",
"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": "baremetalsolution:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://baremetalsolution.mtls.googleapis.com/",
"name": "baremetalsolution",
"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": "baremetalsolution.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": "baremetalsolution.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": "baremetalsolution.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`. 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.",
"flatPath": "v1/operations",
"httpMethod": "GET",
"id": "baremetalsolution.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"
]
}
}
}
},
"revision": "20221201",
"rootUrl": "https://baremetalsolution.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"
},
"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 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"
},
"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"
}
},
"servicePath": "",
"title": "Bare Metal Solution API",
"version": "v1",
"version_module": true
}

View File

@@ -0,0 +1,588 @@
{
"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://baremetalsolution.googleapis.com/",
"batchPath": "batch",
"description": "Provides ways to manage Bare Metal Solution hardware installed in a regional extension located near a Google Cloud data center.",
"discoveryVersion": "v1",
"documentationLink": "https://cloud.google.com/bare-metal",
"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": "baremetalsolution:v1alpha1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://baremetalsolution.mtls.googleapis.com/",
"name": "baremetalsolution",
"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": {
"submitProvisioningConfig": {
"description": "Submit a provisiong configuration for a given project.",
"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}:submitProvisioningConfig",
"httpMethod": "POST",
"id": "baremetalsolution.projects.locations.submitProvisioningConfig",
"parameterOrder": [
"project",
"location"
],
"parameters": {
"location": {
"description": "Required. The target location of the provisioning request.",
"location": "path",
"pattern": "^locations/[^/]+$",
"required": true,
"type": "string"
},
"project": {
"description": "Required. The target project of the provisioning request.",
"location": "path",
"pattern": "^projects/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1alpha1/{+project}/{+location}:submitProvisioningConfig",
"request": {
"$ref": "SubmitProvisioningConfigRequest"
},
"response": {
"$ref": "ProvisioningConfig"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
},
"provisioningQuotas": {
"methods": {
"list": {
"description": "List the budget details to provision resources on a given project.",
"flatPath": "v1alpha1/projects/{projectsId}/provisioningQuotas",
"httpMethod": "GET",
"id": "baremetalsolution.projects.provisioningQuotas.list",
"parameterOrder": [
"parent"
],
"parameters": {
"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.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. The parent project containing the provisioning quotas.",
"location": "path",
"pattern": "^projects/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1alpha1/{+parent}/provisioningQuotas",
"response": {
"$ref": "ListProvisioningQuotasResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
}
}
}
},
"revision": "20220829",
"rootUrl": "https://baremetalsolution.googleapis.com/",
"schemas": {
"InstanceConfig": {
"description": "Configuration parameters for a new instance.",
"id": "InstanceConfig",
"properties": {
"clientNetwork": {
"$ref": "NetworkAddress",
"description": "Client network address."
},
"hyperthreading": {
"description": "Whether the instance should be provisioned with Hyperthreading enabled.",
"type": "boolean"
},
"id": {
"description": "A transient unique identifier to idenfity an instance within an ProvisioningConfig request.",
"type": "string"
},
"instanceType": {
"description": "Instance type.",
"type": "string"
},
"location": {
"description": "Location where to deploy the instance.",
"type": "string"
},
"osImage": {
"description": "OS image to initialize the instance.",
"type": "string"
},
"privateNetwork": {
"$ref": "NetworkAddress",
"description": "Private network address, if any."
},
"userNote": {
"description": "User note field, it can be used by customers to add additional information for the BMS Ops team (b/194021617).",
"type": "string"
}
},
"type": "object"
},
"InstanceQuota": {
"description": "A resource budget.",
"id": "InstanceQuota",
"properties": {
"availableMachineCount": {
"description": "Number of machines than can be created for the given location and instance_type.",
"format": "int32",
"type": "integer"
},
"instanceType": {
"description": "Instance type.",
"type": "string"
},
"location": {
"description": "Location where the quota applies.",
"type": "string"
}
},
"type": "object"
},
"ListProvisioningQuotasResponse": {
"description": "Response for ListProvisioningQuotas.",
"id": "ListProvisioningQuotasResponse",
"properties": {
"nextPageToken": {
"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.",
"type": "string"
},
"provisioningQuotas": {
"description": "The provisioning quotas registered in this project.",
"items": {
"$ref": "ProvisioningQuota"
},
"type": "array"
}
},
"type": "object"
},
"LunRange": {
"description": "A LUN range.",
"id": "LunRange",
"properties": {
"quantity": {
"description": "Number of LUNs to create.",
"format": "int32",
"type": "integer"
},
"sizeGb": {
"description": "The requested size of each LUN, in GB.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"NetworkAddress": {
"description": "A network.",
"id": "NetworkAddress",
"properties": {
"address": {
"description": "IP address to be assigned to the server.",
"type": "string"
},
"existingNetworkId": {
"description": "Name of the existing network to use. Will be of the format at--vlan for pre-intake UI networks like for eg, at-123456-vlan001 or any user-defined name like for eg, my-network-name for networks provisioned using intake UI. The field is exclusively filled only in case of an already existing network. Mutually exclusive with network_id.",
"type": "string"
},
"networkId": {
"description": "Name of the network to use, within the same ProvisioningConfig request. This represents a new network being provisioned in the same request. Can have any user-defined name like for eg, my-network-name. Mutually exclusive with existing_network_id.",
"type": "string"
}
},
"type": "object"
},
"NetworkConfig": {
"description": "Configuration parameters for a new network.",
"id": "NetworkConfig",
"properties": {
"bandwidth": {
"description": "Interconnect bandwidth. Set only when type is CLIENT.",
"enum": [
"BANDWIDTH_UNSPECIFIED",
"BW_1_GBPS",
"BW_2_GBPS",
"BW_5_GBPS",
"BW_10_GBPS"
],
"enumDescriptions": [
"Unspecified value.",
"1 Gbps.",
"2 Gbps.",
"5 Gbps.",
"10 Gbps."
],
"type": "string"
},
"cidr": {
"description": "CIDR range of the network.",
"type": "string"
},
"id": {
"description": "A transient unique identifier to identify a volume within an ProvisioningConfig request.",
"type": "string"
},
"location": {
"description": "Location where to deploy the network.",
"type": "string"
},
"serviceCidr": {
"description": "Service CIDR, if any.",
"enum": [
"SERVICE_CIDR_UNSPECIFIED",
"DISABLED",
"HIGH_26",
"HIGH_27",
"HIGH_28"
],
"enumDescriptions": [
"Unspecified value.",
"Services are disabled for the given network.",
"Use the highest /26 block of the network to host services.",
"Use the highest /27 block of the network to host services.",
"Use the highest /28 block of the network to host services."
],
"type": "string"
},
"type": {
"description": "The type of this network.",
"enum": [
"TYPE_UNSPECIFIED",
"CLIENT",
"PRIVATE"
],
"enumDescriptions": [
"Unspecified value.",
"Client network, that is a network peered to a GCP VPC.",
"Private network, that is a network local to the BMS POD."
],
"type": "string"
},
"userNote": {
"description": "User note field, it can be used by customers to add additional information for the BMS Ops team (b/194021617).",
"type": "string"
},
"vlanAttachments": {
"description": "List of VLAN attachments. As of now there are always 2 attachments, but it is going to change in the future (multi vlan).",
"items": {
"$ref": "VlanAttachment"
},
"type": "array"
}
},
"type": "object"
},
"NfsExport": {
"description": "A NFS export entry.",
"id": "NfsExport",
"properties": {
"allowDev": {
"description": "Allow dev.",
"type": "boolean"
},
"allowSuid": {
"description": "Allow the setuid flag.",
"type": "boolean"
},
"cidr": {
"description": "A CIDR range.",
"type": "string"
},
"machineId": {
"description": "Either a single machine, identified by an ID, or a comma-separated list of machine IDs.",
"type": "string"
},
"networkId": {
"description": "Network to use to publish the export.",
"type": "string"
},
"noRootSquash": {
"description": "Disable root squashing.",
"type": "boolean"
},
"permissions": {
"description": "Export permissions.",
"enum": [
"PERMISSIONS_UNSPECIFIED",
"READ_ONLY",
"READ_WRITE"
],
"enumDescriptions": [
"Unspecified value.",
"Read-only permission.",
"Read-write permission."
],
"type": "string"
}
},
"type": "object"
},
"ProvisioningConfig": {
"description": "An provisioning configuration.",
"id": "ProvisioningConfig",
"properties": {
"instances": {
"description": "Instances to be created.",
"items": {
"$ref": "InstanceConfig"
},
"type": "array"
},
"networks": {
"description": "Networks to be created.",
"items": {
"$ref": "NetworkConfig"
},
"type": "array"
},
"ticketId": {
"description": "A reference to track the request.",
"type": "string"
},
"volumes": {
"description": "Volumes to be created.",
"items": {
"$ref": "VolumeConfig"
},
"type": "array"
}
},
"type": "object"
},
"ProvisioningQuota": {
"description": "A provisioning quota for a given project.",
"id": "ProvisioningQuota",
"properties": {
"instanceQuota": {
"$ref": "InstanceQuota",
"description": "Instance quota."
}
},
"type": "object"
},
"SubmitProvisioningConfigRequest": {
"description": "Request for SubmitProvisioningConfig.",
"id": "SubmitProvisioningConfigRequest",
"properties": {
"email": {
"description": "Optional. Email provided to send a confirmation with provisioning config to.",
"type": "string"
},
"provisioningConfig": {
"$ref": "ProvisioningConfig",
"description": "Required. The ProvisioningConfig to submit."
}
},
"type": "object"
},
"VlanAttachment": {
"description": "A GCP vlan attachment.",
"id": "VlanAttachment",
"properties": {
"id": {
"description": "Identifier of the VLAN attachment.",
"type": "string"
},
"pairingKey": {
"description": "Attachment pairing key.",
"type": "string"
}
},
"type": "object"
},
"VolumeConfig": {
"description": "Configuration parameters for a new volume.",
"id": "VolumeConfig",
"properties": {
"id": {
"description": "A transient unique identifier to identify a volume within an ProvisioningConfig request.",
"type": "string"
},
"location": {
"description": "Location where to deploy the volume.",
"type": "string"
},
"lunRanges": {
"description": "LUN ranges to be configured. Set only when protocol is PROTOCOL_FC.",
"items": {
"$ref": "LunRange"
},
"type": "array"
},
"machineIds": {
"description": "Machine ids connected to this volume. Set only when protocol is PROTOCOL_FC.",
"items": {
"type": "string"
},
"type": "array"
},
"nfsExports": {
"description": "NFS exports. Set only when protocol is PROTOCOL_NFS.",
"items": {
"$ref": "NfsExport"
},
"type": "array"
},
"protocol": {
"description": "Volume protocol.",
"enum": [
"PROTOCOL_UNSPECIFIED",
"PROTOCOL_FC",
"PROTOCOL_NFS"
],
"enumDescriptions": [
"Unspecified value.",
"Fibre channel.",
"Network file system."
],
"type": "string"
},
"sizeGb": {
"description": "The requested size of this volume, in GB. This will be updated in a later iteration with a generic size field.",
"format": "int32",
"type": "integer"
},
"snapshotsEnabled": {
"description": "Whether snapshots should be enabled.",
"type": "boolean"
},
"type": {
"description": "The type of this Volume.",
"enum": [
"TYPE_UNSPECIFIED",
"FLASH",
"DISK"
],
"enumDescriptions": [
"The unspecified type.",
"This Volume is on flash.",
"This Volume is on disk."
],
"type": "string"
},
"userNote": {
"description": "User note field, it can be used by customers to add additional information for the BMS Ops team (b/194021617).",
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Bare Metal Solution API",
"version": "v1alpha1",
"version_module": true
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,725 @@
{
"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://bigqueryconnection.googleapis.com/",
"batchPath": "batch",
"canonicalName": "BigQuery Connection Service",
"description": "Allows users to manage BigQuery connections to external data sources.",
"discoveryVersion": "v1",
"documentationLink": "https://cloud.google.com/bigquery/docs/connections-api-intro",
"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": "bigqueryconnection:v1beta1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://bigqueryconnection.mtls.googleapis.com/",
"name": "bigqueryconnection",
"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": {
"connections": {
"methods": {
"create": {
"description": "Creates a new connection.",
"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections",
"httpMethod": "POST",
"id": "bigqueryconnection.projects.locations.connections.create",
"parameterOrder": [
"parent"
],
"parameters": {
"connectionId": {
"description": "Optional. Connection id that should be assigned to the created connection.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. Parent resource name. Must be in the format `projects/{project_id}/locations/{location_id}`",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+parent}/connections",
"request": {
"$ref": "Connection"
},
"response": {
"$ref": "Connection"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"delete": {
"description": "Deletes connection and associated credential.",
"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}",
"httpMethod": "DELETE",
"id": "bigqueryconnection.projects.locations.connections.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of the deleted connection, for example: `projects/{project_id}/locations/{location_id}/connections/{connection_id}`",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$",
"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": "Returns specified connection.",
"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}",
"httpMethod": "GET",
"id": "bigqueryconnection.projects.locations.connections.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of the requested connection, for example: `projects/{project_id}/locations/{location_id}/connections/{connection_id}`",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+name}",
"response": {
"$ref": "Connection"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"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}/connections/{connectionsId}:getIamPolicy",
"httpMethod": "POST",
"id": "bigqueryconnection.projects.locations.connections.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/[^/]+/connections/[^/]+$",
"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": "Returns a list of connections in the given project.",
"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections",
"httpMethod": "GET",
"id": "bigqueryconnection.projects.locations.connections.list",
"parameterOrder": [
"parent"
],
"parameters": {
"maxResults": {
"description": "Required. Maximum number of results per page.",
"format": "uint32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "Page token.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. Parent resource name. Must be in the form: `projects/{project_id}/locations/{location_id}`",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+parent}/connections",
"response": {
"$ref": "ListConnectionsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"patch": {
"description": "Updates the specified connection. For security reasons, also resets credential if connection properties are in the update field mask.",
"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}",
"httpMethod": "PATCH",
"id": "bigqueryconnection.projects.locations.connections.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of the connection to update, for example: `projects/{project_id}/locations/{location_id}/connections/{connection_id}`",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "Required. Update mask for the connection fields to be updated.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v1beta1/{+name}",
"request": {
"$ref": "Connection"
},
"response": {
"$ref": "Connection"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"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}/connections/{connectionsId}:setIamPolicy",
"httpMethod": "POST",
"id": "bigqueryconnection.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": "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 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}/connections/{connectionsId}:testIamPermissions",
"httpMethod": "POST",
"id": "bigqueryconnection.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": "v1beta1/{+resource}:testIamPermissions",
"request": {
"$ref": "TestIamPermissionsRequest"
},
"response": {
"$ref": "TestIamPermissionsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"updateCredential": {
"description": "Sets the credential for the specified connection.",
"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/credential",
"httpMethod": "PATCH",
"id": "bigqueryconnection.projects.locations.connections.updateCredential",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of the connection, for example: `projects/{project_id}/locations/{location_id}/connections/{connection_id}/credential`",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+/credential$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+name}",
"request": {
"$ref": "ConnectionCredential"
},
"response": {
"$ref": "Empty"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
}
}
}
}
}
},
"revision": "20240623",
"rootUrl": "https://bigqueryconnection.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"
},
"CloudSqlCredential": {
"description": "Credential info for the Cloud SQL.",
"id": "CloudSqlCredential",
"properties": {
"password": {
"description": "The password for the credential.",
"type": "string"
},
"username": {
"description": "The username for the credential.",
"type": "string"
}
},
"type": "object"
},
"CloudSqlProperties": {
"description": "Connection properties specific to the Cloud SQL.",
"id": "CloudSqlProperties",
"properties": {
"credential": {
"$ref": "CloudSqlCredential",
"description": "Input only. Cloud SQL credential."
},
"database": {
"description": "Database name.",
"type": "string"
},
"instanceId": {
"description": "Cloud SQL instance ID in the form `project:location:instance`.",
"type": "string"
},
"serviceAccountId": {
"description": "Output only. The account ID of the service used for the purpose of this connection. When the connection is used in the context of an operation in BigQuery, this service account will serve as the identity being used for connecting to the CloudSQL instance specified in this connection.",
"readOnly": true,
"type": "string"
},
"type": {
"description": "Type of the Cloud SQL database.",
"enum": [
"DATABASE_TYPE_UNSPECIFIED",
"POSTGRES",
"MYSQL"
],
"enumDescriptions": [
"Unspecified database type.",
"Cloud SQL for PostgreSQL.",
"Cloud SQL for MySQL."
],
"type": "string"
}
},
"type": "object"
},
"Connection": {
"description": "Configuration parameters to establish connection with an external data source, except the credential attributes.",
"id": "Connection",
"properties": {
"cloudSql": {
"$ref": "CloudSqlProperties",
"description": "Cloud SQL properties."
},
"creationTime": {
"description": "Output only. The creation timestamp of the connection.",
"format": "int64",
"readOnly": true,
"type": "string"
},
"description": {
"description": "User provided description.",
"type": "string"
},
"friendlyName": {
"description": "User provided display name for the connection.",
"type": "string"
},
"hasCredential": {
"description": "Output only. True, if credential is configured for this connection.",
"readOnly": true,
"type": "boolean"
},
"lastModifiedTime": {
"description": "Output only. The last update timestamp of the connection.",
"format": "int64",
"readOnly": true,
"type": "string"
},
"name": {
"description": "The resource name of the connection in the form of: `projects/{project_id}/locations/{location_id}/connections/{connection_id}`",
"type": "string"
}
},
"type": "object"
},
"ConnectionCredential": {
"description": "Credential to use with a connection.",
"id": "ConnectionCredential",
"properties": {
"cloudSql": {
"$ref": "CloudSqlCredential",
"description": "Credential for Cloud SQL database."
}
},
"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"
},
"ListConnectionsResponse": {
"description": "The response for ConnectionService.ListConnections.",
"id": "ListConnectionsResponse",
"properties": {
"connections": {
"description": "List of connections.",
"items": {
"$ref": "Connection"
},
"type": "array"
},
"nextPageToken": {
"description": "Next page token.",
"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"
},
"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"
},
"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": "BigQuery Connection API",
"version": "v1beta1",
"version_module": true
}

View File

@@ -0,0 +1,715 @@
{
"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://bigquerydatapolicy.googleapis.com/",
"batchPath": "batch",
"canonicalName": "BigQuery DataPolicy Service",
"description": "Allows users to manage BigQuery data policies.",
"discoveryVersion": "v1",
"documentationLink": "https://cloud.google.com/bigquery/docs/column-data-masking",
"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": "bigquerydatapolicy:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://bigquerydatapolicy.mtls.googleapis.com/",
"name": "bigquerydatapolicy",
"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": {
"dataPolicies": {
"methods": {
"create": {
"description": "Creates a new data policy under a project with the given `dataPolicyId` (used as the display name), policy tag, and data policy type.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataPolicies",
"httpMethod": "POST",
"id": "bigquerydatapolicy.projects.locations.dataPolicies.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. Resource name of the project that the data policy will belong to. The format is `projects/{project_number}/locations/{location_id}`.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+parent}/dataPolicies",
"request": {
"$ref": "DataPolicy"
},
"response": {
"$ref": "DataPolicy"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"delete": {
"description": "Deletes the data policy specified by its resource name.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataPolicies/{dataPoliciesId}",
"httpMethod": "DELETE",
"id": "bigquerydatapolicy.projects.locations.dataPolicies.delete",
"parameterOrder": [
"name"
],
"parameters": {
"force": {
"description": "Optional. If true, the data policy will be deleted even when it is referenced by one or more table columns.",
"location": "query",
"type": "boolean"
},
"name": {
"description": "Required. Resource name of the data policy to delete. Format is `projects/{project_number}/locations/{location_id}/dataPolicies/{data_policy_id}`.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/dataPolicies/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Empty"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"get": {
"description": "Gets the data policy specified by its resource name.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataPolicies/{dataPoliciesId}",
"httpMethod": "GET",
"id": "bigquerydatapolicy.projects.locations.dataPolicies.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Resource name of the requested data policy. Format is `projects/{project_number}/locations/{location_id}/dataPolicies/{data_policy_id}`.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/dataPolicies/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "DataPolicy"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"getIamPolicy": {
"description": "Gets the IAM policy for the specified data policy.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataPolicies/{dataPoliciesId}:getIamPolicy",
"httpMethod": "POST",
"id": "bigquerydatapolicy.projects.locations.dataPolicies.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/[^/]+/dataPolicies/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+resource}:getIamPolicy",
"request": {
"$ref": "GetIamPolicyRequest"
},
"response": {
"$ref": "Policy"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"list": {
"description": "List all of the data policies in the specified parent project.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataPolicies",
"httpMethod": "GET",
"id": "bigquerydatapolicy.projects.locations.dataPolicies.list",
"parameterOrder": [
"parent"
],
"parameters": {
"filter": {
"description": "Filters the data policies by policy tags that they are associated with. Currently filter only supports \"policy_tag\" based filtering and OR based predicates. Sample filter can be \"policy_tag: projects/1/locations/us/taxonomies/2/policyTags/3\". You may also use wildcard such as \"policy_tag: projects/1/locations/us/taxonomies/2*\". Please note that OR predicates cannot be used with wildcard filters.",
"location": "query",
"type": "string"
},
"pageSize": {
"description": "The maximum number of data policies to return. Must be a value between 1 and 1000. If not set, defaults to 50.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "The `nextPageToken` value returned from a previous list request, if any. If not set, defaults to an empty string.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. Resource name of the project for which to list data policies. Format is `projects/{project_number}/locations/{location_id}`.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+parent}/dataPolicies",
"response": {
"$ref": "ListDataPoliciesResponse"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"patch": {
"description": "Updates the metadata for an existing data policy. The target data policy can be specified by the resource name.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataPolicies/{dataPoliciesId}",
"httpMethod": "PATCH",
"id": "bigquerydatapolicy.projects.locations.dataPolicies.patch",
"parameterOrder": [
"name"
],
"parameters": {
"allowMissing": {
"description": "Optional. If set to true, and the data policy is not found, a new data policy will be created. In this situation, update_mask is ignored.",
"location": "query",
"type": "boolean"
},
"name": {
"description": "Output only. Resource name of this data policy, in the format of `projects/{project_number}/locations/{location_id}/dataPolicies/{data_policy_id}`.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/dataPolicies/[^/]+$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask If not set, defaults to all of the fields that are allowed to update. Updates to the `name` and `dataPolicyId` fields are not allowed.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v1/{+name}",
"request": {
"$ref": "DataPolicy"
},
"response": {
"$ref": "DataPolicy"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"rename": {
"description": "Renames the id (display name) of the specified data policy.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataPolicies/{dataPoliciesId}:rename",
"httpMethod": "POST",
"id": "bigquerydatapolicy.projects.locations.dataPolicies.rename",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Resource name of the data policy to rename. The format is `projects/{project_number}/locations/{location_id}/dataPolicies/{data_policy_id}`",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/dataPolicies/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}:rename",
"request": {
"$ref": "RenameDataPolicyRequest"
},
"response": {
"$ref": "DataPolicy"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"setIamPolicy": {
"description": "Sets the IAM policy for the specified data policy.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataPolicies/{dataPoliciesId}:setIamPolicy",
"httpMethod": "POST",
"id": "bigquerydatapolicy.projects.locations.dataPolicies.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/[^/]+/dataPolicies/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+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 caller's permission on the specified data policy resource.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataPolicies/{dataPoliciesId}:testIamPermissions",
"httpMethod": "POST",
"id": "bigquerydatapolicy.projects.locations.dataPolicies.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/[^/]+/dataPolicies/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+resource}:testIamPermissions",
"request": {
"$ref": "TestIamPermissionsRequest"
},
"response": {
"$ref": "TestIamPermissionsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
}
}
}
}
}
},
"revision": "20250317",
"rootUrl": "https://bigquerydatapolicy.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"
},
"DataMaskingPolicy": {
"description": "The data masking policy that is used to specify data masking rule.",
"id": "DataMaskingPolicy",
"properties": {
"predefinedExpression": {
"description": "A predefined masking expression.",
"enum": [
"PREDEFINED_EXPRESSION_UNSPECIFIED",
"SHA256",
"ALWAYS_NULL",
"DEFAULT_MASKING_VALUE",
"LAST_FOUR_CHARACTERS",
"FIRST_FOUR_CHARACTERS",
"EMAIL_MASK",
"DATE_YEAR_MASK"
],
"enumDescriptions": [
"Default, unspecified predefined expression. No masking will take place since no expression is specified.",
"Masking expression to replace data with SHA-256 hash.",
"Masking expression to replace data with NULLs.",
"Masking expression to replace data with their default masking values. The default masking values for each type listed as below: * STRING: \"\" * BYTES: b'' * INTEGER: 0 * FLOAT: 0.0 * NUMERIC: 0 * BOOLEAN: FALSE * TIMESTAMP: 1970-01-01 00:00:00 UTC * DATE: 1970-01-01 * TIME: 00:00:00 * DATETIME: 1970-01-01T00:00:00 * GEOGRAPHY: POINT(0 0) * BIGNUMERIC: 0 * ARRAY: [] * STRUCT: NOT_APPLICABLE * JSON: NULL",
"Masking expression shows the last four characters of text. The masking behavior is as follows: * If text length > 4 characters: Replace text with XXXXX, append last four characters of original text. * If text length <= 4 characters: Apply SHA-256 hash.",
"Masking expression shows the first four characters of text. The masking behavior is as follows: * If text length > 4 characters: Replace text with XXXXX, prepend first four characters of original text. * If text length <= 4 characters: Apply SHA-256 hash.",
"Masking expression for email addresses. The masking behavior is as follows: * Syntax-valid email address: Replace username with XXXXX. For example, cloudysanfrancisco@gmail.com becomes XXXXX@gmail.com. * Syntax-invalid email address: Apply SHA-256 hash. For more information, see Email mask.",
"Masking expression to only show the *year* of `Date`, `DateTime` and `TimeStamp`. For example, with the year 2076: * DATE : 2076-01-01 * DATETIME : 2076-01-01T00:00:00 * TIMESTAMP : 2076-01-01 00:00:00 UTC Truncation occurs according to the UTC time zone. To change this, adjust the default time zone using the `time_zone` system variable. For more information, see the System variables reference."
],
"type": "string"
},
"routine": {
"description": "The name of the BigQuery routine that contains the custom masking routine, in the format of `projects/{project_number}/datasets/{dataset_id}/routines/{routine_id}`.",
"type": "string"
}
},
"type": "object"
},
"DataPolicy": {
"description": "Represents the label-policy binding.",
"id": "DataPolicy",
"properties": {
"dataMaskingPolicy": {
"$ref": "DataMaskingPolicy",
"description": "The data masking policy that specifies the data masking rule to use."
},
"dataPolicyId": {
"description": "User-assigned (human readable) ID of the data policy that needs to be unique within a project. Used as {data_policy_id} in part of the resource name.",
"type": "string"
},
"dataPolicyType": {
"description": "Required. Data policy type. Type of data policy.",
"enum": [
"DATA_POLICY_TYPE_UNSPECIFIED",
"COLUMN_LEVEL_SECURITY_POLICY",
"DATA_MASKING_POLICY"
],
"enumDescriptions": [
"Default value for the data policy type. This should not be used.",
"Used to create a data policy for column-level security, without data masking.",
"Used to create a data policy for data masking."
],
"type": "string"
},
"name": {
"description": "Output only. Resource name of this data policy, in the format of `projects/{project_number}/locations/{location_id}/dataPolicies/{data_policy_id}`.",
"readOnly": true,
"type": "string"
},
"policyTag": {
"description": "Policy tag resource name, in the format of `projects/{project_number}/locations/{location_id}/taxonomies/{taxonomy_id}/policyTags/{policyTag_id}`.",
"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"
},
"ListDataPoliciesResponse": {
"description": "Response message for the ListDataPolicies method.",
"id": "ListDataPoliciesResponse",
"properties": {
"dataPolicies": {
"description": "Data policies that belong to the requested project.",
"items": {
"$ref": "DataPolicy"
},
"type": "array"
},
"nextPageToken": {
"description": "Token used to retrieve the next page of results, or empty if there are no more results.",
"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"
},
"RenameDataPolicyRequest": {
"description": "Request message for the RenameDataPolicy method.",
"id": "RenameDataPolicyRequest",
"properties": {
"newDataPolicyId": {
"description": "Required. The new data policy id.",
"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"
},
"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": "BigQuery Data Policy API",
"version": "v1",
"version_module": true
}

View File

@@ -0,0 +1,802 @@
{
"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://bigquerydatapolicy.googleapis.com/",
"batchPath": "batch",
"canonicalName": "BigQuery DataPolicy Service",
"description": "Allows users to manage BigQuery data policies.",
"discoveryVersion": "v1",
"documentationLink": "https://cloud.google.com/bigquery/docs/column-data-masking",
"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": "bigquerydatapolicy:v2",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://bigquerydatapolicy.mtls.googleapis.com/",
"name": "bigquerydatapolicy",
"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": {
"dataPolicies": {
"methods": {
"addGrantees": {
"description": "Adds new grantees to a data policy. The new grantees will be added to the existing grantees. If the request contains a duplicate grantee, the grantee will be ignored. If the request contains a grantee that already exists, the grantee will be ignored.",
"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dataPolicies/{dataPoliciesId}:addGrantees",
"httpMethod": "POST",
"id": "bigquerydatapolicy.projects.locations.dataPolicies.addGrantees",
"parameterOrder": [
"dataPolicy"
],
"parameters": {
"dataPolicy": {
"description": "Required. Resource name of this data policy, in the format of `projects/{project_number}/locations/{location_id}/dataPolicies/{data_policy_id}`.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/dataPolicies/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+dataPolicy}:addGrantees",
"request": {
"$ref": "AddGranteesRequest"
},
"response": {
"$ref": "DataPolicy"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"create": {
"description": "Creates a new data policy under a project with the given `data_policy_id` (used as the display name), and data policy type.",
"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dataPolicies",
"httpMethod": "POST",
"id": "bigquerydatapolicy.projects.locations.dataPolicies.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. Resource name of the project that the data policy will belong to. The format is `projects/{project_number}/locations/{location_id}`.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+parent}/dataPolicies",
"request": {
"$ref": "CreateDataPolicyRequest"
},
"response": {
"$ref": "DataPolicy"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"delete": {
"description": "Deletes the data policy specified by its resource name.",
"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dataPolicies/{dataPoliciesId}",
"httpMethod": "DELETE",
"id": "bigquerydatapolicy.projects.locations.dataPolicies.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Resource name of the data policy to delete. Format is `projects/{project_number}/locations/{location_id}/dataPolicies/{id}`.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/dataPolicies/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+name}",
"response": {
"$ref": "Empty"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"get": {
"description": "Gets the data policy specified by its resource name.",
"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dataPolicies/{dataPoliciesId}",
"httpMethod": "GET",
"id": "bigquerydatapolicy.projects.locations.dataPolicies.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Resource name of the requested data policy. Format is `projects/{project_number}/locations/{location_id}/dataPolicies/{id}`.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/dataPolicies/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+name}",
"response": {
"$ref": "DataPolicy"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"getIamPolicy": {
"description": "Gets the IAM policy for the specified data policy.",
"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dataPolicies/{dataPoliciesId}:getIamPolicy",
"httpMethod": "POST",
"id": "bigquerydatapolicy.projects.locations.dataPolicies.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/[^/]+/dataPolicies/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+resource}:getIamPolicy",
"request": {
"$ref": "GetIamPolicyRequest"
},
"response": {
"$ref": "Policy"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"list": {
"description": "List all of the data policies in the specified parent project.",
"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dataPolicies",
"httpMethod": "GET",
"id": "bigquerydatapolicy.projects.locations.dataPolicies.list",
"parameterOrder": [
"parent"
],
"parameters": {
"filter": {
"description": "Optional. Filters the data policies by policy tags that they are associated with. Currently filter only supports \"policy_tag\" based filtering and OR based predicates. Sample filter can be \"policy_tag: projects/1/locations/us/taxonomies/2/policyTags/3\". You may also use wildcard such as \"policy_tag: projects/1/locations/us/taxonomies/2*\". Please note that OR predicates cannot be used with wildcard filters.",
"location": "query",
"type": "string"
},
"pageSize": {
"description": "Optional. The maximum number of data policies to return. Must be a value between 1 and 1000. If not set, defaults to 50.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "Optional. The `nextPageToken` value returned from a previous list request, if any. If not set, defaults to an empty string.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. Resource name of the project for which to list data policies. Format is `projects/{project_number}/locations/{location_id}`.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+parent}/dataPolicies",
"response": {
"$ref": "ListDataPoliciesResponse"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"patch": {
"description": "Updates the metadata for an existing data policy. The target data policy can be specified by the resource name.",
"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dataPolicies/{dataPoliciesId}",
"httpMethod": "PATCH",
"id": "bigquerydatapolicy.projects.locations.dataPolicies.patch",
"parameterOrder": [
"name"
],
"parameters": {
"allowMissing": {
"description": "Optional. If set to true, and the data policy is not found, a new data policy will be created. In this situation, update_mask is ignored.",
"location": "query",
"type": "boolean"
},
"name": {
"description": "Identifier. Resource name of this data policy, in the format of `projects/{project_number}/locations/{location_id}/dataPolicies/{data_policy_id}`.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/dataPolicies/[^/]+$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "Optional. The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask If not set, defaults to all of the fields that are allowed to update. Updates to the `name` and `dataPolicyId` fields are not allowed.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v2/{+name}",
"request": {
"$ref": "DataPolicy"
},
"response": {
"$ref": "DataPolicy"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"removeGrantees": {
"description": "Removes grantees from a data policy. The grantees will be removed from the existing grantees. If the request contains a grantee that does not exist, the grantee will be ignored.",
"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dataPolicies/{dataPoliciesId}:removeGrantees",
"httpMethod": "POST",
"id": "bigquerydatapolicy.projects.locations.dataPolicies.removeGrantees",
"parameterOrder": [
"dataPolicy"
],
"parameters": {
"dataPolicy": {
"description": "Required. Resource name of this data policy, in the format of `projects/{project_number}/locations/{location_id}/dataPolicies/{data_policy_id}`.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/dataPolicies/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+dataPolicy}:removeGrantees",
"request": {
"$ref": "RemoveGranteesRequest"
},
"response": {
"$ref": "DataPolicy"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"setIamPolicy": {
"description": "Sets the IAM policy for the specified data policy.",
"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dataPolicies/{dataPoliciesId}:setIamPolicy",
"httpMethod": "POST",
"id": "bigquerydatapolicy.projects.locations.dataPolicies.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/[^/]+/dataPolicies/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+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 caller's permission on the specified data policy resource.",
"flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dataPolicies/{dataPoliciesId}:testIamPermissions",
"httpMethod": "POST",
"id": "bigquerydatapolicy.projects.locations.dataPolicies.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/[^/]+/dataPolicies/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v2/{+resource}:testIamPermissions",
"request": {
"$ref": "TestIamPermissionsRequest"
},
"response": {
"$ref": "TestIamPermissionsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
}
}
}
}
}
},
"revision": "20251001",
"rootUrl": "https://bigquerydatapolicy.googleapis.com/",
"schemas": {
"AddGranteesRequest": {
"description": "Request message for the AddGrantees method.",
"id": "AddGranteesRequest",
"properties": {
"grantees": {
"description": "Required. IAM principal that should be granted Fine Grained Access to the underlying data goverened by the data policy. The target data policy is determined by the `data_policy` field. Uses the [IAM V2 principal syntax](https://cloud.google.com/iam/docs/principal-identifiers#v2). Supported principal types: * User * Group * Service account",
"items": {
"type": "string"
},
"type": "array"
}
},
"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"
},
"CreateDataPolicyRequest": {
"description": "Request message for the CreateDataPolicy method.",
"id": "CreateDataPolicyRequest",
"properties": {
"dataPolicy": {
"$ref": "DataPolicy",
"description": "Required. The data policy to create. The `name` field does not need to be provided for the data policy creation."
},
"dataPolicyId": {
"description": "Required. User-assigned (human readable) ID of the data policy that needs to be unique within a project. Used as {data_policy_id} in part of the resource name.",
"type": "string"
}
},
"type": "object"
},
"DataMaskingPolicy": {
"description": "The policy used to specify data masking rule.",
"id": "DataMaskingPolicy",
"properties": {
"predefinedExpression": {
"description": "Optional. A predefined masking expression.",
"enum": [
"PREDEFINED_EXPRESSION_UNSPECIFIED",
"SHA256",
"ALWAYS_NULL",
"DEFAULT_MASKING_VALUE",
"LAST_FOUR_CHARACTERS",
"FIRST_FOUR_CHARACTERS",
"EMAIL_MASK",
"DATE_YEAR_MASK",
"RANDOM_HASH"
],
"enumDescriptions": [
"Default, unspecified predefined expression. No masking will take place since no expression is specified.",
"Masking expression to replace data with SHA-256 hash.",
"Masking expression to replace data with NULLs.",
"Masking expression to replace data with their default masking values. The default masking values for each type listed as below: * STRING: \"\" * BYTES: b'' * INTEGER: 0 * FLOAT: 0.0 * NUMERIC: 0 * BOOLEAN: FALSE * TIMESTAMP: 1970-01-01 00:00:00 UTC * DATE: 1970-01-01 * TIME: 00:00:00 * DATETIME: 1970-01-01T00:00:00 * GEOGRAPHY: POINT(0 0) * BIGNUMERIC: 0 * ARRAY: [] * STRUCT: NOT_APPLICABLE * JSON: NULL",
"Masking expression shows the last four characters of text. The masking behavior is as follows: * If text length > 4 characters: Replace text with XXXXX, append last four characters of original text. * If text length <= 4 characters: Apply SHA-256 hash.",
"Masking expression shows the first four characters of text. The masking behavior is as follows: * If text length > 4 characters: Replace text with XXXXX, prepend first four characters of original text. * If text length <= 4 characters: Apply SHA-256 hash.",
"Masking expression for email addresses. The masking behavior is as follows: * Syntax-valid email address: Replace username with XXXXX. For example, cloudysanfrancisco@gmail.com becomes XXXXX@gmail.com. * Syntax-invalid email address: Apply SHA-256 hash. For more information, see [Email mask](https://cloud.google.com/bigquery/docs/column-data-masking-intro#masking_options).",
"Masking expression to only show the *year* of `Date`, `DateTime` and `TimeStamp`. For example, with the year 2076: * DATE : 2076-01-01 * DATETIME : 2076-01-01T00:00:00 * TIMESTAMP : 2076-01-01 00:00:00 UTC Truncation occurs according to the UTC time zone. To change this, adjust the default time zone using the `time_zone` system variable. For more information, see [System variables reference](https://cloud.google.com/bigquery/docs/reference/system-variables).",
"Masking expression that uses hashing to mask column data. It differs from SHA256 in that a unique random value is generated for each query and is added to the hash input, resulting in the hash / masked result to be different for each query. Hence the name \"random hash\"."
],
"type": "string"
},
"routine": {
"description": "Optional. The name of the BigQuery routine that contains the custom masking routine, in the format of `projects/{project_number}/datasets/{dataset_id}/routines/{routine_id}`.",
"type": "string"
}
},
"type": "object"
},
"DataPolicy": {
"description": "Represents the label-policy binding.",
"id": "DataPolicy",
"properties": {
"dataMaskingPolicy": {
"$ref": "DataMaskingPolicy",
"description": "Optional. The data masking policy that specifies the data masking rule to use. It must be set if the data policy type is DATA_MASKING_POLICY."
},
"dataPolicyId": {
"description": "Output only. User-assigned (human readable) ID of the data policy that needs to be unique within a project. Used as {data_policy_id} in part of the resource name.",
"readOnly": true,
"type": "string"
},
"dataPolicyType": {
"description": "Required. Type of data policy.",
"enum": [
"DATA_POLICY_TYPE_UNSPECIFIED",
"DATA_MASKING_POLICY",
"RAW_DATA_ACCESS_POLICY",
"COLUMN_LEVEL_SECURITY_POLICY"
],
"enumDescriptions": [
"Default value for the data policy type. This should not be used.",
"Used to create a data policy for data masking.",
"Used to create a data policy for raw data access.",
"Used to create a data policy for column-level security, without data masking. This is deprecated in V2 api and only present to support GET and LIST operations for V1 data policies in V2 api."
],
"type": "string"
},
"etag": {
"description": "The etag for this Data Policy. This field is used for UpdateDataPolicy calls. If Data Policy exists, this field is required and must match the server's etag. It will also be populated in the response of GetDataPolicy, CreateDataPolicy, and UpdateDataPolicy calls.",
"type": "string"
},
"grantees": {
"description": "Optional. The list of IAM principals that have Fine Grained Access to the underlying data goverened by this data policy. Uses the [IAM V2 principal syntax](https://cloud.google.com/iam/docs/principal-identifiers#v2) Only supports principal types users, groups, serviceaccounts, cloudidentity. This field is supported in V2 Data Policy only. In case of V1 data policies (i.e. verion = 1 and policy_tag is set), this field is not populated.",
"items": {
"type": "string"
},
"type": "array"
},
"name": {
"description": "Identifier. Resource name of this data policy, in the format of `projects/{project_number}/locations/{location_id}/dataPolicies/{data_policy_id}`.",
"type": "string"
},
"policyTag": {
"description": "Output only. Policy tag resource name, in the format of `projects/{project_number}/locations/{location_id}/taxonomies/{taxonomy_id}/policyTags/{policyTag_id}`. policy_tag is supported only for V1 data policies.",
"readOnly": true,
"type": "string"
},
"version": {
"description": "Output only. The version of the Data Policy resource.",
"enum": [
"VERSION_UNSPECIFIED",
"V1",
"V2"
],
"enumDescriptions": [
"Default value for the data policy version. This should not be used.",
"V1 data policy version. V1 Data Policies will be present in V2 List api response, but can not be created/updated/deleted from V2 api.",
"V2 data policy version."
],
"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"
},
"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"
},
"ListDataPoliciesResponse": {
"description": "Response message for the ListDataPolicies method.",
"id": "ListDataPoliciesResponse",
"properties": {
"dataPolicies": {
"description": "Data policies that belong to the requested project.",
"items": {
"$ref": "DataPolicy"
},
"type": "array"
},
"nextPageToken": {
"description": "Token used to retrieve the next page of results, or empty if there are no more results.",
"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"
},
"RemoveGranteesRequest": {
"description": "Request message for the RemoveGrantees method.",
"id": "RemoveGranteesRequest",
"properties": {
"grantees": {
"description": "Required. IAM principal that should be revoked from Fine Grained Access to the underlying data goverened by the data policy. The target data policy is determined by the `data_policy` field. Uses the [IAM V2 principal syntax](https://cloud.google.com/iam/docs/principal-identifiers#v2). Supported principal types: * User * Group * Service account",
"items": {
"type": "string"
},
"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"
},
"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": "BigQuery Data Policy API",
"version": "v2",
"version_module": true
}

View File

@@ -0,0 +1,904 @@
{
"description": "A service to modify your BigQuery flat-rate reservations.",
"documentationLink": "https://cloud.google.com/bigquery/",
"parameters": {
"$.xgafv": {
"enum": [
"1",
"2"
],
"location": "query",
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"description": "V1 error format.",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"type": "string",
"location": "query"
},
"callback": {
"location": "query",
"type": "string",
"description": "JSONP"
},
"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.",
"type": "string",
"location": "query"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"uploadType": {
"location": "query",
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"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.",
"type": "string",
"location": "query"
},
"alt": {
"location": "query",
"description": "Data format for response.",
"enum": [
"json",
"media",
"proto"
],
"default": "json",
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"type": "string"
},
"upload_protocol": {
"location": "query",
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"type": "string",
"location": "query"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"type": "boolean",
"location": "query"
}
},
"ownerName": "Google",
"batchPath": "batch",
"revision": "20200801",
"title": "BigQuery Reservation API",
"schemas": {
"ListSlotPoolsResponse": {
"description": "The response for ReservationService.ListSlotPools.",
"type": "object",
"id": "ListSlotPoolsResponse",
"properties": {
"nextPageToken": {
"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.",
"type": "string"
},
"slotPools": {
"items": {
"$ref": "SlotPool"
},
"type": "array",
"description": "List of slot pools visible to the user."
}
}
},
"ReservationGrant": {
"id": "ReservationGrant",
"type": "object",
"description": "A ReservationGrant allows a project to submit jobs of a certain type using slots from the specified reservation.",
"properties": {
"grantee": {
"description": "The resource which will use the reservation. E.g. projects/myproject, folders/123, organizations/456.",
"type": "string"
},
"name": {
"type": "string",
"description": "Output only. Name of the resource. E.g.: projects/myproject/locations/eu/reservationGrants/123."
},
"state": {
"enum": [
"STATE_UNSPECIFIED",
"PENDING",
"ACTIVE"
],
"enumDescriptions": [
"Invalid state value.",
"Queries from grantee will be executed as on-demand, if related ReservationGrant is pending.",
"ReservationGrant is ready."
],
"description": "Output only. State of the ReservationGrant.",
"type": "string",
"readOnly": true
},
"reservation": {
"description": "Resource name of the reservation. E.g., projects/myproject/locations/eu/reservations/my_reservation. This reservation must be in the same location as the grant. This reservation should belong to the same parent project.",
"type": "string"
},
"jobType": {
"type": "string",
"description": "Which type of jobs will use the reservation.",
"enum": [
"JOB_TYPE_UNSPECIFIED",
"PIPELINE",
"QUERY"
],
"enumDescriptions": [
"Invalid type. Requests with this value will be rejected with error code `google.rpc.Code.INVALID_ARGUMENT`.",
"Pipeline (load/export) jobs from the project will use the reservation.",
"Query jobs from the project will use the reservation."
]
}
}
},
"Operation": {
"description": "This resource represents a long-running operation that is the result of a network API call.",
"id": "Operation",
"type": "object",
"properties": {
"response": {
"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",
"additionalProperties": {
"type": "any",
"description": "Properties of the object. Contains field @type with type URL."
}
},
"done": {
"type": "boolean",
"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."
},
"error": {
"$ref": "Status",
"description": "The error result of the operation in case of failure or cancellation."
},
"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."
},
"name": {
"type": "string",
"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}`."
}
}
},
"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"
},
"code": {
"description": "The status code, which should be an enum value of google.rpc.Code.",
"format": "int32",
"type": "integer"
},
"details": {
"type": "array",
"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"
}
}
},
"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"
},
"ListReservationsResponse": {
"description": "The response for ReservationService.ListReservations.",
"properties": {
"nextPageToken": {
"type": "string",
"description": "Token to retrieve the next page of results, or empty if there are no more results in the list."
},
"reservations": {
"type": "array",
"items": {
"$ref": "Reservation"
},
"description": "List of reservations visible to the user."
}
},
"type": "object",
"id": "ListReservationsResponse"
},
"Reservation": {
"id": "Reservation",
"description": "A reservation is a mechanism used to guarantee slots to users.",
"type": "object",
"properties": {
"name": {
"description": "The resource name of the reservation, e.g., \"projects/*/locations/*/reservations/dev/team/product\". Reservation names (e.g., \"dev/team/product\") exceeding a depth of six will fail with `google.rpc.Code.INVALID_ARGUMENT`.",
"type": "string"
},
"useParentReservation": {
"description": "If true, any query using this reservation will also be submitted to the parent reservation. This allows the query to share the additional slot capacity of the parent with other queries in the parent reservation. If the parent also has this field set to true, then this process will continue until it encounters a reservation for which this is false. If false, a query using this reservation will execute with the maximum slot capacity as specified above. If not specified, default value is true. Ignored for top-level reservation.",
"type": "boolean"
},
"slotCapacity": {
"format": "int64",
"type": "string",
"description": "Maximum slots available to this reservation and its children. A slot is a unit of computational power in BigQuery, and serves as the unit of parallelism. In a scan of a multi-partitioned table, a single slot operates on a single partition of the table. If the new reservation's slot capacity exceed the parent's slot capacity or if total slot capacity of the new reservation and its siblings exceeds the parent's slot capacity, the request will fail with `google.rpc.Code.RESOURCE_EXHAUSTED`."
}
}
},
"SlotPool": {
"type": "object",
"id": "SlotPool",
"properties": {
"state": {
"type": "string",
"enumDescriptions": [
"Invalid state value.",
"Slot pool is pending provisioning. Pending slot pool does not contribute to the parent's slot_capacity.",
"Once slots are provisioned, slot pool becomes active. slot_count is added to the parent's slot_capacity.",
"Slot pool is failed to be activated by the backend."
],
"description": "Output only.",
"enum": [
"STATE_UNSPECIFIED",
"PENDING",
"ACTIVE",
"FAILED"
]
},
"plan": {
"description": "Slot pool commitment plan.",
"type": "string",
"enum": [
"COMMITMENT_PLAN_UNSPECIFIED",
"FLEX",
"TRIAL",
"MONTHLY",
"ANNUAL"
],
"enumDescriptions": [
"Invalid plan value. Requests with this value will be rejected with error code `google.rpc.Code.INVALID_ARGUMENT`.",
"Slot pool can be removed at any point, even after becoming ACTIVE.",
"Trial commitments have a committed period of 182 days after becoming ACTIVE. After that, they are converted to a new commitment based on the renewal_plan. Default renewal_plan for Trial commitment is Flex so that it can be deleted right after committed period ends.",
"Slot pool cannot be removed for 30 days after becoming ACTIVE.",
"Slot pool cannot be removed for 365 days after becoming ACTIVE. Note: annual commitments are automatically downgraded to monthly after 365 days."
]
},
"name": {
"type": "string",
"description": "Output only. The resource name of the slot pool, e.g., projects/myproject/locations/us-central1/reservations/myreservation/slotPools/123"
},
"slotCount": {
"format": "int64",
"description": "Number of slots in this pool.",
"type": "string"
},
"failureStatus": {
"description": "Output only. For FAILED slot pool, provides the reason of failure.",
"readOnly": true,
"$ref": "Status"
},
"commitmentEndTime": {
"description": "Output only. The end of the commitment period. Slot pool cannot be removed before commitment_end_time. It is applicable only for ACTIVE slot pools and is computed as a combination of the plan and the time when the slot pool became ACTIVE.",
"type": "string",
"format": "google-datetime"
}
},
"description": "Slot pool is a way to purchase slots with some minimum committed period of usage. Slot pool is immutable and cannot be deleted until the end of the commitment period. After the end of the commitment period, slots are still available but can be freely removed any time. Annual commitments will automatically be downgraded to monthly after the commitment ends. A slot pool resource exists as a child resource of a top-level reservation. Sum of all the ACTIVE pools slot_count is always equal to the reservation slot_capacity."
},
"CreateSlotPoolMetadata": {
"id": "CreateSlotPoolMetadata",
"properties": {
"slotPool": {
"description": "Resource name of the slot pool that is being created. E.g., projects/myproject/locations/us-central1/reservations/foo/slotPools/123",
"type": "string"
}
},
"type": "object",
"description": "The metadata for operation returned from ReservationService.CreateSlotPool."
},
"SearchReservationGrantsResponse": {
"type": "object",
"id": "SearchReservationGrantsResponse",
"properties": {
"nextPageToken": {
"type": "string",
"description": "Token to retrieve the next page of results, or empty if there are no more results in the list."
},
"reservationGrants": {
"description": "List of reservation grants visible to the user.",
"items": {
"$ref": "ReservationGrant"
},
"type": "array"
}
},
"description": "The response for ReservationService.SearchReservationGrants."
},
"Empty": {
"properties": {},
"type": "object",
"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); } The JSON representation for `Empty` is empty JSON object `{}`.",
"id": "Empty"
},
"ListReservationGrantsResponse": {
"type": "object",
"properties": {
"nextPageToken": {
"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.",
"type": "string"
},
"reservationGrants": {
"type": "array",
"description": "List of reservation grants visible to the user.",
"items": {
"$ref": "ReservationGrant"
}
}
},
"id": "ListReservationGrantsResponse",
"description": "The response for ReservationService.ListReservationGrants."
}
},
"kind": "discovery#restDescription",
"canonicalName": "BigQuery Reservation",
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/bigquery": {
"description": "View and manage your data in Google BigQuery"
},
"https://www.googleapis.com/auth/cloud-platform": {
"description": "View and manage your data across Google Cloud Platform services"
}
}
}
},
"protocol": "rest",
"version_module": true,
"version": "v1alpha2",
"resources": {
"projects": {
"resources": {
"locations": {
"methods": {
"searchReservationGrants": {
"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}:SearchReservationGrants",
"parameters": {
"pageSize": {
"description": "The maximum number of items to return.",
"type": "integer",
"location": "query",
"format": "int32"
},
"parent": {
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"description": "The parent resource name (containing project and location), which owns the grants. e.g.: \"projects/myproject/locations/us-central1\".",
"required": true,
"type": "string"
},
"pageToken": {
"location": "query",
"description": "The next_page_token value returned from a previous List request, if any.",
"type": "string"
},
"query": {
"location": "query",
"description": "Please specify resource name as grantee in the query. e.g., \"grantee=projects/myproject\" \"grantee=folders/123\" \"grantee=organizations/456\"",
"type": "string"
}
},
"id": "bigqueryreservation.projects.locations.searchReservationGrants",
"path": "v1alpha2/{+parent}:SearchReservationGrants",
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
],
"description": "Look up grants for a specified resource for a particular region. If the request is about a project: 1) Grants created on the project will be returned if they exist. 2) Otherwise grants created on the closest ancestor will be returned. 3) Grants for different JobTypes will all be returned. Same logic applies if the request is about a folder. If the request is about an organization, then grants created on the organization will be returned (organization doesn't have ancestors). Comparing to ListReservationGrants, there are two behavior differences: 1) permission on the grantee will be verified in this API. 2) Hierarchy lookup (project-\u003efolder-\u003eorganization) happens in this API.",
"parameterOrder": [
"parent"
],
"response": {
"$ref": "SearchReservationGrantsResponse"
},
"httpMethod": "GET"
}
},
"resources": {
"reservations": {
"methods": {
"createReservation": {
"parameterOrder": [
"parent"
],
"id": "bigqueryreservation.projects.locations.reservations.createReservation",
"httpMethod": "POST",
"description": "Creates a new reservation resource. Multiple reservations are created if the ancestor reservations do not exist.",
"request": {
"$ref": "Reservation"
},
"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/reservations/{reservationsId}",
"path": "v1alpha2/{+parent}",
"response": {
"$ref": "Reservation"
},
"parameters": {
"parent": {
"pattern": "^projects/[^/]+/locations/[^/]+/reservations/.*$",
"type": "string",
"description": "Project, location, and (optionally) reservation name. E.g., projects/myproject/locations/us-central1/reservations/parent",
"required": true,
"location": "path"
},
"reservationId": {
"type": "string",
"location": "query",
"description": "The reservation ID relative to the parent, e.g., \"dev\". This field must only contain alphanumeric characters."
}
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"create": {
"httpMethod": "POST",
"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/reservations",
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
],
"response": {
"$ref": "Reservation"
},
"request": {
"$ref": "Reservation"
},
"parameterOrder": [
"parent"
],
"path": "v1alpha2/{+parent}/reservations",
"id": "bigqueryreservation.projects.locations.reservations.create",
"description": "Creates a new reservation resource. Multiple reservations are created if the ancestor reservations do not exist.",
"parameters": {
"reservationId": {
"description": "The reservation ID relative to the parent, e.g., \"dev\". This field must only contain alphanumeric characters.",
"location": "query",
"type": "string"
},
"parent": {
"type": "string",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"description": "Project, location, and (optionally) reservation name. E.g., projects/myproject/locations/us-central1/reservations/parent",
"required": true,
"location": "path"
}
}
},
"delete": {
"response": {
"$ref": "Empty"
},
"parameterOrder": [
"name"
],
"path": "v1alpha2/{+name}",
"parameters": {
"name": {
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/reservations/.*$",
"type": "string",
"required": true,
"description": "Resource name of the reservation to retrieve. E.g., projects/myproject/locations/us-central1/reservations/my_reservation"
},
"force": {
"type": "boolean",
"location": "query",
"description": "If true, deletes all the child reservations of the given reservation. Otherwise, attempting to delete a reservation that has child reservations will fail with error code `google.rpc.Code.FAILED_PRECONDITION`."
}
},
"httpMethod": "DELETE",
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
],
"id": "bigqueryreservation.projects.locations.reservations.delete",
"description": "Deletes a reservation. Returns `google.rpc.Code.FAILED_PRECONDITION` in the following cases: 1. When reservation has child reservations. This check can be bypassed by setting DeleteReservationRequest.force flag to true. 2. When top-level reservation with slot pools is being deleted.",
"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/reservations/{reservationsId}"
},
"patch": {
"request": {
"$ref": "Reservation"
},
"parameterOrder": [
"name"
],
"id": "bigqueryreservation.projects.locations.reservations.patch",
"path": "v1alpha2/{+name}",
"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/reservations/{reservationsId}/{reservationsId1}",
"httpMethod": "PATCH",
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {
"updateMask": {
"location": "query",
"format": "google-fieldmask",
"description": "Standard field mask for the set of fields to be updated.",
"type": "string"
},
"name": {
"pattern": "^projects/[^/]+/locations/[^/]+/reservations/[^/]+/.*$",
"type": "string",
"location": "path",
"description": "The resource name of the reservation, e.g., \"projects/*/locations/*/reservations/dev/team/product\". Reservation names (e.g., \"dev/team/product\") exceeding a depth of six will fail with `google.rpc.Code.INVALID_ARGUMENT`.",
"required": true
}
},
"response": {
"$ref": "Reservation"
},
"description": "Updates an existing reservation resource. Applicable only for child reservations."
},
"list": {
"path": "v1alpha2/{+parent}/reservations",
"response": {
"$ref": "ListReservationsResponse"
},
"parameters": {
"parent": {
"description": "The parent resource name containing project and location, e.g.: \"projects/myproject/locations/us-central1\"",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"required": true,
"location": "path",
"type": "string"
},
"filter": {
"type": "string",
"description": "Can be used to filter out reservations based on names, capacity, etc, e.g.: filter=\"reservation.slot_capacity \u003e 200\" filter=\"reservation.name = \\\"*dev/*\\\"\" Advanced filtering syntax can be [here](https://cloud.google.com/logging/docs/view/advanced-filters).",
"location": "query"
},
"pageToken": {
"type": "string",
"location": "query",
"description": "The next_page_token value returned from a previous List request, if any."
},
"pageSize": {
"location": "query",
"type": "integer",
"format": "int32",
"description": "The maximum number of items to return."
}
},
"parameterOrder": [
"parent"
],
"description": "Lists all the reservations for the project in the specified location.",
"id": "bigqueryreservation.projects.locations.reservations.list",
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
],
"httpMethod": "GET",
"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/reservations"
},
"get": {
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
],
"id": "bigqueryreservation.projects.locations.reservations.get",
"path": "v1alpha2/{+name}",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"type": "string",
"pattern": "^projects/[^/]+/locations/[^/]+/reservations/.*$",
"description": "Resource name of the reservation to retrieve. E.g., projects/myproject/locations/us-central1/reservations/path/to/reserv",
"required": true,
"location": "path"
}
},
"description": "Returns information about the reservation.",
"httpMethod": "GET",
"response": {
"$ref": "Reservation"
},
"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/reservations/{reservationsId}"
}
},
"resources": {
"slotPools": {
"methods": {
"get": {
"path": "v1alpha2/{+name}",
"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/reservations/{reservationsId}/slotPools/{slotPoolsId}",
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
],
"response": {
"$ref": "SlotPool"
},
"parameters": {
"name": {
"location": "path",
"required": true,
"type": "string",
"pattern": "^projects/[^/]+/locations/[^/]+/reservations/[^/]+/slotPools/[^/]+$",
"description": "Resource name of the slot pool to retrieve. E.g., projects/myproject/locations/us-central1/reservations/my_reservation/slotPools/123"
}
},
"id": "bigqueryreservation.projects.locations.reservations.slotPools.get",
"httpMethod": "GET",
"description": "Returns information about the slot pool.",
"parameterOrder": [
"name"
]
},
"list": {
"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/reservations/{reservationsId}/slotPools",
"parameters": {
"pageToken": {
"location": "query",
"type": "string",
"description": "The next_page_token value returned from a previous List request, if any."
},
"parent": {
"required": true,
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/reservations/[^/]+$",
"description": "Resource name of the parent reservation. Only top-level reservations can have slot pools. E.g., projects/myproject/locations/us-central1/reservations/my_reservation",
"type": "string"
},
"pageSize": {
"type": "integer",
"format": "int32",
"description": "The maximum number of items to return.",
"location": "query"
}
},
"description": "Lists all the slot pools for the reservation.",
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
],
"path": "v1alpha2/{+parent}/slotPools",
"id": "bigqueryreservation.projects.locations.reservations.slotPools.list",
"parameterOrder": [
"parent"
],
"httpMethod": "GET",
"response": {
"$ref": "ListSlotPoolsResponse"
}
},
"delete": {
"httpMethod": "DELETE",
"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/reservations/{reservationsId}/slotPools/{slotPoolsId}",
"path": "v1alpha2/{+name}",
"description": "Deletes a slot pool. Attempting to delete slot pool before its commitment_end_time will fail with the error code `google.rpc.Code.FAILED_PRECONDITION`.",
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
],
"id": "bigqueryreservation.projects.locations.reservations.slotPools.delete",
"response": {
"$ref": "Empty"
},
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"required": true,
"description": "Resource name of the slot pool to delete. E.g., projects/myproject/locations/us-central1/reservations/my_reservation/slotPools/123",
"type": "string",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/reservations/[^/]+/slotPools/[^/]+$"
}
}
}
}
}
}
},
"operations": {
"methods": {
"cancel": {
"parameters": {
"name": {
"type": "string",
"required": true,
"location": "path",
"description": "The name of the operation resource to be cancelled.",
"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$"
}
},
"id": "bigqueryreservation.projects.locations.operations.cancel",
"response": {
"$ref": "Empty"
},
"httpMethod": "POST",
"parameterOrder": [
"name"
],
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
],
"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`.",
"path": "v1alpha2/{+name}:cancel",
"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel"
},
"get": {
"id": "bigqueryreservation.projects.locations.operations.get",
"response": {
"$ref": "Operation"
},
"path": "v1alpha2/{+name}",
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {
"name": {
"description": "The name of the operation resource.",
"location": "path",
"required": true,
"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
"type": "string"
}
},
"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
"httpMethod": "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.",
"parameterOrder": [
"name"
]
}
}
},
"reservationGrants": {
"methods": {
"list": {
"response": {
"$ref": "ListReservationGrantsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
],
"parameters": {
"pageToken": {
"type": "string",
"location": "query",
"description": "The next_page_token value returned from a previous List request, if any."
},
"parent": {
"pattern": "^projects/[^/]+/locations/[^/]+$",
"required": true,
"location": "path",
"type": "string",
"description": "The parent resource name e.g.: projects/myproject/location/eu."
},
"pageSize": {
"type": "integer",
"format": "int32",
"location": "query",
"description": "The maximum number of items to return."
}
},
"parameterOrder": [
"parent"
],
"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/reservationGrants",
"httpMethod": "GET",
"path": "v1alpha2/{+parent}/reservationGrants",
"description": "Lists reservation grants. Only explicitly created grants will be returned. E.g: organizationA contains project1 and project2. Reservation res1 exists. CreateReservationGrant was invoked previously and following grants were created explicitly: Then this API will just return the above two grants for reservation res1, and no expansion/merge will happen.",
"id": "bigqueryreservation.projects.locations.reservationGrants.list"
},
"create": {
"httpMethod": "POST",
"path": "v1alpha2/{+parent}/reservationGrants",
"id": "bigqueryreservation.projects.locations.reservationGrants.create",
"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/reservationGrants",
"description": "Returns `google.rpc.Code.PERMISSION_DENIED` if user does not have 'bigquery.admin' permissions on the project using the reservation and the project that owns this reservation. Returns `google.rpc.Code.INVALID_ARGUMENT` when location of the grant does not match location of the reservation.",
"request": {
"$ref": "ReservationGrant"
},
"parameters": {
"parent": {
"description": "The parent resource name of the reservation grant E.g.: projects/myproject/location/eu.",
"required": true,
"location": "path",
"type": "string",
"pattern": "^projects/[^/]+/locations/[^/]+$"
}
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
],
"parameterOrder": [
"parent"
],
"response": {
"$ref": "ReservationGrant"
}
},
"delete": {
"response": {
"$ref": "Empty"
},
"description": "Deletes a reservation grant. No expansion will happen. E.g: organizationA contains project1 and project2. Reservation res1 exists. CreateReservationGrant was invoked previously and following grants were created explicitly: Then deletion of won't affect . After deletion of , queries from project1 will still use res1, while queries from project2 will use on-demand mode.",
"path": "v1alpha2/{+name}",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"type": "string",
"description": "Name of the resource, e.g.: projects/myproject/locations/eu/reservationGrants/123",
"location": "path",
"required": true,
"pattern": "^projects/[^/]+/locations/[^/]+/reservationGrants/[^/]+$"
}
},
"httpMethod": "DELETE",
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
],
"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/reservationGrants/{reservationGrantsId}",
"id": "bigqueryreservation.projects.locations.reservationGrants.delete"
}
}
}
}
}
}
}
},
"name": "bigqueryreservation",
"servicePath": "",
"fullyEncodeReservedExpansion": true,
"baseUrl": "https://bigqueryreservation.googleapis.com/",
"basePath": "",
"id": "bigqueryreservation:v1alpha2",
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"rootUrl": "https://bigqueryreservation.googleapis.com/",
"mtlsRootUrl": "https://bigqueryreservation.mtls.googleapis.com/",
"ownerDomain": "google.com",
"discoveryVersion": "v1"
}

View File

@@ -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
}

View File

@@ -0,0 +1,585 @@
{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/cloud-billing": {
"description": "View and manage your Google Cloud Platform billing accounts"
},
"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://billingbudgets.googleapis.com/",
"batchPath": "batch",
"canonicalName": "CloudBillingBudget",
"description": "The Cloud Billing Budget API stores Cloud Billing budgets, which define a budget plan and the rules to execute as spend is tracked against that plan.",
"discoveryVersion": "v1",
"documentationLink": "https://cloud.google.com/billing/docs/how-to/budget-api-overview",
"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": "billingbudgets:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://billingbudgets.mtls.googleapis.com/",
"name": "billingbudgets",
"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": {
"billingAccounts": {
"resources": {
"budgets": {
"methods": {
"create": {
"description": "Creates a new budget. See [Quotas and limits](https://cloud.google.com/billing/quotas) for more information on the limits of the number of budgets you can create.",
"flatPath": "v1/billingAccounts/{billingAccountsId}/budgets",
"httpMethod": "POST",
"id": "billingbudgets.billingAccounts.budgets.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. The name of the billing account to create the budget in. Values are of the form `billingAccounts/{billingAccountId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+parent}/budgets",
"request": {
"$ref": "GoogleCloudBillingBudgetsV1Budget"
},
"response": {
"$ref": "GoogleCloudBillingBudgetsV1Budget"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"delete": {
"description": "Deletes a budget. Returns successfully if already deleted.",
"flatPath": "v1/billingAccounts/{billingAccountsId}/budgets/{budgetsId}",
"httpMethod": "DELETE",
"id": "billingbudgets.billingAccounts.budgets.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of the budget to delete. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+/budgets/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "GoogleProtobufEmpty"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"get": {
"description": "Returns a budget. WARNING: There are some fields exposed on the Google Cloud Console that aren't available on this API. When reading from the API, you will not see these fields in the return value, though they may have been set in the Cloud Console.",
"flatPath": "v1/billingAccounts/{billingAccountsId}/budgets/{budgetsId}",
"httpMethod": "GET",
"id": "billingbudgets.billingAccounts.budgets.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of budget to get. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+/budgets/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "GoogleCloudBillingBudgetsV1Budget"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"list": {
"description": "Returns a list of budgets for a billing account. WARNING: There are some fields exposed on the Google Cloud Console that aren't available on this API. When reading from the API, you will not see these fields in the return value, though they may have been set in the Cloud Console.",
"flatPath": "v1/billingAccounts/{billingAccountsId}/budgets",
"httpMethod": "GET",
"id": "billingbudgets.billingAccounts.budgets.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "Optional. The maximum number of budgets to return per page. The default and maximum value are 100.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "Optional. The value returned by the last `ListBudgetsResponse` which indicates that this is a continuation of a prior `ListBudgets` call, and that the system should return the next page of data.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. Name of billing account to list budgets under. Values are of the form `billingAccounts/{billingAccountId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+$",
"required": true,
"type": "string"
},
"scope": {
"description": "Optional. Set the scope of the budgets to be returned, in the format of the resource name. The scope of a budget is the cost that it tracks, such as costs for a single project, or the costs for all projects in a folder. Only project scope (in the format of \"projects/project-id\" or \"projects/123\") is supported in this field. When this field is set to a project's resource name, the budgets returned are tracking the costs for that project.",
"location": "query",
"type": "string"
}
},
"path": "v1/{+parent}/budgets",
"response": {
"$ref": "GoogleCloudBillingBudgetsV1ListBudgetsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"patch": {
"description": "Updates a budget and returns the updated budget. WARNING: There are some fields exposed on the Google Cloud Console that aren't available on this API. Budget fields that are not exposed in this API will not be changed by this method.",
"flatPath": "v1/billingAccounts/{billingAccountsId}/budgets/{budgetsId}",
"httpMethod": "PATCH",
"id": "billingbudgets.billingAccounts.budgets.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Output only. Resource name of the budget. The resource name implies the scope of a budget. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+/budgets/[^/]+$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "Optional. Indicates which fields in the provided budget to update. Read-only fields (such as `name`) cannot be changed. If this is not provided, then only fields with non-default values from the request are updated. See https://developers.google.com/protocol-buffers/docs/proto3#default for more details about default values.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v1/{+name}",
"request": {
"$ref": "GoogleCloudBillingBudgetsV1Budget"
},
"response": {
"$ref": "GoogleCloudBillingBudgetsV1Budget"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
}
}
}
},
"revision": "20240707",
"rootUrl": "https://billingbudgets.googleapis.com/",
"schemas": {
"GoogleCloudBillingBudgetsV1Budget": {
"description": "A budget is a plan that describes what you expect to spend on Cloud projects, plus the rules to execute as spend is tracked against that plan, (for example, send an alert when 90% of the target spend is met). The budget time period is configurable, with options such as month (default), quarter, year, or custom time period.",
"id": "GoogleCloudBillingBudgetsV1Budget",
"properties": {
"amount": {
"$ref": "GoogleCloudBillingBudgetsV1BudgetAmount",
"description": "Required. Budgeted amount."
},
"budgetFilter": {
"$ref": "GoogleCloudBillingBudgetsV1Filter",
"description": "Optional. Filters that define which resources are used to compute the actual spend against the budget amount, such as projects, services, and the budget's time period, as well as other filters."
},
"displayName": {
"description": "User data for display name in UI. The name must be less than or equal to 60 characters.",
"type": "string"
},
"etag": {
"description": "Optional. Etag to validate that the object is unchanged for a read-modify-write operation. An empty etag causes an update to overwrite other changes.",
"type": "string"
},
"name": {
"description": "Output only. Resource name of the budget. The resource name implies the scope of a budget. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
"readOnly": true,
"type": "string"
},
"notificationsRule": {
"$ref": "GoogleCloudBillingBudgetsV1NotificationsRule",
"description": "Optional. Rules to apply to notifications sent based on budget spend and thresholds."
},
"ownershipScope": {
"enum": [
"OWNERSHIP_SCOPE_UNSPECIFIED",
"ALL_USERS",
"BILLING_ACCOUNT"
],
"enumDescriptions": [
"Unspecified ownership scope, same as ALL_USERS.",
"Both billing account-level users and project-level users have full access to the budget, if the users have the required IAM permissions.",
"Only billing account-level users have full access to the budget. Project-level users have read-only access, even if they have the required IAM permissions."
],
"type": "string"
},
"thresholdRules": {
"description": "Optional. Rules that trigger alerts (notifications of thresholds being crossed) when spend exceeds the specified percentages of the budget. Optional for `pubsubTopic` notifications. Required if using email notifications.",
"items": {
"$ref": "GoogleCloudBillingBudgetsV1ThresholdRule"
},
"type": "array"
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1BudgetAmount": {
"description": "The budgeted amount for each usage period.",
"id": "GoogleCloudBillingBudgetsV1BudgetAmount",
"properties": {
"lastPeriodAmount": {
"$ref": "GoogleCloudBillingBudgetsV1LastPeriodAmount",
"description": "Use the last period's actual spend as the budget for the present period. LastPeriodAmount can only be set when the budget's time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period."
},
"specifiedAmount": {
"$ref": "GoogleTypeMoney",
"description": "A specified amount to use as the budget. `currency_code` is optional. If specified when creating a budget, it must match the currency of the billing account. If specified when updating a budget, it must match the currency_code of the existing budget. The `currency_code` is provided on output."
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1CustomPeriod": {
"description": "All date times begin at 12 AM US and Canadian Pacific Time (UTC-8).",
"id": "GoogleCloudBillingBudgetsV1CustomPeriod",
"properties": {
"endDate": {
"$ref": "GoogleTypeDate",
"description": "Optional. The end date of the time period. Budgets with elapsed end date won't be processed. If unset, specifies to track all usage incurred since the start_date."
},
"startDate": {
"$ref": "GoogleTypeDate",
"description": "Required. The start date must be after January 1, 2017."
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1Filter": {
"description": "A filter for a budget, limiting the scope of the cost to calculate.",
"id": "GoogleCloudBillingBudgetsV1Filter",
"properties": {
"calendarPeriod": {
"description": "Optional. Specifies to track usage for recurring calendar period. For example, assume that CalendarPeriod.QUARTER is set. The budget tracks usage from April 1 to June 30, when the current calendar month is April, May, June. After that, it tracks usage from July 1 to September 30 when the current calendar month is July, August, September, so on.",
"enum": [
"CALENDAR_PERIOD_UNSPECIFIED",
"MONTH",
"QUARTER",
"YEAR"
],
"enumDescriptions": [
"Calendar period is unset. This is the default if the budget is for a custom time period (CustomPeriod).",
"A month. Month starts on the first day of each month, such as January 1, February 1, March 1, and so on.",
"A quarter. Quarters start on dates January 1, April 1, July 1, and October 1 of each year.",
"A year. Year starts on January 1."
],
"type": "string"
},
"creditTypes": {
"description": "Optional. If Filter.credit_types_treatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. See [a list of acceptable credit type values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type). If Filter.credit_types_treatment is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty.",
"items": {
"type": "string"
},
"type": "array"
},
"creditTypesTreatment": {
"description": "Optional. If not set, default behavior is `INCLUDE_ALL_CREDITS`.",
"enum": [
"CREDIT_TYPES_TREATMENT_UNSPECIFIED",
"INCLUDE_ALL_CREDITS",
"EXCLUDE_ALL_CREDITS",
"INCLUDE_SPECIFIED_CREDITS"
],
"enumDescriptions": [
"",
"All types of credit are subtracted from the gross cost to determine the spend for threshold calculations.",
"All types of credit are added to the net cost to determine the spend for threshold calculations.",
"[Credit types](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type) specified in the credit_types field are subtracted from the gross cost to determine the spend for threshold calculations."
],
"type": "string"
},
"customPeriod": {
"$ref": "GoogleCloudBillingBudgetsV1CustomPeriod",
"description": "Optional. Specifies to track usage from any start date (required) to any end date (optional). This time period is static, it does not recur."
},
"labels": {
"additionalProperties": {
"items": {
"type": "any"
},
"type": "array"
},
"description": "Optional. A single label and value pair specifying that usage from only this set of labeled resources should be included in the budget. If omitted, the report includes all labeled and unlabeled usage. An object containing a single `\"key\": value` pair. Example: `{ \"name\": \"wrench\" }`. _Currently, multiple entries or multiple values per entry are not allowed._",
"type": "object"
},
"projects": {
"description": "Optional. A set of projects of the form `projects/{project}`, specifying that usage from only this set of projects should be included in the budget. If omitted, the report includes all usage for the billing account, regardless of which project the usage occurred on.",
"items": {
"type": "string"
},
"type": "array"
},
"resourceAncestors": {
"description": "Optional. A set of folder and organization names of the form `folders/{folderId}` or `organizations/{organizationId}`, specifying that usage from only this set of folders and organizations should be included in the budget. If omitted, the budget includes all usage that the billing account pays for. If the folder or organization contains projects that are paid for by a different Cloud Billing account, the budget *doesn't* apply to those projects.",
"items": {
"type": "string"
},
"type": "array"
},
"services": {
"description": "Optional. A set of services of the form `services/{service_id}`, specifying that usage from only this set of services should be included in the budget. If omitted, the report includes usage for all the services. The service names are available through the Catalog API: https://cloud.google.com/billing/v1/how-tos/catalog-api.",
"items": {
"type": "string"
},
"type": "array"
},
"subaccounts": {
"description": "Optional. A set of subaccounts of the form `billingAccounts/{account_id}`, specifying that usage from only this set of subaccounts should be included in the budget. If a subaccount is set to the name of the parent account, usage from the parent account is included. If the field is omitted, the report includes usage from the parent account and all subaccounts, if they exist.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1LastPeriodAmount": {
"description": "Describes a budget amount targeted to the last Filter.calendar_period spend. At this time, the amount is automatically 100% of the last calendar period's spend; that is, there are no other options yet. LastPeriodAmount cannot be set for a budget configured with a Filter.custom_period.",
"id": "GoogleCloudBillingBudgetsV1LastPeriodAmount",
"properties": {},
"type": "object"
},
"GoogleCloudBillingBudgetsV1ListBudgetsResponse": {
"description": "Response for ListBudgets",
"id": "GoogleCloudBillingBudgetsV1ListBudgetsResponse",
"properties": {
"budgets": {
"description": "List of the budgets owned by the requested billing account.",
"items": {
"$ref": "GoogleCloudBillingBudgetsV1Budget"
},
"type": "array"
},
"nextPageToken": {
"description": "If not empty, indicates that there may be more budgets that match the request; this value should be passed in a new `ListBudgetsRequest`.",
"type": "string"
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1NotificationsRule": {
"description": "NotificationsRule defines notifications that are sent based on budget spend and thresholds.",
"id": "GoogleCloudBillingBudgetsV1NotificationsRule",
"properties": {
"disableDefaultIamRecipients": {
"description": "Optional. When set to true, disables default notifications sent when a threshold is exceeded. Default notifications are sent to those with Billing Account Administrator and Billing Account User IAM roles for the target account.",
"type": "boolean"
},
"enableProjectLevelRecipients": {
"description": "Optional. When set to true, and when the budget has a single project configured, notifications will be sent to project level recipients of that project. This field will be ignored if the budget has multiple or no project configured. Currently, project level recipients are the users with `Owner` role on a cloud project.",
"type": "boolean"
},
"monitoringNotificationChannels": {
"description": "Optional. Email targets to send notifications to when a threshold is exceeded. This is in addition to the `DefaultIamRecipients` who receive alert emails based on their billing account IAM role. The value is the full REST resource name of a Cloud Monitoring email notification channel with the form `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 email notifications are allowed. To customize budget alert email recipients with monitoring notification channels, you _must create the monitoring notification channels before you link them to a budget_. For guidance on setting up notification channels to use with budgets, see [Customize budget alert email recipients](https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients). For Cloud Billing budget alerts, you _must use email notification channels_. The other types of notification channels are _not_ supported, such as Slack, SMS, or PagerDuty. If you want to [send budget notifications to Slack](https://cloud.google.com/billing/docs/how-to/notify#send_notifications_to_slack), use a pubsubTopic and configure [programmatic notifications](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications).",
"items": {
"type": "string"
},
"type": "array"
},
"pubsubTopic": {
"description": "Optional. The name of the Pub/Sub topic where budget-related messages are published, in the form `projects/{project_id}/topics/{topic_id}`. Updates are sent to the topic at regular intervals; the timing of the updates is not dependent on the [threshold rules](#thresholdrule) you've set. Note that if you want your [Pub/Sub JSON object](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format) to contain data for `alertThresholdExceeded`, you need at least one [alert threshold rule](#thresholdrule). When you set threshold rules, you must also enable at least one of the email notification options, either using the default IAM recipients or Cloud Monitoring email notification channels. To use Pub/Sub topics with budgets, you must do the following: 1. Create the Pub/Sub topic before connecting it to your budget. For guidance, see [Manage programmatic budget alert notifications](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications). 2. Grant the API caller the `pubsub.topics.setIamPolicy` permission on the Pub/Sub topic. If not set, the API call fails with PERMISSION_DENIED. For additional details on Pub/Sub roles and permissions, see [Permissions required for this task](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#permissions_required_for_this_task).",
"type": "string"
},
"schemaVersion": {
"description": "Optional. Required when NotificationsRule.pubsub_topic is set. The schema version of the notification sent to NotificationsRule.pubsub_topic. Only \"1.0\" is accepted. It represents the JSON schema as defined in https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format.",
"type": "string"
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1ThresholdRule": {
"description": "ThresholdRule contains the definition of a threshold. Threshold rules define the triggering events used to generate a budget notification email. When a threshold is crossed (spend exceeds the specified percentages of the budget), budget alert emails are sent to the email recipients you specify in the [NotificationsRule](#notificationsrule). Threshold rules also affect the fields included in the [JSON data object](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format) sent to a Pub/Sub topic. Threshold rules are _required_ if using email notifications. Threshold rules are _optional_ if only setting a [`pubsubTopic` NotificationsRule](#NotificationsRule), unless you want your JSON data object to include data about the thresholds you set. For more information, see [set budget threshold rules and actions](https://cloud.google.com/billing/docs/how-to/budgets#budget-actions).",
"id": "GoogleCloudBillingBudgetsV1ThresholdRule",
"properties": {
"spendBasis": {
"description": "Optional. The type of basis used to determine if spend has passed the threshold. Behavior defaults to CURRENT_SPEND if not set.",
"enum": [
"BASIS_UNSPECIFIED",
"CURRENT_SPEND",
"FORECASTED_SPEND"
],
"enumDescriptions": [
"Unspecified threshold basis.",
"Use current spend as the basis for comparison against the threshold.",
"Use forecasted spend for the period as the basis for comparison against the threshold. FORECASTED_SPEND can only be set when the budget's time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period."
],
"type": "string"
},
"thresholdPercent": {
"description": "Required. Send an alert when this threshold is exceeded. This is a 1.0-based percentage, so 0.5 = 50%. Validation: non-negative number.",
"format": "double",
"type": "number"
}
},
"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"
},
"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"
},
"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"
}
},
"servicePath": "",
"title": "Cloud Billing Budget API",
"version": "v1",
"version_module": true
}

View File

@@ -0,0 +1,606 @@
{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/cloud-billing": {
"description": "View and manage your Google Cloud Platform billing accounts"
},
"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://billingbudgets.googleapis.com/",
"batchPath": "batch",
"canonicalName": "CloudBillingBudget",
"description": "The Cloud Billing Budget API stores Cloud Billing budgets, which define a budget plan and the rules to execute as spend is tracked against that plan.",
"discoveryVersion": "v1",
"documentationLink": "https://cloud.google.com/billing/docs/how-to/budget-api-overview",
"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": "billingbudgets:v1beta1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://billingbudgets.mtls.googleapis.com/",
"name": "billingbudgets",
"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": {
"billingAccounts": {
"resources": {
"budgets": {
"methods": {
"create": {
"description": "Creates a new budget. See [Quotas and limits](https://cloud.google.com/billing/quotas) for more information on the limits of the number of budgets you can create.",
"flatPath": "v1beta1/billingAccounts/{billingAccountsId}/budgets",
"httpMethod": "POST",
"id": "billingbudgets.billingAccounts.budgets.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. The name of the billing account to create the budget in. Values are of the form `billingAccounts/{billingAccountId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+parent}/budgets",
"request": {
"$ref": "GoogleCloudBillingBudgetsV1beta1CreateBudgetRequest"
},
"response": {
"$ref": "GoogleCloudBillingBudgetsV1beta1Budget"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"delete": {
"description": "Deletes a budget. Returns successfully if already deleted.",
"flatPath": "v1beta1/billingAccounts/{billingAccountsId}/budgets/{budgetsId}",
"httpMethod": "DELETE",
"id": "billingbudgets.billingAccounts.budgets.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of the budget to delete. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+/budgets/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+name}",
"response": {
"$ref": "GoogleProtobufEmpty"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"get": {
"description": "Returns a budget. WARNING: There are some fields exposed on the Google Cloud Console that aren't available on this API. When reading from the API, you will not see these fields in the return value, though they may have been set in the Cloud Console.",
"flatPath": "v1beta1/billingAccounts/{billingAccountsId}/budgets/{budgetsId}",
"httpMethod": "GET",
"id": "billingbudgets.billingAccounts.budgets.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of budget to get. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+/budgets/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+name}",
"response": {
"$ref": "GoogleCloudBillingBudgetsV1beta1Budget"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"list": {
"description": "Returns a list of budgets for a billing account. WARNING: There are some fields exposed on the Google Cloud Console that aren't available on this API. When reading from the API, you will not see these fields in the return value, though they may have been set in the Cloud Console.",
"flatPath": "v1beta1/billingAccounts/{billingAccountsId}/budgets",
"httpMethod": "GET",
"id": "billingbudgets.billingAccounts.budgets.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "Optional. The maximum number of budgets to return per page. The default and maximum value are 100.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "Optional. The value returned by the last `ListBudgetsResponse` which indicates that this is a continuation of a prior `ListBudgets` call, and that the system should return the next page of data.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. Name of billing account to list budgets under. Values are of the form `billingAccounts/{billingAccountId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+$",
"required": true,
"type": "string"
},
"scope": {
"description": "Optional. Set the scope of the budgets to be returned, in the format of the resource name. The scope of a budget is the cost that it tracks, such as costs for a single project, or the costs for all projects in a folder. Only project scope (in the format of \"projects/project-id\" or \"projects/123\") is supported in this field. When this field is set to a project's resource name, the budgets returned are tracking the costs for that project.",
"location": "query",
"type": "string"
}
},
"path": "v1beta1/{+parent}/budgets",
"response": {
"$ref": "GoogleCloudBillingBudgetsV1beta1ListBudgetsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"patch": {
"description": "Updates a budget and returns the updated budget. WARNING: There are some fields exposed on the Google Cloud Console that aren't available on this API. Budget fields that are not exposed in this API will not be changed by this method.",
"flatPath": "v1beta1/billingAccounts/{billingAccountsId}/budgets/{budgetsId}",
"httpMethod": "PATCH",
"id": "billingbudgets.billingAccounts.budgets.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Output only. Resource name of the budget. The resource name implies the scope of a budget. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+/budgets/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+name}",
"request": {
"$ref": "GoogleCloudBillingBudgetsV1beta1UpdateBudgetRequest"
},
"response": {
"$ref": "GoogleCloudBillingBudgetsV1beta1Budget"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
}
}
}
},
"revision": "20240707",
"rootUrl": "https://billingbudgets.googleapis.com/",
"schemas": {
"GoogleCloudBillingBudgetsV1beta1AllUpdatesRule": {
"description": "AllUpdatesRule defines notifications that are sent based on budget spend and thresholds.",
"id": "GoogleCloudBillingBudgetsV1beta1AllUpdatesRule",
"properties": {
"disableDefaultIamRecipients": {
"description": "Optional. When set to true, disables default notifications sent when a threshold is exceeded. Default notifications are sent to those with Billing Account Administrator and Billing Account User IAM roles for the target account.",
"type": "boolean"
},
"enableProjectLevelRecipients": {
"description": "Optional. When set to true, and when the budget has a single project configured, notifications will be sent to project level recipients of that project. This field will be ignored if the budget has multiple or no project configured. Currently, project level recipients are the users with `Owner` role on a cloud project.",
"type": "boolean"
},
"monitoringNotificationChannels": {
"description": "Optional. Targets to send notifications to when a threshold is exceeded. This is in addition to default recipients who have billing account IAM roles. The value is the full REST resource name of a monitoring notification channel with the form `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 channels are allowed. See https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients for more details.",
"items": {
"type": "string"
},
"type": "array"
},
"pubsubTopic": {
"description": "Optional. The name of the Pub/Sub topic where budget related messages will be published, in the form `projects/{project_id}/topics/{topic_id}`. Updates are sent at regular intervals to the topic. The topic needs to be created before the budget is created; see https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications for more details. Caller is expected to have `pubsub.topics.setIamPolicy` permission on the topic when it's set for a budget, otherwise, the API call will fail with PERMISSION_DENIED. See https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#permissions_required_for_this_task for more details on Pub/Sub roles and permissions.",
"type": "string"
},
"schemaVersion": {
"description": "Optional. Required when AllUpdatesRule.pubsub_topic is set. The schema version of the notification sent to AllUpdatesRule.pubsub_topic. Only \"1.0\" is accepted. It represents the JSON schema as defined in https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format.",
"type": "string"
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1beta1Budget": {
"description": "A budget is a plan that describes what you expect to spend on Cloud projects, plus the rules to execute as spend is tracked against that plan, (for example, send an alert when 90% of the target spend is met). The budget time period is configurable, with options such as month (default), quarter, year, or custom time period.",
"id": "GoogleCloudBillingBudgetsV1beta1Budget",
"properties": {
"allUpdatesRule": {
"$ref": "GoogleCloudBillingBudgetsV1beta1AllUpdatesRule",
"description": "Optional. Rules to apply to notifications sent based on budget spend and thresholds."
},
"amount": {
"$ref": "GoogleCloudBillingBudgetsV1beta1BudgetAmount",
"description": "Required. Budgeted amount."
},
"budgetFilter": {
"$ref": "GoogleCloudBillingBudgetsV1beta1Filter",
"description": "Optional. Filters that define which resources are used to compute the actual spend against the budget amount, such as projects, services, and the budget's time period, as well as other filters."
},
"displayName": {
"description": "User data for display name in UI. Validation: <= 60 chars.",
"type": "string"
},
"etag": {
"description": "Optional. Etag to validate that the object is unchanged for a read-modify-write operation. An empty etag will cause an update to overwrite other changes.",
"type": "string"
},
"name": {
"description": "Output only. Resource name of the budget. The resource name implies the scope of a budget. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
"readOnly": true,
"type": "string"
},
"ownershipScope": {
"enum": [
"OWNERSHIP_SCOPE_UNSPECIFIED",
"ALL_USERS",
"BILLING_ACCOUNT"
],
"enumDescriptions": [
"Unspecified ownership scope, same as ALL_USERS.",
"The Budget is fully accessible to both billing account users and resource users, provided that they have the required IAM permissions.",
"Only billing account users have full access to the `Budget`, resource-level users have read-only access, provided that they have the required IAM permissions."
],
"type": "string"
},
"thresholdRules": {
"description": "Optional. Rules that trigger alerts (notifications of thresholds being crossed) when spend exceeds the specified percentages of the budget. Optional for `pubsubTopic` notifications. Required if using email notifications.",
"items": {
"$ref": "GoogleCloudBillingBudgetsV1beta1ThresholdRule"
},
"type": "array"
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1beta1BudgetAmount": {
"description": "The budgeted amount for each usage period.",
"id": "GoogleCloudBillingBudgetsV1beta1BudgetAmount",
"properties": {
"lastPeriodAmount": {
"$ref": "GoogleCloudBillingBudgetsV1beta1LastPeriodAmount",
"description": "Use the last period's actual spend as the budget for the present period. LastPeriodAmount can only be set when the budget's time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period."
},
"specifiedAmount": {
"$ref": "GoogleTypeMoney",
"description": "A specified amount to use as the budget. `currency_code` is optional. If specified when creating a budget, it must match the currency of the billing account. If specified when updating a budget, it must match the currency_code of the existing budget. The `currency_code` is provided on output."
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1beta1CreateBudgetRequest": {
"description": "Request for CreateBudget",
"id": "GoogleCloudBillingBudgetsV1beta1CreateBudgetRequest",
"properties": {
"budget": {
"$ref": "GoogleCloudBillingBudgetsV1beta1Budget",
"description": "Required. Budget to create."
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1beta1CustomPeriod": {
"description": "All date times begin at 12 AM US and Canadian Pacific Time (UTC-8).",
"id": "GoogleCloudBillingBudgetsV1beta1CustomPeriod",
"properties": {
"endDate": {
"$ref": "GoogleTypeDate",
"description": "Optional. The end date of the time period. Budgets with elapsed end date won't be processed. If unset, specifies to track all usage incurred since the start_date."
},
"startDate": {
"$ref": "GoogleTypeDate",
"description": "Required. The start date must be after January 1, 2017."
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1beta1Filter": {
"description": "A filter for a budget, limiting the scope of the cost to calculate.",
"id": "GoogleCloudBillingBudgetsV1beta1Filter",
"properties": {
"calendarPeriod": {
"description": "Optional. Specifies to track usage for recurring calendar period. For example, assume that CalendarPeriod.QUARTER is set. The budget will track usage from April 1 to June 30, when the current calendar month is April, May, June. After that, it will track usage from July 1 to September 30 when the current calendar month is July, August, September, so on.",
"enum": [
"CALENDAR_PERIOD_UNSPECIFIED",
"MONTH",
"QUARTER",
"YEAR"
],
"enumDescriptions": [
"Calendar period is unset. This is the default if the budget is for a custom time period (CustomPeriod).",
"A month. Month starts on the first day of each month, such as January 1, February 1, March 1, and so on.",
"A quarter. Quarters start on dates January 1, April 1, July 1, and October 1 of each year.",
"A year. Year starts on January 1."
],
"type": "string"
},
"creditTypes": {
"description": "Optional. If Filter.credit_types_treatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. See [a list of acceptable credit type values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type). If Filter.credit_types_treatment is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty.",
"items": {
"type": "string"
},
"type": "array"
},
"creditTypesTreatment": {
"description": "Optional. If not set, default behavior is `INCLUDE_ALL_CREDITS`.",
"enum": [
"CREDIT_TYPES_TREATMENT_UNSPECIFIED",
"INCLUDE_ALL_CREDITS",
"EXCLUDE_ALL_CREDITS",
"INCLUDE_SPECIFIED_CREDITS"
],
"enumDescriptions": [
"",
"All types of credit are subtracted from the gross cost to determine the spend for threshold calculations.",
"All types of credit are added to the net cost to determine the spend for threshold calculations.",
"[Credit types](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type) specified in the credit_types field are subtracted from the gross cost to determine the spend for threshold calculations."
],
"type": "string"
},
"customPeriod": {
"$ref": "GoogleCloudBillingBudgetsV1beta1CustomPeriod",
"description": "Optional. Specifies to track usage from any start date (required) to any end date (optional). This time period is static, it does not recur."
},
"labels": {
"additionalProperties": {
"items": {
"type": "any"
},
"type": "array"
},
"description": "Optional. A single label and value pair specifying that usage from only this set of labeled resources should be included in the budget. If omitted, the report will include all labeled and unlabeled usage. An object containing a single `\"key\": value` pair. Example: `{ \"name\": \"wrench\" }`. _Currently, multiple entries or multiple values per entry are not allowed._",
"type": "object"
},
"projects": {
"description": "Optional. A set of projects of the form `projects/{project}`, specifying that usage from only this set of projects should be included in the budget. If omitted, the report will include all usage for the billing account, regardless of which project the usage occurred on.",
"items": {
"type": "string"
},
"type": "array"
},
"resourceAncestors": {
"description": "Optional. A set of folder and organization names of the form `folders/{folderId}` or `organizations/{organizationId}`, specifying that usage from only this set of folders and organizations should be included in the budget. If omitted, the budget includes all usage that the billing account pays for. If the folder or organization contains projects that are paid for by a different Cloud Billing account, the budget *doesn't* apply to those projects.",
"items": {
"type": "string"
},
"type": "array"
},
"services": {
"description": "Optional. A set of services of the form `services/{service_id}`, specifying that usage from only this set of services should be included in the budget. If omitted, the report will include usage for all the services. The service names are available through the Catalog API: https://cloud.google.com/billing/v1/how-tos/catalog-api.",
"items": {
"type": "string"
},
"type": "array"
},
"subaccounts": {
"description": "Optional. A set of subaccounts of the form `billingAccounts/{account_id}`, specifying that usage from only this set of subaccounts should be included in the budget. If a subaccount is set to the name of the parent account, usage from the parent account will be included. If omitted, the report will include usage from the parent account and all subaccounts, if they exist.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1beta1LastPeriodAmount": {
"description": "Describes a budget amount targeted to the last Filter.calendar_period spend. At this time, the amount is automatically 100% of the last calendar period's spend; that is, there are no other options yet. Future configuration options will be described here (for example, configuring a percentage of last period's spend). LastPeriodAmount cannot be set for a budget configured with a Filter.custom_period.",
"id": "GoogleCloudBillingBudgetsV1beta1LastPeriodAmount",
"properties": {},
"type": "object"
},
"GoogleCloudBillingBudgetsV1beta1ListBudgetsResponse": {
"description": "Response for ListBudgets",
"id": "GoogleCloudBillingBudgetsV1beta1ListBudgetsResponse",
"properties": {
"budgets": {
"description": "List of the budgets owned by the requested billing account.",
"items": {
"$ref": "GoogleCloudBillingBudgetsV1beta1Budget"
},
"type": "array"
},
"nextPageToken": {
"description": "If not empty, indicates that there may be more budgets that match the request; this value should be passed in a new `ListBudgetsRequest`.",
"type": "string"
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1beta1ThresholdRule": {
"description": "ThresholdRule contains the definition of a threshold. Threshold rules define the triggering events used to generate a budget notification email. When a threshold is crossed (spend exceeds the specified percentages of the budget), budget alert emails are sent to the email recipients you specify in the [NotificationsRule](#notificationsrule). Threshold rules also affect the fields included in the [JSON data object](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format) sent to a Pub/Sub topic. Threshold rules are _required_ if using email notifications. Threshold rules are _optional_ if only setting a [`pubsubTopic` NotificationsRule](#NotificationsRule), unless you want your JSON data object to include data about the thresholds you set. For more information, see [set budget threshold rules and actions](https://cloud.google.com/billing/docs/how-to/budgets#budget-actions).",
"id": "GoogleCloudBillingBudgetsV1beta1ThresholdRule",
"properties": {
"spendBasis": {
"description": "Optional. The type of basis used to determine if spend has passed the threshold. Behavior defaults to CURRENT_SPEND if not set.",
"enum": [
"BASIS_UNSPECIFIED",
"CURRENT_SPEND",
"FORECASTED_SPEND"
],
"enumDescriptions": [
"Unspecified threshold basis.",
"Use current spend as the basis for comparison against the threshold.",
"Use forecasted spend for the period as the basis for comparison against the threshold. FORECASTED_SPEND can only be set when the budget's time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period."
],
"type": "string"
},
"thresholdPercent": {
"description": "Required. Send an alert when this threshold is exceeded. This is a 1.0-based percentage, so 0.5 = 50%. Validation: non-negative number.",
"format": "double",
"type": "number"
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1beta1UpdateBudgetRequest": {
"description": "Request for UpdateBudget",
"id": "GoogleCloudBillingBudgetsV1beta1UpdateBudgetRequest",
"properties": {
"budget": {
"$ref": "GoogleCloudBillingBudgetsV1beta1Budget",
"description": "Required. The updated budget object. The budget to update is specified by the budget name in the budget."
},
"updateMask": {
"description": "Optional. Indicates which fields in the provided budget to update. Read-only fields (such as `name`) cannot be changed. If this is not provided, then only fields with non-default values from the request are updated. See https://developers.google.com/protocol-buffers/docs/proto3#default for more details about default values.",
"format": "google-fieldmask",
"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"
},
"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"
},
"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"
}
},
"servicePath": "",
"title": "Cloud Billing Budget API",
"version": "v1beta1",
"version_module": true
}

View File

@@ -0,0 +1,721 @@
{
"basePath": "",
"baseUrl": "https://businessprofileperformance.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Business Profile Performance",
"description": "The Business Profile Performance API allows merchants to fetch performance reports about their business profile on Google. 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": "businessprofileperformance:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://businessprofileperformance.mtls.googleapis.com/",
"name": "businessprofileperformance",
"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": {
"locations": {
"methods": {
"fetchMultiDailyMetricsTimeSeries": {
"description": " Returns the values for each date from a given time range and optionally the sub entity type, where applicable, that are associated with the specific daily metrics. Example request: `GET https://businessprofileperformance.googleapis.com/v1/locations/12345:fetchMultiDailyMetricsTimeSeries?dailyMetrics=WEBSITE_CLICKS&dailyMetrics=CALL_CLICKS&daily_range.start_date.year=2022&daily_range.start_date.month=1&daily_range.start_date.day=1&daily_range.end_date.year=2022&daily_range.end_date.month=3&daily_range.end_date.day=31`",
"flatPath": "v1/locations/{locationsId}:fetchMultiDailyMetricsTimeSeries",
"httpMethod": "GET",
"id": "businessprofileperformance.locations.fetchMultiDailyMetricsTimeSeries",
"parameterOrder": [
"location"
],
"parameters": {
"dailyMetrics": {
"description": "Required. The metrics to retrieve time series for.",
"enum": [
"DAILY_METRIC_UNKNOWN",
"BUSINESS_IMPRESSIONS_DESKTOP_MAPS",
"BUSINESS_IMPRESSIONS_DESKTOP_SEARCH",
"BUSINESS_IMPRESSIONS_MOBILE_MAPS",
"BUSINESS_IMPRESSIONS_MOBILE_SEARCH",
"BUSINESS_CONVERSATIONS",
"BUSINESS_DIRECTION_REQUESTS",
"CALL_CLICKS",
"WEBSITE_CLICKS",
"BUSINESS_BOOKINGS",
"BUSINESS_FOOD_ORDERS",
"BUSINESS_FOOD_MENU_CLICKS"
],
"enumDeprecated": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
true,
false
],
"enumDescriptions": [
"Represents the default unknown value.",
"Business impressions on Google Maps on Desktop devices. Multiple impressions by a unique user within a single day are counted as a single impression.",
"Business impressions on Google Search on Desktop devices. Multiple impressions by a unique user within a single day are counted as a single impression.",
"Business impressions on Google Maps on Mobile devices. Multiple impressions by a unique user within a single day are counted as a single impression.",
"Business impressions on Google Search on Mobile devices. Multiple impressions by a unique user within a single day are counted as a single impression.",
"The number of message conversations received on the business profile.",
"The number of times a direction request was requested to the business location.",
"The number of times the business profile call button was clicked.",
"The number of times the business profile website was clicked.",
"The number of bookings made from the business profile via Reserve with Google.",
"The number of food orders received from the business profile.",
"The number of clicks to view or interact with the menu content on the business profile. Multiple clicks by a unique user within a single day are counted as 1."
],
"location": "query",
"repeated": true,
"type": "string"
},
"dailyRange.endDate.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",
"location": "query",
"type": "integer"
},
"dailyRange.endDate.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",
"location": "query",
"type": "integer"
},
"dailyRange.endDate.year": {
"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
"format": "int32",
"location": "query",
"type": "integer"
},
"dailyRange.startDate.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",
"location": "query",
"type": "integer"
},
"dailyRange.startDate.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",
"location": "query",
"type": "integer"
},
"dailyRange.startDate.year": {
"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
"format": "int32",
"location": "query",
"type": "integer"
},
"location": {
"description": "Required. The location for which the time series should be fetched. Format: locations/{location_id} where location_id is an unobfuscated listing id.",
"location": "path",
"pattern": "^locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+location}:fetchMultiDailyMetricsTimeSeries",
"response": {
"$ref": "FetchMultiDailyMetricsTimeSeriesResponse"
}
},
"getDailyMetricsTimeSeries": {
"description": " Returns the values for each date from a given time range that are associated with the specific daily metric. Example request: `GET https://businessprofileperformance.googleapis.com/v1/locations/12345:getDailyMetricsTimeSeries?dailyMetric=WEBSITE_CLICKS&daily_range.start_date.year=2022&daily_range.start_date.month=1&daily_range.start_date.day=1&daily_range.end_date.year=2022&daily_range.end_date.month=3&daily_range.end_date.day=31`",
"flatPath": "v1/locations/{locationsId}:getDailyMetricsTimeSeries",
"httpMethod": "GET",
"id": "businessprofileperformance.locations.getDailyMetricsTimeSeries",
"parameterOrder": [
"name"
],
"parameters": {
"dailyMetric": {
"description": "Required. The metric to retrieve time series.",
"enum": [
"DAILY_METRIC_UNKNOWN",
"BUSINESS_IMPRESSIONS_DESKTOP_MAPS",
"BUSINESS_IMPRESSIONS_DESKTOP_SEARCH",
"BUSINESS_IMPRESSIONS_MOBILE_MAPS",
"BUSINESS_IMPRESSIONS_MOBILE_SEARCH",
"BUSINESS_CONVERSATIONS",
"BUSINESS_DIRECTION_REQUESTS",
"CALL_CLICKS",
"WEBSITE_CLICKS",
"BUSINESS_BOOKINGS",
"BUSINESS_FOOD_ORDERS",
"BUSINESS_FOOD_MENU_CLICKS"
],
"enumDeprecated": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
true,
false
],
"enumDescriptions": [
"Represents the default unknown value.",
"Business impressions on Google Maps on Desktop devices. Multiple impressions by a unique user within a single day are counted as a single impression.",
"Business impressions on Google Search on Desktop devices. Multiple impressions by a unique user within a single day are counted as a single impression.",
"Business impressions on Google Maps on Mobile devices. Multiple impressions by a unique user within a single day are counted as a single impression.",
"Business impressions on Google Search on Mobile devices. Multiple impressions by a unique user within a single day are counted as a single impression.",
"The number of message conversations received on the business profile.",
"The number of times a direction request was requested to the business location.",
"The number of times the business profile call button was clicked.",
"The number of times the business profile website was clicked.",
"The number of bookings made from the business profile via Reserve with Google.",
"The number of food orders received from the business profile.",
"The number of clicks to view or interact with the menu content on the business profile. Multiple clicks by a unique user within a single day are counted as 1."
],
"location": "query",
"type": "string"
},
"dailyRange.endDate.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",
"location": "query",
"type": "integer"
},
"dailyRange.endDate.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",
"location": "query",
"type": "integer"
},
"dailyRange.endDate.year": {
"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
"format": "int32",
"location": "query",
"type": "integer"
},
"dailyRange.startDate.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",
"location": "query",
"type": "integer"
},
"dailyRange.startDate.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",
"location": "query",
"type": "integer"
},
"dailyRange.startDate.year": {
"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
"format": "int32",
"location": "query",
"type": "integer"
},
"dailySubEntityType.dayOfWeek": {
"description": "Represents the day of the week. Eg: MONDAY. Currently supported DailyMetrics = NONE.",
"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"
],
"location": "query",
"type": "string"
},
"dailySubEntityType.timeOfDay.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",
"location": "query",
"type": "integer"
},
"dailySubEntityType.timeOfDay.minutes": {
"description": "Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.",
"format": "int32",
"location": "query",
"type": "integer"
},
"dailySubEntityType.timeOfDay.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",
"location": "query",
"type": "integer"
},
"dailySubEntityType.timeOfDay.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",
"location": "query",
"type": "integer"
},
"name": {
"description": "Required. The location for which the time series should be fetched. Format: locations/{location_id} where location_id is an unobfuscated listing id.",
"location": "path",
"pattern": "^locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}:getDailyMetricsTimeSeries",
"response": {
"$ref": "GetDailyMetricsTimeSeriesResponse"
}
}
},
"resources": {
"searchkeywords": {
"resources": {
"impressions": {
"resources": {
"monthly": {
"methods": {
"list": {
"description": "Returns the search keywords used to find a business in search or maps. Each search keyword is accompanied by impressions which are aggregated on a monthly basis. Example request: `GET https://businessprofileperformance.googleapis.com/v1/locations/12345/searchkeywords/impressions/monthly?monthly_range.start_month.year=2022&monthly_range.start_month.month=1&monthly_range.end_month.year=2022&monthly_range.end_month.month=3`",
"flatPath": "v1/locations/{locationsId}/searchkeywords/impressions/monthly",
"httpMethod": "GET",
"id": "businessprofileperformance.locations.searchkeywords.impressions.monthly.list",
"parameterOrder": [
"parent"
],
"parameters": {
"monthlyRange.endMonth.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",
"location": "query",
"type": "integer"
},
"monthlyRange.endMonth.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",
"location": "query",
"type": "integer"
},
"monthlyRange.endMonth.year": {
"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
"format": "int32",
"location": "query",
"type": "integer"
},
"monthlyRange.startMonth.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",
"location": "query",
"type": "integer"
},
"monthlyRange.startMonth.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",
"location": "query",
"type": "integer"
},
"monthlyRange.startMonth.year": {
"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageSize": {
"description": "Optional. The number of results requested. The default page size is 100. Page size can be set to a maximum of 100.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "Optional. A token indicating the next paginated result to be returned.",
"format": "byte",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. The location for which the time series should be fetched. Format: locations/{location_id} where location_id is an unobfuscated listing id.",
"location": "path",
"pattern": "^locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+parent}/searchkeywords/impressions/monthly",
"response": {
"$ref": "ListSearchKeywordImpressionsMonthlyResponse"
}
}
}
}
}
}
}
}
}
}
},
"revision": "20251026",
"rootUrl": "https://businessprofileperformance.googleapis.com/",
"schemas": {
"DailyMetricTimeSeries": {
"description": "Represents a single datapoint, where each datapoint is a DailyMetric-DailySubEntityType-TimeSeries tuple.",
"id": "DailyMetricTimeSeries",
"properties": {
"dailyMetric": {
"description": "The DailyMetric that the TimeSeries represents.",
"enum": [
"DAILY_METRIC_UNKNOWN",
"BUSINESS_IMPRESSIONS_DESKTOP_MAPS",
"BUSINESS_IMPRESSIONS_DESKTOP_SEARCH",
"BUSINESS_IMPRESSIONS_MOBILE_MAPS",
"BUSINESS_IMPRESSIONS_MOBILE_SEARCH",
"BUSINESS_CONVERSATIONS",
"BUSINESS_DIRECTION_REQUESTS",
"CALL_CLICKS",
"WEBSITE_CLICKS",
"BUSINESS_BOOKINGS",
"BUSINESS_FOOD_ORDERS",
"BUSINESS_FOOD_MENU_CLICKS"
],
"enumDeprecated": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
true,
false
],
"enumDescriptions": [
"Represents the default unknown value.",
"Business impressions on Google Maps on Desktop devices. Multiple impressions by a unique user within a single day are counted as a single impression.",
"Business impressions on Google Search on Desktop devices. Multiple impressions by a unique user within a single day are counted as a single impression.",
"Business impressions on Google Maps on Mobile devices. Multiple impressions by a unique user within a single day are counted as a single impression.",
"Business impressions on Google Search on Mobile devices. Multiple impressions by a unique user within a single day are counted as a single impression.",
"The number of message conversations received on the business profile.",
"The number of times a direction request was requested to the business location.",
"The number of times the business profile call button was clicked.",
"The number of times the business profile website was clicked.",
"The number of bookings made from the business profile via Reserve with Google.",
"The number of food orders received from the business profile.",
"The number of clicks to view or interact with the menu content on the business profile. Multiple clicks by a unique user within a single day are counted as 1."
],
"type": "string"
},
"dailySubEntityType": {
"$ref": "DailySubEntityType",
"description": "The DailySubEntityType that the TimeSeries represents. Will not be present when breakdown does not exist."
},
"timeSeries": {
"$ref": "TimeSeries",
"description": "List of datapoints where each datapoint is a date-value pair."
}
},
"type": "object"
},
"DailySubEntityType": {
"description": "Represents all possible subentity types that are associated with DailyMetrics.",
"id": "DailySubEntityType",
"properties": {
"dayOfWeek": {
"description": "Represents the day of the week. Eg: MONDAY. Currently supported DailyMetrics = NONE.",
"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"
},
"timeOfDay": {
"$ref": "TimeOfDay",
"description": "Represents the time of the day in 24 hour format. Eg: 13:34:20 Currently supported DailyMetrics = NONE."
}
},
"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"
},
"DatedValue": {
"description": "Represents a single datapoint in the timeseries, where each datapoint is a date-value pair.",
"id": "DatedValue",
"properties": {
"date": {
"$ref": "Date",
"description": "The date that the datapoint corresponds to. This represents a month value if the day field is not set."
},
"value": {
"description": "The value of the datapoint. This will not be present when the value is zero.",
"format": "int64",
"type": "string"
}
},
"type": "object"
},
"FetchMultiDailyMetricsTimeSeriesResponse": {
"description": "Represents the response for FetchMultiDailyMetricsTimeSeries.",
"id": "FetchMultiDailyMetricsTimeSeriesResponse",
"properties": {
"multiDailyMetricTimeSeries": {
"description": "DailyMetrics and their corresponding time series.",
"items": {
"$ref": "MultiDailyMetricTimeSeries"
},
"type": "array"
}
},
"type": "object"
},
"GetDailyMetricsTimeSeriesResponse": {
"description": "Represents the response for GetDailyMetricsTimeSeries.",
"id": "GetDailyMetricsTimeSeriesResponse",
"properties": {
"timeSeries": {
"$ref": "TimeSeries",
"description": "The daily time series."
}
},
"type": "object"
},
"InsightsValue": {
"description": "Represents an insights value.",
"id": "InsightsValue",
"properties": {
"threshold": {
"description": "Represents the threshold below which the actual value falls.",
"format": "int64",
"type": "string"
},
"value": {
"description": "Represents the actual value.",
"format": "int64",
"type": "string"
}
},
"type": "object"
},
"ListSearchKeywordImpressionsMonthlyResponse": {
"description": "Represents the response for ListSearchKeywordImpressionsMonthly.",
"id": "ListSearchKeywordImpressionsMonthlyResponse",
"properties": {
"nextPageToken": {
"description": "A token indicating the last paginated result returned. This can be used by succeeding requests to get the next \"page\" of keywords. It will only be present when there are more results to be returned.",
"format": "byte",
"type": "string"
},
"searchKeywordsCounts": {
"description": "Search terms which have been used to find a business.",
"items": {
"$ref": "SearchKeywordCount"
},
"type": "array"
}
},
"type": "object"
},
"MultiDailyMetricTimeSeries": {
"description": "Represents a list of tuples of DailyMetric-DailySubEntityType-TimeSeries.",
"id": "MultiDailyMetricTimeSeries",
"properties": {
"dailyMetricTimeSeries": {
"description": "List of DailyMetric-TimeSeries pairs.",
"items": {
"$ref": "DailyMetricTimeSeries"
},
"type": "array"
}
},
"type": "object"
},
"SearchKeywordCount": {
"description": "Represents a single search keyword and its value.",
"id": "SearchKeywordCount",
"properties": {
"insightsValue": {
"$ref": "InsightsValue",
"description": "One of either: 1) The sum of the number of unique users that used the keyword in a month, aggregated for each month requested. 2) A threshold that indicates that the actual value is below this threshold."
},
"searchKeyword": {
"description": "The lower-cased string that the user entered.",
"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"
},
"TimeSeries": {
"description": "Represents a timeseries.",
"id": "TimeSeries",
"properties": {
"datedValues": {
"description": "List of datapoints in the timeseries, where each datapoint is a date-value pair.",
"items": {
"$ref": "DatedValue"
},
"type": "array"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Business Profile Performance API",
"version": "v1",
"version_module": true
}

Some files were not shown because too many files have changed in this diff Show More