forked from DavidTanner/nodecredstash
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.d.ts
71 lines (64 loc) · 1.93 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// Type definitions for aws-credstash
//
// Forked from node-credtash v2.0.0 types:
// Project: https://github.com/DavidTanner/nodecredstash
// Definitions by: Mike Cook <https://github.com/migstopheles>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/// <reference types="node"/>
import * as AWS from "aws-sdk";
interface CredstashConfig {
table?: string;
awsOpts?: AWS.KMS.ClientConfiguration;
dynamoOpts?: AWS.DynamoDB.ClientConfiguration;
kmsKey?: string;
kmsOpts?: AWS.KMS.ClientConfiguration;
}
interface CredstashContext {
[key: string]: string;
}
interface PutSecretOptions {
name: string;
secret: string;
context?: CredstashContext;
digest?: string;
version?: number;
}
interface Credstash {
getHighestVersion: (options: {
name: string;
}) => Promise<AWS.DynamoDB.AttributeMap>;
incrementVersion: (options: { name: string }) => Promise<string>;
putSecret: (
options: PutSecretOptions
) => Promise<AWS.DynamoDB.DocumentClient.PutItemOutput>;
decryptStash: (
stash: { key: string },
context?: CredstashContext
) => Promise<AWS.KMS.DecryptResponse>;
getAllVersions: (options: {
name: string;
context?: CredstashContext;
limit?: number;
}) => Promise<Array<{ version: string; secret: string }>>;
getSecret: (options: {
name: string;
context?: CredstashContext;
version?: number;
}) => Promise<string>;
deleteSecrets: (options: {
name: string;
}) => Promise<AWS.DynamoDB.DocumentClient.DeleteItemOutput[]>;
deleteSecret: (options: {
name: string;
version: number;
}) => Promise<AWS.DynamoDB.DocumentClient.DeleteItemOutput>;
listSecrets: () => Promise<string[]>;
getAllSecrets: (options: {
version?: number;
context?: CredstashContext;
startsWith?: string;
}) => Promise<{ [key: string]: string }>;
createDdbTable: () => Promise<void>;
}
declare function Credstash(config: CredstashConfig): Credstash;
export = Credstash;