/// /// declare namespace GoogleAppsScript { namespace URL_Fetch { /** * This class allows users to access specific information on HTTP responses. * See also * * UrlFetchApp */ interface HTTPResponse { getAllHeaders(): object; getAs(contentType: string): Base.Blob; getBlob(): Base.Blob; getContent(): Byte[]; getContentText(): string; getContentText(charset: string): string; getHeaders(): object; getResponseCode(): Integer; } interface URLFetchRequest extends URLFetchRequestOptions { url: string; } interface URLFetchRequestOptions { /** * the content type (defaults to 'application/x-www-form-urlencoded'). Another example of content * type is 'application/xml; charset=utf-8'. */ contentType?: string | undefined; /** * a JavaScript key/value map of HTTP headers for the request */ headers?: HttpHeaders | undefined; /** * the HTTP method for the request: get, delete, patch, post, or put. The default is get. */ method?: HttpMethod | undefined; /** * the payload (e.g. POST body) for the request. Certain HTTP methods (e.g. GET) do not accept a * payload. It can be a string, a byte array, or a JavaScript object. A JavaScript object will be * interpretted as a map of form field names to values, where the values can be either strings or blobs. */ payload?: Payload | undefined; /** * Deprecated. This instructs fetch to resolve the specified URL within the intranet linked to your * domain through (deprecated) SDC */ useIntranet?: boolean | undefined; /** * if this is set to false, the fetch will ignore any invalid certificates for HTTPS requests. * The default is true. */ validateHttpsCertificates?: boolean | undefined; /** * if this is set to false, the fetch not automatically follow HTTP redirects; it will return * the original HTTP response. The default is true. */ followRedirects?: boolean | undefined; /** * if this is set to true, the fetch will not throw an exception if the response code indicates * failure, and will instead return the HTTPResponse (default: false) */ muteHttpExceptions?: boolean | undefined; /** * if this is set to false, reserved characters in the URL will not be escaped (default: true) */ escaping?: boolean | undefined; } /** * Fetch resources and communicate with other hosts over the Internet. * * This service allows scripts to communicate with other applications or access other resources * on the web by fetching URLs. A script can use the URL Fetch service to issue HTTP and HTTPS * requests and receive responses. The URL Fetch service uses Google's network infrastructure for * efficiency and scaling purposes. * * Requests made using this service originate from a set pool of IP ranges. You can look up the full list of IP addresses * if you need to whitelist or approve these requests. * * This service requires the https://www.googleapis.com/auth/script.external_request * scope. In most cases Apps Script automatically detects and includes the scopes a script needs, * but if you are setting your scopes * explicitly you must manually add this scope to use UrlFetchApp. * See also * * HTTPResponse * * Setting explicit scopes */ interface UrlFetchApp { fetch(url: string): HTTPResponse; fetch(url: string, params: URLFetchRequestOptions): HTTPResponse; fetchAll(requests: Array): HTTPResponse[]; getRequest(url: string): URLFetchRequest; getRequest(url: string, params: URLFetchRequestOptions): URLFetchRequest; } interface HttpHeaders { [key: string]: string; } type HttpMethod = "get" | "delete" | "patch" | "post" | "put"; type Payload = string | { [key: string]: any } | Base.Blob; } } declare var UrlFetchApp: GoogleAppsScript.URL_Fetch.UrlFetchApp;