295 lines
11 KiB
TypeScript
295 lines
11 KiB
TypeScript
import {Agent as httpAgent} from 'http';
|
|
import {Agent as httpsAgent} from 'https';
|
|
import {AWSError} from './error';
|
|
import {Credentials, CredentialsOptions} from './credentials';
|
|
import {CredentialProviderChain} from './credentials/credential_provider_chain';
|
|
import {ConfigurationServicePlaceholders, ConfigurationServiceApiVersions} from './config_service_placeholders';
|
|
|
|
export class ConfigBase extends ConfigurationOptions{
|
|
constructor(options?: ConfigurationOptions);
|
|
/**
|
|
* Loads credentials from the configuration object.
|
|
*/
|
|
getCredentials(callback: (err: AWSError) => void): void;
|
|
/**
|
|
* Loads configuration data from a JSON file into this config object.
|
|
* Loading configuration willr eset all existing configuration on the object.
|
|
* This feature is not supported in the browser environment of the SDK.
|
|
*
|
|
* @param {string} path - the path relative to your process's current working directory to load configuration from.
|
|
*/
|
|
loadFromPath(path: string): ConfigBase;
|
|
/**
|
|
* Updates the current configuration object with new options.
|
|
*
|
|
* @param {ConfigurationOptions} options - a map of option keys and values.
|
|
* @param {boolean} allowUnknownKeys - Whether unknown keys can be set on the configuration object.
|
|
*/
|
|
update(options: ConfigurationOptions & {[key: string]: any}, allowUnknownKeys: true): void;
|
|
/**
|
|
* Updates the current configuration object with new options.
|
|
*
|
|
* @param {ConfigurationOptions} options - a map of option keys and values.
|
|
* @param {boolean} allowUnknownKeys - Defaults to false. Whether unknown keys can be set on the configuration object.
|
|
*/
|
|
update(options: ConfigurationOptions, allowUnknownKeys?: false): void;
|
|
/**
|
|
* Gets the promise dependency the SDK will use wherever Promises are returned.
|
|
*/
|
|
getPromisesDependency(): typeof Promise | void;
|
|
/**
|
|
* Sets the promise dependency the SDK will use wherever Promises are returned.
|
|
* @param {function} dep - a reference to a Promise constructor
|
|
*/
|
|
setPromisesDependency(dep: any): void;
|
|
}
|
|
|
|
export class Config extends ConfigBase {
|
|
/**
|
|
* Creates a new configuration object.
|
|
* This is the object that passes option data along to service requests, including credentials, security, region information, and some service specific settings.
|
|
*/
|
|
constructor(options?: ConfigurationOptions & ConfigurationServicePlaceholders & APIVersions);
|
|
/**
|
|
* Loads configuration data from a JSON file into this config object.
|
|
* Loading configuration willr eset all existing configuration on the object.
|
|
* This feature is not supported in the browser environment of the SDK.
|
|
*
|
|
* @param {string} path - the path relative to your process's current working directory to load configuration from.
|
|
*/
|
|
loadFromPath(path: string): Config & ConfigurationServicePlaceholders & APIVersions;
|
|
/**
|
|
* Updates the current configuration object with new options.
|
|
*
|
|
* @param {ConfigurationOptions} options - a map of option keys and values.
|
|
* @param {boolean} allowUnknownKeys - Whether unknown keys can be set on the configuration object.
|
|
*/
|
|
update(options: ConfigurationOptions & ConfigurationServicePlaceholders & APIVersions & {[key: string]: any}, allowUnknownKeys: true): void;
|
|
/**
|
|
* Updates the current configuration object with new options.
|
|
*
|
|
* @param {ConfigurationOptions} options - a map of option keys and values.
|
|
* @param {boolean} allowUnknownKeys - Defaults to false. Whether unknown keys can be set on the configuration object.
|
|
*/
|
|
update(options: ConfigurationOptions & ConfigurationServicePlaceholders & APIVersions, allowUnknownKeys?: false): void;
|
|
}
|
|
|
|
export type GlobalConfigInstance = Config & ConfigurationServicePlaceholders & APIVersions;
|
|
|
|
export interface HTTPOptions {
|
|
/**
|
|
* the URL to proxy requests through.
|
|
*/
|
|
proxy?: string;
|
|
/**
|
|
* the Agent object to perform HTTP requests with.
|
|
* Used for connection pooling.
|
|
* Defaults to the global agent (http.globalAgent) for non-SSL connections.
|
|
*/
|
|
agent?: httpAgent | httpsAgent;
|
|
/**
|
|
* The maximum time in milliseconds that the connection phase of the request
|
|
* should be allowed to take. This only limits the connection phase and has
|
|
* no impact once the socket has established a connection.
|
|
* Used in node.js environments only.
|
|
*/
|
|
connectTimeout?: number;
|
|
/**
|
|
* The number of milliseconds to wait before giving up on a connection attempt.
|
|
* Defaults to two minutes (120000).
|
|
*/
|
|
timeout?: number;
|
|
/**
|
|
* Whether the SDK will send asynchronous HTTP requests.
|
|
* Used in the browser environment only.
|
|
* Set to false to send requests synchronously.
|
|
* Defaults to true (async on).
|
|
*/
|
|
xhrAsync?: boolean;
|
|
/**
|
|
* Sets the 'withCredentials' property of an XMLHttpRequest object.
|
|
* Used in the browser environment only.
|
|
* Defaults to false.
|
|
*/
|
|
xhrWithCredentials?: boolean;
|
|
}
|
|
export interface Logger {
|
|
write?: (chunk: any, encoding?: string, callback?: () => void) => void
|
|
log?: (...messages: any[]) => void;
|
|
}
|
|
export interface ParamValidation {
|
|
/**
|
|
* Validates that a value meets the min constraint.
|
|
* This is enabled by default when paramValidation is set to true.
|
|
*/
|
|
min?: boolean
|
|
/**
|
|
* Validates that a value meets the max constraint.
|
|
*/
|
|
max?: boolean
|
|
/**
|
|
* Validates that a string value matches a regular expression.
|
|
*/
|
|
pattern?: boolean
|
|
/**
|
|
* Validates that a string value matches one of the allowable enum values.
|
|
*/
|
|
enum?: boolean
|
|
}
|
|
export interface RetryDelayOptions {
|
|
/**
|
|
* The base number of milliseconds to use in the exponential backoff for operation retries.
|
|
* Defaults to 100 ms.
|
|
*/
|
|
base?: number
|
|
/**
|
|
* A custom function that accepts a retry count and returns the amount of time to delay in milliseconds.
|
|
* The base option will be ignored if this option is supplied.
|
|
*/
|
|
customBackoff?: (retryCount: number) => number
|
|
}
|
|
|
|
export interface APIVersions {
|
|
/**
|
|
* A string in YYYY-MM-DD format that represents the latest possible API version that can be used in all services (unless overridden by apiVersions). Specify \'latest\' to use the latest possible version.
|
|
*/
|
|
apiVersion?: "latest"|string;
|
|
/**
|
|
* A map of service identifiers (the lowercase service class name) with the API version to use when instantiating a service. Specify 'latest' for each individual that can use the latest available version.
|
|
*/
|
|
apiVersions?: ConfigurationServiceApiVersions;
|
|
}
|
|
|
|
export abstract class ConfigurationOptions {
|
|
|
|
/**
|
|
* Whether to compute checksums for payload bodies when the service accepts it.
|
|
* Currently supported in S3 only.
|
|
*/
|
|
computeChecksums?: boolean
|
|
/**
|
|
* Whether types are converted when parsing response data.
|
|
*/
|
|
convertResponseTypes?: boolean
|
|
/**
|
|
* Whether to apply a clock skew correction and retry requests that fail because of an skewed client clock.
|
|
*/
|
|
correctClockSkew?: boolean
|
|
/**
|
|
* Sets a custom User-Agent string.
|
|
* In node environments this will set the User-Agent header, but
|
|
* browser environments this will set the X-Amz-User-Agent header.
|
|
*/
|
|
customUserAgent?: string
|
|
/**
|
|
* The AWS credentials to sign requests with.
|
|
*/
|
|
credentials?: Credentials|CredentialsOptions|null
|
|
/**
|
|
* The provider chain used to resolve credentials if no static credentials property is set.
|
|
*/
|
|
credentialProvider?: CredentialProviderChain
|
|
/**
|
|
* AWS access key ID.
|
|
*
|
|
* @deprecated
|
|
*/
|
|
accessKeyId?: string
|
|
/**
|
|
* AWS secret access key.
|
|
*
|
|
* @deprecated
|
|
*/
|
|
secretAccessKey?: string
|
|
/**
|
|
* AWS session token.
|
|
*
|
|
* @deprecated
|
|
*/
|
|
sessionToken?: string
|
|
/**
|
|
* A set of options to pass to the low-level HTTP request.
|
|
*/
|
|
httpOptions?: HTTPOptions
|
|
/**
|
|
* An object that responds to .write() (like a stream) or .log() (like the console object) in order to log information about requests.
|
|
*/
|
|
logger?: Logger
|
|
/**
|
|
* The maximum amount of redirects to follow for a service request.
|
|
*/
|
|
maxRedirects?: number
|
|
/**
|
|
* The maximum amount of retries to perform for a service request.
|
|
*/
|
|
maxRetries?: number
|
|
/**
|
|
* Returns whether input parameters should be validated against the operation description before sending the request.
|
|
* Defaults to true.
|
|
* Pass a map to enable any of the following specific validation features: min|max|pattern|enum
|
|
*/
|
|
paramValidation?: ParamValidation|boolean
|
|
/**
|
|
* The region to send service requests to.
|
|
*/
|
|
region?: string
|
|
/**
|
|
* Returns A set of options to configure the retry delay on retryable errors.
|
|
*/
|
|
retryDelayOptions?: RetryDelayOptions
|
|
/**
|
|
* Whether the provided endpoint addresses an individual bucket.
|
|
* false if it addresses the root API endpoint.
|
|
*/
|
|
s3BucketEndpoint?: boolean
|
|
/**
|
|
* Whether to disable S3 body signing when using signature version v4.
|
|
*/
|
|
s3DisableBodySigning?: boolean
|
|
/**
|
|
* Whether to force path style URLs for S3 objects.
|
|
*/
|
|
s3ForcePathStyle?: boolean
|
|
/**
|
|
* Whether the signature to sign requests with (overriding the API configuration) is cached.
|
|
*/
|
|
signatureCache?: boolean
|
|
/**
|
|
* The signature version to sign requests with (overriding the API configuration).
|
|
* Possible values: 'v2'|'v3'|'v4'
|
|
*/
|
|
signatureVersion?: "v2"|"v3"|"v4"|string
|
|
/**
|
|
* Whether SSL is enabled for requests.
|
|
*/
|
|
sslEnabled?: boolean
|
|
/**
|
|
* An offset value in milliseconds to apply to all signing times.
|
|
*/
|
|
systemClockOffset?: number
|
|
/**
|
|
* Whether to use the Accelerate endpoint with the S3 service.
|
|
*/
|
|
useAccelerateEndpoint?: boolean
|
|
/**
|
|
* Whether to validate the CRC32 checksum of HTTP response bodies returned
|
|
* by DynamoDB.
|
|
*/
|
|
dynamoDbCrc32?: boolean;
|
|
/**
|
|
* Whether to enable endpoint discovery for operations that allow optionally using an endpoint returned by
|
|
* the service.
|
|
*/
|
|
endpointDiscoveryEnabled?: boolean;
|
|
/**
|
|
* The size of the global cache storing endpoints from endpoint
|
|
* discovery operations. Once endpoint cache is created, updating this setting
|
|
* cannot change existing cache size.
|
|
*/
|
|
endpointCacheSize?: number;
|
|
/**
|
|
* whether to marshal request parameters to the prefix of hostname.
|
|
*/
|
|
hostPrefixEnabled?: boolean;
|
|
}
|