service.d.ts
1 import {Request} from './request'; 2 import {AWSError} from './error'; 3 import {ConfigurationOptions, ConfigBase} from './config-base'; 4 import {Endpoint} from './endpoint'; 5 6 export interface WaiterConfiguration { 7 /** 8 * The number of seconds to wait between requests 9 */ 10 delay?: number; 11 12 /** 13 * The maximum number of requests to send while waiting 14 */ 15 maxAttempts?: number; 16 } 17 18 export class Service { 19 /** 20 * Creates a new service object with a configuration object. 21 */ 22 constructor(config?: ServiceConfigurationOptions); 23 24 /** 25 * Defines a new Service class using a service identifier and list of versions including an optional set of features (functions) to apply to the class prototype. 26 * 27 * @param {string} serviceIdentifier - the identifier for the service. 28 * @param {string[]} versions - a list of versions that work with this service. 29 * @param {Object} features - an object to attach to the prototype. 30 */ 31 defineService(serviceIdentifier: string, versions: string[], features?: any): typeof Service; 32 /** 33 * Calls an operation on a service with the given input parameters. 34 * 35 * @param {string} operation - the name of the operation to call on the service. 36 * @param {map} params - a map of input options for the operation. 37 */ 38 makeRequest(operation: string, params?: {[key: string]: any}, callback?: (err: AWSError, data: any) => void): Request<any, AWSError>; 39 /** 40 * Calls an operation on a service with the given input parameters, without any authentication data. 41 * 42 * @param {string} operation - the name of the operation to call on the service. 43 * @param {map} params - a map of input options for the operation. 44 */ 45 makeUnauthenticatedRequest(operation: string, params?: {[key: string]: any}, callback?: (err: AWSError, data: any) => void): Request<any, AWSError>; 46 /** 47 * Override this method to setup any custom request listeners for each new request to the service. 48 */ 49 setupRequestListeners(request: Request<any, AWSError>): void; 50 /** 51 * Waits for a given state. 52 */ 53 waitFor(state: string, params?: {[key: string]: any, $waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: any) => void): Request<any, AWSError>; 54 waitFor(state: string, callback?: (err: AWSError, data: any) => void): Request<any, AWSError>; 55 56 /** 57 * The list of API versions supported by this service. 58 */ 59 apiVersions: string[]; 60 61 config: ConfigBase & ServiceConfigurationOptions; 62 63 /** 64 * An Endpoint object representing the endpoint URL for service requests. 65 */ 66 endpoint: Endpoint; 67 } 68 69 export interface ServiceConfigurationOptions extends ConfigurationOptions { 70 /** 71 * The endpoint URI to send requests to. The default endpoint is built from the configured region. 72 * The endpoint should be a string like 'https://{service}.{region}.amazonaws.com' or an Endpoint object. 73 */ 74 endpoint?: string | Endpoint; 75 /** 76 * An optional map of parameters to bind to every request sent by this service object. 77 * For more information on bound parameters, see "Working with Services" in the Getting Started Guide. 78 */ 79 params?: { 80 [key: string]: any; 81 } 82 } 83