Skip to content

Commit 962a956

Browse files
author
Steven Yuan
committed
feat(types): update identity types
1 parent 90b380a commit 962a956

File tree

9 files changed

+79
-35
lines changed

9 files changed

+79
-35
lines changed

packages/types/src/credentials.ts

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,14 @@
1+
import { AwsCredentialIdentity } from "./identity";
12
import { Provider } from "./util";
23

3-
export interface AwsCredentialIdentity {
4-
/**
5-
* A {Date} when the identity or credential will no longer be accepted.
6-
*/
7-
readonly expiration?: Date;
8-
}
9-
104
/**
115
* An object representing temporary or permanent AWS credentials.
6+
*
7+
* @deprecated Use {@AwsCredentialIdentity}
128
*/
13-
export interface Credentials extends AwsCredentialIdentity {
14-
/**
15-
* AWS access key ID
16-
*/
17-
readonly accessKeyId: string;
18-
19-
/**
20-
* AWS secret access key
21-
*/
22-
readonly secretAccessKey: string;
23-
24-
/**
25-
* A security or session token to use with these credentials. Usually
26-
* present for temporary credentials.
27-
*/
28-
readonly sessionToken?: string;
29-
}
9+
export interface Credentials extends AwsCredentialIdentity { }
3010

11+
/**
12+
* @deprecated Use {@AwsCredentialIdentityProvider}
13+
*/
3114
export type CredentialProvider = Provider<Credentials>;
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { Identity } from "./Identity";
2+
3+
export interface AnonymousIdentity extends Identity { }
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { Identity, IdentityProvider } from "./Identity";
2+
3+
export interface AwsCredentialIdentity extends Identity {
4+
/**
5+
* AWS access key ID
6+
*/
7+
readonly accessKeyId: string;
8+
9+
/**
10+
* AWS secret access key
11+
*/
12+
readonly secretAccessKey: string;
13+
14+
/**
15+
* A security or session token to use with these credentials. Usually
16+
* present for temporary credentials.
17+
*/
18+
readonly sessionToken?: string;
19+
}
20+
21+
export type AwsCredentialIdentityProvider = IdentityProvider<AwsCredentialIdentity>;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
export interface Identity {
2+
/**
3+
* A {Date} when the identity or credential will no longer be accepted.
4+
*/
5+
readonly expiration?: Date;
6+
}
7+
8+
export type IdentityProvider<IdentityT extends Identity> = {
9+
(identityProperties?: Record<string, any>): Promise<IdentityT>;
10+
};
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { Identity, IdentityProvider } from "./Identity";
2+
3+
export interface LoginIdentity extends Identity {
4+
/**
5+
* Identity username
6+
*/
7+
readonly username: string;
8+
9+
/**
10+
* Identity password
11+
*/
12+
readonly password: string;
13+
}
14+
15+
export type LoginIdentityProvider = IdentityProvider<LoginIdentity>;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { Identity, IdentityProvider } from "./Identity";
2+
3+
export interface TokenIdentity extends Identity {
4+
/**
5+
* The literal token string
6+
*/
7+
readonly token: string;
8+
}
9+
10+
export type TokenIdentityProvider = IdentityProvider<TokenIdentity>;

packages/types/src/identity/index.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export * from "./AnonymousIdentity";
2+
export * from "./AwsCredentialIdentity";
3+
export * from "./Identity";
4+
export * from "./LoginIdentity";
5+
export * from "./TokenIdentity";

packages/types/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export * from "./crypto";
77
export * from "./endpoint";
88
export * from "./eventStream";
99
export * from "./http";
10+
export * from "./identity";
1011
export * from "./logger";
1112
export * from "./middleware";
1213
export * from "./pagination";

packages/types/src/token.ts

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
1+
import { TokenIdentity } from "./identity";
12
import { Provider } from "./util";
23

34
/**
45
* An object representing temporary or permanent AWS token.
6+
*
7+
* @deprecated Use {@TokenIdentity}
58
*/
6-
export interface Token {
7-
/**
8-
*The literal token string
9-
*/
10-
readonly token: string;
11-
/**
12-
* A {Date} when these token will no longer be accepted.
13-
* When expiration is not defined, the token is assumed to be permanent.
14-
*/
15-
readonly expiration?: Date;
16-
}
9+
export interface Token extends TokenIdentity { }
1710

11+
/**
12+
* @deprecated Use {@TokenIdentityProvider}
13+
*/
1814
export type TokenProvider = Provider<Token>;

0 commit comments

Comments
 (0)