particionado

This commit is contained in:
Omar Sánchez Pizarro
2023-10-09 14:13:36 +02:00
parent 927c281631
commit d09c66b125
4711 changed files with 2368269 additions and 19 deletions

View File

@@ -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())

View File

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

View File

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

View File

@@ -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.utcfromtimestamp(0)
# 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

View File

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

View File

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

View File

@@ -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()

View File

@@ -0,0 +1,225 @@
{
"basePath": "",
"baseUrl": "https://abusiveexperiencereport.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Abusive Experience Report",
"description": "Views Abusive Experience Report data, and gets a list of sites that have a significant number of abusive experiences.",
"discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/abusive-experience-report/",
"fullyEncodeReservedExpansion": true,
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"id": "abusiveexperiencereport:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://abusiveexperiencereport.mtls.googleapis.com/",
"name": "abusiveexperiencereport",
"ownerDomain": "google.com",
"ownerName": "Google",
"parameters": {
"$.xgafv": {
"description": "V1 error format.",
"enum": [
"1",
"2"
],
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"location": "query",
"type": "string"
},
"alt": {
"default": "json",
"description": "Data format for response.",
"enum": [
"json",
"media",
"proto"
],
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"type": "string"
},
"callback": {
"description": "JSONP",
"location": "query",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"location": "query",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"location": "query",
"type": "boolean"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"location": "query",
"type": "string"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"location": "query",
"type": "string"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"location": "query",
"type": "string"
}
},
"protocol": "rest",
"resources": {
"sites": {
"methods": {
"get": {
"description": "Gets a site's Abusive Experience Report summary.",
"flatPath": "v1/sites/{sitesId}",
"httpMethod": "GET",
"id": "abusiveexperiencereport.sites.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The name of the site whose summary to get, e.g. `sites/http%3A%2F%2Fwww.google.com%2F`. Format: `sites/{site}`",
"location": "path",
"pattern": "^sites/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "SiteSummaryResponse"
}
}
}
},
"violatingSites": {
"methods": {
"list": {
"description": "Lists sites that are failing in the Abusive Experience Report.",
"flatPath": "v1/violatingSites",
"httpMethod": "GET",
"id": "abusiveexperiencereport.violatingSites.list",
"parameterOrder": [],
"parameters": {},
"path": "v1/violatingSites",
"response": {
"$ref": "ViolatingSitesResponse"
}
}
}
}
},
"revision": "20230807",
"rootUrl": "https://abusiveexperiencereport.googleapis.com/",
"schemas": {
"SiteSummaryResponse": {
"description": "Response message for GetSiteSummary.",
"id": "SiteSummaryResponse",
"properties": {
"abusiveStatus": {
"description": "The site's Abusive Experience Report status.",
"enum": [
"UNKNOWN",
"PASSING",
"FAILING"
],
"enumDescriptions": [
"Not reviewed.",
"Passing.",
"Failing."
],
"type": "string"
},
"enforcementTime": {
"description": "The time at which [enforcement](https://support.google.com/webtools/answer/7538608) against the site began or will begin. Not set when the filter_status is OFF.",
"format": "google-datetime",
"type": "string"
},
"filterStatus": {
"description": "The site's [enforcement status](https://support.google.com/webtools/answer/7538608).",
"enum": [
"UNKNOWN",
"ON",
"OFF",
"PAUSED",
"PENDING"
],
"enumDescriptions": [
"N/A.",
"Enforcement is on.",
"Enforcement is off.",
"Enforcement is paused.",
"Enforcement is pending."
],
"type": "string"
},
"lastChangeTime": {
"description": "The time at which the site's status last changed.",
"format": "google-datetime",
"type": "string"
},
"reportUrl": {
"description": "A link to the full Abusive Experience Report for the site. Not set in ViolatingSitesResponse. Note that you must complete the [Search Console verification process](https://support.google.com/webmasters/answer/9008080) for the site before you can access the full report.",
"type": "string"
},
"reviewedSite": {
"description": "The name of the reviewed site, e.g. `google.com`.",
"type": "string"
},
"underReview": {
"description": "Whether the site is currently under review.",
"type": "boolean"
}
},
"type": "object"
},
"ViolatingSitesResponse": {
"description": "Response message for ListViolatingSites.",
"id": "ViolatingSitesResponse",
"properties": {
"violatingSites": {
"description": "The list of violating sites.",
"items": {
"$ref": "SiteSummaryResponse"
},
"type": "array"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Abusive Experience Report API",
"version": "v1",
"version_module": true
}

View File

@@ -0,0 +1,235 @@
{
"basePath": "",
"baseUrl": "https://acceleratedmobilepageurl.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Acceleratedmobilepageurl",
"description": "Retrieves the list of AMP URLs (and equivalent AMP Cache URLs) for a given list of public URL(s). ",
"discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/amp/cache/",
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"id": "acceleratedmobilepageurl:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://acceleratedmobilepageurl.mtls.googleapis.com/",
"name": "acceleratedmobilepageurl",
"ownerDomain": "google.com",
"ownerName": "Google",
"parameters": {
"$.xgafv": {
"description": "V1 error format.",
"enum": [
"1",
"2"
],
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"location": "query",
"type": "string"
},
"alt": {
"default": "json",
"description": "Data format for response.",
"enum": [
"json",
"media",
"proto"
],
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"type": "string"
},
"callback": {
"description": "JSONP",
"location": "query",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"location": "query",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"location": "query",
"type": "boolean"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"location": "query",
"type": "string"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"location": "query",
"type": "string"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"location": "query",
"type": "string"
}
},
"protocol": "rest",
"resources": {
"ampUrls": {
"methods": {
"batchGet": {
"description": "Returns AMP URL(s) and equivalent [AMP Cache URL(s)](/amp/cache/overview#amp-cache-url-format).",
"flatPath": "v1/ampUrls:batchGet",
"httpMethod": "POST",
"id": "acceleratedmobilepageurl.ampUrls.batchGet",
"parameterOrder": [],
"parameters": {},
"path": "v1/ampUrls:batchGet",
"request": {
"$ref": "BatchGetAmpUrlsRequest"
},
"response": {
"$ref": "BatchGetAmpUrlsResponse"
}
}
}
}
},
"revision": "20230812",
"rootUrl": "https://acceleratedmobilepageurl.googleapis.com/",
"schemas": {
"AmpUrl": {
"description": "AMP URL response for a requested URL.",
"id": "AmpUrl",
"properties": {
"ampUrl": {
"description": "The AMP URL pointing to the publisher's web server.",
"type": "string"
},
"cdnAmpUrl": {
"description": "The [AMP Cache URL](/amp/cache/overview#amp-cache-url-format) pointing to the cached document in the Google AMP Cache.",
"type": "string"
},
"originalUrl": {
"description": "The original non-AMP URL.",
"type": "string"
}
},
"type": "object"
},
"AmpUrlError": {
"description": "AMP URL Error resource for a requested URL that couldn't be found.",
"id": "AmpUrlError",
"properties": {
"errorCode": {
"description": "The error code of an API call.",
"enum": [
"ERROR_CODE_UNSPECIFIED",
"INPUT_URL_NOT_FOUND",
"NO_AMP_URL",
"APPLICATION_ERROR",
"URL_IS_VALID_AMP",
"URL_IS_INVALID_AMP"
],
"enumDeprecated": [
false,
false,
false,
false,
true,
false
],
"enumDescriptions": [
"Not specified error.",
"Indicates the requested URL is not found in the index, possibly because it's unable to be found, not able to be accessed by Googlebot, or some other error.",
"Indicates no AMP URL has been found that corresponds to the requested URL.",
"Indicates some kind of application error occurred at the server. Client advised to retry.",
"DEPRECATED: Indicates the requested URL is a valid AMP URL. This is a non-error state, should not be relied upon as a sign of success or failure. It will be removed in future versions of the API.",
"Indicates that an AMP URL has been found that corresponds to the request URL, but it is not valid AMP HTML."
],
"type": "string"
},
"errorMessage": {
"description": "An optional descriptive error message.",
"type": "string"
},
"originalUrl": {
"description": "The original non-AMP URL.",
"type": "string"
}
},
"type": "object"
},
"BatchGetAmpUrlsRequest": {
"description": "AMP URL request for a batch of URLs.",
"id": "BatchGetAmpUrlsRequest",
"properties": {
"lookupStrategy": {
"description": "The lookup_strategy being requested.",
"enum": [
"FETCH_LIVE_DOC",
"IN_INDEX_DOC"
],
"enumDescriptions": [
"FETCH_LIVE_DOC strategy involves live document fetch of URLs not found in the index. Any request URL not found in the index is crawled in realtime to validate if there is a corresponding AMP URL. This strategy has higher coverage but with extra latency introduced by realtime crawling. This is the default strategy. Applications using this strategy should set higher HTTP timeouts of the API calls.",
"IN_INDEX_DOC strategy skips fetching live documents of URL(s) not found in index. For applications which need low latency use of IN_INDEX_DOC strategy is recommended."
],
"type": "string"
},
"urls": {
"description": "List of URLs to look up for the paired AMP URLs. The URLs are case-sensitive. Up to 50 URLs per lookup (see [Usage Limits](/amp/cache/reference/limits)).",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"BatchGetAmpUrlsResponse": {
"description": "Batch AMP URL response.",
"id": "BatchGetAmpUrlsResponse",
"properties": {
"ampUrls": {
"description": "For each URL in BatchAmpUrlsRequest, the URL response. The response might not be in the same order as URLs in the batch request. If BatchAmpUrlsRequest contains duplicate URLs, AmpUrl is generated only once.",
"items": {
"$ref": "AmpUrl"
},
"type": "array"
},
"urlErrors": {
"description": "The errors for requested URLs that have no AMP URL.",
"items": {
"$ref": "AmpUrlError"
},
"type": "array"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Accelerated Mobile Pages (AMP) URL API",
"version": "v1",
"version_module": true
}

View File

@@ -0,0 +1,222 @@
{
"basePath": "",
"baseUrl": "https://acmedns.googleapis.com/",
"batchPath": "batch",
"canonicalName": "ACME DNS",
"description": "Google Domains ACME DNS API that allows users to complete ACME DNS-01 challenges for a domain.",
"discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/domains/acme-dns/",
"fullyEncodeReservedExpansion": true,
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"id": "acmedns:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://acmedns.mtls.googleapis.com/",
"name": "acmedns",
"ownerDomain": "google.com",
"ownerName": "Google",
"parameters": {
"$.xgafv": {
"description": "V1 error format.",
"enum": [
"1",
"2"
],
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"location": "query",
"type": "string"
},
"alt": {
"default": "json",
"description": "Data format for response.",
"enum": [
"json",
"media",
"proto"
],
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"type": "string"
},
"callback": {
"description": "JSONP",
"location": "query",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"location": "query",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"location": "query",
"type": "boolean"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"location": "query",
"type": "string"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"location": "query",
"type": "string"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"location": "query",
"type": "string"
}
},
"protocol": "rest",
"resources": {
"acmeChallengeSets": {
"methods": {
"get": {
"description": "Gets the ACME challenge set for a given domain name. Domain names must be provided in Punycode.",
"flatPath": "v1/acmeChallengeSets/{rootDomain}",
"httpMethod": "GET",
"id": "acmedns.acmeChallengeSets.get",
"parameterOrder": [
"rootDomain"
],
"parameters": {
"rootDomain": {
"description": "Required. SLD + TLD domain name to list challenges. For example, this would be \"google.com\" for any FQDN under \"google.com\". That includes challenges for \"subdomain.google.com\". This MAY be Unicode or Punycode.",
"location": "path",
"required": true,
"type": "string"
}
},
"path": "v1/acmeChallengeSets/{rootDomain}",
"response": {
"$ref": "AcmeChallengeSet"
}
},
"rotateChallenges": {
"description": "Rotate the ACME challenges for a given domain name. By default, removes any challenges that are older than 30 days. Domain names must be provided in Punycode.",
"flatPath": "v1/acmeChallengeSets/{rootDomain}:rotateChallenges",
"httpMethod": "POST",
"id": "acmedns.acmeChallengeSets.rotateChallenges",
"parameterOrder": [
"rootDomain"
],
"parameters": {
"rootDomain": {
"description": "Required. SLD + TLD domain name to update records for. For example, this would be \"google.com\" for any FQDN under \"google.com\". That includes challenges for \"subdomain.google.com\". This MAY be Unicode or Punycode.",
"location": "path",
"required": true,
"type": "string"
}
},
"path": "v1/acmeChallengeSets/{rootDomain}:rotateChallenges",
"request": {
"$ref": "RotateChallengesRequest"
},
"response": {
"$ref": "AcmeChallengeSet"
}
}
}
}
},
"revision": "20230812",
"rootUrl": "https://acmedns.googleapis.com/",
"schemas": {
"AcmeChallengeSet": {
"description": "The up-to-date ACME challenge set on a domain for an RPC. This contains all of the ACME TXT records that exist on the domain.",
"id": "AcmeChallengeSet",
"properties": {
"record": {
"description": "The ACME challenges on the requested domain represented as individual TXT records.",
"items": {
"$ref": "AcmeTxtRecord"
},
"type": "array"
}
},
"type": "object"
},
"AcmeTxtRecord": {
"description": "The TXT record message that represents an ACME DNS-01 challenge.",
"id": "AcmeTxtRecord",
"properties": {
"digest": {
"description": "Holds the ACME challenge data put in the TXT record. This will be checked to be a valid TXT record data entry.",
"type": "string"
},
"fqdn": {
"description": "The domain/subdomain for the record. In a request, this MAY be Unicode or Punycode. In a response, this will be in Unicode. The fqdn MUST contain the root_domain field on the request.",
"type": "string"
},
"updateTime": {
"description": "Output only. The time when this record was last updated. This will be in UTC time.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"RotateChallengesRequest": {
"description": "The request message for the RotateChallenges RPC. Requires an access token, a root domain, and either records_to_add or records_to_remove to be populated. Records may be set for multiple subdomains at once to support SAN requests for multiple subdomains in a single domain. By default, ACME TXT record challenges that are older than 30 days will be removed. Set `keep_expired_records` to false if this behavior is undesired. There is a record maximum of 100 records per domain including expired records. Any request sent that would exceed this maximum will result in a FAILED_PRECONDITION error. NEXT ID: 6",
"id": "RotateChallengesRequest",
"properties": {
"accessToken": {
"description": "Required. ACME DNS access token. This is a base64 token secret that is procured from the Google Domains website. It authorizes ACME TXT record updates for a domain.",
"format": "byte",
"type": "string"
},
"keepExpiredRecords": {
"description": "Keep records older than 30 days that were used for previous requests.",
"type": "boolean"
},
"recordsToAdd": {
"description": "ACME TXT record challenges to add. Supports multiple challenges on the same FQDN.",
"items": {
"$ref": "AcmeTxtRecord"
},
"type": "array"
},
"recordsToRemove": {
"description": "ACME TXT record challenges to remove.",
"items": {
"$ref": "AcmeTxtRecord"
},
"type": "array"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "ACME DNS API",
"version": "v1",
"version_module": true
}

View File

@@ -0,0 +1,596 @@
{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/adexchange.buyer": {
"description": "Manage your Ad Exchange buyer account configuration"
}
}
}
},
"basePath": "/adexchangebuyer/v1.2/",
"baseUrl": "https://www.googleapis.com/adexchangebuyer/v1.2/",
"batchPath": "batch/adexchangebuyer/v1.2",
"canonicalName": "Ad Exchange Buyer",
"description": "Accesses your bidding-account information, submits creatives for validation, finds available direct deals, and retrieves performance reports.",
"discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/ad-exchange/buyer-rest",
"etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/5zRjPUGv2mBJ1B5Pi974NW_Asxk\"",
"icons": {
"x16": "https://www.google.com/images/icons/product/doubleclick-16.gif",
"x32": "https://www.google.com/images/icons/product/doubleclick-32.gif"
},
"id": "adexchangebuyer:v1.2",
"kind": "discovery#restDescription",
"name": "adexchangebuyer",
"ownerDomain": "google.com",
"ownerName": "Google",
"parameters": {
"alt": {
"default": "json",
"description": "Data format for the response.",
"enum": [
"json"
],
"enumDescriptions": [
"Responses with Content-Type of application/json"
],
"location": "query",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"location": "query",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"location": "query",
"type": "boolean"
},
"quotaUser": {
"description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
"location": "query",
"type": "string"
},
"userIp": {
"description": "Deprecated. Please use quotaUser instead.",
"location": "query",
"type": "string"
}
},
"protocol": "rest",
"resources": {
"accounts": {
"methods": {
"get": {
"description": "Gets one account by ID.",
"httpMethod": "GET",
"id": "adexchangebuyer.accounts.get",
"parameterOrder": [
"id"
],
"parameters": {
"id": {
"description": "The account id",
"format": "int32",
"location": "path",
"required": true,
"type": "integer"
}
},
"path": "accounts/{id}",
"response": {
"$ref": "Account"
},
"scopes": [
"https://www.googleapis.com/auth/adexchange.buyer"
]
},
"list": {
"description": "Retrieves the authenticated user's list of accounts.",
"httpMethod": "GET",
"id": "adexchangebuyer.accounts.list",
"path": "accounts",
"response": {
"$ref": "AccountsList"
},
"scopes": [
"https://www.googleapis.com/auth/adexchange.buyer"
]
},
"patch": {
"description": "Updates an existing account. This method supports patch semantics.",
"httpMethod": "PATCH",
"id": "adexchangebuyer.accounts.patch",
"parameterOrder": [
"id"
],
"parameters": {
"id": {
"description": "The account id",
"format": "int32",
"location": "path",
"required": true,
"type": "integer"
}
},
"path": "accounts/{id}",
"request": {
"$ref": "Account"
},
"response": {
"$ref": "Account"
},
"scopes": [
"https://www.googleapis.com/auth/adexchange.buyer"
]
},
"update": {
"description": "Updates an existing account.",
"httpMethod": "PUT",
"id": "adexchangebuyer.accounts.update",
"parameterOrder": [
"id"
],
"parameters": {
"id": {
"description": "The account id",
"format": "int32",
"location": "path",
"required": true,
"type": "integer"
}
},
"path": "accounts/{id}",
"request": {
"$ref": "Account"
},
"response": {
"$ref": "Account"
},
"scopes": [
"https://www.googleapis.com/auth/adexchange.buyer"
]
}
}
},
"creatives": {
"methods": {
"get": {
"description": "Gets the status for a single creative. A creative will be available 30-40 minutes after submission.",
"httpMethod": "GET",
"id": "adexchangebuyer.creatives.get",
"parameterOrder": [
"accountId",
"buyerCreativeId"
],
"parameters": {
"accountId": {
"description": "The id for the account that will serve this creative.",
"format": "int32",
"location": "path",
"required": true,
"type": "integer"
},
"buyerCreativeId": {
"description": "The buyer-specific id for this creative.",
"location": "path",
"required": true,
"type": "string"
}
},
"path": "creatives/{accountId}/{buyerCreativeId}",
"response": {
"$ref": "Creative"
},
"scopes": [
"https://www.googleapis.com/auth/adexchange.buyer"
]
},
"insert": {
"description": "Submit a new creative.",
"httpMethod": "POST",
"id": "adexchangebuyer.creatives.insert",
"path": "creatives",
"request": {
"$ref": "Creative"
},
"response": {
"$ref": "Creative"
},
"scopes": [
"https://www.googleapis.com/auth/adexchange.buyer"
]
},
"list": {
"description": "Retrieves a list of the authenticated user's active creatives. A creative will be available 30-40 minutes after submission.",
"httpMethod": "GET",
"id": "adexchangebuyer.creatives.list",
"parameters": {
"maxResults": {
"description": "Maximum number of entries returned on one result page. If not set, the default is 100. Optional.",
"format": "uint32",
"location": "query",
"maximum": "1000",
"minimum": "1",
"type": "integer"
},
"pageToken": {
"description": "A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response. Optional.",
"location": "query",
"type": "string"
},
"statusFilter": {
"description": "When specified, only creatives having the given status are returned.",
"enum": [
"approved",
"disapproved",
"not_checked"
],
"enumDescriptions": [
"Creatives which have been approved.",
"Creatives which have been disapproved.",
"Creatives whose status is not yet checked."
],
"location": "query",
"type": "string"
}
},
"path": "creatives",
"response": {
"$ref": "CreativesList"
},
"scopes": [
"https://www.googleapis.com/auth/adexchange.buyer"
]
}
}
}
},
"revision": "20210815",
"rootUrl": "https://www.googleapis.com/",
"schemas": {
"Account": {
"description": "Configuration data for an Ad Exchange buyer account.",
"id": "Account",
"properties": {
"bidderLocation": {
"description": "Your bidder locations that have distinct URLs.",
"items": {
"properties": {
"maximumQps": {
"description": "The maximum queries per second the Ad Exchange will send.",
"format": "int32",
"type": "integer"
},
"region": {
"description": "The geographical region the Ad Exchange should send requests from. Only used by some quota systems, but always setting the value is recommended. Allowed values: \n- ASIA \n- EUROPE \n- US_EAST \n- US_WEST",
"type": "string"
},
"url": {
"description": "The URL to which the Ad Exchange will send bid requests.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"cookieMatchingNid": {
"description": "The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.",
"type": "string"
},
"cookieMatchingUrl": {
"description": "The base URL used in cookie match requests.",
"type": "string"
},
"id": {
"description": "Account id.",
"format": "int32",
"type": "integer"
},
"kind": {
"default": "adexchangebuyer#account",
"description": "Resource type.",
"type": "string"
},
"maximumActiveCreatives": {
"description": "The maximum number of active creatives that an account can have, where a creative is active if it was inserted or bid with in the last 30 days. Please contact your technical account manager if you need to change this.",
"format": "int32",
"type": "integer"
},
"maximumTotalQps": {
"description": "The sum of all bidderLocation.maximumQps values cannot exceed this. Please contact your technical account manager if you need to change this.",
"format": "int32",
"type": "integer"
},
"numberActiveCreatives": {
"description": "The number of creatives that this account inserted or bid with in the last 30 days.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"AccountsList": {
"description": "An account feed lists Ad Exchange buyer accounts that the user has access to. Each entry in the feed corresponds to a single buyer account.",
"id": "AccountsList",
"properties": {
"items": {
"description": "A list of accounts.",
"items": {
"$ref": "Account"
},
"type": "array"
},
"kind": {
"default": "adexchangebuyer#accountsList",
"description": "Resource type.",
"type": "string"
}
},
"type": "object"
},
"Creative": {
"description": "A creative and its classification data.",
"id": "Creative",
"properties": {
"HTMLSnippet": {
"description": "The HTML snippet that displays the ad when inserted in the web page. If set, videoURL should not be set.",
"type": "string"
},
"accountId": {
"annotations": {
"required": [
"adexchangebuyer.creatives.insert"
]
},
"description": "Account id.",
"format": "int32",
"type": "integer"
},
"advertiserId": {
"description": "Detected advertiser id, if any. Read-only. This field should not be set in requests.",
"items": {
"format": "int64",
"type": "string"
},
"type": "array"
},
"advertiserName": {
"annotations": {
"required": [
"adexchangebuyer.creatives.insert"
]
},
"description": "The name of the company being advertised in the creative.",
"type": "string"
},
"agencyId": {
"description": "The agency id for this creative.",
"format": "int64",
"type": "string"
},
"apiUploadTimestamp": {
"description": "The last upload timestamp of this creative if it was uploaded via API. Read-only. The value of this field is generated, and will be ignored for uploads. (formatted RFC 3339 timestamp).",
"format": "date-time",
"type": "string"
},
"attribute": {
"description": "All attributes for the ads that may be shown from this snippet.",
"items": {
"format": "int32",
"type": "integer"
},
"type": "array"
},
"buyerCreativeId": {
"annotations": {
"required": [
"adexchangebuyer.creatives.insert"
]
},
"description": "A buyer-specific id identifying the creative in this ad.",
"type": "string"
},
"clickThroughUrl": {
"annotations": {
"required": [
"adexchangebuyer.creatives.insert"
]
},
"description": "The set of destination urls for the snippet.",
"items": {
"type": "string"
},
"type": "array"
},
"corrections": {
"description": "Shows any corrections that were applied to this creative. Read-only. This field should not be set in requests.",
"items": {
"properties": {
"details": {
"description": "Additional details about the correction.",
"items": {
"type": "string"
},
"type": "array"
},
"reason": {
"description": "The type of correction that was applied to the creative.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"disapprovalReasons": {
"description": "The reasons for disapproval, if any. Note that not all disapproval reasons may be categorized, so it is possible for the creative to have a status of DISAPPROVED with an empty list for disapproval_reasons. In this case, please reach out to your TAM to help debug the issue. Read-only. This field should not be set in requests.",
"items": {
"properties": {
"details": {
"description": "Additional details about the reason for disapproval.",
"items": {
"type": "string"
},
"type": "array"
},
"reason": {
"description": "The categorized reason for disapproval.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"filteringReasons": {
"description": "The filtering reasons for the creative. Read-only. This field should not be set in requests.",
"properties": {
"date": {
"description": "The date in ISO 8601 format for the data. The data is collected from 00:00:00 to 23:59:59 in PST.",
"type": "string"
},
"reasons": {
"description": "The filtering reasons.",
"items": {
"properties": {
"filteringCount": {
"description": "The number of times the creative was filtered for the status. The count is aggregated across all publishers on the exchange.",
"format": "int64",
"type": "string"
},
"filteringStatus": {
"description": "The filtering status code. Please refer to the creative-status-codes.txt file for different statuses.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"height": {
"annotations": {
"required": [
"adexchangebuyer.creatives.insert"
]
},
"description": "Ad height.",
"format": "int32",
"type": "integer"
},
"impressionTrackingUrl": {
"description": "The set of urls to be called to record an impression.",
"items": {
"type": "string"
},
"type": "array"
},
"kind": {
"default": "adexchangebuyer#creative",
"description": "Resource type.",
"type": "string"
},
"productCategories": {
"description": "Detected product categories, if any. Read-only. This field should not be set in requests.",
"items": {
"format": "int32",
"type": "integer"
},
"type": "array"
},
"restrictedCategories": {
"description": "All restricted categories for the ads that may be shown from this snippet.",
"items": {
"format": "int32",
"type": "integer"
},
"type": "array"
},
"sensitiveCategories": {
"description": "Detected sensitive categories, if any. Read-only. This field should not be set in requests.",
"items": {
"format": "int32",
"type": "integer"
},
"type": "array"
},
"status": {
"description": "Creative serving status. Read-only. This field should not be set in requests.",
"type": "string"
},
"vendorType": {
"description": "All vendor types for the ads that may be shown from this snippet.",
"items": {
"format": "int32",
"type": "integer"
},
"type": "array"
},
"version": {
"description": "The version for this creative. Read-only. This field should not be set in requests.",
"format": "int32",
"type": "integer"
},
"videoURL": {
"description": "The url to fetch a video ad. If set, HTMLSnippet should not be set.",
"type": "string"
},
"width": {
"annotations": {
"required": [
"adexchangebuyer.creatives.insert"
]
},
"description": "Ad width.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"CreativesList": {
"description": "The creatives feed lists the active creatives for the Ad Exchange buyer accounts that the user has access to. Each entry in the feed corresponds to a single creative.",
"id": "CreativesList",
"properties": {
"items": {
"description": "A list of creatives.",
"items": {
"$ref": "Creative"
},
"type": "array"
},
"kind": {
"default": "adexchangebuyer#creativesList",
"description": "Resource type.",
"type": "string"
},
"nextPageToken": {
"description": "Continuation token used to page through creatives. To retrieve the next page of results, set the next request's \"pageToken\" value to this.",
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "adexchangebuyer/v1.2/",
"title": "Ad Exchange Buyer API",
"version": "v1.2"
}

View File

@@ -0,0 +1,268 @@
{
"basePath": "",
"baseUrl": "https://adexperiencereport.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Ad Experience Report",
"description": "Views Ad Experience Report data, and gets a list of sites that have a significant number of annoying ads.",
"discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/ad-experience-report/",
"fullyEncodeReservedExpansion": true,
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"id": "adexperiencereport:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://adexperiencereport.mtls.googleapis.com/",
"name": "adexperiencereport",
"ownerDomain": "google.com",
"ownerName": "Google",
"parameters": {
"$.xgafv": {
"description": "V1 error format.",
"enum": [
"1",
"2"
],
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"location": "query",
"type": "string"
},
"alt": {
"default": "json",
"description": "Data format for response.",
"enum": [
"json",
"media",
"proto"
],
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"type": "string"
},
"callback": {
"description": "JSONP",
"location": "query",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"location": "query",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"location": "query",
"type": "boolean"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"location": "query",
"type": "string"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"location": "query",
"type": "string"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"location": "query",
"type": "string"
}
},
"protocol": "rest",
"resources": {
"sites": {
"methods": {
"get": {
"description": "Gets a site's Ad Experience Report summary.",
"flatPath": "v1/sites/{sitesId}",
"httpMethod": "GET",
"id": "adexperiencereport.sites.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The name of the site whose summary to get, e.g. `sites/http%3A%2F%2Fwww.google.com%2F`. Format: `sites/{site}`",
"location": "path",
"pattern": "^sites/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "SiteSummaryResponse"
}
}
}
},
"violatingSites": {
"methods": {
"list": {
"description": "Lists sites that are failing in the Ad Experience Report on at least one platform.",
"flatPath": "v1/violatingSites",
"httpMethod": "GET",
"id": "adexperiencereport.violatingSites.list",
"parameterOrder": [],
"parameters": {},
"path": "v1/violatingSites",
"response": {
"$ref": "ViolatingSitesResponse"
}
}
}
}
},
"revision": "20230807",
"rootUrl": "https://adexperiencereport.googleapis.com/",
"schemas": {
"PlatformSummary": {
"description": "A site's Ad Experience Report summary on a single platform.",
"id": "PlatformSummary",
"properties": {
"betterAdsStatus": {
"description": "The site's Ad Experience Report status on this platform.",
"enum": [
"UNKNOWN",
"PASSING",
"WARNING",
"FAILING"
],
"enumDeprecated": [
false,
false,
true,
false
],
"enumDescriptions": [
"Not reviewed.",
"Passing.",
"Warning. No longer a possible status.",
"Failing."
],
"type": "string"
},
"enforcementTime": {
"description": "The time at which [enforcement](https://support.google.com/webtools/answer/7308033) against the site began or will begin on this platform. Not set when the filter_status is OFF.",
"format": "google-datetime",
"type": "string"
},
"filterStatus": {
"description": "The site's [enforcement status](https://support.google.com/webtools/answer/7308033) on this platform.",
"enum": [
"UNKNOWN",
"ON",
"OFF",
"PAUSED",
"PENDING"
],
"enumDescriptions": [
"N/A.",
"Ad filtering is on.",
"Ad filtering is off.",
"Ad filtering is paused.",
"Ad filtering is pending."
],
"type": "string"
},
"lastChangeTime": {
"description": "The time at which the site's status last changed on this platform.",
"format": "google-datetime",
"type": "string"
},
"region": {
"deprecated": true,
"description": "The site's regions on this platform. No longer populated, because there is no longer any semantic difference between sites in different regions.",
"items": {
"enum": [
"REGION_UNKNOWN",
"REGION_A",
"REGION_B",
"REGION_C"
],
"enumDescriptions": [
"Ad standard not yet defined for your region.",
"Region A.",
"Region B.",
"Region C."
],
"type": "string"
},
"type": "array"
},
"reportUrl": {
"description": "A link to the full Ad Experience Report for the site on this platform.. Not set in ViolatingSitesResponse. Note that you must complete the [Search Console verification process](https://support.google.com/webmasters/answer/9008080) for the site before you can access the full report.",
"type": "string"
},
"underReview": {
"description": "Whether the site is currently under review on this platform.",
"type": "boolean"
}
},
"type": "object"
},
"SiteSummaryResponse": {
"description": "Response message for GetSiteSummary.",
"id": "SiteSummaryResponse",
"properties": {
"desktopSummary": {
"$ref": "PlatformSummary",
"description": "The site's Ad Experience Report summary on desktop."
},
"mobileSummary": {
"$ref": "PlatformSummary",
"description": "The site's Ad Experience Report summary on mobile."
},
"reviewedSite": {
"description": "The name of the reviewed site, e.g. `google.com`.",
"type": "string"
}
},
"type": "object"
},
"ViolatingSitesResponse": {
"description": "Response message for ListViolatingSites.",
"id": "ViolatingSitesResponse",
"properties": {
"violatingSites": {
"description": "The list of violating sites.",
"items": {
"$ref": "SiteSummaryResponse"
},
"type": "array"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Ad Experience Report API",
"version": "v1",
"version_module": true
}

View File

@@ -0,0 +1,453 @@
{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/admin.datatransfer": {
"description": "View and manage data transfers between users in your organization"
},
"https://www.googleapis.com/auth/admin.datatransfer.readonly": {
"description": "View data transfers between users in your organization"
}
}
}
},
"basePath": "",
"baseUrl": "https://admin.googleapis.com/",
"batchPath": "batch",
"canonicalName": "DataTransfer",
"description": "Admin SDK lets administrators of enterprise domains to view and manage resources like user, groups etc. It also provides audit and usage reports of domain.",
"discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/admin-sdk/",
"fullyEncodeReservedExpansion": true,
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"id": "admin: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": "20230807",
"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"
}

View File

@@ -0,0 +1,453 @@
{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/admin.datatransfer": {
"description": "View and manage data transfers between users in your organization"
},
"https://www.googleapis.com/auth/admin.datatransfer.readonly": {
"description": "View data transfers between users in your organization"
}
}
}
},
"basePath": "",
"baseUrl": "https://admin.googleapis.com/",
"batchPath": "batch",
"canonicalName": "DataTransfer",
"description": "Admin SDK lets administrators of enterprise domains to view and manage resources like user, groups etc. It also provides audit and usage reports of domain.",
"discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/admin-sdk/",
"fullyEncodeReservedExpansion": true,
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"id": "admin: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": "20230807",
"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"
}

View File

@@ -0,0 +1,415 @@
{
"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": {
"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}.",
"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}\"",
"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"
]
}
}
}
}
}
}
}
},
"revision": "20230806",
"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}.",
"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"
},
"GoogleCloudAdvisorynotificationsV1Subject": {
"description": "A subject line of a notification.",
"id": "GoogleCloudAdvisorynotificationsV1Subject",
"properties": {
"text": {
"$ref": "GoogleCloudAdvisorynotificationsV1Text",
"description": "The text content."
}
},
"type": "object"
},
"GoogleCloudAdvisorynotificationsV1Text": {
"description": "A text object containing the English text and its localized copies.",
"id": "GoogleCloudAdvisorynotificationsV1Text",
"properties": {
"enText": {
"description": "The English copy.",
"type": "string"
},
"localizationState": {
"description": "Status of the localization.",
"enum": [
"LOCALIZATION_STATE_UNSPECIFIED",
"LOCALIZATION_STATE_NOT_APPLICABLE",
"LOCALIZATION_STATE_PENDING",
"LOCALIZATION_STATE_COMPLETED"
],
"enumDescriptions": [
"Not used.",
"Localization is not applicable for requested language. This can happen when: - The requested language was not supported by Advisory Notifications at the time of localization (including notifications created before the localization feature was launched). - The requested language is English, so only the English text is returned.",
"Localization for requested language is in progress, and not ready yet.",
"Localization for requested language is completed."
],
"type": "string"
},
"localizedText": {
"description": "The requested localized copy (if applicable).",
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Advisory Notifications API",
"version": "v1",
"version_module": true
}

View File

@@ -0,0 +1,698 @@
{
"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": "20230811",
"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`](/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."
},
"uid": {
"description": "Output only. Unique id in UUID4 format.",
"readOnly": true,
"type": "string"
},
"updateTime": {
"description": "Output only. A timestamp identifying the time this key was last updated.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"V2ListKeysResponse": {
"description": "Response message for `ListKeys` method.",
"id": "V2ListKeysResponse",
"properties": {
"keys": {
"description": "A list of API keys.",
"items": {
"$ref": "V2Key"
},
"type": "array"
},
"nextPageToken": {
"description": "The pagination token for the next page of results.",
"type": "string"
}
},
"type": "object"
},
"V2LookupKeyResponse": {
"description": "Response message for `LookupKey` method.",
"id": "V2LookupKeyResponse",
"properties": {
"name": {
"description": "The resource name of the API key. If the API key has been purged, resource name is empty.",
"type": "string"
},
"parent": {
"description": "The project that owns the key with the value specified in the request.",
"type": "string"
}
},
"type": "object"
},
"V2Restrictions": {
"description": "Describes the restrictions on the key.",
"id": "V2Restrictions",
"properties": {
"androidKeyRestrictions": {
"$ref": "V2AndroidKeyRestrictions",
"description": "The Android apps that are allowed to use the key."
},
"apiTargets": {
"description": "A restriction for a specific service and optionally one or more specific methods. Requests are allowed if they match any of these restrictions. If no restrictions are specified, all targets are allowed.",
"items": {
"$ref": "V2ApiTarget"
},
"type": "array"
},
"browserKeyRestrictions": {
"$ref": "V2BrowserKeyRestrictions",
"description": "The HTTP referrers (websites) that are allowed to use the key."
},
"iosKeyRestrictions": {
"$ref": "V2IosKeyRestrictions",
"description": "The iOS apps that are allowed to use the key."
},
"serverKeyRestrictions": {
"$ref": "V2ServerKeyRestrictions",
"description": "The IP addresses of callers that are allowed to use the key."
}
},
"type": "object"
},
"V2ServerKeyRestrictions": {
"description": "The IP addresses of callers that are allowed to use the key.",
"id": "V2ServerKeyRestrictions",
"properties": {
"allowedIps": {
"description": "A list of the caller IP addresses that are allowed to make API calls with this key.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"V2UndeleteKeyRequest": {
"description": "Request message for `UndeleteKey` method.",
"id": "V2UndeleteKeyRequest",
"properties": {},
"type": "object"
}
},
"servicePath": "",
"title": "API Keys API",
"version": "v2",
"version_module": true
}

View File

@@ -0,0 +1,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": "20230812",
"rootUrl": "https://area120tables.googleapis.com/",
"schemas": {
"BatchCreateRowsRequest": {
"description": "Request message for TablesService.BatchCreateRows.",
"id": "BatchCreateRowsRequest",
"properties": {
"requests": {
"description": "Required. The request message specifying the rows to create. A maximum of 500 rows can be created in a single batch.",
"items": {
"$ref": "CreateRowRequest"
},
"type": "array"
}
},
"type": "object"
},
"BatchCreateRowsResponse": {
"description": "Response message for TablesService.BatchCreateRows.",
"id": "BatchCreateRowsResponse",
"properties": {
"rows": {
"description": "The created rows.",
"items": {
"$ref": "Row"
},
"type": "array"
}
},
"type": "object"
},
"BatchDeleteRowsRequest": {
"description": "Request message for TablesService.BatchDeleteRows",
"id": "BatchDeleteRowsRequest",
"properties": {
"names": {
"description": "Required. The names of the rows to delete. All rows must belong to the parent table or else the entire batch will fail. A maximum of 500 rows can be deleted in a batch. Format: tables/{table}/rows/{row}",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"BatchUpdateRowsRequest": {
"description": "Request message for TablesService.BatchUpdateRows.",
"id": "BatchUpdateRowsRequest",
"properties": {
"requests": {
"description": "Required. The request messages specifying the rows to update. A maximum of 500 rows can be modified in a single batch.",
"items": {
"$ref": "UpdateRowRequest"
},
"type": "array"
}
},
"type": "object"
},
"BatchUpdateRowsResponse": {
"description": "Response message for TablesService.BatchUpdateRows.",
"id": "BatchUpdateRowsResponse",
"properties": {
"rows": {
"description": "The updated rows.",
"items": {
"$ref": "Row"
},
"type": "array"
}
},
"type": "object"
},
"ColumnDescription": {
"description": "Details on a column in the table.",
"id": "ColumnDescription",
"properties": {
"dataType": {
"description": "Data type of the column Supported types are auto_id, boolean, boolean_list, creator, create_timestamp, date, dropdown, location, integer, integer_list, number, number_list, person, person_list, tags, check_list, text, text_list, update_timestamp, updater, relationship, file_attachment_list. These types directly map to the column types supported on Tables website.",
"type": "string"
},
"dateDetails": {
"$ref": "DateDetails",
"description": "Optional. Additional details about a date column."
},
"id": {
"description": "Internal id for a column.",
"type": "string"
},
"labels": {
"description": "Optional. Range of labeled values for the column. Some columns like tags and drop-downs limit the values to a set of possible values. We return the range of values in such cases to help clients implement better user data validation.",
"items": {
"$ref": "LabeledItem"
},
"type": "array"
},
"lookupDetails": {
"$ref": "LookupDetails",
"description": "Optional. Indicates that this is a lookup column whose value is derived from the relationship column specified in the details. Lookup columns can not be updated directly. To change the value you must update the associated relationship column."
},
"multipleValuesDisallowed": {
"description": "Optional. Indicates whether or not multiple values are allowed for array types where such a restriction is possible.",
"type": "boolean"
},
"name": {
"description": "column name",
"type": "string"
},
"readonly": {
"description": "Optional. Indicates that values for the column cannot be set by the user.",
"type": "boolean"
},
"relationshipDetails": {
"$ref": "RelationshipDetails",
"description": "Optional. Additional details about a relationship column. Specified when data_type is relationship."
}
},
"type": "object"
},
"CreateRowRequest": {
"description": "Request message for TablesService.CreateRow.",
"id": "CreateRowRequest",
"properties": {
"parent": {
"description": "Required. The parent table where this row will be created. Format: tables/{table}",
"type": "string"
},
"row": {
"$ref": "Row",
"description": "Required. The row to create."
},
"view": {
"description": "Optional. Column key to use for values in the row. Defaults to user entered name.",
"enum": [
"VIEW_UNSPECIFIED",
"COLUMN_ID_VIEW"
],
"enumDescriptions": [
"Defaults to user entered text.",
"Uses internally generated column id to identify values."
],
"type": "string"
}
},
"type": "object"
},
"DateDetails": {
"description": "Details about a date column.",
"id": "DateDetails",
"properties": {
"hasTime": {
"description": "Whether the date column includes time.",
"type": "boolean"
}
},
"type": "object"
},
"Empty": {
"description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
"id": "Empty",
"properties": {},
"type": "object"
},
"LabeledItem": {
"description": "A single item in a labeled column.",
"id": "LabeledItem",
"properties": {
"id": {
"description": "Internal id associated with the item.",
"type": "string"
},
"name": {
"description": "Display string as entered by user.",
"type": "string"
}
},
"type": "object"
},
"ListRowsResponse": {
"description": "Response message for TablesService.ListRows.",
"id": "ListRowsResponse",
"properties": {
"nextPageToken": {
"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is empty, there are no subsequent pages.",
"type": "string"
},
"rows": {
"description": "The rows from the specified table.",
"items": {
"$ref": "Row"
},
"type": "array"
}
},
"type": "object"
},
"ListTablesResponse": {
"description": "Response message for TablesService.ListTables.",
"id": "ListTablesResponse",
"properties": {
"nextPageToken": {
"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is empty, there are no subsequent pages.",
"type": "string"
},
"tables": {
"description": "The list of tables.",
"items": {
"$ref": "Table"
},
"type": "array"
}
},
"type": "object"
},
"ListWorkspacesResponse": {
"description": "Response message for TablesService.ListWorkspaces.",
"id": "ListWorkspacesResponse",
"properties": {
"nextPageToken": {
"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is empty, there are no subsequent pages.",
"type": "string"
},
"workspaces": {
"description": "The list of workspaces.",
"items": {
"$ref": "Workspace"
},
"type": "array"
}
},
"type": "object"
},
"LookupDetails": {
"description": "Details about a lookup column whose value comes from the associated relationship.",
"id": "LookupDetails",
"properties": {
"relationshipColumn": {
"description": "The name of the relationship column associated with the lookup.",
"type": "string"
},
"relationshipColumnId": {
"description": "The id of the relationship column.",
"type": "string"
}
},
"type": "object"
},
"RelationshipDetails": {
"description": "Details about a relationship column.",
"id": "RelationshipDetails",
"properties": {
"linkedTable": {
"description": "The name of the table this relationship is linked to.",
"type": "string"
}
},
"type": "object"
},
"Row": {
"description": "A single row in a table.",
"id": "Row",
"properties": {
"createTime": {
"description": "Time when the row was created.",
"format": "google-datetime",
"type": "string"
},
"name": {
"description": "The resource name of the row. Row names have the form `tables/{table}/rows/{row}`. The name is ignored when creating a row.",
"type": "string"
},
"updateTime": {
"description": "Time when the row was last updated.",
"format": "google-datetime",
"type": "string"
},
"values": {
"additionalProperties": {
"type": "any"
},
"description": "The values of the row. This is a map of column key to value. Key is user entered name(default) or the internal column id based on the view in the request.",
"type": "object"
}
},
"type": "object"
},
"SavedView": {
"description": "A saved view of a table. NextId: 3",
"id": "SavedView",
"properties": {
"id": {
"description": "Internal id associated with the saved view.",
"type": "string"
},
"name": {
"description": "Display name of the saved view.",
"type": "string"
}
},
"type": "object"
},
"Table": {
"description": "A single table. NextId: 8",
"id": "Table",
"properties": {
"columns": {
"description": "List of columns in this table. Order of columns matches the display order.",
"items": {
"$ref": "ColumnDescription"
},
"type": "array"
},
"createTime": {
"description": "Time when the table was created.",
"format": "google-datetime",
"type": "string"
},
"displayName": {
"description": "The human readable title of the table.",
"type": "string"
},
"name": {
"description": "The resource name of the table. Table names have the form `tables/{table}`.",
"type": "string"
},
"savedViews": {
"description": "Saved views for this table.",
"items": {
"$ref": "SavedView"
},
"type": "array"
},
"timeZone": {
"description": "The time zone of the table. IANA Time Zone Database time zone, e.g. \"America/New_York\".",
"type": "string"
},
"updateTime": {
"description": "Time when the table was last updated excluding updates to individual rows",
"format": "google-datetime",
"type": "string"
}
},
"type": "object"
},
"UpdateRowRequest": {
"description": "Request message for TablesService.UpdateRow.",
"id": "UpdateRowRequest",
"properties": {
"row": {
"$ref": "Row",
"description": "Required. The row to update."
},
"updateMask": {
"description": "The list of fields to update.",
"format": "google-fieldmask",
"type": "string"
},
"view": {
"description": "Optional. Column key to use for values in the row. Defaults to user entered name.",
"enum": [
"VIEW_UNSPECIFIED",
"COLUMN_ID_VIEW"
],
"enumDescriptions": [
"Defaults to user entered text.",
"Uses internally generated column id to identify values."
],
"type": "string"
}
},
"type": "object"
},
"Workspace": {
"description": "A single workspace.",
"id": "Workspace",
"properties": {
"createTime": {
"description": "Time when the workspace was created.",
"format": "google-datetime",
"type": "string"
},
"displayName": {
"description": "The human readable title of the workspace.",
"type": "string"
},
"name": {
"description": "The resource name of the workspace. Workspace names have the form `workspaces/{workspace}`.",
"type": "string"
},
"tables": {
"description": "The list of tables in the workspace.",
"items": {
"$ref": "Table"
},
"type": "array"
},
"updateTime": {
"description": "Time when the workspace was last updated.",
"format": "google-datetime",
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Area120 Tables API",
"version": "v1alpha1",
"version_module": true
}

View File

@@ -0,0 +1,331 @@
{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/cloud-platform": {
"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
}
}
}
},
"basePath": "",
"baseUrl": "https://baremetalsolution.googleapis.com/",
"batchPath": "batch",
"description": "Provides ways to manage Bare Metal Solution hardware installed in a regional extension located near a Google Cloud data center.",
"discoveryVersion": "v1",
"documentationLink": "https://cloud.google.com/bare-metal",
"fullyEncodeReservedExpansion": true,
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"id": "baremetalsolution:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://baremetalsolution.mtls.googleapis.com/",
"name": "baremetalsolution",
"ownerDomain": "google.com",
"ownerName": "Google",
"parameters": {
"$.xgafv": {
"description": "V1 error format.",
"enum": [
"1",
"2"
],
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"location": "query",
"type": "string"
},
"alt": {
"default": "json",
"description": "Data format for response.",
"enum": [
"json",
"media",
"proto"
],
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"type": "string"
},
"callback": {
"description": "JSONP",
"location": "query",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"location": "query",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"location": "query",
"type": "boolean"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"location": "query",
"type": "string"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"location": "query",
"type": "string"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"location": "query",
"type": "string"
}
},
"protocol": "rest",
"resources": {
"operations": {
"methods": {
"cancel": {
"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
"flatPath": "v1/operations/{operationsId}:cancel",
"httpMethod": "POST",
"id": "baremetalsolution.operations.cancel",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the operation resource to be cancelled.",
"location": "path",
"pattern": "^operations/.*$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}:cancel",
"request": {
"$ref": "CancelOperationRequest"
},
"response": {
"$ref": "Empty"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"delete": {
"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.",
"flatPath": "v1/operations/{operationsId}",
"httpMethod": "DELETE",
"id": "baremetalsolution.operations.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the operation resource to be deleted.",
"location": "path",
"pattern": "^operations/.*$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Empty"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"get": {
"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
"flatPath": "v1/operations/{operationsId}",
"httpMethod": "GET",
"id": "baremetalsolution.operations.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the operation resource.",
"location": "path",
"pattern": "^operations/.*$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"list": {
"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.",
"flatPath": "v1/operations",
"httpMethod": "GET",
"id": "baremetalsolution.operations.list",
"parameterOrder": [
"name"
],
"parameters": {
"filter": {
"description": "The standard list filter.",
"location": "query",
"type": "string"
},
"name": {
"description": "The name of the operation's parent resource.",
"location": "path",
"pattern": "^operations$",
"required": true,
"type": "string"
},
"pageSize": {
"description": "The standard list page size.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "The standard list page token.",
"location": "query",
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "ListOperationsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
}
},
"revision": "20221201",
"rootUrl": "https://baremetalsolution.googleapis.com/",
"schemas": {
"CancelOperationRequest": {
"description": "The request message for Operations.CancelOperation.",
"id": "CancelOperationRequest",
"properties": {},
"type": "object"
},
"Empty": {
"description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
"id": "Empty",
"properties": {},
"type": "object"
},
"ListOperationsResponse": {
"description": "The response message for Operations.ListOperations.",
"id": "ListOperationsResponse",
"properties": {
"nextPageToken": {
"description": "The standard List next-page token.",
"type": "string"
},
"operations": {
"description": "A list of operations that matches the specified filter in the request.",
"items": {
"$ref": "Operation"
},
"type": "array"
}
},
"type": "object"
},
"Operation": {
"description": "This resource represents a long-running operation that is the result of a network API call.",
"id": "Operation",
"properties": {
"done": {
"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.",
"type": "boolean"
},
"error": {
"$ref": "Status",
"description": "The error result of the operation in case of failure or cancellation."
},
"metadata": {
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
},
"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.",
"type": "object"
},
"name": {
"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.",
"type": "string"
},
"response": {
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
},
"description": "The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.",
"type": "object"
}
},
"type": "object"
},
"Status": {
"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
"id": "Status",
"properties": {
"code": {
"description": "The status code, which should be an enum value of google.rpc.Code.",
"format": "int32",
"type": "integer"
},
"details": {
"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
"items": {
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
},
"type": "object"
},
"type": "array"
},
"message": {
"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Bare Metal Solution API",
"version": "v1",
"version_module": true
}

View File

@@ -0,0 +1,588 @@
{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/cloud-platform": {
"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
}
}
}
},
"basePath": "",
"baseUrl": "https://baremetalsolution.googleapis.com/",
"batchPath": "batch",
"description": "Provides ways to manage Bare Metal Solution hardware installed in a regional extension located near a Google Cloud data center.",
"discoveryVersion": "v1",
"documentationLink": "https://cloud.google.com/bare-metal",
"fullyEncodeReservedExpansion": true,
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"id": "baremetalsolution:v1alpha1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://baremetalsolution.mtls.googleapis.com/",
"name": "baremetalsolution",
"ownerDomain": "google.com",
"ownerName": "Google",
"parameters": {
"$.xgafv": {
"description": "V1 error format.",
"enum": [
"1",
"2"
],
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"location": "query",
"type": "string"
},
"alt": {
"default": "json",
"description": "Data format for response.",
"enum": [
"json",
"media",
"proto"
],
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"type": "string"
},
"callback": {
"description": "JSONP",
"location": "query",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"location": "query",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"location": "query",
"type": "boolean"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"location": "query",
"type": "string"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"location": "query",
"type": "string"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"location": "query",
"type": "string"
}
},
"protocol": "rest",
"resources": {
"projects": {
"resources": {
"locations": {
"methods": {
"submitProvisioningConfig": {
"description": "Submit a provisiong configuration for a given project.",
"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}:submitProvisioningConfig",
"httpMethod": "POST",
"id": "baremetalsolution.projects.locations.submitProvisioningConfig",
"parameterOrder": [
"project",
"location"
],
"parameters": {
"location": {
"description": "Required. The target location of the provisioning request.",
"location": "path",
"pattern": "^locations/[^/]+$",
"required": true,
"type": "string"
},
"project": {
"description": "Required. The target project of the provisioning request.",
"location": "path",
"pattern": "^projects/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1alpha1/{+project}/{+location}:submitProvisioningConfig",
"request": {
"$ref": "SubmitProvisioningConfigRequest"
},
"response": {
"$ref": "ProvisioningConfig"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
},
"provisioningQuotas": {
"methods": {
"list": {
"description": "List the budget details to provision resources on a given project.",
"flatPath": "v1alpha1/projects/{projectsId}/provisioningQuotas",
"httpMethod": "GET",
"id": "baremetalsolution.projects.provisioningQuotas.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "The maximum number of items to return.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "The next_page_token value returned from a previous List request, if any.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. The parent project containing the provisioning quotas.",
"location": "path",
"pattern": "^projects/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1alpha1/{+parent}/provisioningQuotas",
"response": {
"$ref": "ListProvisioningQuotasResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
}
}
}
},
"revision": "20220829",
"rootUrl": "https://baremetalsolution.googleapis.com/",
"schemas": {
"InstanceConfig": {
"description": "Configuration parameters for a new instance.",
"id": "InstanceConfig",
"properties": {
"clientNetwork": {
"$ref": "NetworkAddress",
"description": "Client network address."
},
"hyperthreading": {
"description": "Whether the instance should be provisioned with Hyperthreading enabled.",
"type": "boolean"
},
"id": {
"description": "A transient unique identifier to idenfity an instance within an ProvisioningConfig request.",
"type": "string"
},
"instanceType": {
"description": "Instance type.",
"type": "string"
},
"location": {
"description": "Location where to deploy the instance.",
"type": "string"
},
"osImage": {
"description": "OS image to initialize the instance.",
"type": "string"
},
"privateNetwork": {
"$ref": "NetworkAddress",
"description": "Private network address, if any."
},
"userNote": {
"description": "User note field, it can be used by customers to add additional information for the BMS Ops team (b/194021617).",
"type": "string"
}
},
"type": "object"
},
"InstanceQuota": {
"description": "A resource budget.",
"id": "InstanceQuota",
"properties": {
"availableMachineCount": {
"description": "Number of machines than can be created for the given location and instance_type.",
"format": "int32",
"type": "integer"
},
"instanceType": {
"description": "Instance type.",
"type": "string"
},
"location": {
"description": "Location where the quota applies.",
"type": "string"
}
},
"type": "object"
},
"ListProvisioningQuotasResponse": {
"description": "Response for ListProvisioningQuotas.",
"id": "ListProvisioningQuotasResponse",
"properties": {
"nextPageToken": {
"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.",
"type": "string"
},
"provisioningQuotas": {
"description": "The provisioning quotas registered in this project.",
"items": {
"$ref": "ProvisioningQuota"
},
"type": "array"
}
},
"type": "object"
},
"LunRange": {
"description": "A LUN range.",
"id": "LunRange",
"properties": {
"quantity": {
"description": "Number of LUNs to create.",
"format": "int32",
"type": "integer"
},
"sizeGb": {
"description": "The requested size of each LUN, in GB.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"NetworkAddress": {
"description": "A network.",
"id": "NetworkAddress",
"properties": {
"address": {
"description": "IP address to be assigned to the server.",
"type": "string"
},
"existingNetworkId": {
"description": "Name of the existing network to use. Will be of the format at--vlan for pre-intake UI networks like for eg, at-123456-vlan001 or any user-defined name like for eg, my-network-name for networks provisioned using intake UI. The field is exclusively filled only in case of an already existing network. Mutually exclusive with network_id.",
"type": "string"
},
"networkId": {
"description": "Name of the network to use, within the same ProvisioningConfig request. This represents a new network being provisioned in the same request. Can have any user-defined name like for eg, my-network-name. Mutually exclusive with existing_network_id.",
"type": "string"
}
},
"type": "object"
},
"NetworkConfig": {
"description": "Configuration parameters for a new network.",
"id": "NetworkConfig",
"properties": {
"bandwidth": {
"description": "Interconnect bandwidth. Set only when type is CLIENT.",
"enum": [
"BANDWIDTH_UNSPECIFIED",
"BW_1_GBPS",
"BW_2_GBPS",
"BW_5_GBPS",
"BW_10_GBPS"
],
"enumDescriptions": [
"Unspecified value.",
"1 Gbps.",
"2 Gbps.",
"5 Gbps.",
"10 Gbps."
],
"type": "string"
},
"cidr": {
"description": "CIDR range of the network.",
"type": "string"
},
"id": {
"description": "A transient unique identifier to identify a volume within an ProvisioningConfig request.",
"type": "string"
},
"location": {
"description": "Location where to deploy the network.",
"type": "string"
},
"serviceCidr": {
"description": "Service CIDR, if any.",
"enum": [
"SERVICE_CIDR_UNSPECIFIED",
"DISABLED",
"HIGH_26",
"HIGH_27",
"HIGH_28"
],
"enumDescriptions": [
"Unspecified value.",
"Services are disabled for the given network.",
"Use the highest /26 block of the network to host services.",
"Use the highest /27 block of the network to host services.",
"Use the highest /28 block of the network to host services."
],
"type": "string"
},
"type": {
"description": "The type of this network.",
"enum": [
"TYPE_UNSPECIFIED",
"CLIENT",
"PRIVATE"
],
"enumDescriptions": [
"Unspecified value.",
"Client network, that is a network peered to a GCP VPC.",
"Private network, that is a network local to the BMS POD."
],
"type": "string"
},
"userNote": {
"description": "User note field, it can be used by customers to add additional information for the BMS Ops team (b/194021617).",
"type": "string"
},
"vlanAttachments": {
"description": "List of VLAN attachments. As of now there are always 2 attachments, but it is going to change in the future (multi vlan).",
"items": {
"$ref": "VlanAttachment"
},
"type": "array"
}
},
"type": "object"
},
"NfsExport": {
"description": "A NFS export entry.",
"id": "NfsExport",
"properties": {
"allowDev": {
"description": "Allow dev.",
"type": "boolean"
},
"allowSuid": {
"description": "Allow the setuid flag.",
"type": "boolean"
},
"cidr": {
"description": "A CIDR range.",
"type": "string"
},
"machineId": {
"description": "Either a single machine, identified by an ID, or a comma-separated list of machine IDs.",
"type": "string"
},
"networkId": {
"description": "Network to use to publish the export.",
"type": "string"
},
"noRootSquash": {
"description": "Disable root squashing.",
"type": "boolean"
},
"permissions": {
"description": "Export permissions.",
"enum": [
"PERMISSIONS_UNSPECIFIED",
"READ_ONLY",
"READ_WRITE"
],
"enumDescriptions": [
"Unspecified value.",
"Read-only permission.",
"Read-write permission."
],
"type": "string"
}
},
"type": "object"
},
"ProvisioningConfig": {
"description": "An provisioning configuration.",
"id": "ProvisioningConfig",
"properties": {
"instances": {
"description": "Instances to be created.",
"items": {
"$ref": "InstanceConfig"
},
"type": "array"
},
"networks": {
"description": "Networks to be created.",
"items": {
"$ref": "NetworkConfig"
},
"type": "array"
},
"ticketId": {
"description": "A reference to track the request.",
"type": "string"
},
"volumes": {
"description": "Volumes to be created.",
"items": {
"$ref": "VolumeConfig"
},
"type": "array"
}
},
"type": "object"
},
"ProvisioningQuota": {
"description": "A provisioning quota for a given project.",
"id": "ProvisioningQuota",
"properties": {
"instanceQuota": {
"$ref": "InstanceQuota",
"description": "Instance quota."
}
},
"type": "object"
},
"SubmitProvisioningConfigRequest": {
"description": "Request for SubmitProvisioningConfig.",
"id": "SubmitProvisioningConfigRequest",
"properties": {
"email": {
"description": "Optional. Email provided to send a confirmation with provisioning config to.",
"type": "string"
},
"provisioningConfig": {
"$ref": "ProvisioningConfig",
"description": "Required. The ProvisioningConfig to submit."
}
},
"type": "object"
},
"VlanAttachment": {
"description": "A GCP vlan attachment.",
"id": "VlanAttachment",
"properties": {
"id": {
"description": "Identifier of the VLAN attachment.",
"type": "string"
},
"pairingKey": {
"description": "Attachment pairing key.",
"type": "string"
}
},
"type": "object"
},
"VolumeConfig": {
"description": "Configuration parameters for a new volume.",
"id": "VolumeConfig",
"properties": {
"id": {
"description": "A transient unique identifier to identify a volume within an ProvisioningConfig request.",
"type": "string"
},
"location": {
"description": "Location where to deploy the volume.",
"type": "string"
},
"lunRanges": {
"description": "LUN ranges to be configured. Set only when protocol is PROTOCOL_FC.",
"items": {
"$ref": "LunRange"
},
"type": "array"
},
"machineIds": {
"description": "Machine ids connected to this volume. Set only when protocol is PROTOCOL_FC.",
"items": {
"type": "string"
},
"type": "array"
},
"nfsExports": {
"description": "NFS exports. Set only when protocol is PROTOCOL_NFS.",
"items": {
"$ref": "NfsExport"
},
"type": "array"
},
"protocol": {
"description": "Volume protocol.",
"enum": [
"PROTOCOL_UNSPECIFIED",
"PROTOCOL_FC",
"PROTOCOL_NFS"
],
"enumDescriptions": [
"Unspecified value.",
"Fibre channel.",
"Network file system."
],
"type": "string"
},
"sizeGb": {
"description": "The requested size of this volume, in GB. This will be updated in a later iteration with a generic size field.",
"format": "int32",
"type": "integer"
},
"snapshotsEnabled": {
"description": "Whether snapshots should be enabled.",
"type": "boolean"
},
"type": {
"description": "The type of this Volume.",
"enum": [
"TYPE_UNSPECIFIED",
"FLASH",
"DISK"
],
"enumDescriptions": [
"The unspecified type.",
"This Volume is on flash.",
"This Volume is on disk."
],
"type": "string"
},
"userNote": {
"description": "User note field, it can be used by customers to add additional information for the BMS Ops team (b/194021617).",
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Bare Metal Solution API",
"version": "v1alpha1",
"version_module": true
}

View File

@@ -0,0 +1,725 @@
{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/bigquery": {
"description": "View and manage your data in Google BigQuery and see the email address for your Google Account"
},
"https://www.googleapis.com/auth/cloud-platform": {
"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
}
}
}
},
"basePath": "",
"baseUrl": "https://bigqueryconnection.googleapis.com/",
"batchPath": "batch",
"canonicalName": "BigQuery Connection Service",
"description": "Allows users to manage BigQuery connections to external data sources.",
"discoveryVersion": "v1",
"documentationLink": "https://cloud.google.com/bigquery/",
"fullyEncodeReservedExpansion": true,
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"id": "bigqueryconnection:v1beta1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://bigqueryconnection.mtls.googleapis.com/",
"name": "bigqueryconnection",
"ownerDomain": "google.com",
"ownerName": "Google",
"parameters": {
"$.xgafv": {
"description": "V1 error format.",
"enum": [
"1",
"2"
],
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"location": "query",
"type": "string"
},
"alt": {
"default": "json",
"description": "Data format for response.",
"enum": [
"json",
"media",
"proto"
],
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"type": "string"
},
"callback": {
"description": "JSONP",
"location": "query",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"location": "query",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"location": "query",
"type": "boolean"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"location": "query",
"type": "string"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"location": "query",
"type": "string"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"location": "query",
"type": "string"
}
},
"protocol": "rest",
"resources": {
"projects": {
"resources": {
"locations": {
"resources": {
"connections": {
"methods": {
"create": {
"description": "Creates a new connection.",
"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections",
"httpMethod": "POST",
"id": "bigqueryconnection.projects.locations.connections.create",
"parameterOrder": [
"parent"
],
"parameters": {
"connectionId": {
"description": "Optional. Connection id that should be assigned to the created connection.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. Parent resource name. Must be in the format `projects/{project_id}/locations/{location_id}`",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+parent}/connections",
"request": {
"$ref": "Connection"
},
"response": {
"$ref": "Connection"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"delete": {
"description": "Deletes connection and associated credential.",
"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}",
"httpMethod": "DELETE",
"id": "bigqueryconnection.projects.locations.connections.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of the deleted connection, for example: `projects/{project_id}/locations/{location_id}/connections/{connection_id}`",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+name}",
"response": {
"$ref": "Empty"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"get": {
"description": "Returns specified connection.",
"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}",
"httpMethod": "GET",
"id": "bigqueryconnection.projects.locations.connections.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of the requested connection, for example: `projects/{project_id}/locations/{location_id}/connections/{connection_id}`",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+name}",
"response": {
"$ref": "Connection"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"getIamPolicy": {
"description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:getIamPolicy",
"httpMethod": "POST",
"id": "bigqueryconnection.projects.locations.connections.getIamPolicy",
"parameterOrder": [
"resource"
],
"parameters": {
"resource": {
"description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+resource}:getIamPolicy",
"request": {
"$ref": "GetIamPolicyRequest"
},
"response": {
"$ref": "Policy"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"list": {
"description": "Returns a list of connections in the given project.",
"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections",
"httpMethod": "GET",
"id": "bigqueryconnection.projects.locations.connections.list",
"parameterOrder": [
"parent"
],
"parameters": {
"maxResults": {
"description": "Required. Maximum number of results per page.",
"format": "uint32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "Page token.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. Parent resource name. Must be in the form: `projects/{project_id}/locations/{location_id}`",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+parent}/connections",
"response": {
"$ref": "ListConnectionsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"patch": {
"description": "Updates the specified connection. For security reasons, also resets credential if connection properties are in the update field mask.",
"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}",
"httpMethod": "PATCH",
"id": "bigqueryconnection.projects.locations.connections.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of the connection to update, for example: `projects/{project_id}/locations/{location_id}/connections/{connection_id}`",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "Required. Update mask for the connection fields to be updated.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v1beta1/{+name}",
"request": {
"$ref": "Connection"
},
"response": {
"$ref": "Connection"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"setIamPolicy": {
"description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.",
"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:setIamPolicy",
"httpMethod": "POST",
"id": "bigqueryconnection.projects.locations.connections.setIamPolicy",
"parameterOrder": [
"resource"
],
"parameters": {
"resource": {
"description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+resource}:setIamPolicy",
"request": {
"$ref": "SetIamPolicyRequest"
},
"response": {
"$ref": "Policy"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"testIamPermissions": {
"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.",
"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:testIamPermissions",
"httpMethod": "POST",
"id": "bigqueryconnection.projects.locations.connections.testIamPermissions",
"parameterOrder": [
"resource"
],
"parameters": {
"resource": {
"description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+resource}:testIamPermissions",
"request": {
"$ref": "TestIamPermissionsRequest"
},
"response": {
"$ref": "TestIamPermissionsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"updateCredential": {
"description": "Sets the credential for the specified connection.",
"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/credential",
"httpMethod": "PATCH",
"id": "bigqueryconnection.projects.locations.connections.updateCredential",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of the connection, for example: `projects/{project_id}/locations/{location_id}/connections/{connection_id}/credential`",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+/credential$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+name}",
"request": {
"$ref": "ConnectionCredential"
},
"response": {
"$ref": "Empty"
},
"scopes": [
"https://www.googleapis.com/auth/bigquery",
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
}
}
}
}
}
},
"revision": "20230806",
"rootUrl": "https://bigqueryconnection.googleapis.com/",
"schemas": {
"AuditConfig": {
"description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.",
"id": "AuditConfig",
"properties": {
"auditLogConfigs": {
"description": "The configuration for logging of each type of permission.",
"items": {
"$ref": "AuditLogConfig"
},
"type": "array"
},
"service": {
"description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.",
"type": "string"
}
},
"type": "object"
},
"AuditLogConfig": {
"description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.",
"id": "AuditLogConfig",
"properties": {
"exemptedMembers": {
"description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.",
"items": {
"type": "string"
},
"type": "array"
},
"logType": {
"description": "The log type that this config enables.",
"enum": [
"LOG_TYPE_UNSPECIFIED",
"ADMIN_READ",
"DATA_WRITE",
"DATA_READ"
],
"enumDescriptions": [
"Default case. Should never be this.",
"Admin reads. Example: CloudIAM getIamPolicy",
"Data writes. Example: CloudSQL Users create",
"Data reads. Example: CloudSQL Users list"
],
"type": "string"
}
},
"type": "object"
},
"Binding": {
"description": "Associates `members`, or principals, with a `role`.",
"id": "Binding",
"properties": {
"condition": {
"$ref": "Expr",
"description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)."
},
"members": {
"description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.",
"items": {
"type": "string"
},
"type": "array"
},
"role": {
"description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.",
"type": "string"
}
},
"type": "object"
},
"CloudSqlCredential": {
"description": "Credential info for the Cloud SQL.",
"id": "CloudSqlCredential",
"properties": {
"password": {
"description": "The password for the credential.",
"type": "string"
},
"username": {
"description": "The username for the credential.",
"type": "string"
}
},
"type": "object"
},
"CloudSqlProperties": {
"description": "Connection properties specific to the Cloud SQL.",
"id": "CloudSqlProperties",
"properties": {
"credential": {
"$ref": "CloudSqlCredential",
"description": "Input only. Cloud SQL credential."
},
"database": {
"description": "Database name.",
"type": "string"
},
"instanceId": {
"description": "Cloud SQL instance ID in the form `project:location:instance`.",
"type": "string"
},
"serviceAccountId": {
"description": "Output only. The account ID of the service used for the purpose of this connection. When the connection is used in the context of an operation in BigQuery, this service account will serve as the identity being used for connecting to the CloudSQL instance specified in this connection.",
"readOnly": true,
"type": "string"
},
"type": {
"description": "Type of the Cloud SQL database.",
"enum": [
"DATABASE_TYPE_UNSPECIFIED",
"POSTGRES",
"MYSQL"
],
"enumDescriptions": [
"Unspecified database type.",
"Cloud SQL for PostgreSQL.",
"Cloud SQL for MySQL."
],
"type": "string"
}
},
"type": "object"
},
"Connection": {
"description": "Configuration parameters to establish connection with an external data source, except the credential attributes.",
"id": "Connection",
"properties": {
"cloudSql": {
"$ref": "CloudSqlProperties",
"description": "Cloud SQL properties."
},
"creationTime": {
"description": "Output only. The creation timestamp of the connection.",
"format": "int64",
"readOnly": true,
"type": "string"
},
"description": {
"description": "User provided description.",
"type": "string"
},
"friendlyName": {
"description": "User provided display name for the connection.",
"type": "string"
},
"hasCredential": {
"description": "Output only. True, if credential is configured for this connection.",
"readOnly": true,
"type": "boolean"
},
"lastModifiedTime": {
"description": "Output only. The last update timestamp of the connection.",
"format": "int64",
"readOnly": true,
"type": "string"
},
"name": {
"description": "The resource name of the connection in the form of: `projects/{project_id}/locations/{location_id}/connections/{connection_id}`",
"type": "string"
}
},
"type": "object"
},
"ConnectionCredential": {
"description": "Credential to use with a connection.",
"id": "ConnectionCredential",
"properties": {
"cloudSql": {
"$ref": "CloudSqlCredential",
"description": "Credential for Cloud SQL database."
}
},
"type": "object"
},
"Empty": {
"description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
"id": "Empty",
"properties": {},
"type": "object"
},
"Expr": {
"description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.",
"id": "Expr",
"properties": {
"description": {
"description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.",
"type": "string"
},
"expression": {
"description": "Textual representation of an expression in Common Expression Language syntax.",
"type": "string"
},
"location": {
"description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.",
"type": "string"
},
"title": {
"description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.",
"type": "string"
}
},
"type": "object"
},
"GetIamPolicyRequest": {
"description": "Request message for `GetIamPolicy` method.",
"id": "GetIamPolicyRequest",
"properties": {
"options": {
"$ref": "GetPolicyOptions",
"description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`."
}
},
"type": "object"
},
"GetPolicyOptions": {
"description": "Encapsulates settings provided to GetIamPolicy.",
"id": "GetPolicyOptions",
"properties": {
"requestedPolicyVersion": {
"description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"ListConnectionsResponse": {
"description": "The response for ConnectionService.ListConnections.",
"id": "ListConnectionsResponse",
"properties": {
"connections": {
"description": "List of connections.",
"items": {
"$ref": "Connection"
},
"type": "array"
},
"nextPageToken": {
"description": "Next page token.",
"type": "string"
}
},
"type": "object"
},
"Policy": {
"description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).",
"id": "Policy",
"properties": {
"auditConfigs": {
"description": "Specifies cloud audit logging configuration for this policy.",
"items": {
"$ref": "AuditConfig"
},
"type": "array"
},
"bindings": {
"description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.",
"items": {
"$ref": "Binding"
},
"type": "array"
},
"etag": {
"description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.",
"format": "byte",
"type": "string"
},
"version": {
"description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"SetIamPolicyRequest": {
"description": "Request message for `SetIamPolicy` method.",
"id": "SetIamPolicyRequest",
"properties": {
"policy": {
"$ref": "Policy",
"description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them."
},
"updateMask": {
"description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`",
"format": "google-fieldmask",
"type": "string"
}
},
"type": "object"
},
"TestIamPermissionsRequest": {
"description": "Request message for `TestIamPermissions` method.",
"id": "TestIamPermissionsRequest",
"properties": {
"permissions": {
"description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"TestIamPermissionsResponse": {
"description": "Response message for `TestIamPermissions` method.",
"id": "TestIamPermissionsResponse",
"properties": {
"permissions": {
"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "BigQuery Connection API",
"version": "v1beta1",
"version_module": true
}

View File

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

View File

@@ -0,0 +1,762 @@
{
"basePath": "",
"baseUrl": "https://bigtableadmin.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Bigtable Admin",
"description": "Administer your Cloud Bigtable tables and instances.",
"discoveryVersion": "v1",
"documentationLink": "https://cloud.google.com/bigtable/",
"fullyEncodeReservedExpansion": true,
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"id": "bigtableadmin:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://bigtableadmin.mtls.googleapis.com/",
"name": "bigtableadmin",
"ownerDomain": "google.com",
"ownerName": "Google",
"parameters": {
"$.xgafv": {
"description": "V1 error format.",
"enum": [
"1",
"2"
],
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"location": "query",
"type": "string"
},
"alt": {
"default": "json",
"description": "Data format for response.",
"enum": [
"json",
"media",
"proto"
],
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"type": "string"
},
"callback": {
"description": "JSONP",
"location": "query",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"location": "query",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"location": "query",
"type": "boolean"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"location": "query",
"type": "string"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"location": "query",
"type": "string"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"location": "query",
"type": "string"
}
},
"protocol": "rest",
"resources": {},
"revision": "20220103",
"rootUrl": "https://bigtableadmin.googleapis.com/",
"schemas": {
"AutoscalingLimits": {
"description": "Limits for the number of nodes a Cluster can autoscale up/down to.",
"id": "AutoscalingLimits",
"properties": {
"maxServeNodes": {
"description": "Required. Maximum number of nodes to scale up to.",
"format": "int32",
"type": "integer"
},
"minServeNodes": {
"description": "Required. Minimum number of nodes to scale down to.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"AutoscalingTargets": {
"description": "The Autoscaling targets for a Cluster. These determine the recommended nodes.",
"id": "AutoscalingTargets",
"properties": {
"cpuUtilizationPercent": {
"description": "The cpu utilization that the Autoscaler should be trying to achieve. This number is on a scale from 0 (no utilization) to 100 (total utilization).",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"Backup": {
"description": "A backup of a Cloud Bigtable table.",
"id": "Backup",
"properties": {
"encryptionInfo": {
"$ref": "EncryptionInfo",
"description": "Output only. The encryption information for the backup.",
"readOnly": true
},
"endTime": {
"description": "Output only. `end_time` is the time that the backup was finished. The row data in the backup will be no newer than this timestamp.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"expireTime": {
"description": "Required. The expiration time of the backup, with microseconds granularity that must be at least 6 hours and at most 30 days from the time the request is received. Once the `expire_time` has passed, Cloud Bigtable will delete the backup and free the resources used by the backup.",
"format": "google-datetime",
"type": "string"
},
"name": {
"description": "A globally unique identifier for the backup which cannot be changed. Values are of the form `projects/{project}/instances/{instance}/clusters/{cluster}/ backups/_a-zA-Z0-9*` The final segment of the name must be between 1 and 50 characters in length. The backup is stored in the cluster identified by the prefix of the backup name of the form `projects/{project}/instances/{instance}/clusters/{cluster}`.",
"type": "string"
},
"sizeBytes": {
"description": "Output only. Size of the backup in bytes.",
"format": "int64",
"readOnly": true,
"type": "string"
},
"sourceTable": {
"description": "Required. Immutable. Name of the table from which this backup was created. This needs to be in the same instance as the backup. Values are of the form `projects/{project}/instances/{instance}/tables/{source_table}`.",
"type": "string"
},
"startTime": {
"description": "Output only. `start_time` is the time that the backup was started (i.e. approximately the time the CreateBackup request is received). The row data in this backup will be no older than this timestamp.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"state": {
"description": "Output only. The current state of the backup.",
"enum": [
"STATE_UNSPECIFIED",
"CREATING",
"READY"
],
"enumDescriptions": [
"Not specified.",
"The pending backup is still being created. Operations on the backup may fail with `FAILED_PRECONDITION` in this state.",
"The backup is complete and ready for use."
],
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"BackupInfo": {
"description": "Information about a backup.",
"id": "BackupInfo",
"properties": {
"backup": {
"description": "Output only. Name of the backup.",
"readOnly": true,
"type": "string"
},
"endTime": {
"description": "Output only. This time that the backup was finished. Row data in the backup will be no newer than this timestamp.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"sourceTable": {
"description": "Output only. Name of the table the backup was created from.",
"readOnly": true,
"type": "string"
},
"startTime": {
"description": "Output only. The time that the backup was started. Row data in the backup will be no older than this timestamp.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"Cluster": {
"description": "A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.",
"id": "Cluster",
"properties": {
"clusterConfig": {
"$ref": "ClusterConfig",
"description": "Configuration for this cluster."
},
"defaultStorageType": {
"description": "Immutable. The type of storage used by this cluster to serve its parent instance's tables, unless explicitly overridden.",
"enum": [
"STORAGE_TYPE_UNSPECIFIED",
"SSD",
"HDD"
],
"enumDescriptions": [
"The user did not specify a storage type.",
"Flash (SSD) storage should be used.",
"Magnetic drive (HDD) storage should be used."
],
"type": "string"
},
"encryptionConfig": {
"$ref": "EncryptionConfig",
"description": "Immutable. The encryption configuration for CMEK-protected clusters."
},
"location": {
"description": "Immutable. The location where this cluster's nodes and storage reside. For best performance, clients should be located as close as possible to this cluster. Currently only zones are supported, so values should be of the form `projects/{project}/locations/{zone}`.",
"type": "string"
},
"name": {
"description": "The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.",
"type": "string"
},
"serveNodes": {
"description": "The number of nodes allocated to this cluster. More nodes enable higher throughput and more consistent performance.",
"format": "int32",
"type": "integer"
},
"state": {
"description": "Output only. The current state of the cluster.",
"enum": [
"STATE_NOT_KNOWN",
"READY",
"CREATING",
"RESIZING",
"DISABLED"
],
"enumDescriptions": [
"The state of the cluster could not be determined.",
"The cluster has been successfully created and is ready to serve requests.",
"The cluster is currently being created, and may be destroyed if the creation process encounters an error. A cluster may not be able to serve requests while being created.",
"The cluster is currently being resized, and may revert to its previous node count if the process encounters an error. A cluster is still capable of serving requests while being resized, but may exhibit performance as if its number of allocated nodes is between the starting and requested states.",
"The cluster has no backing nodes. The data (tables) still exist, but no operations can be performed on the cluster."
],
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"ClusterAutoscalingConfig": {
"description": "Autoscaling config for a cluster.",
"id": "ClusterAutoscalingConfig",
"properties": {
"autoscalingLimits": {
"$ref": "AutoscalingLimits",
"description": "Required. Autoscaling limits for this cluster."
},
"autoscalingTargets": {
"$ref": "AutoscalingTargets",
"description": "Required. Autoscaling targets for this cluster."
}
},
"type": "object"
},
"ClusterConfig": {
"description": "Configuration for a cluster.",
"id": "ClusterConfig",
"properties": {
"clusterAutoscalingConfig": {
"$ref": "ClusterAutoscalingConfig",
"description": "Autoscaling configuration for this cluster."
}
},
"type": "object"
},
"CreateBackupMetadata": {
"description": "Metadata type for the operation returned by CreateBackup.",
"id": "CreateBackupMetadata",
"properties": {
"endTime": {
"description": "If set, the time at which this operation finished or was cancelled.",
"format": "google-datetime",
"type": "string"
},
"name": {
"description": "The name of the backup being created.",
"type": "string"
},
"sourceTable": {
"description": "The name of the table the backup is created from.",
"type": "string"
},
"startTime": {
"description": "The time at which this operation started.",
"format": "google-datetime",
"type": "string"
}
},
"type": "object"
},
"CreateClusterMetadata": {
"description": "The metadata for the Operation returned by CreateCluster.",
"id": "CreateClusterMetadata",
"properties": {
"finishTime": {
"description": "The time at which the operation failed or was completed successfully.",
"format": "google-datetime",
"type": "string"
},
"originalRequest": {
"$ref": "CreateClusterRequest",
"description": "The request that prompted the initiation of this CreateCluster operation."
},
"requestTime": {
"description": "The time at which the original request was received.",
"format": "google-datetime",
"type": "string"
},
"tables": {
"additionalProperties": {
"$ref": "TableProgress"
},
"description": "Keys: the full `name` of each table that existed in the instance when CreateCluster was first called, i.e. `projects//instances//tables/`. Any table added to the instance by a later API call will be created in the new cluster by that API call, not this one. Values: information on how much of a table's data has been copied to the newly-created cluster so far.",
"type": "object"
}
},
"type": "object"
},
"CreateClusterRequest": {
"description": "Request message for BigtableInstanceAdmin.CreateCluster.",
"id": "CreateClusterRequest",
"properties": {
"cluster": {
"$ref": "Cluster",
"description": "Required. The cluster to be created. Fields marked `OutputOnly` must be left blank."
},
"clusterId": {
"description": "Required. The ID to be used when referring to the new cluster within its instance, e.g., just `mycluster` rather than `projects/myproject/instances/myinstance/clusters/mycluster`.",
"type": "string"
},
"parent": {
"description": "Required. The unique name of the instance in which to create the new cluster. Values are of the form `projects/{project}/instances/{instance}`.",
"type": "string"
}
},
"type": "object"
},
"CreateInstanceMetadata": {
"description": "The metadata for the Operation returned by CreateInstance.",
"id": "CreateInstanceMetadata",
"properties": {
"finishTime": {
"description": "The time at which the operation failed or was completed successfully.",
"format": "google-datetime",
"type": "string"
},
"originalRequest": {
"$ref": "CreateInstanceRequest",
"description": "The request that prompted the initiation of this CreateInstance operation."
},
"requestTime": {
"description": "The time at which the original request was received.",
"format": "google-datetime",
"type": "string"
}
},
"type": "object"
},
"CreateInstanceRequest": {
"description": "Request message for BigtableInstanceAdmin.CreateInstance.",
"id": "CreateInstanceRequest",
"properties": {
"clusters": {
"additionalProperties": {
"$ref": "Cluster"
},
"description": "Required. The clusters to be created within the instance, mapped by desired cluster ID, e.g., just `mycluster` rather than `projects/myproject/instances/myinstance/clusters/mycluster`. Fields marked `OutputOnly` must be left blank. Currently, at most four clusters can be specified.",
"type": "object"
},
"instance": {
"$ref": "Instance",
"description": "Required. The instance to create. Fields marked `OutputOnly` must be left blank."
},
"instanceId": {
"description": "Required. The ID to be used when referring to the new instance within its project, e.g., just `myinstance` rather than `projects/myproject/instances/myinstance`.",
"type": "string"
},
"parent": {
"description": "Required. The unique name of the project in which to create the new instance. Values are of the form `projects/{project}`.",
"type": "string"
}
},
"type": "object"
},
"EncryptionConfig": {
"description": "Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster.",
"id": "EncryptionConfig",
"properties": {
"kmsKeyName": {
"description": "Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. 3) All clusters within an instance must use the same CMEK key. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`",
"type": "string"
}
},
"type": "object"
},
"EncryptionInfo": {
"description": "Encryption information for a given resource. If this resource is protected with customer managed encryption, the in-use Cloud Key Management Service (Cloud KMS) key version is specified along with its status.",
"id": "EncryptionInfo",
"properties": {
"encryptionStatus": {
"$ref": "Status",
"description": "Output only. The status of encrypt/decrypt calls on underlying data for this resource. Regardless of status, the existing data is always encrypted at rest.",
"readOnly": true
},
"encryptionType": {
"description": "Output only. The type of encryption used to protect this resource.",
"enum": [
"ENCRYPTION_TYPE_UNSPECIFIED",
"GOOGLE_DEFAULT_ENCRYPTION",
"CUSTOMER_MANAGED_ENCRYPTION"
],
"enumDescriptions": [
"Encryption type was not specified, though data at rest remains encrypted.",
"The data backing this resource is encrypted at rest with a key that is fully managed by Google. No key version or status will be populated. This is the default state.",
"The data backing this resource is encrypted at rest with a key that is managed by the customer. The in-use version of the key and its status are populated for CMEK-protected tables. CMEK-protected backups are pinned to the key version that was in use at the time the backup was taken. This key version is populated but its status is not tracked and is reported as `UNKNOWN`."
],
"readOnly": true,
"type": "string"
},
"kmsKeyVersion": {
"description": "Output only. The version of the Cloud KMS key specified in the parent cluster that is in use for the data underlying this table.",
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"Instance": {
"description": "A collection of Bigtable Tables and the resources that serve them. All tables in an instance are served from all Clusters in the instance.",
"id": "Instance",
"properties": {
"createTime": {
"description": "Output only. A server-assigned timestamp representing when this Instance was created. For instances created before this field was added (August 2021), this value is `seconds: 0, nanos: 1`.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"displayName": {
"description": "Required. The descriptive name for this instance as it appears in UIs. Can be changed at any time, but should be kept globally unique to avoid confusion.",
"type": "string"
},
"labels": {
"additionalProperties": {
"type": "string"
},
"description": "Required. Labels are a flexible and lightweight mechanism for organizing cloud resources into groups that reflect a customer's organizational needs and deployment strategies. They can be used to filter resources and aggregate metrics. * Label keys must be between 1 and 63 characters long and must conform to the regular expression: `\\p{Ll}\\p{Lo}{0,62}`. * Label values must be between 0 and 63 characters long and must conform to the regular expression: `[\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}`. * No more than 64 labels can be associated with a given resource. * Keys and values must both be under 128 bytes.",
"type": "object"
},
"name": {
"description": "The unique name of the instance. Values are of the form `projects/{project}/instances/a-z+[a-z0-9]`.",
"type": "string"
},
"state": {
"description": "Output only. The current state of the instance.",
"enum": [
"STATE_NOT_KNOWN",
"READY",
"CREATING"
],
"enumDescriptions": [
"The state of the instance could not be determined.",
"The instance has been successfully created and can serve requests to its tables.",
"The instance is currently being created, and may be destroyed if the creation process encounters an error."
],
"readOnly": true,
"type": "string"
},
"type": {
"description": "Required. The type of the instance. Defaults to `PRODUCTION`.",
"enum": [
"TYPE_UNSPECIFIED",
"PRODUCTION",
"DEVELOPMENT"
],
"enumDescriptions": [
"The type of the instance is unspecified. If set when creating an instance, a `PRODUCTION` instance will be created. If set when updating an instance, the type will be left unchanged.",
"An instance meant for production use. `serve_nodes` must be set on the cluster.",
"DEPRECATED: Prefer PRODUCTION for all use cases, as it no longer enforces a higher minimum node count than DEVELOPMENT."
],
"type": "string"
}
},
"type": "object"
},
"OperationProgress": {
"description": "Encapsulates progress related information for a Cloud Bigtable long running operation.",
"id": "OperationProgress",
"properties": {
"endTime": {
"description": "If set, the time at which this operation failed or was completed successfully.",
"format": "google-datetime",
"type": "string"
},
"progressPercent": {
"description": "Percent completion of the operation. Values are between 0 and 100 inclusive.",
"format": "int32",
"type": "integer"
},
"startTime": {
"description": "Time the request was received.",
"format": "google-datetime",
"type": "string"
}
},
"type": "object"
},
"OptimizeRestoredTableMetadata": {
"description": "Metadata type for the long-running operation used to track the progress of optimizations performed on a newly restored table. This long-running operation is automatically created by the system after the successful completion of a table restore, and cannot be cancelled.",
"id": "OptimizeRestoredTableMetadata",
"properties": {
"name": {
"description": "Name of the restored table being optimized.",
"type": "string"
},
"progress": {
"$ref": "OperationProgress",
"description": "The progress of the post-restore optimizations."
}
},
"type": "object"
},
"PartialUpdateClusterMetadata": {
"description": "The metadata for the Operation returned by PartialUpdateCluster.",
"id": "PartialUpdateClusterMetadata",
"properties": {
"finishTime": {
"description": "The time at which the operation failed or was completed successfully.",
"format": "google-datetime",
"type": "string"
},
"originalRequest": {
"$ref": "PartialUpdateClusterRequest",
"description": "The original request for PartialUpdateCluster."
},
"requestTime": {
"description": "The time at which the original request was received.",
"format": "google-datetime",
"type": "string"
}
},
"type": "object"
},
"PartialUpdateClusterRequest": {
"description": "Request message for BigtableInstanceAdmin.PartialUpdateCluster.",
"id": "PartialUpdateClusterRequest",
"properties": {
"cluster": {
"$ref": "Cluster",
"description": "Required. The Cluster which contains the partial updates to be applied, subject to the update_mask."
},
"updateMask": {
"description": "Required. The subset of Cluster fields which should be replaced.",
"format": "google-fieldmask",
"type": "string"
}
},
"type": "object"
},
"PartialUpdateInstanceRequest": {
"description": "Request message for BigtableInstanceAdmin.PartialUpdateInstance.",
"id": "PartialUpdateInstanceRequest",
"properties": {
"instance": {
"$ref": "Instance",
"description": "Required. The Instance which will (partially) replace the current value."
},
"updateMask": {
"description": "Required. The subset of Instance fields which should be replaced. Must be explicitly set.",
"format": "google-fieldmask",
"type": "string"
}
},
"type": "object"
},
"RestoreTableMetadata": {
"description": "Metadata type for the long-running operation returned by RestoreTable.",
"id": "RestoreTableMetadata",
"properties": {
"backupInfo": {
"$ref": "BackupInfo"
},
"name": {
"description": "Name of the table being created and restored to.",
"type": "string"
},
"optimizeTableOperationName": {
"description": "If exists, the name of the long-running operation that will be used to track the post-restore optimization process to optimize the performance of the restored table. The metadata type of the long-running operation is OptimizeRestoreTableMetadata. The response type is Empty. This long-running operation may be automatically created by the system if applicable after the RestoreTable long-running operation completes successfully. This operation may not be created if the table is already optimized or the restore was not successful.",
"type": "string"
},
"progress": {
"$ref": "OperationProgress",
"description": "The progress of the RestoreTable operation."
},
"sourceType": {
"description": "The type of the restore source.",
"enum": [
"RESTORE_SOURCE_TYPE_UNSPECIFIED",
"BACKUP"
],
"enumDescriptions": [
"No restore associated.",
"A backup was used as the source of the restore."
],
"type": "string"
}
},
"type": "object"
},
"Status": {
"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
"id": "Status",
"properties": {
"code": {
"description": "The status code, which should be an enum value of google.rpc.Code.",
"format": "int32",
"type": "integer"
},
"details": {
"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
"items": {
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
},
"type": "object"
},
"type": "array"
},
"message": {
"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
"type": "string"
}
},
"type": "object"
},
"TableProgress": {
"description": "Progress info for copying a table's data to the new cluster.",
"id": "TableProgress",
"properties": {
"estimatedCopiedBytes": {
"description": "Estimate of the number of bytes copied so far for this table. This will eventually reach 'estimated_size_bytes' unless the table copy is CANCELLED.",
"format": "int64",
"type": "string"
},
"estimatedSizeBytes": {
"description": "Estimate of the size of the table to be copied.",
"format": "int64",
"type": "string"
},
"state": {
"enum": [
"STATE_UNSPECIFIED",
"PENDING",
"COPYING",
"COMPLETED",
"CANCELLED"
],
"enumDescriptions": [
"",
"The table has not yet begun copying to the new cluster.",
"The table is actively being copied to the new cluster.",
"The table has been fully copied to the new cluster.",
"The table was deleted before it finished copying to the new cluster. Note that tables deleted after completion will stay marked as COMPLETED, not CANCELLED."
],
"type": "string"
}
},
"type": "object"
},
"UpdateAppProfileMetadata": {
"description": "The metadata for the Operation returned by UpdateAppProfile.",
"id": "UpdateAppProfileMetadata",
"properties": {},
"type": "object"
},
"UpdateClusterMetadata": {
"description": "The metadata for the Operation returned by UpdateCluster.",
"id": "UpdateClusterMetadata",
"properties": {
"finishTime": {
"description": "The time at which the operation failed or was completed successfully.",
"format": "google-datetime",
"type": "string"
},
"originalRequest": {
"$ref": "Cluster",
"description": "The request that prompted the initiation of this UpdateCluster operation."
},
"requestTime": {
"description": "The time at which the original request was received.",
"format": "google-datetime",
"type": "string"
}
},
"type": "object"
},
"UpdateInstanceMetadata": {
"description": "The metadata for the Operation returned by UpdateInstance.",
"id": "UpdateInstanceMetadata",
"properties": {
"finishTime": {
"description": "The time at which the operation failed or was completed successfully.",
"format": "google-datetime",
"type": "string"
},
"originalRequest": {
"$ref": "PartialUpdateInstanceRequest",
"description": "The request that prompted the initiation of this UpdateInstance operation."
},
"requestTime": {
"description": "The time at which the original request was received.",
"format": "google-datetime",
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Cloud Bigtable Admin API",
"version": "v1",
"version_module": true
}

View File

@@ -0,0 +1,563 @@
{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/cloud-billing": {
"description": "View and manage your Google Cloud Platform billing accounts"
},
"https://www.googleapis.com/auth/cloud-platform": {
"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
}
}
}
},
"basePath": "",
"baseUrl": "https://billingbudgets.googleapis.com/",
"batchPath": "batch",
"canonicalName": "CloudBillingBudget",
"description": "The Cloud Billing Budget API stores Cloud Billing budgets, which define a budget plan and the rules to execute as spend is tracked against that plan.",
"discoveryVersion": "v1",
"documentationLink": "https://cloud.google.com/billing/docs/how-to/budget-api-overview",
"fullyEncodeReservedExpansion": true,
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"id": "billingbudgets:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://billingbudgets.mtls.googleapis.com/",
"name": "billingbudgets",
"ownerDomain": "google.com",
"ownerName": "Google",
"parameters": {
"$.xgafv": {
"description": "V1 error format.",
"enum": [
"1",
"2"
],
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"location": "query",
"type": "string"
},
"alt": {
"default": "json",
"description": "Data format for response.",
"enum": [
"json",
"media",
"proto"
],
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"type": "string"
},
"callback": {
"description": "JSONP",
"location": "query",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"location": "query",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"location": "query",
"type": "boolean"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"location": "query",
"type": "string"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"location": "query",
"type": "string"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"location": "query",
"type": "string"
}
},
"protocol": "rest",
"resources": {
"billingAccounts": {
"resources": {
"budgets": {
"methods": {
"create": {
"description": "Creates a new budget. See [Quotas and limits](https://cloud.google.com/billing/quotas) for more information on the limits of the number of budgets you can create.",
"flatPath": "v1/billingAccounts/{billingAccountsId}/budgets",
"httpMethod": "POST",
"id": "billingbudgets.billingAccounts.budgets.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. The name of the billing account to create the budget in. Values are of the form `billingAccounts/{billingAccountId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+parent}/budgets",
"request": {
"$ref": "GoogleCloudBillingBudgetsV1Budget"
},
"response": {
"$ref": "GoogleCloudBillingBudgetsV1Budget"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"delete": {
"description": "Deletes a budget. Returns successfully if already deleted.",
"flatPath": "v1/billingAccounts/{billingAccountsId}/budgets/{budgetsId}",
"httpMethod": "DELETE",
"id": "billingbudgets.billingAccounts.budgets.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of the budget to delete. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+/budgets/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "GoogleProtobufEmpty"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"get": {
"description": "Returns a budget. WARNING: There are some fields exposed on the Google Cloud Console that aren't available on this API. When reading from the API, you will not see these fields in the return value, though they may have been set in the Cloud Console.",
"flatPath": "v1/billingAccounts/{billingAccountsId}/budgets/{budgetsId}",
"httpMethod": "GET",
"id": "billingbudgets.billingAccounts.budgets.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of budget to get. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+/budgets/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "GoogleCloudBillingBudgetsV1Budget"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"list": {
"description": "Returns a list of budgets for a billing account. WARNING: There are some fields exposed on the Google Cloud Console that aren't available on this API. When reading from the API, you will not see these fields in the return value, though they may have been set in the Cloud Console.",
"flatPath": "v1/billingAccounts/{billingAccountsId}/budgets",
"httpMethod": "GET",
"id": "billingbudgets.billingAccounts.budgets.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "Optional. The maximum number of budgets to return per page. The default and maximum value are 100.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "Optional. The value returned by the last `ListBudgetsResponse` which indicates that this is a continuation of a prior `ListBudgets` call, and that the system should return the next page of data.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. Name of billing account to list budgets under. Values are of the form `billingAccounts/{billingAccountId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+parent}/budgets",
"response": {
"$ref": "GoogleCloudBillingBudgetsV1ListBudgetsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"patch": {
"description": "Updates a budget and returns the updated budget. WARNING: There are some fields exposed on the Google Cloud Console that aren't available on this API. Budget fields that are not exposed in this API will not be changed by this method.",
"flatPath": "v1/billingAccounts/{billingAccountsId}/budgets/{budgetsId}",
"httpMethod": "PATCH",
"id": "billingbudgets.billingAccounts.budgets.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Output only. Resource name of the budget. The resource name implies the scope of a budget. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+/budgets/[^/]+$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "Optional. Indicates which fields in the provided budget to update. Read-only fields (such as `name`) cannot be changed. If this is not provided, then only fields with non-default values from the request are updated. See https://developers.google.com/protocol-buffers/docs/proto3#default for more details about default values.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v1/{+name}",
"request": {
"$ref": "GoogleCloudBillingBudgetsV1Budget"
},
"response": {
"$ref": "GoogleCloudBillingBudgetsV1Budget"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
}
}
}
},
"revision": "20230806",
"rootUrl": "https://billingbudgets.googleapis.com/",
"schemas": {
"GoogleCloudBillingBudgetsV1Budget": {
"description": "A budget is a plan that describes what you expect to spend on Cloud projects, plus the rules to execute as spend is tracked against that plan, (for example, send an alert when 90% of the target spend is met). The budget time period is configurable, with options such as month (default), quarter, year, or custom time period.",
"id": "GoogleCloudBillingBudgetsV1Budget",
"properties": {
"amount": {
"$ref": "GoogleCloudBillingBudgetsV1BudgetAmount",
"description": "Required. Budgeted amount."
},
"budgetFilter": {
"$ref": "GoogleCloudBillingBudgetsV1Filter",
"description": "Optional. Filters that define which resources are used to compute the actual spend against the budget amount, such as projects, services, and the budget's time period, as well as other filters."
},
"displayName": {
"description": "User data for display name in UI. The name must be less than or equal to 60 characters.",
"type": "string"
},
"etag": {
"description": "Optional. Etag to validate that the object is unchanged for a read-modify-write operation. An empty etag causes an update to overwrite other changes.",
"type": "string"
},
"name": {
"description": "Output only. Resource name of the budget. The resource name implies the scope of a budget. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
"readOnly": true,
"type": "string"
},
"notificationsRule": {
"$ref": "GoogleCloudBillingBudgetsV1NotificationsRule",
"description": "Optional. Rules to apply to notifications sent based on budget spend and thresholds."
},
"thresholdRules": {
"description": "Optional. Rules that trigger alerts (notifications of thresholds being crossed) when spend exceeds the specified percentages of the budget. Optional for `pubsubTopic` notifications. Required if using email notifications.",
"items": {
"$ref": "GoogleCloudBillingBudgetsV1ThresholdRule"
},
"type": "array"
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1BudgetAmount": {
"description": "The budgeted amount for each usage period.",
"id": "GoogleCloudBillingBudgetsV1BudgetAmount",
"properties": {
"lastPeriodAmount": {
"$ref": "GoogleCloudBillingBudgetsV1LastPeriodAmount",
"description": "Use the last period's actual spend as the budget for the present period. LastPeriodAmount can only be set when the budget's time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period."
},
"specifiedAmount": {
"$ref": "GoogleTypeMoney",
"description": "A specified amount to use as the budget. `currency_code` is optional. If specified when creating a budget, it must match the currency of the billing account. If specified when updating a budget, it must match the currency_code of the existing budget. The `currency_code` is provided on output."
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1CustomPeriod": {
"description": "All date times begin at 12 AM US and Canadian Pacific Time (UTC-8).",
"id": "GoogleCloudBillingBudgetsV1CustomPeriod",
"properties": {
"endDate": {
"$ref": "GoogleTypeDate",
"description": "Optional. The end date of the time period. Budgets with elapsed end date won't be processed. If unset, specifies to track all usage incurred since the start_date."
},
"startDate": {
"$ref": "GoogleTypeDate",
"description": "Required. The start date must be after January 1, 2017."
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1Filter": {
"description": "A filter for a budget, limiting the scope of the cost to calculate.",
"id": "GoogleCloudBillingBudgetsV1Filter",
"properties": {
"calendarPeriod": {
"description": "Optional. Specifies to track usage for recurring calendar period. For example, assume that CalendarPeriod.QUARTER is set. The budget tracks usage from April 1 to June 30, when the current calendar month is April, May, June. After that, it tracks usage from July 1 to September 30 when the current calendar month is July, August, September, so on.",
"enum": [
"CALENDAR_PERIOD_UNSPECIFIED",
"MONTH",
"QUARTER",
"YEAR"
],
"enumDescriptions": [
"Calendar period is unset. This is the default if the budget is for a custom time period (CustomPeriod).",
"A month. Month starts on the first day of each month, such as January 1, February 1, March 1, and so on.",
"A quarter. Quarters start on dates January 1, April 1, July 1, and October 1 of each year.",
"A year. Year starts on January 1."
],
"type": "string"
},
"creditTypes": {
"description": "Optional. If Filter.credit_types_treatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. See [a list of acceptable credit type values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type). If Filter.credit_types_treatment is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty.",
"items": {
"type": "string"
},
"type": "array"
},
"creditTypesTreatment": {
"description": "Optional. If not set, default behavior is `INCLUDE_ALL_CREDITS`.",
"enum": [
"CREDIT_TYPES_TREATMENT_UNSPECIFIED",
"INCLUDE_ALL_CREDITS",
"EXCLUDE_ALL_CREDITS",
"INCLUDE_SPECIFIED_CREDITS"
],
"enumDescriptions": [
"",
"All types of credit are subtracted from the gross cost to determine the spend for threshold calculations.",
"All types of credit are added to the net cost to determine the spend for threshold calculations.",
"[Credit types](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type) specified in the credit_types field are subtracted from the gross cost to determine the spend for threshold calculations."
],
"type": "string"
},
"customPeriod": {
"$ref": "GoogleCloudBillingBudgetsV1CustomPeriod",
"description": "Optional. Specifies to track usage from any start date (required) to any end date (optional). This time period is static, it does not recur."
},
"labels": {
"additionalProperties": {
"items": {
"type": "any"
},
"type": "array"
},
"description": "Optional. A single label and value pair specifying that usage from only this set of labeled resources should be included in the budget. If omitted, the report includes all labeled and unlabeled usage. An object containing a single `\"key\": value` pair. Example: `{ \"name\": \"wrench\" }`. _Currently, multiple entries or multiple values per entry are not allowed._",
"type": "object"
},
"projects": {
"description": "Optional. A set of projects of the form `projects/{project}`, specifying that usage from only this set of projects should be included in the budget. If omitted, the report includes all usage for the billing account, regardless of which project the usage occurred on.",
"items": {
"type": "string"
},
"type": "array"
},
"resourceAncestors": {
"description": "Optional. A set of folder and organization names of the form `folders/{folderId}` or `organizations/{organizationId}`, specifying that usage from only this set of folders and organizations should be included in the budget. If omitted, the budget includes all usage that the billing account pays for. If the folder or organization contains projects that are paid for by a different Cloud Billing account, the budget *doesn't* apply to those projects.",
"items": {
"type": "string"
},
"type": "array"
},
"services": {
"description": "Optional. A set of services of the form `services/{service_id}`, specifying that usage from only this set of services should be included in the budget. If omitted, the report includes usage for all the services. The service names are available through the Catalog API: https://cloud.google.com/billing/v1/how-tos/catalog-api.",
"items": {
"type": "string"
},
"type": "array"
},
"subaccounts": {
"description": "Optional. A set of subaccounts of the form `billingAccounts/{account_id}`, specifying that usage from only this set of subaccounts should be included in the budget. If a subaccount is set to the name of the parent account, usage from the parent account is included. If the field is omitted, the report includes usage from the parent account and all subaccounts, if they exist.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1LastPeriodAmount": {
"description": "Describes a budget amount targeted to the last Filter.calendar_period spend. At this time, the amount is automatically 100% of the last calendar period's spend; that is, there are no other options yet. LastPeriodAmount cannot be set for a budget configured with a Filter.custom_period.",
"id": "GoogleCloudBillingBudgetsV1LastPeriodAmount",
"properties": {},
"type": "object"
},
"GoogleCloudBillingBudgetsV1ListBudgetsResponse": {
"description": "Response for ListBudgets",
"id": "GoogleCloudBillingBudgetsV1ListBudgetsResponse",
"properties": {
"budgets": {
"description": "List of the budgets owned by the requested billing account.",
"items": {
"$ref": "GoogleCloudBillingBudgetsV1Budget"
},
"type": "array"
},
"nextPageToken": {
"description": "If not empty, indicates that there may be more budgets that match the request; this value should be passed in a new `ListBudgetsRequest`.",
"type": "string"
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1NotificationsRule": {
"description": "NotificationsRule defines notifications that are sent based on budget spend and thresholds.",
"id": "GoogleCloudBillingBudgetsV1NotificationsRule",
"properties": {
"disableDefaultIamRecipients": {
"description": "Optional. When set to true, disables default notifications sent when a threshold is exceeded. Default notifications are sent to those with Billing Account Administrator and Billing Account User IAM roles for the target account.",
"type": "boolean"
},
"monitoringNotificationChannels": {
"description": "Optional. Email targets to send notifications to when a threshold is exceeded. This is in addition to the `DefaultIamRecipients` who receive alert emails based on their billing account IAM role. The value is the full REST resource name of a Cloud Monitoring email notification channel with the form `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 email notifications are allowed. To customize budget alert email recipients with monitoring notification channels, you _must create the monitoring notification channels before you link them to a budget_. For guidance on setting up notification channels to use with budgets, see [Customize budget alert email recipients](https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients). For Cloud Billing budget alerts, you _must use email notification channels_. The other types of notification channels are _not_ supported, such as Slack, SMS, or PagerDuty. If you want to [send budget notifications to Slack](https://cloud.google.com/billing/docs/how-to/notify#send_notifications_to_slack), use a pubsubTopic and configure [programmatic notifications](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications).",
"items": {
"type": "string"
},
"type": "array"
},
"pubsubTopic": {
"description": "Optional. The name of the Pub/Sub topic where budget-related messages are published, in the form `projects/{project_id}/topics/{topic_id}`. Updates are sent to the topic at regular intervals; the timing of the updates is not dependent on the [threshold rules](#thresholdrule) you've set. Note that if you want your [Pub/Sub JSON object](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format) to contain data for `alertThresholdExceeded`, you need at least one [alert threshold rule](#thresholdrule). When you set threshold rules, you must also enable at least one of the email notification options, either using the default IAM recipients or Cloud Monitoring email notification channels. To use Pub/Sub topics with budgets, you must do the following: 1. Create the Pub/Sub topic before connecting it to your budget. For guidance, see [Manage programmatic budget alert notifications](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications). 2. Grant the API caller the `pubsub.topics.setIamPolicy` permission on the Pub/Sub topic. If not set, the API call fails with PERMISSION_DENIED. For additional details on Pub/Sub roles and permissions, see [Permissions required for this task](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#permissions_required_for_this_task).",
"type": "string"
},
"schemaVersion": {
"description": "Optional. Required when NotificationsRule.pubsub_topic is set. The schema version of the notification sent to NotificationsRule.pubsub_topic. Only \"1.0\" is accepted. It represents the JSON schema as defined in https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format.",
"type": "string"
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1ThresholdRule": {
"description": "ThresholdRule contains the definition of a threshold. Threshold rules define the triggering events used to generate a budget notification email. When a threshold is crossed (spend exceeds the specified percentages of the budget), budget alert emails are sent to the email recipients you specify in the [NotificationsRule](#notificationsrule). Threshold rules also affect the fields included in the [JSON data object](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format) sent to a Pub/Sub topic. Threshold rules are _required_ if using email notifications. Threshold rules are _optional_ if only setting a [`pubsubTopic` NotificationsRule](#NotificationsRule), unless you want your JSON data object to include data about the thresholds you set. For more information, see [set budget threshold rules and actions](https://cloud.google.com/billing/docs/how-to/budgets#budget-actions).",
"id": "GoogleCloudBillingBudgetsV1ThresholdRule",
"properties": {
"spendBasis": {
"description": "Optional. The type of basis used to determine if spend has passed the threshold. Behavior defaults to CURRENT_SPEND if not set.",
"enum": [
"BASIS_UNSPECIFIED",
"CURRENT_SPEND",
"FORECASTED_SPEND"
],
"enumDescriptions": [
"Unspecified threshold basis.",
"Use current spend as the basis for comparison against the threshold.",
"Use forecasted spend for the period as the basis for comparison against the threshold. FORECASTED_SPEND can only be set when the budget's time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period."
],
"type": "string"
},
"thresholdPercent": {
"description": "Required. Send an alert when this threshold is exceeded. This is a 1.0-based percentage, so 0.5 = 50%. Validation: non-negative number.",
"format": "double",
"type": "number"
}
},
"type": "object"
},
"GoogleProtobufEmpty": {
"description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
"id": "GoogleProtobufEmpty",
"properties": {},
"type": "object"
},
"GoogleTypeDate": {
"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp",
"id": "GoogleTypeDate",
"properties": {
"day": {
"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.",
"format": "int32",
"type": "integer"
},
"month": {
"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.",
"format": "int32",
"type": "integer"
},
"year": {
"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"GoogleTypeMoney": {
"description": "Represents an amount of money with its currency type.",
"id": "GoogleTypeMoney",
"properties": {
"currencyCode": {
"description": "The three-letter currency code defined in ISO 4217.",
"type": "string"
},
"nanos": {
"description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.",
"format": "int32",
"type": "integer"
},
"units": {
"description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.",
"format": "int64",
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Cloud Billing Budget API",
"version": "v1",
"version_module": true
}

View File

@@ -0,0 +1,584 @@
{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/cloud-billing": {
"description": "View and manage your Google Cloud Platform billing accounts"
},
"https://www.googleapis.com/auth/cloud-platform": {
"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
}
}
}
},
"basePath": "",
"baseUrl": "https://billingbudgets.googleapis.com/",
"batchPath": "batch",
"canonicalName": "CloudBillingBudget",
"description": "The Cloud Billing Budget API stores Cloud Billing budgets, which define a budget plan and the rules to execute as spend is tracked against that plan.",
"discoveryVersion": "v1",
"documentationLink": "https://cloud.google.com/billing/docs/how-to/budget-api-overview",
"fullyEncodeReservedExpansion": true,
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"id": "billingbudgets:v1beta1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://billingbudgets.mtls.googleapis.com/",
"name": "billingbudgets",
"ownerDomain": "google.com",
"ownerName": "Google",
"parameters": {
"$.xgafv": {
"description": "V1 error format.",
"enum": [
"1",
"2"
],
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"location": "query",
"type": "string"
},
"alt": {
"default": "json",
"description": "Data format for response.",
"enum": [
"json",
"media",
"proto"
],
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"type": "string"
},
"callback": {
"description": "JSONP",
"location": "query",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"location": "query",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"location": "query",
"type": "boolean"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"location": "query",
"type": "string"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"location": "query",
"type": "string"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"location": "query",
"type": "string"
}
},
"protocol": "rest",
"resources": {
"billingAccounts": {
"resources": {
"budgets": {
"methods": {
"create": {
"description": "Creates a new budget. See [Quotas and limits](https://cloud.google.com/billing/quotas) for more information on the limits of the number of budgets you can create.",
"flatPath": "v1beta1/billingAccounts/{billingAccountsId}/budgets",
"httpMethod": "POST",
"id": "billingbudgets.billingAccounts.budgets.create",
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. The name of the billing account to create the budget in. Values are of the form `billingAccounts/{billingAccountId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+parent}/budgets",
"request": {
"$ref": "GoogleCloudBillingBudgetsV1beta1CreateBudgetRequest"
},
"response": {
"$ref": "GoogleCloudBillingBudgetsV1beta1Budget"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"delete": {
"description": "Deletes a budget. Returns successfully if already deleted.",
"flatPath": "v1beta1/billingAccounts/{billingAccountsId}/budgets/{budgetsId}",
"httpMethod": "DELETE",
"id": "billingbudgets.billingAccounts.budgets.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of the budget to delete. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+/budgets/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+name}",
"response": {
"$ref": "GoogleProtobufEmpty"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"get": {
"description": "Returns a budget. WARNING: There are some fields exposed on the Google Cloud Console that aren't available on this API. When reading from the API, you will not see these fields in the return value, though they may have been set in the Cloud Console.",
"flatPath": "v1beta1/billingAccounts/{billingAccountsId}/budgets/{budgetsId}",
"httpMethod": "GET",
"id": "billingbudgets.billingAccounts.budgets.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Name of budget to get. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+/budgets/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+name}",
"response": {
"$ref": "GoogleCloudBillingBudgetsV1beta1Budget"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"list": {
"description": "Returns a list of budgets for a billing account. WARNING: There are some fields exposed on the Google Cloud Console that aren't available on this API. When reading from the API, you will not see these fields in the return value, though they may have been set in the Cloud Console.",
"flatPath": "v1beta1/billingAccounts/{billingAccountsId}/budgets",
"httpMethod": "GET",
"id": "billingbudgets.billingAccounts.budgets.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "Optional. The maximum number of budgets to return per page. The default and maximum value are 100.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "Optional. The value returned by the last `ListBudgetsResponse` which indicates that this is a continuation of a prior `ListBudgets` call, and that the system should return the next page of data.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. Name of billing account to list budgets under. Values are of the form `billingAccounts/{billingAccountId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+parent}/budgets",
"response": {
"$ref": "GoogleCloudBillingBudgetsV1beta1ListBudgetsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
},
"patch": {
"description": "Updates a budget and returns the updated budget. WARNING: There are some fields exposed on the Google Cloud Console that aren't available on this API. Budget fields that are not exposed in this API will not be changed by this method.",
"flatPath": "v1beta1/billingAccounts/{billingAccountsId}/budgets/{budgetsId}",
"httpMethod": "PATCH",
"id": "billingbudgets.billingAccounts.budgets.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Output only. Resource name of the budget. The resource name implies the scope of a budget. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
"location": "path",
"pattern": "^billingAccounts/[^/]+/budgets/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1beta1/{+name}",
"request": {
"$ref": "GoogleCloudBillingBudgetsV1beta1UpdateBudgetRequest"
},
"response": {
"$ref": "GoogleCloudBillingBudgetsV1beta1Budget"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-billing",
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
}
}
}
},
"revision": "20230806",
"rootUrl": "https://billingbudgets.googleapis.com/",
"schemas": {
"GoogleCloudBillingBudgetsV1beta1AllUpdatesRule": {
"description": "AllUpdatesRule defines notifications that are sent based on budget spend and thresholds.",
"id": "GoogleCloudBillingBudgetsV1beta1AllUpdatesRule",
"properties": {
"disableDefaultIamRecipients": {
"description": "Optional. When set to true, disables default notifications sent when a threshold is exceeded. Default notifications are sent to those with Billing Account Administrator and Billing Account User IAM roles for the target account.",
"type": "boolean"
},
"monitoringNotificationChannels": {
"description": "Optional. Targets to send notifications to when a threshold is exceeded. This is in addition to default recipients who have billing account IAM roles. The value is the full REST resource name of a monitoring notification channel with the form `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 channels are allowed. See https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients for more details.",
"items": {
"type": "string"
},
"type": "array"
},
"pubsubTopic": {
"description": "Optional. The name of the Pub/Sub topic where budget related messages will be published, in the form `projects/{project_id}/topics/{topic_id}`. Updates are sent at regular intervals to the topic. The topic needs to be created before the budget is created; see https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications for more details. Caller is expected to have `pubsub.topics.setIamPolicy` permission on the topic when it's set for a budget, otherwise, the API call will fail with PERMISSION_DENIED. See https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#permissions_required_for_this_task for more details on Pub/Sub roles and permissions.",
"type": "string"
},
"schemaVersion": {
"description": "Optional. Required when AllUpdatesRule.pubsub_topic is set. The schema version of the notification sent to AllUpdatesRule.pubsub_topic. Only \"1.0\" is accepted. It represents the JSON schema as defined in https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format.",
"type": "string"
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1beta1Budget": {
"description": "A budget is a plan that describes what you expect to spend on Cloud projects, plus the rules to execute as spend is tracked against that plan, (for example, send an alert when 90% of the target spend is met). The budget time period is configurable, with options such as month (default), quarter, year, or custom time period.",
"id": "GoogleCloudBillingBudgetsV1beta1Budget",
"properties": {
"allUpdatesRule": {
"$ref": "GoogleCloudBillingBudgetsV1beta1AllUpdatesRule",
"description": "Optional. Rules to apply to notifications sent based on budget spend and thresholds."
},
"amount": {
"$ref": "GoogleCloudBillingBudgetsV1beta1BudgetAmount",
"description": "Required. Budgeted amount."
},
"budgetFilter": {
"$ref": "GoogleCloudBillingBudgetsV1beta1Filter",
"description": "Optional. Filters that define which resources are used to compute the actual spend against the budget amount, such as projects, services, and the budget's time period, as well as other filters."
},
"displayName": {
"description": "User data for display name in UI. Validation: <= 60 chars.",
"type": "string"
},
"etag": {
"description": "Optional. Etag to validate that the object is unchanged for a read-modify-write operation. An empty etag will cause an update to overwrite other changes.",
"type": "string"
},
"name": {
"description": "Output only. Resource name of the budget. The resource name implies the scope of a budget. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
"readOnly": true,
"type": "string"
},
"thresholdRules": {
"description": "Optional. Rules that trigger alerts (notifications of thresholds being crossed) when spend exceeds the specified percentages of the budget. Optional for `pubsubTopic` notifications. Required if using email notifications.",
"items": {
"$ref": "GoogleCloudBillingBudgetsV1beta1ThresholdRule"
},
"type": "array"
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1beta1BudgetAmount": {
"description": "The budgeted amount for each usage period.",
"id": "GoogleCloudBillingBudgetsV1beta1BudgetAmount",
"properties": {
"lastPeriodAmount": {
"$ref": "GoogleCloudBillingBudgetsV1beta1LastPeriodAmount",
"description": "Use the last period's actual spend as the budget for the present period. LastPeriodAmount can only be set when the budget's time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period."
},
"specifiedAmount": {
"$ref": "GoogleTypeMoney",
"description": "A specified amount to use as the budget. `currency_code` is optional. If specified when creating a budget, it must match the currency of the billing account. If specified when updating a budget, it must match the currency_code of the existing budget. The `currency_code` is provided on output."
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1beta1CreateBudgetRequest": {
"description": "Request for CreateBudget",
"id": "GoogleCloudBillingBudgetsV1beta1CreateBudgetRequest",
"properties": {
"budget": {
"$ref": "GoogleCloudBillingBudgetsV1beta1Budget",
"description": "Required. Budget to create."
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1beta1CustomPeriod": {
"description": "All date times begin at 12 AM US and Canadian Pacific Time (UTC-8).",
"id": "GoogleCloudBillingBudgetsV1beta1CustomPeriod",
"properties": {
"endDate": {
"$ref": "GoogleTypeDate",
"description": "Optional. The end date of the time period. Budgets with elapsed end date won't be processed. If unset, specifies to track all usage incurred since the start_date."
},
"startDate": {
"$ref": "GoogleTypeDate",
"description": "Required. The start date must be after January 1, 2017."
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1beta1Filter": {
"description": "A filter for a budget, limiting the scope of the cost to calculate.",
"id": "GoogleCloudBillingBudgetsV1beta1Filter",
"properties": {
"calendarPeriod": {
"description": "Optional. Specifies to track usage for recurring calendar period. For example, assume that CalendarPeriod.QUARTER is set. The budget will track usage from April 1 to June 30, when the current calendar month is April, May, June. After that, it will track usage from July 1 to September 30 when the current calendar month is July, August, September, so on.",
"enum": [
"CALENDAR_PERIOD_UNSPECIFIED",
"MONTH",
"QUARTER",
"YEAR"
],
"enumDescriptions": [
"Calendar period is unset. This is the default if the budget is for a custom time period (CustomPeriod).",
"A month. Month starts on the first day of each month, such as January 1, February 1, March 1, and so on.",
"A quarter. Quarters start on dates January 1, April 1, July 1, and October 1 of each year.",
"A year. Year starts on January 1."
],
"type": "string"
},
"creditTypes": {
"description": "Optional. If Filter.credit_types_treatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. See [a list of acceptable credit type values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type). If Filter.credit_types_treatment is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty.",
"items": {
"type": "string"
},
"type": "array"
},
"creditTypesTreatment": {
"description": "Optional. If not set, default behavior is `INCLUDE_ALL_CREDITS`.",
"enum": [
"CREDIT_TYPES_TREATMENT_UNSPECIFIED",
"INCLUDE_ALL_CREDITS",
"EXCLUDE_ALL_CREDITS",
"INCLUDE_SPECIFIED_CREDITS"
],
"enumDescriptions": [
"",
"All types of credit are subtracted from the gross cost to determine the spend for threshold calculations.",
"All types of credit are added to the net cost to determine the spend for threshold calculations.",
"[Credit types](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type) specified in the credit_types field are subtracted from the gross cost to determine the spend for threshold calculations."
],
"type": "string"
},
"customPeriod": {
"$ref": "GoogleCloudBillingBudgetsV1beta1CustomPeriod",
"description": "Optional. Specifies to track usage from any start date (required) to any end date (optional). This time period is static, it does not recur."
},
"labels": {
"additionalProperties": {
"items": {
"type": "any"
},
"type": "array"
},
"description": "Optional. A single label and value pair specifying that usage from only this set of labeled resources should be included in the budget. If omitted, the report will include all labeled and unlabeled usage. An object containing a single `\"key\": value` pair. Example: `{ \"name\": \"wrench\" }`. _Currently, multiple entries or multiple values per entry are not allowed._",
"type": "object"
},
"projects": {
"description": "Optional. A set of projects of the form `projects/{project}`, specifying that usage from only this set of projects should be included in the budget. If omitted, the report will include all usage for the billing account, regardless of which project the usage occurred on.",
"items": {
"type": "string"
},
"type": "array"
},
"resourceAncestors": {
"description": "Optional. A set of folder and organization names of the form `folders/{folderId}` or `organizations/{organizationId}`, specifying that usage from only this set of folders and organizations should be included in the budget. If omitted, the budget includes all usage that the billing account pays for. If the folder or organization contains projects that are paid for by a different Cloud Billing account, the budget *doesn't* apply to those projects.",
"items": {
"type": "string"
},
"type": "array"
},
"services": {
"description": "Optional. A set of services of the form `services/{service_id}`, specifying that usage from only this set of services should be included in the budget. If omitted, the report will include usage for all the services. The service names are available through the Catalog API: https://cloud.google.com/billing/v1/how-tos/catalog-api.",
"items": {
"type": "string"
},
"type": "array"
},
"subaccounts": {
"description": "Optional. A set of subaccounts of the form `billingAccounts/{account_id}`, specifying that usage from only this set of subaccounts should be included in the budget. If a subaccount is set to the name of the parent account, usage from the parent account will be included. If omitted, the report will include usage from the parent account and all subaccounts, if they exist.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1beta1LastPeriodAmount": {
"description": "Describes a budget amount targeted to the last Filter.calendar_period spend. At this time, the amount is automatically 100% of the last calendar period's spend; that is, there are no other options yet. Future configuration options will be described here (for example, configuring a percentage of last period's spend). LastPeriodAmount cannot be set for a budget configured with a Filter.custom_period.",
"id": "GoogleCloudBillingBudgetsV1beta1LastPeriodAmount",
"properties": {},
"type": "object"
},
"GoogleCloudBillingBudgetsV1beta1ListBudgetsResponse": {
"description": "Response for ListBudgets",
"id": "GoogleCloudBillingBudgetsV1beta1ListBudgetsResponse",
"properties": {
"budgets": {
"description": "List of the budgets owned by the requested billing account.",
"items": {
"$ref": "GoogleCloudBillingBudgetsV1beta1Budget"
},
"type": "array"
},
"nextPageToken": {
"description": "If not empty, indicates that there may be more budgets that match the request; this value should be passed in a new `ListBudgetsRequest`.",
"type": "string"
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1beta1ThresholdRule": {
"description": "ThresholdRule contains the definition of a threshold. Threshold rules define the triggering events used to generate a budget notification email. When a threshold is crossed (spend exceeds the specified percentages of the budget), budget alert emails are sent to the email recipients you specify in the [NotificationsRule](#notificationsrule). Threshold rules also affect the fields included in the [JSON data object](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format) sent to a Pub/Sub topic. Threshold rules are _required_ if using email notifications. Threshold rules are _optional_ if only setting a [`pubsubTopic` NotificationsRule](#NotificationsRule), unless you want your JSON data object to include data about the thresholds you set. For more information, see [set budget threshold rules and actions](https://cloud.google.com/billing/docs/how-to/budgets#budget-actions).",
"id": "GoogleCloudBillingBudgetsV1beta1ThresholdRule",
"properties": {
"spendBasis": {
"description": "Optional. The type of basis used to determine if spend has passed the threshold. Behavior defaults to CURRENT_SPEND if not set.",
"enum": [
"BASIS_UNSPECIFIED",
"CURRENT_SPEND",
"FORECASTED_SPEND"
],
"enumDescriptions": [
"Unspecified threshold basis.",
"Use current spend as the basis for comparison against the threshold.",
"Use forecasted spend for the period as the basis for comparison against the threshold. FORECASTED_SPEND can only be set when the budget's time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period."
],
"type": "string"
},
"thresholdPercent": {
"description": "Required. Send an alert when this threshold is exceeded. This is a 1.0-based percentage, so 0.5 = 50%. Validation: non-negative number.",
"format": "double",
"type": "number"
}
},
"type": "object"
},
"GoogleCloudBillingBudgetsV1beta1UpdateBudgetRequest": {
"description": "Request for UpdateBudget",
"id": "GoogleCloudBillingBudgetsV1beta1UpdateBudgetRequest",
"properties": {
"budget": {
"$ref": "GoogleCloudBillingBudgetsV1beta1Budget",
"description": "Required. The updated budget object. The budget to update is specified by the budget name in the budget."
},
"updateMask": {
"description": "Optional. Indicates which fields in the provided budget to update. Read-only fields (such as `name`) cannot be changed. If this is not provided, then only fields with non-default values from the request are updated. See https://developers.google.com/protocol-buffers/docs/proto3#default for more details about default values.",
"format": "google-fieldmask",
"type": "string"
}
},
"type": "object"
},
"GoogleProtobufEmpty": {
"description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
"id": "GoogleProtobufEmpty",
"properties": {},
"type": "object"
},
"GoogleTypeDate": {
"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp",
"id": "GoogleTypeDate",
"properties": {
"day": {
"description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.",
"format": "int32",
"type": "integer"
},
"month": {
"description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.",
"format": "int32",
"type": "integer"
},
"year": {
"description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"GoogleTypeMoney": {
"description": "Represents an amount of money with its currency type.",
"id": "GoogleTypeMoney",
"properties": {
"currencyCode": {
"description": "The three-letter currency code defined in ISO 4217.",
"type": "string"
},
"nanos": {
"description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.",
"format": "int32",
"type": "integer"
},
"units": {
"description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.",
"format": "int64",
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Cloud Billing Budget API",
"version": "v1beta1",
"version_module": true
}

View File

@@ -0,0 +1,949 @@
{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/cloud-platform": {
"description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
}
}
}
},
"basePath": "",
"baseUrl": "https://blockchainnodeengine.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Blockchain Node Engine",
"description": "",
"discoveryVersion": "v1",
"documentationLink": "https://cloud.google.com/blockchain-node-engine",
"fullyEncodeReservedExpansion": true,
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"id": "blockchainnodeengine:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://blockchainnodeengine.mtls.googleapis.com/",
"name": "blockchainnodeengine",
"ownerDomain": "google.com",
"ownerName": "Google",
"parameters": {
"$.xgafv": {
"description": "V1 error format.",
"enum": [
"1",
"2"
],
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"location": "query",
"type": "string"
},
"alt": {
"default": "json",
"description": "Data format for response.",
"enum": [
"json",
"media",
"proto"
],
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"type": "string"
},
"callback": {
"description": "JSONP",
"location": "query",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"location": "query",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"location": "query",
"type": "boolean"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"location": "query",
"type": "string"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"location": "query",
"type": "string"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"location": "query",
"type": "string"
}
},
"protocol": "rest",
"resources": {
"projects": {
"resources": {
"locations": {
"methods": {
"get": {
"description": "Gets information about a location.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}",
"httpMethod": "GET",
"id": "blockchainnodeengine.projects.locations.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Resource name for the location.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Location"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"list": {
"description": "Lists information about the supported locations for this service.",
"flatPath": "v1/projects/{projectsId}/locations",
"httpMethod": "GET",
"id": "blockchainnodeengine.projects.locations.list",
"parameterOrder": [
"name"
],
"parameters": {
"filter": {
"description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).",
"location": "query",
"type": "string"
},
"name": {
"description": "The resource that owns the locations collection, if applicable.",
"location": "path",
"pattern": "^projects/[^/]+$",
"required": true,
"type": "string"
},
"pageSize": {
"description": "The maximum number of results to return. If not set, the service selects a default.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.",
"location": "query",
"type": "string"
}
},
"path": "v1/{+name}/locations",
"response": {
"$ref": "ListLocationsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
},
"resources": {
"blockchainNodes": {
"methods": {
"create": {
"description": "Creates a new blockchain node in a given project and location.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/blockchainNodes",
"httpMethod": "POST",
"id": "blockchainnodeengine.projects.locations.blockchainNodes.create",
"parameterOrder": [
"parent"
],
"parameters": {
"blockchainNodeId": {
"description": "Required. ID of the requesting object.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. Value for parent.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
},
"requestId": {
"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
"location": "query",
"type": "string"
}
},
"path": "v1/{+parent}/blockchainNodes",
"request": {
"$ref": "BlockchainNode"
},
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"delete": {
"description": "Deletes a single blockchain node.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/blockchainNodes/{blockchainNodesId}",
"httpMethod": "DELETE",
"id": "blockchainnodeengine.projects.locations.blockchainNodes.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The fully qualified name of the blockchain node to delete. e.g. `projects/my-project/locations/us-central1/blockchainNodes/my-node`.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/blockchainNodes/[^/]+$",
"required": true,
"type": "string"
},
"requestId": {
"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
"location": "query",
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"get": {
"description": "Gets details of a single blockchain node.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/blockchainNodes/{blockchainNodesId}",
"httpMethod": "GET",
"id": "blockchainnodeengine.projects.locations.blockchainNodes.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. The fully qualified name of the blockchain node to fetch. e.g. `projects/my-project/locations/us-central1/blockchainNodes/my-node`.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/blockchainNodes/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "BlockchainNode"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"list": {
"description": "Lists blockchain nodes in a given project and location.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/blockchainNodes",
"httpMethod": "GET",
"id": "blockchainnodeengine.projects.locations.blockchainNodes.list",
"parameterOrder": [
"parent"
],
"parameters": {
"filter": {
"description": "Filtering results.",
"location": "query",
"type": "string"
},
"orderBy": {
"description": "Hint for how to order the results.",
"location": "query",
"type": "string"
},
"pageSize": {
"description": "Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "A token identifying a page of results the server should return.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. Parent value for `ListNodesRequest`.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+parent}/blockchainNodes",
"response": {
"$ref": "ListBlockchainNodesResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"patch": {
"description": "Updates the parameters of a single blockchain node.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/blockchainNodes/{blockchainNodesId}",
"httpMethod": "PATCH",
"id": "blockchainnodeengine.projects.locations.blockchainNodes.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Output only. The fully qualified name of the blockchain node. e.g. `projects/my-project/locations/us-central1/blockchainNodes/my-node`.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/blockchainNodes/[^/]+$",
"required": true,
"type": "string"
},
"requestId": {
"description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
"location": "query",
"type": "string"
},
"updateMask": {
"description": "Required. Field mask is used to specify the fields to be overwritten in the Blockchain node resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
}
},
"path": "v1/{+name}",
"request": {
"$ref": "BlockchainNode"
},
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
},
"operations": {
"methods": {
"cancel": {
"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
"httpMethod": "POST",
"id": "blockchainnodeengine.projects.locations.operations.cancel",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the operation resource to be cancelled.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}:cancel",
"request": {
"$ref": "CancelOperationRequest"
},
"response": {
"$ref": "GoogleProtobufEmpty"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"delete": {
"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
"httpMethod": "DELETE",
"id": "blockchainnodeengine.projects.locations.operations.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the operation resource to be deleted.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "GoogleProtobufEmpty"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"get": {
"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
"httpMethod": "GET",
"id": "blockchainnodeengine.projects.locations.operations.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the operation resource.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
},
"list": {
"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations",
"httpMethod": "GET",
"id": "blockchainnodeengine.projects.locations.operations.list",
"parameterOrder": [
"name"
],
"parameters": {
"filter": {
"description": "The standard list filter.",
"location": "query",
"type": "string"
},
"name": {
"description": "The name of the operation's parent resource.",
"location": "path",
"pattern": "^projects/[^/]+/locations/[^/]+$",
"required": true,
"type": "string"
},
"pageSize": {
"description": "The standard list page size.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "The standard list page token.",
"location": "query",
"type": "string"
}
},
"path": "v1/{+name}/operations",
"response": {
"$ref": "ListOperationsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
}
}
}
}
}
}
},
"revision": "20230712",
"rootUrl": "https://blockchainnodeengine.googleapis.com/",
"schemas": {
"BlockchainNode": {
"description": "A representation of a blockchain node.",
"id": "BlockchainNode",
"properties": {
"blockchainType": {
"description": "Immutable. The blockchain type of the node.",
"enum": [
"BLOCKCHAIN_TYPE_UNSPECIFIED",
"ETHEREUM"
],
"enumDescriptions": [
"Blockchain type has not been specified, but should be.",
"The blockchain type is Ethereum."
],
"type": "string"
},
"connectionInfo": {
"$ref": "ConnectionInfo",
"description": "Output only. The connection information used to interact with a blockchain node.",
"readOnly": true
},
"createTime": {
"description": "Output only. The timestamp at which the blockchain node was first created.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"ethereumDetails": {
"$ref": "EthereumDetails",
"description": "Ethereum-specific blockchain node details."
},
"labels": {
"additionalProperties": {
"type": "string"
},
"description": "User-provided key-value pairs.",
"type": "object"
},
"name": {
"description": "Output only. The fully qualified name of the blockchain node. e.g. `projects/my-project/locations/us-central1/blockchainNodes/my-node`.",
"readOnly": true,
"type": "string"
},
"state": {
"description": "Output only. A status representing the state of the node.",
"enum": [
"STATE_UNSPECIFIED",
"CREATING",
"DELETING",
"RUNNING",
"ERROR",
"UPDATING",
"REPAIRING",
"RECONCILING"
],
"enumDescriptions": [
"The state has not been specified.",
"The node has been requested and is in the process of being created.",
"The existing node is undergoing deletion, but is not yet finished.",
"The node is running and ready for use.",
"The node is in an unexpected or errored state.",
"The node is currently being updated.",
"The node is currently being repaired.",
"The node is currently being reconciled."
],
"readOnly": true,
"type": "string"
},
"updateTime": {
"description": "Output only. The timestamp at which the blockchain node was last updated.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"CancelOperationRequest": {
"description": "The request message for Operations.CancelOperation.",
"id": "CancelOperationRequest",
"properties": {},
"type": "object"
},
"ConnectionInfo": {
"description": "The connection information through which to interact with a blockchain node.",
"id": "ConnectionInfo",
"properties": {
"endpointInfo": {
"$ref": "EndpointInfo",
"description": "Output only. The endpoint information through which to interact with a blockchain node.",
"readOnly": true
}
},
"type": "object"
},
"EndpointInfo": {
"description": "Contains endpoint information through which to interact with a blockchain node.",
"id": "EndpointInfo",
"properties": {
"jsonRpcApiEndpoint": {
"description": "Output only. The assigned URL for the node JSON-RPC API endpoint.",
"readOnly": true,
"type": "string"
},
"websocketsApiEndpoint": {
"description": "Output only. The assigned URL for the node WebSockets API endpoint.",
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"EthereumDetails": {
"description": "Ethereum-specific blockchain node details.",
"id": "EthereumDetails",
"properties": {
"additionalEndpoints": {
"$ref": "EthereumEndpoints",
"description": "Output only. Ethereum-specific endpoint information.",
"readOnly": true
},
"apiEnableAdmin": {
"description": "Immutable. Enables JSON-RPC access to functions in the `admin` namespace. Defaults to `false`.",
"type": "boolean"
},
"apiEnableDebug": {
"description": "Immutable. Enables JSON-RPC access to functions in the `debug` namespace. Defaults to `false`.",
"type": "boolean"
},
"consensusClient": {
"description": "Immutable. The consensus client.",
"enum": [
"CONSENSUS_CLIENT_UNSPECIFIED",
"LIGHTHOUSE",
"ERIGON_EMBEDDED_CONSENSUS_LAYER"
],
"enumDeprecated": [
false,
false,
true
],
"enumDescriptions": [
"Consensus client has not been specified, but should be.",
"Consensus client implementation written in Rust, maintained by Sigma Prime. See [Lighthouse - Sigma Prime](https://lighthouse.sigmaprime.io/) for details.",
"Erigon's embedded consensus client embedded in the execution client. Note this option is not currently available when creating new blockchain nodes. See [Erigon on GitHub](https://github.com/ledgerwatch/erigon#embedded-consensus-layer) for details."
],
"type": "string"
},
"executionClient": {
"description": "Immutable. The execution client",
"enum": [
"EXECUTION_CLIENT_UNSPECIFIED",
"GETH",
"ERIGON"
],
"enumDescriptions": [
"Execution client has not been specified, but should be.",
"Official Go implementation of the Ethereum protocol. See [go-ethereum](https://geth.ethereum.org/) for details.",
"An implementation of Ethereum (execution client), on the efficiency frontier, written in Go. See [Erigon on GitHub](https://github.com/ledgerwatch/erigon) for details."
],
"type": "string"
},
"gethDetails": {
"$ref": "GethDetails",
"description": "Details for the Geth execution client."
},
"network": {
"description": "Immutable. The Ethereum environment being accessed.",
"enum": [
"NETWORK_UNSPECIFIED",
"MAINNET",
"TESTNET_GOERLI_PRATER",
"TESTNET_SEPOLIA"
],
"enumDescriptions": [
"The network has not been specified, but should be.",
"The Ethereum Mainnet.",
"The Ethereum Testnet based on Goerli protocol.",
"The Ethereum Testnet based on Sepolia/Bepolia protocol."
],
"type": "string"
},
"nodeType": {
"description": "Immutable. The type of Ethereum node.",
"enum": [
"NODE_TYPE_UNSPECIFIED",
"LIGHT",
"FULL",
"ARCHIVE"
],
"enumDescriptions": [
"Node type has not been specified, but should be.",
"An Ethereum node that only downloads Ethereum block headers.",
"Keeps a complete copy of the blockchain data, and contributes to the network by receiving, validating, and forwarding transactions.",
"Holds the same data as full node as well as all of the blockchain's history state data dating back to the Genesis Block."
],
"type": "string"
}
},
"type": "object"
},
"EthereumEndpoints": {
"description": "Contains endpoint information specific to Ethereum nodes.",
"id": "EthereumEndpoints",
"properties": {
"beaconApiEndpoint": {
"description": "Output only. The assigned URL for the node's Beacon API endpoint.",
"readOnly": true,
"type": "string"
},
"beaconPrometheusMetricsApiEndpoint": {
"description": "Output only. The assigned URL for the node's Beacon Prometheus metrics endpoint. See [Prometheus Metrics](https://lighthouse-book.sigmaprime.io/advanced_metrics.html) for more details.",
"readOnly": true,
"type": "string"
},
"executionClientPrometheusMetricsApiEndpoint": {
"description": "Output only. The assigned URL for the node's execution client's Prometheus metrics endpoint.",
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"GethDetails": {
"description": "Options for the Geth execution client. See [Command-line Options](https://geth.ethereum.org/docs/fundamentals/command-line-options) for more details.",
"id": "GethDetails",
"properties": {
"garbageCollectionMode": {
"description": "Immutable. Blockchain garbage collection mode.",
"enum": [
"GARBAGE_COLLECTION_MODE_UNSPECIFIED",
"FULL",
"ARCHIVE"
],
"enumDescriptions": [
"The garbage collection has not been specified.",
"Configures Geth's garbage collection so that older data not needed for a full node is deleted. This is the default mode when creating a full node.",
"Configures Geth's garbage collection so that old data is never deleted. This is the default mode when creating an archive node. This value can also be chosen when creating a full node in order to create a partial/recent archive node. See [Sync modes](https://geth.ethereum.org/docs/fundamentals/sync-modes) for more details."
],
"type": "string"
}
},
"type": "object"
},
"GoogleProtobufEmpty": {
"description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
"id": "GoogleProtobufEmpty",
"properties": {},
"type": "object"
},
"ListBlockchainNodesResponse": {
"description": "Message for response to listing blockchain nodes.",
"id": "ListBlockchainNodesResponse",
"properties": {
"blockchainNodes": {
"description": "The list of nodes",
"items": {
"$ref": "BlockchainNode"
},
"type": "array"
},
"nextPageToken": {
"description": "A token identifying a page of results the server should return.",
"type": "string"
},
"unreachable": {
"description": "Locations that could not be reached.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"ListLocationsResponse": {
"description": "The response message for Locations.ListLocations.",
"id": "ListLocationsResponse",
"properties": {
"locations": {
"description": "A list of locations that matches the specified filter in the request.",
"items": {
"$ref": "Location"
},
"type": "array"
},
"nextPageToken": {
"description": "The standard List next-page token.",
"type": "string"
}
},
"type": "object"
},
"ListOperationsResponse": {
"description": "The response message for Operations.ListOperations.",
"id": "ListOperationsResponse",
"properties": {
"nextPageToken": {
"description": "The standard List next-page token.",
"type": "string"
},
"operations": {
"description": "A list of operations that matches the specified filter in the request.",
"items": {
"$ref": "Operation"
},
"type": "array"
}
},
"type": "object"
},
"Location": {
"description": "A resource that represents a Google Cloud location.",
"id": "Location",
"properties": {
"displayName": {
"description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".",
"type": "string"
},
"labels": {
"additionalProperties": {
"type": "string"
},
"description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}",
"type": "object"
},
"locationId": {
"description": "The canonical id for this location. For example: `\"us-east1\"`.",
"type": "string"
},
"metadata": {
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
},
"description": "Service-specific metadata. For example the available capacity at the given location.",
"type": "object"
},
"name": {
"description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`",
"type": "string"
}
},
"type": "object"
},
"Operation": {
"description": "This resource represents a long-running operation that is the result of a network API call.",
"id": "Operation",
"properties": {
"done": {
"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.",
"type": "boolean"
},
"error": {
"$ref": "Status",
"description": "The error result of the operation in case of failure or cancellation."
},
"metadata": {
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
},
"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.",
"type": "object"
},
"name": {
"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.",
"type": "string"
},
"response": {
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
},
"description": "The normal 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"
},
"OperationMetadata": {
"description": "Represents the metadata of the long-running operation.",
"id": "OperationMetadata",
"properties": {
"apiVersion": {
"description": "Output only. API version used to start the operation.",
"readOnly": true,
"type": "string"
},
"createTime": {
"description": "Output only. The time the operation was created.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"endTime": {
"description": "Output only. The time the operation finished running.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"requestedCancellation": {
"description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have `Operation.error` value with a `google.rpc.Status.code` of `1`, corresponding to `Code.CANCELLED`.",
"readOnly": true,
"type": "boolean"
},
"statusMessage": {
"description": "Output only. Human-readable status of the operation, if any.",
"readOnly": true,
"type": "string"
},
"target": {
"description": "Output only. Server-defined resource path for the target of the operation.",
"readOnly": true,
"type": "string"
},
"verb": {
"description": "Output only. Name of the verb executed by the operation.",
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"Status": {
"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
"id": "Status",
"properties": {
"code": {
"description": "The status code, which should be an enum value of google.rpc.Code.",
"format": "int32",
"type": "integer"
},
"details": {
"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
"items": {
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
},
"type": "object"
},
"type": "array"
},
"message": {
"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Blockchain Node Engine API",
"version": "v1",
"version_module": true
}

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