Update matching logic: AI scores all candidates, lower threshold, absolute amount, prompt improvements

This commit is contained in:
Iyeoluwa Akinrinola
2025-07-02 16:38:01 +01:00
commit a519c42866
10641 changed files with 3944174 additions and 0 deletions
@@ -0,0 +1,27 @@
# Copyright 2014 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Set default logging handler to avoid "No handler found" warnings.
import logging
try: # Python 2.7+
from logging import NullHandler
except ImportError:
class NullHandler(logging.Handler):
def emit(self, record):
pass
logging.getLogger(__name__).addHandler(NullHandler())
@@ -0,0 +1,167 @@
# Copyright 2016 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Helpers for authentication using oauth2client or google-auth."""
import httplib2
try:
import google.auth
import google.auth.credentials
HAS_GOOGLE_AUTH = True
except ImportError: # pragma: NO COVER
HAS_GOOGLE_AUTH = False
try:
import google_auth_httplib2
except ImportError: # pragma: NO COVER
google_auth_httplib2 = None
try:
import oauth2client
import oauth2client.client
HAS_OAUTH2CLIENT = True
except ImportError: # pragma: NO COVER
HAS_OAUTH2CLIENT = False
def credentials_from_file(filename, scopes=None, quota_project_id=None):
"""Returns credentials loaded from a file."""
if HAS_GOOGLE_AUTH:
credentials, _ = google.auth.load_credentials_from_file(
filename, scopes=scopes, quota_project_id=quota_project_id
)
return credentials
else:
raise EnvironmentError(
"client_options.credentials_file is only supported in google-auth."
)
def default_credentials(scopes=None, quota_project_id=None):
"""Returns Application Default Credentials."""
if HAS_GOOGLE_AUTH:
credentials, _ = google.auth.default(
scopes=scopes, quota_project_id=quota_project_id
)
return credentials
elif HAS_OAUTH2CLIENT:
if scopes is not None or quota_project_id is not None:
raise EnvironmentError(
"client_options.scopes and client_options.quota_project_id are not supported in oauth2client."
"Please install google-auth."
)
return oauth2client.client.GoogleCredentials.get_application_default()
else:
raise EnvironmentError(
"No authentication library is available. Please install either "
"google-auth or oauth2client."
)
def with_scopes(credentials, scopes):
"""Scopes the credentials if necessary.
Args:
credentials (Union[
google.auth.credentials.Credentials,
oauth2client.client.Credentials]): The credentials to scope.
scopes (Sequence[str]): The list of scopes.
Returns:
Union[google.auth.credentials.Credentials,
oauth2client.client.Credentials]: The scoped credentials.
"""
if HAS_GOOGLE_AUTH and isinstance(credentials, google.auth.credentials.Credentials):
return google.auth.credentials.with_scopes_if_required(credentials, scopes)
else:
try:
if credentials.create_scoped_required():
return credentials.create_scoped(scopes)
else:
return credentials
except AttributeError:
return credentials
def authorized_http(credentials):
"""Returns an http client that is authorized with the given credentials.
Args:
credentials (Union[
google.auth.credentials.Credentials,
oauth2client.client.Credentials]): The credentials to use.
Returns:
Union[httplib2.Http, google_auth_httplib2.AuthorizedHttp]: An
authorized http client.
"""
from googleapiclient.http import build_http
if HAS_GOOGLE_AUTH and isinstance(credentials, google.auth.credentials.Credentials):
if google_auth_httplib2 is None:
raise ValueError(
"Credentials from google.auth specified, but "
"google-api-python-client is unable to use these credentials "
"unless google-auth-httplib2 is installed. Please install "
"google-auth-httplib2."
)
return google_auth_httplib2.AuthorizedHttp(credentials, http=build_http())
else:
return credentials.authorize(build_http())
def refresh_credentials(credentials):
# Refresh must use a new http instance, as the one associated with the
# credentials could be a AuthorizedHttp or an oauth2client-decorated
# Http instance which would cause a weird recursive loop of refreshing
# and likely tear a hole in spacetime.
refresh_http = httplib2.Http()
if HAS_GOOGLE_AUTH and isinstance(credentials, google.auth.credentials.Credentials):
request = google_auth_httplib2.Request(refresh_http)
return credentials.refresh(request)
else:
return credentials.refresh(refresh_http)
def apply_credentials(credentials, headers):
# oauth2client and google-auth have the same interface for this.
if not is_valid(credentials):
refresh_credentials(credentials)
return credentials.apply(headers)
def is_valid(credentials):
if HAS_GOOGLE_AUTH and isinstance(credentials, google.auth.credentials.Credentials):
return credentials.valid
else:
return (
credentials.access_token is not None
and not credentials.access_token_expired
)
def get_credentials_from_http(http):
if http is None:
return None
elif hasattr(http.request, "credentials"):
return http.request.credentials
elif hasattr(http, "credentials") and not isinstance(
http.credentials, httplib2.Credentials
):
return http.credentials
else:
return None
@@ -0,0 +1,207 @@
# Copyright 2015 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Helper functions for commonly used utilities."""
import functools
import inspect
import logging
import urllib
logger = logging.getLogger(__name__)
POSITIONAL_WARNING = "WARNING"
POSITIONAL_EXCEPTION = "EXCEPTION"
POSITIONAL_IGNORE = "IGNORE"
POSITIONAL_SET = frozenset(
[POSITIONAL_WARNING, POSITIONAL_EXCEPTION, POSITIONAL_IGNORE]
)
positional_parameters_enforcement = POSITIONAL_WARNING
_SYM_LINK_MESSAGE = "File: {0}: Is a symbolic link."
_IS_DIR_MESSAGE = "{0}: Is a directory"
_MISSING_FILE_MESSAGE = "Cannot access {0}: No such file or directory"
def positional(max_positional_args):
"""A decorator to declare that only the first N arguments may be positional.
This decorator makes it easy to support Python 3 style keyword-only
parameters. For example, in Python 3 it is possible to write::
def fn(pos1, *, kwonly1=None, kwonly2=None):
...
All named parameters after ``*`` must be a keyword::
fn(10, 'kw1', 'kw2') # Raises exception.
fn(10, kwonly1='kw1') # Ok.
Example
^^^^^^^
To define a function like above, do::
@positional(1)
def fn(pos1, kwonly1=None, kwonly2=None):
...
If no default value is provided to a keyword argument, it becomes a
required keyword argument::
@positional(0)
def fn(required_kw):
...
This must be called with the keyword parameter::
fn() # Raises exception.
fn(10) # Raises exception.
fn(required_kw=10) # Ok.
When defining instance or class methods always remember to account for
``self`` and ``cls``::
class MyClass(object):
@positional(2)
def my_method(self, pos1, kwonly1=None):
...
@classmethod
@positional(2)
def my_method(cls, pos1, kwonly1=None):
...
The positional decorator behavior is controlled by
``_helpers.positional_parameters_enforcement``, which may be set to
``POSITIONAL_EXCEPTION``, ``POSITIONAL_WARNING`` or
``POSITIONAL_IGNORE`` to raise an exception, log a warning, or do
nothing, respectively, if a declaration is violated.
Args:
max_positional_arguments: Maximum number of positional arguments. All
parameters after this index must be
keyword only.
Returns:
A decorator that prevents using arguments after max_positional_args
from being used as positional parameters.
Raises:
TypeError: if a keyword-only argument is provided as a positional
parameter, but only if
_helpers.positional_parameters_enforcement is set to
POSITIONAL_EXCEPTION.
"""
def positional_decorator(wrapped):
@functools.wraps(wrapped)
def positional_wrapper(*args, **kwargs):
if len(args) > max_positional_args:
plural_s = ""
if max_positional_args != 1:
plural_s = "s"
message = (
"{function}() takes at most {args_max} positional "
"argument{plural} ({args_given} given)".format(
function=wrapped.__name__,
args_max=max_positional_args,
args_given=len(args),
plural=plural_s,
)
)
if positional_parameters_enforcement == POSITIONAL_EXCEPTION:
raise TypeError(message)
elif positional_parameters_enforcement == POSITIONAL_WARNING:
logger.warning(message)
return wrapped(*args, **kwargs)
return positional_wrapper
if isinstance(max_positional_args, int):
return positional_decorator
else:
args, _, _, defaults, _, _, _ = inspect.getfullargspec(max_positional_args)
return positional(len(args) - len(defaults))(max_positional_args)
def parse_unique_urlencoded(content):
"""Parses unique key-value parameters from urlencoded content.
Args:
content: string, URL-encoded key-value pairs.
Returns:
dict, The key-value pairs from ``content``.
Raises:
ValueError: if one of the keys is repeated.
"""
urlencoded_params = urllib.parse.parse_qs(content)
params = {}
for key, value in urlencoded_params.items():
if len(value) != 1:
msg = "URL-encoded content contains a repeated value:" "%s -> %s" % (
key,
", ".join(value),
)
raise ValueError(msg)
params[key] = value[0]
return params
def update_query_params(uri, params):
"""Updates a URI with new query parameters.
If a given key from ``params`` is repeated in the ``uri``, then
the URI will be considered invalid and an error will occur.
If the URI is valid, then each value from ``params`` will
replace the corresponding value in the query parameters (if
it exists).
Args:
uri: string, A valid URI, with potential existing query parameters.
params: dict, A dictionary of query parameters.
Returns:
The same URI but with the new query parameters added.
"""
parts = urllib.parse.urlparse(uri)
query_params = parse_unique_urlencoded(parts.query)
query_params.update(params)
new_query = urllib.parse.urlencode(query_params)
new_parts = parts._replace(query=new_query)
return urllib.parse.urlunparse(new_parts)
def _add_query_parameter(url, name, value):
"""Adds a query parameter to a url.
Replaces the current value if it already exists in the URL.
Args:
url: string, url to add the query parameter to.
name: string, query parameter name.
value: string, query parameter value.
Returns:
Updated query parameter. Does not update the url if value is None.
"""
if value is None:
return url
else:
return update_query_params(url, {name: value})
@@ -0,0 +1,315 @@
# Copyright 2014 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Channel notifications support.
Classes and functions to support channel subscriptions and notifications
on those channels.
Notes:
- This code is based on experimental APIs and is subject to change.
- Notification does not do deduplication of notification ids, that's up to
the receiver.
- Storing the Channel between calls is up to the caller.
Example setting up a channel:
# Create a new channel that gets notifications via webhook.
channel = new_webhook_channel("https://example.com/my_web_hook")
# Store the channel, keyed by 'channel.id'. Store it before calling the
# watch method because notifications may start arriving before the watch
# method returns.
...
resp = service.objects().watchAll(
bucket="some_bucket_id", body=channel.body()).execute()
channel.update(resp)
# Store the channel, keyed by 'channel.id'. Store it after being updated
# since the resource_id value will now be correct, and that's needed to
# stop a subscription.
...
An example Webhook implementation using webapp2. Note that webapp2 puts
headers in a case insensitive dictionary, as headers aren't guaranteed to
always be upper case.
id = self.request.headers[X_GOOG_CHANNEL_ID]
# Retrieve the channel by id.
channel = ...
# Parse notification from the headers, including validating the id.
n = notification_from_headers(channel, self.request.headers)
# Do app specific stuff with the notification here.
if n.resource_state == 'sync':
# Code to handle sync state.
elif n.resource_state == 'exists':
# Code to handle the exists state.
elif n.resource_state == 'not_exists':
# Code to handle the not exists state.
Example of unsubscribing.
service.channels().stop(channel.body()).execute()
"""
from __future__ import absolute_import
import datetime
import uuid
from googleapiclient import _helpers as util
from googleapiclient import errors
# The unix time epoch starts at midnight 1970.
EPOCH = datetime.datetime(1970, 1, 1)
# Map the names of the parameters in the JSON channel description to
# the parameter names we use in the Channel class.
CHANNEL_PARAMS = {
"address": "address",
"id": "id",
"expiration": "expiration",
"params": "params",
"resourceId": "resource_id",
"resourceUri": "resource_uri",
"type": "type",
"token": "token",
}
X_GOOG_CHANNEL_ID = "X-GOOG-CHANNEL-ID"
X_GOOG_MESSAGE_NUMBER = "X-GOOG-MESSAGE-NUMBER"
X_GOOG_RESOURCE_STATE = "X-GOOG-RESOURCE-STATE"
X_GOOG_RESOURCE_URI = "X-GOOG-RESOURCE-URI"
X_GOOG_RESOURCE_ID = "X-GOOG-RESOURCE-ID"
def _upper_header_keys(headers):
new_headers = {}
for k, v in headers.items():
new_headers[k.upper()] = v
return new_headers
class Notification(object):
"""A Notification from a Channel.
Notifications are not usually constructed directly, but are returned
from functions like notification_from_headers().
Attributes:
message_number: int, The unique id number of this notification.
state: str, The state of the resource being monitored.
uri: str, The address of the resource being monitored.
resource_id: str, The unique identifier of the version of the resource at
this event.
"""
@util.positional(5)
def __init__(self, message_number, state, resource_uri, resource_id):
"""Notification constructor.
Args:
message_number: int, The unique id number of this notification.
state: str, The state of the resource being monitored. Can be one
of "exists", "not_exists", or "sync".
resource_uri: str, The address of the resource being monitored.
resource_id: str, The identifier of the watched resource.
"""
self.message_number = message_number
self.state = state
self.resource_uri = resource_uri
self.resource_id = resource_id
class Channel(object):
"""A Channel for notifications.
Usually not constructed directly, instead it is returned from helper
functions like new_webhook_channel().
Attributes:
type: str, The type of delivery mechanism used by this channel. For
example, 'web_hook'.
id: str, A UUID for the channel.
token: str, An arbitrary string associated with the channel that
is delivered to the target address with each event delivered
over this channel.
address: str, The address of the receiving entity where events are
delivered. Specific to the channel type.
expiration: int, The time, in milliseconds from the epoch, when this
channel will expire.
params: dict, A dictionary of string to string, with additional parameters
controlling delivery channel behavior.
resource_id: str, An opaque id that identifies the resource that is
being watched. Stable across different API versions.
resource_uri: str, The canonicalized ID of the watched resource.
"""
@util.positional(5)
def __init__(
self,
type,
id,
token,
address,
expiration=None,
params=None,
resource_id="",
resource_uri="",
):
"""Create a new Channel.
In user code, this Channel constructor will not typically be called
manually since there are functions for creating channels for each specific
type with a more customized set of arguments to pass.
Args:
type: str, The type of delivery mechanism used by this channel. For
example, 'web_hook'.
id: str, A UUID for the channel.
token: str, An arbitrary string associated with the channel that
is delivered to the target address with each event delivered
over this channel.
address: str, The address of the receiving entity where events are
delivered. Specific to the channel type.
expiration: int, The time, in milliseconds from the epoch, when this
channel will expire.
params: dict, A dictionary of string to string, with additional parameters
controlling delivery channel behavior.
resource_id: str, An opaque id that identifies the resource that is
being watched. Stable across different API versions.
resource_uri: str, The canonicalized ID of the watched resource.
"""
self.type = type
self.id = id
self.token = token
self.address = address
self.expiration = expiration
self.params = params
self.resource_id = resource_id
self.resource_uri = resource_uri
def body(self):
"""Build a body from the Channel.
Constructs a dictionary that's appropriate for passing into watch()
methods as the value of body argument.
Returns:
A dictionary representation of the channel.
"""
result = {
"id": self.id,
"token": self.token,
"type": self.type,
"address": self.address,
}
if self.params:
result["params"] = self.params
if self.resource_id:
result["resourceId"] = self.resource_id
if self.resource_uri:
result["resourceUri"] = self.resource_uri
if self.expiration:
result["expiration"] = self.expiration
return result
def update(self, resp):
"""Update a channel with information from the response of watch().
When a request is sent to watch() a resource, the response returned
from the watch() request is a dictionary with updated channel information,
such as the resource_id, which is needed when stopping a subscription.
Args:
resp: dict, The response from a watch() method.
"""
for json_name, param_name in CHANNEL_PARAMS.items():
value = resp.get(json_name)
if value is not None:
setattr(self, param_name, value)
def notification_from_headers(channel, headers):
"""Parse a notification from the webhook request headers, validate
the notification, and return a Notification object.
Args:
channel: Channel, The channel that the notification is associated with.
headers: dict, A dictionary like object that contains the request headers
from the webhook HTTP request.
Returns:
A Notification object.
Raises:
errors.InvalidNotificationError if the notification is invalid.
ValueError if the X-GOOG-MESSAGE-NUMBER can't be converted to an int.
"""
headers = _upper_header_keys(headers)
channel_id = headers[X_GOOG_CHANNEL_ID]
if channel.id != channel_id:
raise errors.InvalidNotificationError(
"Channel id mismatch: %s != %s" % (channel.id, channel_id)
)
else:
message_number = int(headers[X_GOOG_MESSAGE_NUMBER])
state = headers[X_GOOG_RESOURCE_STATE]
resource_uri = headers[X_GOOG_RESOURCE_URI]
resource_id = headers[X_GOOG_RESOURCE_ID]
return Notification(message_number, state, resource_uri, resource_id)
@util.positional(2)
def new_webhook_channel(url, token=None, expiration=None, params=None):
"""Create a new webhook Channel.
Args:
url: str, URL to post notifications to.
token: str, An arbitrary string associated with the channel that
is delivered to the target address with each notification delivered
over this channel.
expiration: datetime.datetime, A time in the future when the channel
should expire. Can also be None if the subscription should use the
default expiration. Note that different services may have different
limits on how long a subscription lasts. Check the response from the
watch() method to see the value the service has set for an expiration
time.
params: dict, Extra parameters to pass on channel creation. Currently
not used for webhook channels.
"""
expiration_ms = 0
if expiration:
delta = expiration - EPOCH
expiration_ms = (
delta.microseconds / 1000 + (delta.seconds + delta.days * 24 * 3600) * 1000
)
if expiration_ms < 0:
expiration_ms = 0
return Channel(
"web_hook",
str(uuid.uuid4()),
token,
url,
expiration=expiration_ms,
params=params,
)
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,78 @@
# Copyright 2014 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Caching utility for the discovery document."""
from __future__ import absolute_import
import logging
import os
LOGGER = logging.getLogger(__name__)
DISCOVERY_DOC_MAX_AGE = 60 * 60 * 24 # 1 day
DISCOVERY_DOC_DIR = os.path.join(
os.path.dirname(os.path.realpath(__file__)), "documents"
)
def autodetect():
"""Detects an appropriate cache module and returns it.
Returns:
googleapiclient.discovery_cache.base.Cache, a cache object which
is auto detected, or None if no cache object is available.
"""
if "GAE_ENV" in os.environ:
try:
from . import appengine_memcache
return appengine_memcache.cache
except Exception:
pass
try:
from . import file_cache
return file_cache.cache
except Exception:
LOGGER.info(
"file_cache is only supported with oauth2client<4.0.0", exc_info=False
)
return None
def get_static_doc(serviceName, version):
"""Retrieves the discovery document from the directory defined in
DISCOVERY_DOC_DIR corresponding to the serviceName and version provided.
Args:
serviceName: string, name of the service.
version: string, the version of the service.
Returns:
A string containing the contents of the JSON discovery document,
otherwise None if the JSON discovery document was not found.
"""
content = None
doc_name = "{}.{}.json".format(serviceName, version)
try:
with open(os.path.join(DISCOVERY_DOC_DIR, doc_name), "r") as f:
content = f.read()
except FileNotFoundError:
# File does not exist. Nothing to do here.
pass
return content
@@ -0,0 +1,55 @@
# Copyright 2014 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""App Engine memcache based cache for the discovery document."""
import logging
# This is only an optional dependency because we only import this
# module when google.appengine.api.memcache is available.
from google.appengine.api import memcache
from . import base
from ..discovery_cache import DISCOVERY_DOC_MAX_AGE
LOGGER = logging.getLogger(__name__)
NAMESPACE = "google-api-client"
class Cache(base.Cache):
"""A cache with app engine memcache API."""
def __init__(self, max_age):
"""Constructor.
Args:
max_age: Cache expiration in seconds.
"""
self._max_age = max_age
def get(self, url):
try:
return memcache.get(url, namespace=NAMESPACE)
except Exception as e:
LOGGER.warning(e, exc_info=True)
def set(self, url, content):
try:
memcache.set(url, content, time=int(self._max_age), namespace=NAMESPACE)
except Exception as e:
LOGGER.warning(e, exc_info=True)
cache = Cache(max_age=DISCOVERY_DOC_MAX_AGE)
@@ -0,0 +1,46 @@
# Copyright 2014 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""An abstract class for caching the discovery document."""
import abc
class Cache(object):
"""A base abstract cache class."""
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
def get(self, url):
"""Gets the content from the memcache with a given key.
Args:
url: string, the key for the cache.
Returns:
object, the value in the cache for the given key, or None if the key is
not in the cache.
"""
raise NotImplementedError()
@abc.abstractmethod
def set(self, url, content):
"""Sets the given key and content in the cache.
Args:
url: string, the key for the cache.
content: string, the discovery document.
"""
raise NotImplementedError()
@@ -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
}
@@ -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
}
@@ -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
}
@@ -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
}
@@ -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"
}
@@ -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
}
@@ -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](/admin-sdk/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": "20250619",
"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()`](/admin-sdk/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](/admin-sdk/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"
}
@@ -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](/admin-sdk/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": "20250619",
"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()`](/admin-sdk/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](/admin-sdk/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"
}
@@ -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
}
@@ -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
}
@@ -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
@@ -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
}
@@ -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
}
@@ -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://g3doc.corp.google.com/geo/platform/area_insights/README.md?cl=head",
"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": "20250521",
"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
}
@@ -0,0 +1,397 @@
{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/authorized-buyers-marketplace": {
"description": "See, create, edit, and delete your Authorized Buyers Marketplace entities."
}
}
}
},
"basePath": "",
"baseUrl": "https://authorizedbuyersmarketplace.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Authorized Buyers Marketplace",
"description": "The Authorized Buyers Marketplace API lets buyers programmatically discover inventory; propose, retrieve and negotiate deals with publishers.",
"discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/authorized-buyers/apis/marketplace/reference/rest/",
"fullyEncodeReservedExpansion": true,
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"id": "authorizedbuyersmarketplace:v1beta",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://authorizedbuyersmarketplace.mtls.googleapis.com/",
"name": "authorizedbuyersmarketplace",
"ownerDomain": "google.com",
"ownerName": "Google",
"parameters": {
"$.xgafv": {
"description": "V1 error format.",
"enum": [
"1",
"2"
],
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"location": "query",
"type": "string"
},
"alt": {
"default": "json",
"description": "Data format for response.",
"enum": [
"json",
"media",
"proto"
],
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"type": "string"
},
"callback": {
"description": "JSONP",
"location": "query",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"location": "query",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"location": "query",
"type": "boolean"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"location": "query",
"type": "string"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"location": "query",
"type": "string"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"location": "query",
"type": "string"
}
},
"protocol": "rest",
"resources": {
"curators": {
"resources": {
"dataSegments": {
"methods": {
"activate": {
"description": "Activates a data segment.",
"flatPath": "v1beta/curators/{curatorsId}/dataSegments/{dataSegmentsId}:activate",
"httpMethod": "POST",
"id": "authorizedbuyersmarketplace.curators.dataSegments.activate",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of data segment to activate. v1alpha format: `buyers/{accountId}/dataSegments/{curatorDataSegmentId}` v1beta format: `curators/{accountId}/dataSegments/{curatorDataSegmentId}`",
"location": "path",
"pattern": "^curators/[^/]+/dataSegments/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+name}:activate",
"request": {
"$ref": "ActivateDataSegmentRequest"
},
"response": {
"$ref": "DataSegment"
},
"scopes": [
"https://www.googleapis.com/auth/authorized-buyers-marketplace"
]
},
"create": {
"description": "Creates a data segment owned by the listed curator. The data segment will be created in the `ACTIVE` state, meaning it will be immediately available for buyers to use in preferred deals, private auction deals, and auction packages.",
"flatPath": "v1beta/curators/{curatorsId}/dataSegments",
"httpMethod": "POST",
"id": "authorizedbuyersmarketplace.curators.dataSegments.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. The parent resource where this data segment will be created. v1alpha format: `buyers/{accountId}` v1beta format: `curators/{accountId}`",
"location": "path",
"pattern": "^curators/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+parent}/dataSegments",
"request": {
"$ref": "DataSegment"
},
"response": {
"$ref": "DataSegment"
},
"scopes": [
"https://www.googleapis.com/auth/authorized-buyers-marketplace"
]
},
"deactivate": {
"description": "Deactivates a data segment.",
"flatPath": "v1beta/curators/{curatorsId}/dataSegments/{dataSegmentsId}:deactivate",
"httpMethod": "POST",
"id": "authorizedbuyersmarketplace.curators.dataSegments.deactivate",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of data segment to deactivate. v1alpha format: `buyers/{accountId}/dataSegments/{curatorDataSegmentId}` v1beta format: `curators/{accountId}/dataSegments/{curatorDataSegmentId}`",
"location": "path",
"pattern": "^curators/[^/]+/dataSegments/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+name}:deactivate",
"request": {
"$ref": "DeactivateDataSegmentRequest"
},
"response": {
"$ref": "DataSegment"
},
"scopes": [
"https://www.googleapis.com/auth/authorized-buyers-marketplace"
]
},
"get": {
"description": "Gets a data segment given its name.",
"flatPath": "v1beta/curators/{curatorsId}/dataSegments/{dataSegmentsId}",
"httpMethod": "GET",
"id": "authorizedbuyersmarketplace.curators.dataSegments.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of data segment to get. v1alpha format: `buyers/{accountId}/dataSegments/{curatorDataSegmentId}` v1beta format: `curators/{accountId}/dataSegments/{curatorDataSegmentId}`",
"location": "path",
"pattern": "^curators/[^/]+/dataSegments/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+name}",
"response": {
"$ref": "DataSegment"
},
"scopes": [
"https://www.googleapis.com/auth/authorized-buyers-marketplace"
]
},
"list": {
"description": "List the data segments owned by a curator.",
"flatPath": "v1beta/curators/{curatorsId}/dataSegments",
"httpMethod": "GET",
"id": "authorizedbuyersmarketplace.curators.dataSegments.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "Optional. Requested page size. The server may return fewer results than requested. Max allowed page size is 500. If unspecified, the server will default to 500.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "Optional. The page token as returned. ListDataSegmentsResponse.nextPageToken",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. Name of the parent curator that can access the data segment. v1alpha format: `buyers/{accountId}` v1beta format: `curators/{accountId}`",
"location": "path",
"pattern": "^curators/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta/{+parent}/dataSegments",
"response": {
"$ref": "ListDataSegmentsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/authorized-buyers-marketplace"
]
},
"patch": {
"description": "Updates a data segment.",
"flatPath": "v1beta/curators/{curatorsId}/dataSegments/{dataSegmentsId}",
"httpMethod": "PATCH",
"id": "authorizedbuyersmarketplace.curators.dataSegments.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Immutable. Identifier. The unique identifier for the data segment. Account ID corresponds to the account ID that created the segment. v1alpha format: `buyers/{accountId}/dataSegments/{curatorDataSegmentId}` v1beta format: `curators/{curatorAccountId}/dataSegments/{curatorDataSegmentId}`",
"location": "path",
"pattern": "^curators/[^/]+/dataSegments/[^/]+$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "Optional. List of fields to be updated. If empty or unspecified, the service will update all fields populated in the update request excluding the output only fields and primitive fields with default value. Note that explicit field mask is required in order to reset a primitive field back to its default value, for example, false for boolean fields, 0 for integer fields. A special field mask consisting of a single path \"*\" can be used to indicate full replacement(the equivalent of PUT method), updatable fields unset or unspecified in the input will be cleared or set to default value. Output only fields will be ignored regardless of the value of updateMask.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v1beta/{+name}",
"request": {
"$ref": "DataSegment"
},
"response": {
"$ref": "DataSegment"
},
"scopes": [
"https://www.googleapis.com/auth/authorized-buyers-marketplace"
]
}
}
}
}
}
},
"revision": "20250616",
"rootUrl": "https://authorizedbuyersmarketplace.googleapis.com/",
"schemas": {
"ActivateDataSegmentRequest": {
"description": "Request message for activating a data segment",
"id": "ActivateDataSegmentRequest",
"properties": {},
"type": "object"
},
"DataSegment": {
"description": "Defines an identifier for a segment of inventory that can be targeted by curators or media planners in the deals or auction packages UI. Curation of inventory is done by curators on external platforms.",
"id": "DataSegment",
"properties": {
"cpmFee": {
"$ref": "Money",
"description": "Required. This will be charged when other accounts use this data segment. For example, when other accounts add this data segment to a deal or auction package. Once set, the currency code cannot be changed."
},
"createTime": {
"description": "Output only. Time the data segment was created.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"name": {
"description": "Immutable. Identifier. The unique identifier for the data segment. Account ID corresponds to the account ID that created the segment. v1alpha format: `buyers/{accountId}/dataSegments/{curatorDataSegmentId}` v1beta format: `curators/{curatorAccountId}/dataSegments/{curatorDataSegmentId}`",
"type": "string"
},
"state": {
"description": "Output only. The state of the data segment.",
"enum": [
"STATE_UNSPECIFIED",
"ACTIVE",
"INACTIVE"
],
"enumDescriptions": [
"Default value.",
"The data segment is active.",
"The data segment is inactive."
],
"readOnly": true,
"type": "string"
},
"updateTime": {
"description": "Output only. Time the data segment was last updated.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"DeactivateDataSegmentRequest": {
"description": "Request message for deactivating a data segment",
"id": "DeactivateDataSegmentRequest",
"properties": {},
"type": "object"
},
"ListDataSegmentsResponse": {
"description": "Response message for listing data segments.",
"id": "ListDataSegmentsResponse",
"properties": {
"dataSegments": {
"description": "The list of data segments.",
"items": {
"$ref": "DataSegment"
},
"type": "array"
},
"nextPageToken": {
"description": "Continuation token for fetching the next page of results. Pass this value in the ListDataSegmentsRequest.pageToken field in the subsequent call to the `ListDataSegments` method to retrieve the next page of results.",
"type": "string"
}
},
"type": "object"
},
"Money": {
"description": "Represents an amount of money with its currency type.",
"id": "Money",
"properties": {
"currencyCode": {
"description": "The three-letter currency code defined in ISO 4217.",
"type": "string"
},
"nanos": {
"description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.",
"format": "int32",
"type": "integer"
},
"units": {
"description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.",
"format": "int64",
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Authorized Buyers Marketplace API",
"version": "v1beta",
"version_module": true
}
@@ -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
}
@@ -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
}
@@ -0,0 +1,910 @@
{
"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://biglake.googleapis.com/",
"batchPath": "batch",
"canonicalName": "BigLake Service",
"description": "The BigLake API provides access to BigLake Metastore, a serverless, fully managed, and highly available metastore for open-source data that can be used for querying Apache Iceberg tables in BigQuery.",
"discoveryVersion": "v1",
"documentationLink": "https://cloud.google.com/bigquery/",
"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": "biglake:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://biglake.mtls.googleapis.com/",
"name": "biglake",
"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": {
"catalogs": {
"methods": {
"create": {
"description": "Creates a new catalog.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/catalogs",
"httpMethod": "POST",
"id": "biglake.projects.locations.catalogs.create",
"parameterOrder": [
"parent"
],
"parameters": {
"catalogId": {
"description": "Required. The ID to use for the catalog, which will become the final component of the catalog's resource name.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. The parent resource where this catalog will be created. Format: projects/{project_id_or_number}/locations/{location_id}",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+parent}/catalogs",
"request": {
"$ref": "Catalog"
},
"response": {
"$ref": "Catalog"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"delete": {
"description": "Deletes an existing catalog specified by the catalog ID.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}",
"httpMethod": "DELETE",
"id": "biglake.projects.locations.catalogs.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The name of the catalog to delete. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Catalog"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"get": {
"description": "Gets the catalog specified by the resource name.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}",
"httpMethod": "GET",
"id": "biglake.projects.locations.catalogs.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The name of the catalog to retrieve. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Catalog"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"list": {
"description": "List all catalogs in a specified project.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/catalogs",
"httpMethod": "GET",
"id": "biglake.projects.locations.catalogs.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "The maximum number of catalogs to return. The service may return fewer than this value. If unspecified, at most 50 catalogs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "A page token, received from a previous `ListCatalogs` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListCatalogs` must match the call that provided the page token.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. The parent, which owns this collection of catalogs. Format: projects/{project_id_or_number}/locations/{location_id}",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+parent}/catalogs",
"response": {
"$ref": "ListCatalogsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
}
},
"resources": {
"databases": {
"methods": {
"create": {
"description": "Creates a new database.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/databases",
"httpMethod": "POST",
"id": "biglake.projects.locations.catalogs.databases.create",
"parameterOrder": [
"parent"
],
"parameters": {
"databaseId": {
"description": "Required. The ID to use for the database, which will become the final component of the database's resource name.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. The parent resource where this database will be created. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+parent}/databases",
"request": {
"$ref": "Database"
},
"response": {
"$ref": "Database"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"delete": {
"description": "Deletes an existing database specified by the database ID.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/databases/{databasesId}",
"httpMethod": "DELETE",
"id": "biglake.projects.locations.catalogs.databases.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The name of the database to delete. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id}",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/databases/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Database"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"get": {
"description": "Gets the database specified by the resource name.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/databases/{databasesId}",
"httpMethod": "GET",
"id": "biglake.projects.locations.catalogs.databases.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The name of the database to retrieve. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id}",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/databases/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Database"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"list": {
"description": "List all databases in a specified catalog.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/databases",
"httpMethod": "GET",
"id": "biglake.projects.locations.catalogs.databases.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "The maximum number of databases to return. The service may return fewer than this value. If unspecified, at most 50 databases will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "A page token, received from a previous `ListDatabases` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDatabases` must match the call that provided the page token.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. The parent, which owns this collection of databases. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+parent}/databases",
"response": {
"$ref": "ListDatabasesResponse"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"patch": {
"description": "Updates an existing database specified by the database ID.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/databases/{databasesId}",
"httpMethod": "PATCH",
"id": "biglake.projects.locations.catalogs.databases.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Output only. The resource name. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id}",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/databases/[^/]+$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "The list of fields to update. 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.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v1/{+name}",
"request": {
"$ref": "Database"
},
"response": {
"$ref": "Database"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
}
},
"resources": {
"tables": {
"methods": {
"create": {
"description": "Creates a new table.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/databases/{databasesId}/tables",
"httpMethod": "POST",
"id": "biglake.projects.locations.catalogs.databases.tables.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. The parent resource where this table will be created. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id}",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/databases/[^/]+$",
"required": true,
"type": "string"
},
"tableId": {
"description": "Required. The ID to use for the table, which will become the final component of the table's resource name.",
"location": "query",
"type": "string"
}
},
"path": "v1/{+parent}/tables",
"request": {
"$ref": "Table"
},
"response": {
"$ref": "Table"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"delete": {
"description": "Deletes an existing table specified by the table ID.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/databases/{databasesId}/tables/{tablesId}",
"httpMethod": "DELETE",
"id": "biglake.projects.locations.catalogs.databases.tables.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The name of the table to delete. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id}/tables/{table_id}",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/databases/[^/]+/tables/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Table"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"get": {
"description": "Gets the table specified by the resource name.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/databases/{databasesId}/tables/{tablesId}",
"httpMethod": "GET",
"id": "biglake.projects.locations.catalogs.databases.tables.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The name of the table to retrieve. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id}/tables/{table_id}",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/databases/[^/]+/tables/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Table"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"list": {
"description": "List all tables in a specified database.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/databases/{databasesId}/tables",
"httpMethod": "GET",
"id": "biglake.projects.locations.catalogs.databases.tables.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "The maximum number of tables to return. The service may return fewer than this value. If unspecified, at most 50 tables will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "A page token, received from a previous `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"
},
"parent": {
"description": "Required. The parent, which owns this collection of tables. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id}",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/databases/[^/]+$",
"required": true,
"type": "string"
},
"view": {
"description": "The view for the returned tables.",
"enum": [
"TABLE_VIEW_UNSPECIFIED",
"BASIC",
"FULL"
],
"enumDescriptions": [
"Default value. The API will default to the BASIC view.",
"Include only table names. This is the default value.",
"Include everything."
],
"location": "query",
"type": "string"
}
},
"path": "v1/{+parent}/tables",
"response": {
"$ref": "ListTablesResponse"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"patch": {
"description": "Updates an existing table specified by the table ID.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/databases/{databasesId}/tables/{tablesId}",
"httpMethod": "PATCH",
"id": "biglake.projects.locations.catalogs.databases.tables.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Output only. The resource name. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id}/tables/{table_id}",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/databases/[^/]+/tables/[^/]+$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "The list of fields to update. 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.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v1/{+name}",
"request": {
"$ref": "Table"
},
"response": {
"$ref": "Table"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"rename": {
"description": "Renames an existing table specified by the table ID.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/databases/{databasesId}/tables/{tablesId}:rename",
"httpMethod": "POST",
"id": "biglake.projects.locations.catalogs.databases.tables.rename",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The table's `name` field is used to identify the table to rename. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id}/tables/{table_id}",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/databases/[^/]+/tables/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}:rename",
"request": {
"$ref": "RenameTableRequest"
},
"response": {
"$ref": "Table"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
}
}
}
}
}
}
}
}
}
},
"revision": "20240703",
"rootUrl": "https://biglake.googleapis.com/",
"schemas": {
"Catalog": {
"description": "Catalog is the container of databases.",
"id": "Catalog",
"properties": {
"createTime": {
"description": "Output only. The creation time of the catalog.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"deleteTime": {
"description": "Output only. The deletion time of the catalog. Only set after the catalog is deleted.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"expireTime": {
"description": "Output only. The time when this catalog is considered expired. Only set after the catalog is deleted.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"name": {
"description": "Output only. The resource name. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}",
"readOnly": true,
"type": "string"
},
"updateTime": {
"description": "Output only. The last modification time of the catalog.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"Database": {
"description": "Database is the container of tables.",
"id": "Database",
"properties": {
"createTime": {
"description": "Output only. The creation time of the database.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"deleteTime": {
"description": "Output only. The deletion time of the database. Only set after the database is deleted.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"expireTime": {
"description": "Output only. The time when this database is considered expired. Only set after the database is deleted.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"hiveOptions": {
"$ref": "HiveDatabaseOptions",
"description": "Options of a Hive database."
},
"name": {
"description": "Output only. The resource name. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id}",
"readOnly": true,
"type": "string"
},
"type": {
"description": "The database type.",
"enum": [
"TYPE_UNSPECIFIED",
"HIVE"
],
"enumDescriptions": [
"The type is not specified.",
"Represents a database storing tables compatible with Hive Metastore tables."
],
"type": "string"
},
"updateTime": {
"description": "Output only. The last modification time of the database.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"HiveDatabaseOptions": {
"description": "Options of a Hive database.",
"id": "HiveDatabaseOptions",
"properties": {
"locationUri": {
"description": "Cloud Storage folder URI where the database data is stored, starting with \"gs://\".",
"type": "string"
},
"parameters": {
"additionalProperties": {
"type": "string"
},
"description": "Stores user supplied Hive database parameters.",
"type": "object"
}
},
"type": "object"
},
"HiveTableOptions": {
"description": "Options of a Hive table.",
"id": "HiveTableOptions",
"properties": {
"parameters": {
"additionalProperties": {
"type": "string"
},
"description": "Stores user supplied Hive table parameters.",
"type": "object"
},
"storageDescriptor": {
"$ref": "StorageDescriptor",
"description": "Stores physical storage information of the data."
},
"tableType": {
"description": "Hive table type. For example, MANAGED_TABLE, EXTERNAL_TABLE.",
"type": "string"
}
},
"type": "object"
},
"ListCatalogsResponse": {
"description": "Response message for the ListCatalogs method.",
"id": "ListCatalogsResponse",
"properties": {
"catalogs": {
"description": "The catalogs from the specified project.",
"items": {
"$ref": "Catalog"
},
"type": "array"
},
"nextPageToken": {
"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
"type": "string"
}
},
"type": "object"
},
"ListDatabasesResponse": {
"description": "Response message for the ListDatabases method.",
"id": "ListDatabasesResponse",
"properties": {
"databases": {
"description": "The databases from the specified catalog.",
"items": {
"$ref": "Database"
},
"type": "array"
},
"nextPageToken": {
"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
"type": "string"
}
},
"type": "object"
},
"ListTablesResponse": {
"description": "Response message for the ListTables method.",
"id": "ListTablesResponse",
"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"
},
"tables": {
"description": "The tables from the specified database.",
"items": {
"$ref": "Table"
},
"type": "array"
}
},
"type": "object"
},
"RenameTableRequest": {
"description": "Request message for the RenameTable method in MetastoreService",
"id": "RenameTableRequest",
"properties": {
"newName": {
"description": "Required. The new `name` for the specified table, must be in the same database. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id}/tables/{table_id}",
"type": "string"
}
},
"type": "object"
},
"SerDeInfo": {
"description": "Serializer and deserializer information.",
"id": "SerDeInfo",
"properties": {
"serializationLib": {
"description": "The fully qualified Java class name of the serialization library.",
"type": "string"
}
},
"type": "object"
},
"StorageDescriptor": {
"description": "Stores physical storage information of the data.",
"id": "StorageDescriptor",
"properties": {
"inputFormat": {
"description": "The fully qualified Java class name of the input format.",
"type": "string"
},
"locationUri": {
"description": "Cloud Storage folder URI where the table data is stored, starting with \"gs://\".",
"type": "string"
},
"outputFormat": {
"description": "The fully qualified Java class name of the output format.",
"type": "string"
},
"serdeInfo": {
"$ref": "SerDeInfo",
"description": "Serializer and deserializer information."
}
},
"type": "object"
},
"Table": {
"description": "Represents a table.",
"id": "Table",
"properties": {
"createTime": {
"description": "Output only. The creation time of the table.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"deleteTime": {
"description": "Output only. The deletion time of the table. Only set after the table is deleted.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"etag": {
"description": "The checksum of a table object computed by the server based on the value of other fields. It may be sent on update requests to ensure the client has an up-to-date value before proceeding. It is only checked for update table operations.",
"type": "string"
},
"expireTime": {
"description": "Output only. The time when this table is considered expired. Only set after the table is deleted.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"hiveOptions": {
"$ref": "HiveTableOptions",
"description": "Options of a Hive table."
},
"name": {
"description": "Output only. The resource name. Format: projects/{project_id_or_number}/locations/{location_id}/catalogs/{catalog_id}/databases/{database_id}/tables/{table_id}",
"readOnly": true,
"type": "string"
},
"type": {
"description": "The table type.",
"enum": [
"TYPE_UNSPECIFIED",
"HIVE"
],
"enumDescriptions": [
"The type is not specified.",
"Represents a table compatible with Hive Metastore tables."
],
"type": "string"
},
"updateTime": {
"description": "Output only. The last modification time of the table.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "BigLake API",
"version": "v1",
"version_module": true
}

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