DefinitelyTyped/types/gapi.client.discovery/index.d.ts
Nathan Shively-Sanders 608c146d89 Mark non-npm packages
2019-02-13 15:44:35 -08:00

323 lines
16 KiB
TypeScript

// Type definitions for non-npm package Google APIs Discovery Service v1 1.0
// Project: https://developers.google.com/discovery/
// Definitions by: Bolisov Alexey <https://github.com/Bolisov>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
// IMPORTANT
// This file was generated by https://github.com/Bolisov/google-api-typings-generator. Please do not edit it manually.
// In case of any problems please post issue to https://github.com/Bolisov/google-api-typings-generator
// Generated from: https://www.googleapis.com/discovery/v1/apis/discovery/v1/rest
/// <reference types="gapi.client" />
declare namespace gapi.client {
/** Load APIs Discovery Service v1 */
function load(name: "discovery", version: "v1"): PromiseLike<void>;
function load(name: "discovery", version: "v1", callback: () => any): void;
const apis: discovery.ApisResource;
namespace discovery {
interface 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?: Array<{
/** The description of this API. */
description?: string;
/** A link to the discovery document. */
discoveryLink?: string;
/** The URL for the discovery REST document. */
discoveryRestUrl?: string;
/** A link to human readable documentation for the API. */
documentationLink?: string;
/** Links to 16x16 and 32x32 icons representing the API. */
icons?: {
/** The URL of the 16x16 icon. */
x16?: string;
/** The URL of the 32x32 icon. */
x32?: string;
};
/** 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[];
/** The name of the API. */
name?: string;
/** True if this version is the preferred version to use. */
preferred?: boolean;
/** The title of this API. */
title?: string;
/** The version of the API. */
version?: string;
}>;
/** The kind for this response. */
kind?: string;
}
interface JsonSchema {
/** A reference to another schema. The value of this property is the "id" 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?: JsonSchema;
/** Additional information about this property. */
annotations?: {
/** A list of methods for which this property is required on requests. */
required?: string[];
};
/** 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 "enum" 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?: 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?: Record<string, JsonSchema>;
/**
* 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?: {
/** The name of the type discriminant property. */
discriminant?: string;
/** The map of discriminant value to schema to use for parsing.. */
map?: Array<{
$ref?: string;
type_value?: string;
}>;
};
}
interface RestDescription {
/** Authentication information. */
auth?: {
/** OAuth 2.0 authentication information. */
oauth2?: {
/** Available OAuth 2.0 scopes. */
scopes?: Record<string, {
/** Description of scope. */
description?: string;
}>;
};
};
/** [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?: {
/** The URL of the 16x16 icon. */
x16?: string;
/** The URL of the 32x32 icon. */
x32?: string;
};
/** 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?: Record<string, RestMethod>;
/** 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?: Record<string, JsonSchema>;
/** The protocol described by this document. */
protocol?: string;
/** The resources in this API. */
resources?: Record<string, RestResource>;
/** The version of this API. */
revision?: string;
/** The root URL under which all API services live. */
rootUrl?: string;
/** The schemas for this API. */
schemas?: Record<string, JsonSchema>;
/** 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;
}
interface 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?: {
/** MIME Media Ranges for acceptable media uploads to this method. */
accept?: string[];
/** Maximum size of a media upload, such as "1MB", "2GB" or "3TB". */
maxSize?: string;
/** Supported upload protocols. */
protocols?: {
/** Supports the Resumable Media Upload protocol. */
resumable?: {
/** True if this endpoint supports uploading multipart media. */
multipart?: boolean;
/** The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level. */
path?: string;
};
/** Supports uploading as a single HTTP request. */
simple?: {
/** True if this endpoint supports upload multipart media. */
multipart?: boolean;
/** The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level. */
path?: string;
};
};
};
/**
* 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
* "most-significant" parameter appears first.
*/
parameterOrder?: string[];
/** Details for all parameters in this method. */
parameters?: Record<string, JsonSchema>;
/** 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?: {
/** Schema ID for the request schema. */
$ref?: string;
/** parameter name. */
parameterName?: string;
};
/** The schema for the response. */
response?: {
/** Schema ID for the response schema. */
$ref?: string;
};
/** 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. "/download"). Only applies if the method supports media download. */
useMediaDownloadService?: boolean;
}
interface RestResource {
/** Methods on this resource. */
methods?: Record<string, RestMethod>;
/** Sub-resources on this resource. */
resources?: Record<string, RestResource>;
}
interface ApisResource {
/** Retrieve the description of a particular version of an api. */
getRest(request: {
/** Data format for the response. */
alt?: string;
/** The name of the API. */
api: string;
/** Selector specifying which fields to include in a partial response. */
fields?: string;
/** 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. */
key?: string;
/** OAuth 2.0 token for the current user. */
oauth_token?: string;
/** Returns response with indentations and line breaks. */
prettyPrint?: boolean;
/**
* 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.
* Overrides userIp if both are provided.
*/
quotaUser?: string;
/** IP address of the site where the request originates. Use this if you want to enforce per-user limits. */
userIp?: string;
/** The version of the API. */
version: string;
}): Request<RestDescription>;
/** Retrieve the list of APIs supported at this endpoint. */
list(request: {
/** Data format for the response. */
alt?: string;
/** Selector specifying which fields to include in a partial response. */
fields?: string;
/** 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. */
key?: string;
/** Only include APIs with the given name. */
name?: string;
/** OAuth 2.0 token for the current user. */
oauth_token?: string;
/** Return only the preferred version of an API. */
preferred?: boolean;
/** Returns response with indentations and line breaks. */
prettyPrint?: boolean;
/**
* 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.
* Overrides userIp if both are provided.
*/
quotaUser?: string;
/** IP address of the site where the request originates. Use this if you want to enforce per-user limits. */
userIp?: string;
}): Request<DirectoryList>;
}
}
}