UNPKG

3.31 kBTypeScriptView Raw
1import { SignatureV4CryptoInit, SignatureV4Init } from "@aws-sdk/signature-v4";
2import { Credentials, HashConstructor, Logger, MemoizedProvider, Provider, RegionInfoProvider, RequestSigner } from "@aws-sdk/types";
3export interface AwsAuthInputConfig {
4 /**
5 * The credentials used to sign requests.
6 */
7 credentials?: Credentials | Provider<Credentials>;
8 /**
9 * The signer to use when signing requests.
10 */
11 signer?: RequestSigner | Provider<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?: Credentials | Provider<Credentials>;
37 /**
38 * The signer to use when signing requests.
39 */
40 signer?: RequestSigner | Provider<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<Credentials>;
52 region: string | Provider<string>;
53 regionInfoProvider: RegionInfoProvider;
54 signingName?: string;
55 serviceId: string;
56 sha256: HashConstructor;
57 useFipsEndpoint: Provider<boolean>;
58 useDualstackEndpoint: Provider<boolean>;
59}
60interface SigV4PreviouslyResolved {
61 credentialDefaultProvider: (input: any) => MemoizedProvider<Credentials>;
62 region: string | Provider<string>;
63 signingName: string;
64 sha256: HashConstructor;
65 logger?: Logger;
66}
67export interface AwsAuthResolvedConfig {
68 /**
69 * Resolved value for input config {@link AwsAuthInputConfig.credentials}
70 * This provider MAY memoize the loaded credentials for certain period.
71 * See {@link MemoizedProvider} for more information.
72 */
73 credentials: MemoizedProvider<Credentials>;
74 /**
75 * Resolved value for input config {@link AwsAuthInputConfig.signer}
76 */
77 signer: Provider<RequestSigner>;
78 /**
79 * Resolved value for input config {@link AwsAuthInputConfig.signingEscapePath}
80 */
81 signingEscapePath: boolean;
82 /**
83 * Resolved value for input config {@link AwsAuthInputConfig.systemClockOffset}
84 */
85 systemClockOffset: number;
86}
87export interface SigV4AuthResolvedConfig extends AwsAuthResolvedConfig {
88}
89export declare const resolveAwsAuthConfig: <T>(input: T & AwsAuthInputConfig & PreviouslyResolved) => T & AwsAuthResolvedConfig;
90export declare const resolveSigV4AuthConfig: <T>(input: T & SigV4AuthInputConfig & SigV4PreviouslyResolved) => T & SigV4AuthResolvedConfig;
91export {};