googleapis
Version:
Google APIs Client Library for Node.js
1,243 lines • 132 kB
TypeScript
/**
* 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.
*/
import { AxiosPromise } from 'axios';
import { GoogleApis } from '../..';
import { BodyResponseCallback, GlobalOptions, MethodOptions } from '../../lib/api';
/**
* Google Service Management API
*
* Google Service Management allows service producers to publish their services
* on Google Cloud Platform so that they can be discovered and used by service
* consumers.
*
* @example
* const google = require('googleapis');
* const servicemanagement = google.servicemanagement('v1');
*
* @namespace servicemanagement
* @type {Function}
* @version v1
* @variation v1
* @param {object=} options Options for Servicemanagement
*/
export declare class Servicemanagement {
_options: GlobalOptions;
google: GoogleApis;
root: this;
operations: Resource$Operations;
services: Resource$Services;
constructor(options: GlobalOptions, google: GoogleApis);
getRoot(): this;
}
/**
* Generated advice about this change, used for providing more information about
* how a change will affect the existing service.
*/
export interface Schema$Advice {
/**
* Useful description for why this advice was applied and what actions should
* be taken to mitigate any implied risks.
*/
description: string;
}
/**
* Api is a light-weight descriptor for an API Interface. Interfaces are also
* described as "protocol buffer services" in some contexts, such as
* by the "service" keyword in a .proto file, but they are different
* from API Services, which represent a concrete implementation of an interface
* as opposed to simply a description of methods and bindings. They are also
* sometimes simply referred to as "APIs" in other contexts, such as
* the name of this message itself. See
* https://cloud.google.com/apis/design/glossary for detailed terminology.
*/
export interface Schema$Api {
/**
* The methods of this interface, in unspecified order.
*/
methods: Schema$Method[];
/**
* Included interfaces. See Mixin.
*/
mixins: Schema$Mixin[];
/**
* The fully qualified name of this interface, including package name followed
* by the interface's simple name.
*/
name: string;
/**
* Any metadata attached to the interface.
*/
options: Schema$Option[];
/**
* Source context for the protocol buffer service represented by this message.
*/
sourceContext: Schema$SourceContext;
/**
* The source syntax of the service.
*/
syntax: string;
/**
* A version string for this interface. If specified, must have the form
* `major-version.minor-version`, as in `1.10`. If the minor version is
* omitted, it defaults to zero. If the entire version field is empty, the
* major version is derived from the package name, as outlined below. If the
* field is not empty, the version in the package name will be verified to be
* consistent with what is provided here. The versioning schema uses
* [semantic versioning](http://semver.org) where the major version number
* indicates a breaking change and the minor version an additive, non-breaking
* change. Both version numbers are signals to users what to expect from
* different versions, and should be carefully chosen based on the product
* plan. The major version is also reflected in the package name of the
* interface, which must end in `v<major-version>`, as in
* `google.feature.v1`. For major versions 0 and 1, the suffix can be omitted.
* Zero major versions must only be used for experimental, non-GA interfaces.
*/
version: string;
}
/**
* 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:foo@gmail.com" ] }, {
* "log_type": "DATA_WRITE", }, {
* "log_type": "ADMIN_READ", } ] }, {
* "service": "fooservice.googleapis.com"
* "audit_log_configs": [ { "log_type":
* "DATA_READ", }, { "log_type":
* "DATA_WRITE", "exempted_members": [
* "user:bar@gmail.com" ] } ] } ]
* } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
* logging. It also exempts foo@gmail.com from DATA_READ logging, and
* bar@gmail.com from DATA_WRITE logging.
*/
export interface Schema$AuditConfig {
/**
* The configuration for logging of each type of permission.
*/
auditLogConfigs: Schema$AuditLogConfig[];
/**
* 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.
*/
service: string;
}
/**
* Provides the configuration for logging a type of permissions. Example: {
* "audit_log_configs": [ { "log_type":
* "DATA_READ", "exempted_members": [
* "user:foo@gmail.com" ] }, {
* "log_type": "DATA_WRITE", } ] } This
* enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
* foo@gmail.com from DATA_READ logging.
*/
export interface Schema$AuditLogConfig {
/**
* Specifies the identities that do not cause logging for this type of
* permission. Follows the same format of Binding.members.
*/
exemptedMembers: string[];
/**
* The log type that this config enables.
*/
logType: string;
}
/**
* `Authentication` defines the authentication configuration for an API. Example
* for an API targeted for external use: name: calendar.googleapis.com
* authentication: providers: - id: google_calendar_auth jwks_uri:
* https://www.googleapis.com/oauth2/v1/certs issuer:
* https://securetoken.google.com rules: - selector: "*"
* requirements: provider_id: google_calendar_auth
*/
export interface Schema$Authentication {
/**
* Defines a set of authentication providers that a service supports.
*/
providers: Schema$AuthProvider[];
/**
* A list of authentication rules that apply to individual API methods.
* **NOTE:** All service configuration rules follow "last one wins"
* order.
*/
rules: Schema$AuthenticationRule[];
}
/**
* Authentication rules for the service. By default, if a method has any
* authentication requirements, every request must include a valid credential
* matching one of the requirements. It's an error to include more than one
* kind of credential in a single request. If a method doesn't have any
* auth requirements, request credentials will be ignored.
*/
export interface Schema$AuthenticationRule {
/**
* If true, the service accepts API keys without any other credential.
*/
allowWithoutCredential: boolean;
/**
* Configuration for custom authentication.
*/
customAuth: Schema$CustomAuthRequirements;
/**
* The requirements for OAuth credentials.
*/
oauth: Schema$OAuthRequirements;
/**
* Requirements for additional authentication providers.
*/
requirements: Schema$AuthRequirement[];
/**
* Selects the methods to which this rule applies. Refer to selector for
* syntax details.
*/
selector: string;
}
/**
* Configuration of authorization. This section determines the authorization
* provider, if unspecified, then no authorization check will be done. Example:
* experimental: authorization: provider:
* firebaserules.googleapis.com
*/
export interface Schema$AuthorizationConfig {
/**
* The name of the authorization provider, such as
* firebaserules.googleapis.com.
*/
provider: string;
}
/**
* Configuration for an anthentication provider, including support for [JSON Web
* Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
*/
export interface Schema$AuthProvider {
/**
* The list of JWT
* [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
* that are allowed to access. A JWT containing any of these audiences will be
* accepted. When this setting is absent, only JWTs with audience
* "https://Service_name/API_name" will be accepted. For example, if
* no audiences are in the setting, LibraryService API will only accept JWTs
* with the following audience
* "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
* Example: audiences: bookstore_android.apps.googleusercontent.com,
* bookstore_web.apps.googleusercontent.com
*/
audiences: string;
/**
* Redirect URL if JWT token is required but no present or is expired.
* Implement authorizationUrl of securityDefinitions in OpenAPI spec.
*/
authorizationUrl: string;
/**
* The unique identifier of the auth provider. It will be referred to by
* `AuthRequirement.provider_id`. Example: "bookstore_auth".
*/
id: string;
/**
* Identifies the principal that issued the JWT. See
* https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1
* Usually a URL or an email address. Example: https://securetoken.google.com
* Example: 1234567-compute@developer.gserviceaccount.com
*/
issuer: string;
/**
* URL of the provider's public key set to validate signature of the JWT.
* See [OpenID
* Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
* Optional if the key set document: - can be retrieved from [OpenID
* Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html of
* the issuer. - can be inferred from the email domain of the issuer (e.g. a
* Google service account). Example:
* https://www.googleapis.com/oauth2/v1/certs
*/
jwksUri: string;
}
/**
* User-defined authentication requirements, including support for [JSON Web
* Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
*/
export interface Schema$AuthRequirement {
/**
* NOTE: This will be deprecated soon, once AuthProvider.audiences is
* implemented and accepted in all the runtime components. The list of JWT
* [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
* that are allowed to access. A JWT containing any of these audiences will be
* accepted. When this setting is absent, only JWTs with audience
* "https://Service_name/API_name" will be accepted. For example, if
* no audiences are in the setting, LibraryService API will only accept JWTs
* with the following audience
* "https://library-example.googleapis.com/google.example.library.v1.LibraryService".
* Example: audiences: bookstore_android.apps.googleusercontent.com,
* bookstore_web.apps.googleusercontent.com
*/
audiences: string;
/**
* id from authentication provider. Example: provider_id: bookstore_auth
*/
providerId: string;
}
/**
* `Backend` defines the backend configuration for a service.
*/
export interface Schema$Backend {
/**
* A list of API backend rules that apply to individual API methods. **NOTE:**
* All service configuration rules follow "last one wins" order.
*/
rules: Schema$BackendRule[];
}
/**
* A backend rule provides configuration for an individual API element.
*/
export interface Schema$BackendRule {
/**
* The address of the API backend.
*/
address: string;
/**
* The number of seconds to wait for a response from a request. The default
* deadline for gRPC is infinite (no deadline) and HTTP requests is 5 seconds.
*/
deadline: number;
/**
* Minimum deadline in seconds needed for this method. Calls having deadline
* value lower than this will be rejected.
*/
minDeadline: number;
/**
* Selects the methods to which this rule applies. Refer to selector for
* syntax details.
*/
selector: string;
}
/**
* Billing related configuration of the service. The following example shows
* how to configure monitored resources and metrics for billing:
* monitored_resources: - type: library.googleapis.com/branch labels:
* - key: /city description: The city where the library branch is
* located in. - key: /name description: The name of the branch.
* metrics: - name: library.googleapis.com/book/borrowed_count metric_kind:
* DELTA value_type: INT64 billing: consumer_destinations: -
* monitored_resource: library.googleapis.com/branch metrics: -
* library.googleapis.com/book/borrowed_count
*/
export interface Schema$Billing {
/**
* Billing configurations for sending metrics to the consumer project. There
* can be multiple consumer destinations per service, each one must have a
* different monitored resource type. A metric can be used in at most one
* consumer destination.
*/
consumerDestinations: Schema$BillingDestination[];
}
/**
* Configuration of a specific billing destination (Currently only support bill
* against consumer project).
*/
export interface Schema$BillingDestination {
/**
* Names of the metrics to report to this billing destination. Each name must
* be defined in Service.metrics section.
*/
metrics: string[];
/**
* The monitored resource type. The type must be defined in
* Service.monitored_resources section.
*/
monitoredResource: string;
}
/**
* Associates `members` with a `role`.
*/
export interface Schema$Binding {
/**
* Specifies the identities requesting access for a Cloud Platform resource.
* `members` can have the following values: * `allUsers`: A special
* identifier that represents anyone who is on the internet; with or
* without a Google account. * `allAuthenticatedUsers`: A special identifier
* that represents anyone who is authenticated with a Google account or a
* service account. * `user:{emailid}`: An email address that represents a
* specific Google account. For example, `alice@gmail.com` or
* `joe@example.com`. * `serviceAccount:{emailid}`: An email address that
* represents a service account. For example,
* `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email
* address that represents a Google group. For example,
* `admins@example.com`. * `domain:{domain}`: A Google Apps domain name that
* represents all the users of that domain. For example, `google.com` or
* `example.com`.
*/
members: string[];
/**
* Role that is assigned to `members`. For example, `roles/viewer`,
* `roles/editor`, or `roles/owner`. Required
*/
role: string;
}
/**
* Change report associated with a particular service configuration. It
* contains a list of ConfigChanges based on the comparison between two service
* configurations.
*/
export interface Schema$ChangeReport {
/**
* List of changes between two service configurations. The changes will be
* alphabetically sorted based on the identifier of each change. A
* ConfigChange identifier is a dot separated path to the configuration.
* Example:
* visibility.rules[selector='LibraryService.CreateBook'].restriction
*/
configChanges: Schema$ConfigChange[];
}
/**
* Output generated from semantically comparing two versions of a service
* configuration. Includes detailed information about a field that have changed
* with applicable advice about potential consequences for the change, such as
* backwards-incompatibility.
*/
export interface Schema$ConfigChange {
/**
* Collection of advice provided for this change, useful for determining the
* possible impact of this change.
*/
advices: Schema$Advice[];
/**
* The type for this change, either ADDED, REMOVED, or MODIFIED.
*/
changeType: string;
/**
* Object hierarchy path to the change, with levels separated by a '.'
* character. For repeated fields, an applicable unique identifier field is
* used for the index (usually selector, name, or id). For maps, the term
* 'key' is used. If the field has no unique identifier, the numeric
* index is used. Examples: -
* visibility.rules[selector=="google.LibraryService.CreateBook"].restriction
* -
* quota.metric_rules[selector=="google"].metric_costs[key=="reads"].value
* - logging.producer_destinations[0]
*/
element: string;
/**
* Value of the changed object in the new Service configuration, in JSON
* format. This field will not be populated if ChangeType == REMOVED.
*/
newValue: string;
/**
* Value of the changed object in the old Service configuration, in JSON
* format. This field will not be populated if ChangeType == ADDED.
*/
oldValue: string;
}
/**
* Generic specification of a source configuration file
*/
export interface Schema$ConfigFile {
/**
* The bytes that constitute the file.
*/
fileContents: string;
/**
* The file name of the configuration file (full or relative path).
*/
filePath: string;
/**
* The type of configuration file this represents.
*/
fileType: string;
}
/**
* Represents a service configuration with its name and id.
*/
export interface Schema$ConfigRef {
/**
* Resource name of a service config. It must have the following format:
* "services/{service name}/configs/{config id}".
*/
name: string;
}
/**
* Represents a source file which is used to generate the service configuration
* defined by `google.api.Service`.
*/
export interface Schema$ConfigSource {
/**
* Set of source configuration files that are used to generate a service
* configuration (`google.api.Service`).
*/
files: Schema$ConfigFile[];
/**
* A unique ID for a specific instance of this message, typically assigned by
* the client for tracking purpose. If empty, the server may choose to
* generate one instead.
*/
id: string;
}
/**
* `Context` defines which contexts an API requests. Example: context:
* rules: - selector: "*" requested: -
* google.rpc.context.ProjectContext - google.rpc.context.OriginContext
* The above specifies that all methods in the API request
* `google.rpc.context.ProjectContext` and `google.rpc.context.OriginContext`.
* Available context types are defined in package `google.rpc.context`. This
* also provides mechanism to whitelist any protobuf message extension that can
* be sent in grpc metadata using “x-goog-ext-<extension_id>-bin” and
* “x-goog-ext-<extension_id>-jspb” format. For example, list any service
* specific protobuf types that can appear in grpc metadata as follows in your
* yaml file: Example: context: rules: - selector:
* "google.example.library.v1.LibraryService.CreateBook"
* allowed_request_extensions: - google.foo.v1.NewExtension
* allowed_response_extensions: - google.foo.v1.NewExtension You can
* also specify extension ID instead of fully qualified extension name here.
*/
export interface Schema$Context {
/**
* A list of RPC context rules that apply to individual API methods. **NOTE:**
* All service configuration rules follow "last one wins" order.
*/
rules: Schema$ContextRule[];
}
/**
* A context rule provides information about the context for an individual API
* element.
*/
export interface Schema$ContextRule {
/**
* A list of full type names or extension IDs of extensions allowed in grpc
* side channel from client to backend.
*/
allowedRequestExtensions: string[];
/**
* A list of full type names or extension IDs of extensions allowed in grpc
* side channel from backend to client.
*/
allowedResponseExtensions: string[];
/**
* A list of full type names of provided contexts.
*/
provided: string[];
/**
* A list of full type names of requested contexts.
*/
requested: string[];
/**
* Selects the methods to which this rule applies. Refer to selector for
* syntax details.
*/
selector: string;
}
/**
* Selects and configures the service controller used by the service. The
* service controller handles features like abuse, quota, billing, logging,
* monitoring, etc.
*/
export interface Schema$Control {
/**
* The service control environment to use. If empty, no control plane feature
* (like quota and billing) will be enabled.
*/
environment: string;
}
/**
* Configuration for a custom authentication provider.
*/
export interface Schema$CustomAuthRequirements {
/**
* A configuration string containing connection information for the
* authentication provider, typically formatted as a SmartService string
* (go/smartservice).
*/
provider: string;
}
/**
* Customize service error responses. For example, list any service specific
* protobuf types that can appear in error detail lists of error responses.
* Example: custom_error: types: - google.foo.v1.CustomError -
* google.foo.v1.AnotherError
*/
export interface Schema$CustomError {
/**
* The list of custom error rules that apply to individual API messages.
* **NOTE:** All service configuration rules follow "last one wins"
* order.
*/
rules: Schema$CustomErrorRule[];
/**
* The list of custom error detail types, e.g.
* 'google.foo.v1.CustomError'.
*/
types: string[];
}
/**
* A custom error rule.
*/
export interface Schema$CustomErrorRule {
/**
* Mark this message as possible payload in error response. Otherwise,
* objects of this type will be filtered when they appear in error payload.
*/
isErrorType: boolean;
/**
* Selects messages to which this rule applies. Refer to selector for syntax
* details.
*/
selector: string;
}
/**
* A custom pattern is used for defining custom HTTP verb.
*/
export interface Schema$CustomHttpPattern {
/**
* The name of this custom HTTP verb.
*/
kind: string;
/**
* The path matched by this custom verb.
*/
path: string;
}
/**
* Strategy used to delete a service. This strategy is a placeholder only used
* by the system generated rollout to delete a service.
*/
export interface Schema$DeleteServiceStrategy {
}
/**
* Represents a diagnostic message (error or warning)
*/
export interface Schema$Diagnostic {
/**
* The kind of diagnostic information provided.
*/
kind: string;
/**
* File name and line number of the error or warning.
*/
location: string;
/**
* Message describing the error or warning.
*/
message: string;
}
/**
* Request message for DisableService method.
*/
export interface Schema$DisableServiceRequest {
/**
* The identity of consumer resource which service disablement will be applied
* to. The Google Service Management implementation accepts the following
* forms: - "project:<project_id>" Note: this is made
* compatible with google.api.servicecontrol.v1.Operation.consumer_id.
*/
consumerId: string;
}
/**
* `Documentation` provides the information for describing a service. Example:
* <pre><code>documentation: summary: > The Google Calendar
* API gives access to most calendar features. pages: - name: Overview
* content: &#40;== include google/foo/overview.md ==&#41; - name:
* Tutorial content: &#40;== include google/foo/tutorial.md ==&#41;
* subpages; - name: Java content: &#40;== include
* google/foo/tutorial_java.md ==&#41; rules: - selector:
* google.calendar.Calendar.Get description: > ... - selector:
* google.calendar.Calendar.Put description: > ...
* </code></pre> Documentation is provided in markdown syntax. In
* addition to standard markdown features, definition lists, tables and fenced
* code blocks are supported. Section headers can be provided and are
* interpreted relative to the section nesting of the context where a
* documentation fragment is embedded. Documentation from the IDL is merged
* with documentation defined via the config at normalization time, where
* documentation provided by config rules overrides IDL provided. A number of
* constructs specific to the API platform are supported in documentation text.
* In order to reference a proto element, the following notation can be used:
* <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>
* To override the display text used for the link, this can be used:
* <pre><code>&#91;display
* text]&#91;fully.qualified.proto.name]</code></pre> Text can
* be excluded from doc using the following notation:
* <pre><code>&#40;-- internal comment
* --&#41;</code></pre> A few directives are available in
* documentation. Note that directives must appear on a single line to be
* properly identified. The `include` directive includes a markdown file from an
* external source: <pre><code>&#40;== include path/to/file
* ==&#41;</code></pre> The `resource_for` directive marks a
* message to be the resource of a collection in REST view. If it is not
* specified, tools attempt to infer the resource from the operations in a
* collection: <pre><code>&#40;== resource_for v1.shelves.books
* ==&#41;</code></pre> The directive `suppress_warning` does
* not directly affect documentation and is documented together with service
* config validation.
*/
export interface Schema$Documentation {
/**
* The URL to the root of documentation.
*/
documentationRootUrl: string;
/**
* Declares a single overview page. For example:
* <pre><code>documentation: summary: ... overview:
* &#40;== include overview.md ==&#41; </code></pre> This
* is a shortcut for the following declaration (using pages style):
* <pre><code>documentation: summary: ... pages: - name:
* Overview content: &#40;== include overview.md ==&#41;
* </code></pre> Note: you cannot specify both `overview` field
* and `pages` field.
*/
overview: string;
/**
* The top level pages for the documentation set.
*/
pages: Schema$Page[];
/**
* A list of documentation rules that apply to individual API elements.
* **NOTE:** All service configuration rules follow "last one wins"
* order.
*/
rules: Schema$DocumentationRule[];
/**
* A short summary of what the service does. Can only be provided by plain
* text.
*/
summary: string;
}
/**
* A documentation rule provides information about individual API elements.
*/
export interface Schema$DocumentationRule {
/**
* Deprecation description of the selected element(s). It can be provided if
* an element is marked as `deprecated`.
*/
deprecationDescription: string;
/**
* Description of the selected API(s).
*/
description: string;
/**
* The selector is a comma-separated list of patterns. Each pattern is a
* qualified name of the element which may end in "*", indicating a
* wildcard. Wildcards are only allowed at the end and for a whole component
* of the qualified name, i.e. "foo.*" is ok, but not
* "foo.b*" or "foo.*.bar". To specify a default for all
* applicable elements, the whole pattern "*" is used.
*/
selector: string;
}
/**
* Request message for EnableService method.
*/
export interface Schema$EnableServiceRequest {
/**
* The identity of consumer resource which service enablement will be applied
* to. The Google Service Management implementation accepts the following
* forms: - "project:<project_id>" Note: this is made
* compatible with google.api.servicecontrol.v1.Operation.consumer_id.
*/
consumerId: string;
}
/**
* `Endpoint` describes a network endpoint that serves a set of APIs. A service
* may expose any number of endpoints, and all endpoints share the same service
* configuration, such as quota configuration and monitoring configuration.
* Example service configuration: name: library-example.googleapis.com
* endpoints: # Below entry makes
* 'google.example.library.v1.Library' # API be served from
* endpoint address library-example.googleapis.com. # It also allows HTTP
* OPTIONS calls to be passed to the backend, for # it to decide whether
* the subsequent cross-origin request is # allowed to proceed. -
* name: library-example.googleapis.com allow_cors: true
*/
export interface Schema$Endpoint {
/**
* DEPRECATED: This field is no longer supported. Instead of using aliases,
* please specify multiple google.api.Endpoint for each of the intended
* aliases. Additional names that this endpoint will be hosted on.
*/
aliases: string[];
/**
* Allowing
* [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
* cross-domain traffic, would allow the backends served from this endpoint to
* receive and respond to HTTP OPTIONS requests. The response will be used by
* the browser to determine whether the subsequent cross-origin request is
* allowed to proceed.
*/
allowCors: boolean;
/**
* The list of features enabled on this endpoint.
*/
features: string[];
/**
* The canonical name of this endpoint.
*/
name: string;
/**
* The specification of an Internet routable address of API frontend that will
* handle requests to this [API
* Endpoint](https://cloud.google.com/apis/design/glossary). It should be
* either a valid IPv4 address or a fully-qualified domain name. For example,
* "8.8.8.8" or "myservice.appspot.com".
*/
target: string;
}
/**
* Enum type definition.
*/
export interface Schema$Enum {
/**
* Enum value definitions.
*/
enumvalue: Schema$EnumValue[];
/**
* Enum type name.
*/
name: string;
/**
* Protocol buffer options.
*/
options: Schema$Option[];
/**
* The source context.
*/
sourceContext: Schema$SourceContext;
/**
* The source syntax.
*/
syntax: string;
}
/**
* Enum value definition.
*/
export interface Schema$EnumValue {
/**
* Enum value name.
*/
name: string;
/**
* Enum value number.
*/
number: number;
/**
* Protocol buffer options.
*/
options: Schema$Option[];
}
/**
* Experimental service configuration. These configuration options can only be
* used by whitelisted users.
*/
export interface Schema$Experimental {
/**
* Authorization configuration.
*/
authorization: Schema$AuthorizationConfig;
}
/**
* A single field of a message type.
*/
export interface Schema$Field {
/**
* The field cardinality.
*/
cardinality: string;
/**
* The string value of the default value of this field. Proto2 syntax only.
*/
defaultValue: string;
/**
* The field JSON name.
*/
jsonName: string;
/**
* The field type.
*/
kind: string;
/**
* The field name.
*/
name: string;
/**
* The field number.
*/
number: number;
/**
* The index of the field type in `Type.oneofs`, for message or enumeration
* types. The first type has index 1; zero means the type is not in the list.
*/
oneofIndex: number;
/**
* The protocol buffer options.
*/
options: Schema$Option[];
/**
* Whether to use alternative packed wire representation.
*/
packed: boolean;
/**
* The field type URL, without the scheme, for message or enumeration types.
* Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
*/
typeUrl: string;
}
/**
* Request message for GenerateConfigReport method.
*/
export interface Schema$GenerateConfigReportRequest {
/**
* Service configuration for which we want to generate the report. For this
* version of API, the supported types are
* google.api.servicemanagement.v1.ConfigRef,
* google.api.servicemanagement.v1.ConfigSource, and google.api.Service
*/
newConfig: any;
/**
* Service configuration against which the comparison will be done. For this
* version of API, the supported types are
* google.api.servicemanagement.v1.ConfigRef,
* google.api.servicemanagement.v1.ConfigSource, and google.api.Service
*/
oldConfig: any;
}
/**
* Response message for GenerateConfigReport method.
*/
export interface Schema$GenerateConfigReportResponse {
/**
* list of ChangeReport, each corresponding to comparison between two service
* configurations.
*/
changeReports: Schema$ChangeReport[];
/**
* Errors / Linter warnings associated with the service definition this report
* belongs to.
*/
diagnostics: Schema$Diagnostic[];
/**
* ID of the service configuration this report belongs to.
*/
id: string;
/**
* Name of the service this report belongs to.
*/
serviceName: string;
}
/**
* Request message for `GetIamPolicy` method.
*/
export interface Schema$GetIamPolicyRequest {
}
/**
* Defines the HTTP configuration for an API service. It contains a list of
* HttpRule, each specifying the mapping of an RPC method to one or more HTTP
* REST API methods.
*/
export interface Schema$Http {
/**
* When set to true, URL path parmeters will be fully URI-decoded except in
* cases of single segment matches in reserved expansion, where
* "%2F" will be left encoded. The default behavior is to not
* decode RFC 6570 reserved characters in multi segment matches.
*/
fullyDecodeReservedExpansion: boolean;
/**
* A list of HTTP configuration rules that apply to individual API methods.
* **NOTE:** All service configuration rules follow "last one wins"
* order.
*/
rules: Schema$HttpRule[];
}
/**
* `HttpRule` defines the mapping of an RPC method to one or more HTTP REST API
* methods. The mapping specifies how different portions of the RPC request
* message are mapped to URL path, URL query parameters, and HTTP request body.
* The mapping is typically specified as an `google.api.http` annotation on the
* RPC method, see "google/api/annotations.proto" for details. The
* mapping consists of a field specifying the path template and method kind. The
* path template can refer to fields in the request message, as in the example
* below which describes a REST GET operation on a resource collection of
* messages: service Messaging { rpc GetMessage(GetMessageRequest)
* returns (Message) { option (google.api.http).get =
* "/v1/messages/{message_id}/{sub.subfield}"; } } message
* GetMessageRequest { message SubMessage { string subfield = 1;
* } string message_id = 1; // mapped to the URL SubMessage sub = 2;
* // `sub.subfield` is url-mapped } message Message { string text
* = 1; // content of the resource } The same http annotation can
* alternatively be expressed inside the `GRPC API Configuration` YAML file.
* http: rules: - selector:
* <proto_package_name>.Messaging.GetMessage get:
* /v1/messages/{message_id}/{sub.subfield} This definition enables an
* automatic, bidrectional mapping of HTTP JSON to RPC. Example: HTTP | RPC
* -----|----- `GET /v1/messages/123456/foo` | `GetMessage(message_id:
* "123456" sub: SubMessage(subfield: "foo"))` In general,
* not only fields but also field paths can be referenced from a path pattern.
* Fields mapped to the path pattern cannot be repeated and must have a
* primitive (non-message) type. Any fields in the request message which are
* not bound by the path pattern automatically become (optional) HTTP query
* parameters. Assume the following definition of the request message: service
* Messaging { rpc GetMessage(GetMessageRequest) returns (Message) {
* option (google.api.http).get = "/v1/messages/{message_id}"; }
* } message GetMessageRequest { message SubMessage { string
* subfield = 1; } string message_id = 1; // mapped to the URL int64
* revision = 2; // becomes a parameter SubMessage sub = 3; //
* `sub.subfield` becomes a parameter } This enables a HTTP JSON to RPC
* mapping as below: HTTP | RPC -----|----- `GET
* /v1/messages/123456?revision=2&sub.subfield=foo` |
* `GetMessage(message_id: "123456" revision: 2 sub:
* SubMessage(subfield: "foo"))` Note that fields which are mapped to
* HTTP parameters must have a primitive type or a repeated primitive type.
* Message types are not allowed. In the case of a repeated type, the parameter
* can be repeated in the URL, as in `...?param=A&param=B`. For HTTP method
* kinds which allow a request body, the `body` field specifies the mapping.
* Consider a REST update method on the message resource collection: service
* Messaging { rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
* option (google.api.http) = { put:
* "/v1/messages/{message_id}" body: "message" };
* } } message UpdateMessageRequest { string message_id = 1; //
* mapped to the URL Message message = 2; // mapped to the body }
* The following HTTP JSON to RPC mapping is enabled, where the representation
* of the JSON in the request body is determined by protos JSON encoding: HTTP
* | RPC -----|----- `PUT /v1/messages/123456 { "text":
* "Hi!" }` | `UpdateMessage(message_id: "123456" message {
* text: "Hi!" })` The special name `*` can be used in the body
* mapping to define that every field not bound by the path template should be
* mapped to the request body. This enables the following alternative
* definition of the update method: service Messaging { rpc
* UpdateMessage(Message) returns (Message) { option (google.api.http) =
* { put: "/v1/messages/{message_id}" body:
* "*" }; } } message Message { string
* message_id = 1; string text = 2; } The following HTTP JSON to RPC
* mapping is enabled: HTTP | RPC -----|----- `PUT /v1/messages/123456 {
* "text": "Hi!" }` | `UpdateMessage(message_id:
* "123456" text: "Hi!")` Note that when using `*` in the
* body mapping, it is not possible to have HTTP parameters, as all fields not
* bound by the path end in the body. This makes this option more rarely used in
* practice of defining REST APIs. The common usage of `*` is in custom methods
* which don't use the URL at all for transferring data. It is possible to
* define multiple HTTP methods for one RPC by using the `additional_bindings`
* option. Example: service Messaging { rpc
* GetMessage(GetMessageRequest) returns (Message) { option
* (google.api.http) = { get: "/v1/messages/{message_id}"
* additional_bindings { get:
* "/v1/users/{user_id}/messages/{message_id}" } };
* } } message GetMessageRequest { string message_id = 1; string
* user_id = 2; } This enables the following two alternative HTTP JSON to
* RPC mappings: HTTP | RPC -----|----- `GET /v1/messages/123456` |
* `GetMessage(message_id: "123456")` `GET
* /v1/users/me/messages/123456` | `GetMessage(user_id: "me"
* message_id: "123456")` # Rules for HTTP mapping The rules for
* mapping HTTP path, query parameters, and body fields to the request message
* are as follows: 1. The `body` field specifies either `*` or a field path, or
* is omitted. If omitted, it indicates there is no HTTP request body. 2.
* Leaf fields (recursive expansion of nested messages in the request) can be
* classified into three types: (a) Matched in the URL template. (b)
* Covered by body (if body is `*`, everything except (a) fields; else
* everything under the body field) (c) All other fields. 3. URL query
* parameters found in the HTTP request are mapped to (c) fields. 4. Any body
* sent with an HTTP request can contain only (b) fields. The syntax of the
* path template is as follows: Template = "/" Segments [ Verb ]
* ; Segments = Segment { "/" Segment } ; Segment =
* "*" | "**" | LITERAL | Variable ; Variable =
* "{" FieldPath [ "=" Segments ] "}" ; FieldPath
* = IDENT { "." IDENT } ; Verb = ":" LITERAL ; The
* syntax `*` matches a single path segment. The syntax `**` matches zero or
* more path segments, which must be the last part of the path except the
* `Verb`. The syntax `LITERAL` matches literal text in the path. The syntax
* `Variable` matches part of the URL path as specified by its template. A
* variable template must not contain other variables. If a variable matches a
* single path segment, its template may be omitted, e.g. `{var}` is equivalent
* to `{var=*}`. If a variable contains exactly one path segment, such as
* `"{var}"` or `"{var=*}"`, when such a variable is
* expanded into a URL path, all characters except `[-_.~0-9a-zA-Z]` are
* percent-encoded. Such variables show up in the Discovery Document as `{var}`.
* If a variable contains one or more path segments, such as
* `"{var=foo/*}"` or `"{var=**}"`, when such a variable is
* expanded into a URL path, all characters except `[-_.~/0-9a-zA-Z]` are
* percent-encoded. Such variables show up in the Discovery Document as
* `{+var}`. NOTE: While the single segment variable matches the semantics of
* [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
* Expansion, the multi segment variable **does not** match RFC 6570 Reserved
* Expansion. The reason is that the Reserved Expansion does not expand special
* characters like `?` and `#`, which would lead to invalid URLs. NOTE: the
* field paths in variables and in the `body` must not refer to repeated fields
* or map fields.
*/
export interface Schema$HttpRule {
/**
* Additional HTTP bindings for the selector. Nested bindings must not contain
* an `additional_bindings` field themselves (that is, the nesting may only be
* one level deep).
*/
additionalBindings: Schema$HttpRule[];
/**
* The name of the request field whose value is mapped to the HTTP body, or
* `*` for mapping all fields not captured by the path pattern to the HTTP
* body. NOTE: the referred field must not be a repeated field and must be
* present at the top-level of request message type.
*/
body: string;
/**
* The custom pattern is used for specifying an HTTP method that is not
* included in the `pattern` field, such as HEAD, or "*" to leave
* the HTTP method unspecified for this rule. The wild-card rule is useful for
* services that provide content to Web (HTML) clients.
*/
custom: Schema$CustomHttpPattern;
/**
* Used for deleting a resource.
*/
delete: string;
/**
* Used for listing and getting information about resources.
*/
get: string;
/**
* Use this only for Scotty Requests. Do not use this for bytestream methods.
* For media support, add instead [][google.bytestream.RestByteStream] as an
* API to your configuration.
*/
mediaDownload: Schema$MediaDownload;
/**
* Use this only for Scotty Requests. Do not use this for media support using
* Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
* your configuration for Bytestream methods.
*/
mediaUpload: Schema$MediaUpload;
/**
* Used for updating a resource.
*/
patch: string;
/**
* Used for creating a resource.
*/
post: string;
/**
* Used for updating a resource.
*/
put: string;
/**
* Selects methods to which this rule applies. Refer to selector for syntax
* details.
*/
selector: string;
}
/**
* A description of a label.
*/
export interface Schema$LabelDescriptor {
/**
* A human-readable description for the label.
*/
description: string;
/**
* The label key.
*/
key: string;
/**
* The type of data that can be assigned to the label.
*/
valueType: string;
}
/**
* The response message for Operations.ListOperations.
*/
export interface Schema$ListOperationsResponse {
/**
* The standard List next-page token.
*/
nextPageToken: string;
/**
* A list of operations that matches the specified filter in the request.
*/
operations: Schema$Operation[];
}
/**
* Response message for ListServiceConfigs method.
*/
export interface Schema$ListServiceConfigsResponse {
/**
* The token of the next page of results.
*/
nextPageToken: string;
/**
* The list of service configuration resources.
*/
serviceConfigs: Schema$Service[];
}
/**
* Response message for ListServiceRollouts method.
*/
export interface Schema$ListServiceRolloutsResponse {
/**
* The token of the next page of results.
*/
nextPageToken: string;
/**
* The list of rollout resources.
*/
rollouts: Schema$Rollout[];
}
/**
* Response message for `ListServices` method.
*/
export interface Schema$ListServicesResponse {
/**
* Token that can be passed to `ListServices` to resume a paginated query.
*/
nextPageToken: string;
/**
* The returned services will only have the name field set.
*/
services: Schema$ManagedService[];
}
/**
* A description of a log type. Example in YAML format: - name:
* library.googleapis.com/activity_history description: The history of
* borrowing and returning library items. display_name: Activity labels:
* - key: /customer_id description: Identifier of a library customer
*/
export interface Schema$LogDescriptor {
/**
* A human-readable description of this log. This information appears in the
* documentation and can contain details.
*/
description: string;
/**
* The human-readable name for this log. This information appears on the user
* interface and should be concise.
*/
displayName: string;
/**
* The set of labels that are available to describe a specific log entry.
* Runtime requests that contain labels not specified here are considered
* invalid.
*/
labels: Schema$LabelDescriptor[];
/**
* The name of the log. It must be less than 512 characters long and can
* include the following characters: upper- and lower-case alphanumeric
* characters [A-Za-z0-9], and punctuation characters including slash,
* underscore, hyphen, period [/_-.].
*/
name: string;
}
/**
* Logging configuration of the service. The following example shows how to
* config