UNPKG

3.52 kBTypeScriptView Raw
1import { SignatureV4CryptoInit, SignatureV4Init } from "@aws-sdk/signature-v4";
2import { AuthScheme, AwsCredentialIdentity, HashConstructor, Logger, MemoizedProvider, Provider, RegionInfoProvider, RequestSigner } from "@aws-sdk/types";
3export interface AwsAuthInputConfig {
4 /**
5 * The credentials used to sign requests.
6 */
7 credentials?: AwsCredentialIdentity | Provider<AwsCredentialIdentity>;
8 /**
9 * The signer to use when signing requests.
10 */
11 signer?: RequestSigner | ((authScheme?: AuthScheme) => Promise<RequestSigner>);
12 /**
13 * Whether to escape request path when signing the request.
14 */
15 signingEscapePath?: boolean;
16 /**
17 * An offset value in milliseconds to apply to all signing times.
18 */
19 systemClockOffset?: number;
20 /**
21 * The region where you want to sign your request against. This
22 * can be different to the region in the endpoint.
23 */
24 signingRegion?: string;
25 /**
26 * The injectable SigV4-compatible signer class constructor. If not supplied,
27 * regular SignatureV4 constructor will be used.
28 * @private
29 */
30 signerConstructor?: new (options: SignatureV4Init & SignatureV4CryptoInit) => RequestSigner;
31}
32export interface SigV4AuthInputConfig {
33 /**
34 * The credentials used to sign requests.
35 */
36 credentials?: AwsCredentialIdentity | Provider<AwsCredentialIdentity>;
37 /**
38 * The signer to use when signing requests.
39 */
40 signer?: RequestSigner | ((authScheme?: AuthScheme) => Promise<RequestSigner>);
41 /**
42 * Whether to escape request path when signing the request.
43 */
44 signingEscapePath?: boolean;
45 /**
46 * An offset value in milliseconds to apply to all signing times.
47 */
48 systemClockOffset?: number;
49}
50interface PreviouslyResolved {
51 credentialDefaultProvider: (input: any) => MemoizedProvider<AwsCredentialIdentity>;
52 region: string | Provider<string>;
53 regionInfoProvider?: RegionInfoProvider;
54 signingName?: string;
55 defaultSigningName?: string;
56 serviceId: string;
57 sha256: HashConstructor;
58 useFipsEndpoint: Provider<boolean>;
59 useDualstackEndpoint: Provider<boolean>;
60}
61interface SigV4PreviouslyResolved {
62 credentialDefaultProvider: (input: any) => MemoizedProvider<AwsCredentialIdentity>;
63 region: string | Provider<string>;
64 signingName: string;
65 sha256: HashConstructor;
66 logger?: Logger;
67}
68export interface AwsAuthResolvedConfig {
69 /**
70 * Resolved value for input config {@link AwsAuthInputConfig.credentials}
71 * This provider MAY memoize the loaded credentials for certain period.
72 * See {@link MemoizedProvider} for more information.
73 */
74 credentials: MemoizedProvider<AwsCredentialIdentity>;
75 /**
76 * Resolved value for input config {@link AwsAuthInputConfig.signer}
77 */
78 signer: (authScheme?: AuthScheme) => Promise<RequestSigner>;
79 /**
80 * Resolved value for input config {@link AwsAuthInputConfig.signingEscapePath}
81 */
82 signingEscapePath: boolean;
83 /**
84 * Resolved value for input config {@link AwsAuthInputConfig.systemClockOffset}
85 */
86 systemClockOffset: number;
87}
88export interface SigV4AuthResolvedConfig extends AwsAuthResolvedConfig {
89}
90export declare const resolveAwsAuthConfig: <T>(input: T & AwsAuthInputConfig & PreviouslyResolved) => T & AwsAuthResolvedConfig;
91export declare const resolveSigV4AuthConfig: <T>(input: T & SigV4AuthInputConfig & SigV4PreviouslyResolved) => T & SigV4AuthResolvedConfig;
92export {};