UNPKG

googleapis

Version:
389 lines (388 loc) 11.2 kB
/** * 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'; /** * APIs Discovery Service * * Provides information about other Google APIs, such as what APIs are * available, the resource, and method details for each API. * * @example * const google = require('googleapis'); * const discovery = google.discovery('v1'); * * @namespace discovery * @type {Function} * @version v1 * @variation v1 * @param {object=} options Options for Discovery */ export declare class Discovery { _options: GlobalOptions; google: GoogleApis; root: this; apis: Resource$Apis; constructor(options: GlobalOptions, google: GoogleApis); getRoot(): this; } export interface Schema$DirectoryList { /** * Indicate the version of the Discovery API used to generate this doc. */ discoveryVersion: string; /** * The individual directory entries. One entry per api/version pair. */ items: any[]; /** * The kind for this response. */ kind: string; } export interface Schema$JsonSchema { /** * A reference to another schema. The value of this property is the * &quot;id&quot; of another schema. */ $ref: string; /** * If this is a schema for an object, this property is the schema for any * additional properties with dynamic keys on this object. */ additionalProperties: Schema$JsonSchema; /** * Additional information about this property. */ annotations: any; /** * The default value of this property (if one exists). */ default: string; /** * A description of this object. */ description: string; /** * Values this parameter may take (if it is an enum). */ enum: string[]; /** * The descriptions for the enums. Each position maps to the corresponding * value in the &quot;enum&quot; array. */ enumDescriptions: string[]; /** * An additional regular expression or key that helps constrain the value. For * more details see: * http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.23 */ format: string; /** * Unique identifier for this schema. */ id: string; /** * If this is a schema for an array, this property is the schema for each * element in the array. */ items: Schema$JsonSchema; /** * Whether this parameter goes in the query or the path for REST requests. */ location: string; /** * The maximum value of this parameter. */ maximum: string; /** * The minimum value of this parameter. */ minimum: string; /** * The regular expression this parameter must conform to. Uses Java 6 regex * format: * http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html */ pattern: string; /** * If this is a schema for an object, list the schema for each property of * this object. */ properties: any; /** * The value is read-only, generated by the service. The value cannot be * modified by the client. If the value is included in a POST, PUT, or PATCH * request, it is ignored by the service. */ readOnly: boolean; /** * Whether this parameter may appear multiple times. */ repeated: boolean; /** * Whether the parameter is required. */ required: boolean; /** * The value type for this schema. A list of values can be found here: * http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1 */ type: string; /** * In a variant data type, the value of one property is used to determine how * to interpret the entire entity. Its value must exist in a map of * descriminant values to schema names. */ variant: any; } export interface Schema$RestDescription { /** * Authentication information. */ auth: any; /** * [DEPRECATED] The base path for REST requests. */ basePath: string; /** * [DEPRECATED] The base URL for REST requests. */ baseUrl: string; /** * The path for REST batch requests. */ batchPath: string; /** * Indicates how the API name should be capitalized and split into various * parts. Useful for generating pretty class names. */ canonicalName: string; /** * The description of this API. */ description: string; /** * Indicate the version of the Discovery API used to generate this doc. */ discoveryVersion: string; /** * A link to human readable documentation for the API. */ documentationLink: string; /** * The ETag for this response. */ etag: string; /** * Enable exponential backoff for suitable methods in the generated clients. */ exponentialBackoffDefault: boolean; /** * A list of supported features for this API. */ features: string[]; /** * Links to 16x16 and 32x32 icons representing the API. */ icons: any; /** * The ID of this API. */ id: string; /** * The kind for this response. */ kind: string; /** * Labels for the status of this API, such as labs or deprecated. */ labels: string[]; /** * API-level methods for this API. */ methods: any; /** * The name of this API. */ name: string; /** * The domain of the owner of this API. Together with the ownerName and a * packagePath values, this can be used to generate a library for this API * which would have a unique fully qualified name. */ ownerDomain: string; /** * The name of the owner of this API. See ownerDomain. */ ownerName: string; /** * The package of the owner of this API. See ownerDomain. */ packagePath: string; /** * Common parameters that apply across all apis. */ parameters: any; /** * The protocol described by this document. */ protocol: string; /** * The resources in this API. */ resources: any; /** * The version of this API. */ revision: string; /** * The root URL under which all API services live. */ rootUrl: string; /** * The schemas for this API. */ schemas: any; /** * The base path for all REST requests. */ servicePath: string; /** * The title of this API. */ title: string; /** * The version of this API. */ version: string; version_module: boolean; } export interface Schema$RestMethod { /** * Description of this method. */ description: string; /** * Whether this method requires an ETag to be specified. The ETag is sent as * an HTTP If-Match or If-None-Match header. */ etagRequired: boolean; /** * HTTP method used by this method. */ httpMethod: string; /** * A unique ID for this method. This property can be used to match methods * between different versions of Discovery. */ id: string; /** * Media upload parameters. */ mediaUpload: any; /** * Ordered list of required parameters, serves as a hint to clients on how to * structure their method signatures. The array is ordered such that the * &quot;most-significant&quot; parameter appears first. */ parameterOrder: string[]; /** * Details for all parameters in this method. */ parameters: any; /** * The URI path of this REST method. Should be used in conjunction with the * basePath property at the api-level. */ path: string; /** * The schema for the request. */ request: any; /** * The schema for the response. */ response: any; /** * OAuth 2.0 scopes applicable to this method. */ scopes: string[]; /** * Whether this method supports media downloads. */ supportsMediaDownload: boolean; /** * Whether this method supports media uploads. */ supportsMediaUpload: boolean; /** * Whether this method supports subscriptions. */ supportsSubscription: boolean; /** * Indicates that downloads from this method should use the download service * URL (i.e. &quot;/download&quot;). Only applies if the method supports media * download. */ useMediaDownloadService: boolean; } export interface Schema$RestResource { /** * Methods on this resource. */ methods: any; /** * Sub-resources on this resource. */ resources: any; } export declare class Resource$Apis { root: Discovery; constructor(root: Discovery); getRoot(): Discovery; /** * discovery.apis.getRest * @desc Retrieve the description of a particular version of an api. * @alias discovery.apis.getRest * @memberOf! () * * @param {object} params Parameters for request * @param {string} params.api The name of the API. * @param {string} params.version The version of the API. * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`. * @param {callback} callback The callback that handles the response. * @return {object} Request object */ getRest(params?: any, options?: MethodOptions): AxiosPromise<Schema$RestDescription>; getRest(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$RestDescription>, callback?: BodyResponseCallback<Schema$RestDescription>): void; /** * discovery.apis.list * @desc Retrieve the list of APIs supported at this endpoint. * @alias discovery.apis.list * @memberOf! () * * @param {object=} params Parameters for request * @param {string=} params.name Only include APIs with the given name. * @param {boolean=} params.preferred Return only the preferred version of an API. * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`. * @param {callback} callback The callback that handles the response. * @return {object} Request object */ list(params?: any, options?: MethodOptions): AxiosPromise<Schema$DirectoryList>; list(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$DirectoryList>, callback?: BodyResponseCallback<Schema$DirectoryList>): void; }