@cloud-copilot/iam-collect 0.1.9 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cli.js +0 -1
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/download/download.d.ts.map +1 -1
- package/dist/cjs/download/download.js +2 -3
- package/dist/cjs/download/download.js.map +1 -1
- package/dist/cjs/syncs/lambda/lambda.d.ts +1 -2
- package/dist/cjs/syncs/lambda/lambda.d.ts.map +1 -1
- package/dist/cjs/syncs/lambda/lambda.js +35 -38
- package/dist/cjs/syncs/lambda/lambda.js.map +1 -1
- package/dist/cjs/syncs/sync.d.ts +1 -2
- package/dist/cjs/syncs/sync.d.ts.map +1 -1
- package/dist/cjs/syncs/typedSync.d.ts +100 -0
- package/dist/cjs/syncs/typedSync.d.ts.map +1 -1
- package/dist/cjs/syncs/typedSync.js +67 -0
- package/dist/cjs/syncs/typedSync.js.map +1 -1
- package/dist/esm/cli.js +0 -1
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/download/download.d.ts.map +1 -1
- package/dist/esm/download/download.js +2 -3
- package/dist/esm/download/download.js.map +1 -1
- package/dist/esm/syncs/lambda/lambda.d.ts +1 -2
- package/dist/esm/syncs/lambda/lambda.d.ts.map +1 -1
- package/dist/esm/syncs/lambda/lambda.js +36 -39
- package/dist/esm/syncs/lambda/lambda.js.map +1 -1
- package/dist/esm/syncs/sync.d.ts +1 -2
- package/dist/esm/syncs/sync.d.ts.map +1 -1
- package/dist/esm/syncs/typedSync.d.ts +100 -0
- package/dist/esm/syncs/typedSync.d.ts.map +1 -1
- package/dist/esm/syncs/typedSync.js +64 -0
- package/dist/esm/syncs/typedSync.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/cli.js
CHANGED
package/dist/cjs/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";;;AAEA,4CAAsD;AACtD,0DAAwD;AACxD,sEAAyE;AACzE,gEAA+D;AAC/D,kEAA8D;AAC9D,wDAAqD;AAErD,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IACtB,MAAM,OAAO,GAAG,MAAM,IAAA,qCAAiB,GAAE,CAAA;IACzC,MAAM,GAAG,GAAG,IAAA,uBAAiB,EAC3B,aAAa,EACb;QACE,IAAI,EAAE;YACJ,WAAW,EAAE,+CAA+C;YAC5D,OAAO,EAAE,EAAE;SACZ;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,mBAAmB;YAChC,OAAO,EAAE;gBACP,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gCAAgC;oBAC7C,MAAM,EAAE,UAAU;iBACnB;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kCAAkC;oBAC/C,MAAM,EAAE,UAAU;iBACnB;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8BAA8B;oBAC3C,MAAM,EAAE,UAAU;iBACnB;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0BAA0B;oBACvC,MAAM,EAAE,UAAU;iBACnB;aACF;SACF;KACF,EACD,EAAE,EACF;QACE,SAAS,EAAE,aAAa;QACxB,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,IAAI;QACvB,OAAO,EAAE,OAAO;KACjB,CACF,CAAA;IAED,IAAI,GAAG,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QAC9B,IAAI,IAAA,sCAAmB,GAAE,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC9B,MAAM,IAAA,gDAA0B,GAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";;;AAEA,4CAAsD;AACtD,0DAAwD;AACxD,sEAAyE;AACzE,gEAA+D;AAC/D,kEAA8D;AAC9D,wDAAqD;AAErD,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IACtB,MAAM,OAAO,GAAG,MAAM,IAAA,qCAAiB,GAAE,CAAA;IACzC,MAAM,GAAG,GAAG,IAAA,uBAAiB,EAC3B,aAAa,EACb;QACE,IAAI,EAAE;YACJ,WAAW,EAAE,+CAA+C;YAC5D,OAAO,EAAE,EAAE;SACZ;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,mBAAmB;YAChC,OAAO,EAAE;gBACP,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gCAAgC;oBAC7C,MAAM,EAAE,UAAU;iBACnB;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kCAAkC;oBAC/C,MAAM,EAAE,UAAU;iBACnB;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8BAA8B;oBAC3C,MAAM,EAAE,UAAU;iBACnB;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0BAA0B;oBACvC,MAAM,EAAE,UAAU;iBACnB;aACF;SACF;KACF,EACD,EAAE,EACF;QACE,SAAS,EAAE,aAAa;QACxB,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,IAAI;QACvB,OAAO,EAAE,OAAO;KACjB,CACF,CAAA;IAED,IAAI,GAAG,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QAC9B,IAAI,IAAA,sCAAmB,GAAE,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC9B,MAAM,IAAA,gDAA0B,GAAE,CAAA;IACpC,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACzC,MAAM,aAAa,GAAG,qBAAqB,CAAA;QAC3C,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;QAC7F,MAAM,OAAO,GAAG,IAAA,+BAAe,EAAC,WAAW,CAAC,CAAA;QAC5C,MAAM,IAAA,0BAAY,EAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACvF,CAAC;AACH,CAAC,CAAA;AAED,IAAI,EAAE;KACH,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC;KACD,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;KACd,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,cAAc,EACf,MAAM,qBAAqB,CAAA;AAO5B,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EAAE,EACzB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,cAAc,EACf,MAAM,qBAAqB,CAAA;AAO5B,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EAAE,EACzB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,CAyEf"}
|
|
@@ -21,9 +21,8 @@ async function downloadData(configs, accountIds, regions, services) {
|
|
|
21
21
|
console.log(`Downloading data for account ${accountId}`);
|
|
22
22
|
const authForAccount = (0, config_js_1.getAccountAuthConfig)(accountId, configs);
|
|
23
23
|
const credentials = await (0, auth_js_1.getCredentials)(accountId, authForAccount);
|
|
24
|
-
let enabledRegions = [];
|
|
25
24
|
if (regions.length === 0) {
|
|
26
|
-
|
|
25
|
+
regions = await (0, regions_js_1.getEnabledRegions)(credentials);
|
|
27
26
|
// console.log(`Enabled regions for account ${accountId}:`, enabledRegions)
|
|
28
27
|
}
|
|
29
28
|
const storage = createStorageClient(storageConfig, credentials.partition);
|
|
@@ -34,7 +33,7 @@ async function downloadData(configs, accountIds, regions, services) {
|
|
|
34
33
|
const enabledServices = (0, config_js_1.servicesForAccount)(accountId, configs, services);
|
|
35
34
|
for (const service of enabledServices) {
|
|
36
35
|
console.log(`Service ${service} for account ${accountId}`);
|
|
37
|
-
const serviceRegions = (0, config_js_1.regionsForService)(service, accountId, configs,
|
|
36
|
+
const serviceRegions = (0, config_js_1.regionsForService)(service, accountId, configs, regions);
|
|
38
37
|
//Global syncs for the service
|
|
39
38
|
const globalSyncs = (0, syncMap_js_1.getGlobalSyncsForService)(service);
|
|
40
39
|
const globalRegion = serviceRegions.at(0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":";;AAgBA,
|
|
1
|
+
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":";;AAgBA,oCA8EC;AA9FD,4CAAoF;AACpF,mDAQ4B;AAE5B,2FAAoF;AACpF,8CAAiD;AACjD,gDAA4C;AAC5C,oDAA0F;AAEnF,KAAK,UAAU,YAAY,CAChC,OAAyB,EACzB,UAAoB,EACpB,OAAiB,EACjB,QAAkB;IAElB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,kBAAkB,GAAG,MAAM,IAAA,+BAAqB,GAAE,CAAA;QACxD,MAAM,SAAS,GAAG,MAAM,IAAA,sBAAY,EAAC,kBAAkB,CAAC,CAAA;QACxD,UAAU,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IACpC,CAAC;IAED,MAAM,aAAa,GAAG,IAAA,4BAAgB,EAAC,OAAO,CAAC,CAAA;IAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;IAC1E,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAA;QACxD,MAAM,cAAc,GAAG,IAAA,gCAAoB,EAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAC/D,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAc,EAAC,SAAS,EAAE,cAAc,CAAC,CAAA;QAEnE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,GAAG,MAAM,IAAA,8BAAiB,EAAC,WAAW,CAAC,CAAA;YAC9C,2EAA2E;QAC7E,CAAC;QAED,MAAM,OAAO,GAAG,mBAAmB,CAAC,aAAa,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;QAEzE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,QAAQ,GAAG,yBAAW,CAAA;QACxB,CAAC;QACD,MAAM,WAAW,GAAG,EAAE,CAAA;QAEtB,MAAM,eAAe,GAAG,IAAA,8BAAkB,EAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QACxE,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,gBAAgB,SAAS,EAAE,CAAC,CAAA;YAC1D,MAAM,cAAc,GAAG,IAAA,6BAAiB,EAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAE9E,8BAA8B;YAC9B,MAAM,WAAW,GAAG,IAAA,qCAAwB,EAAC,OAAO,CAAC,CAAA;YACrD,MAAM,YAAY,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;YAC1C,MAAM,YAAY,GAAG,IAAA,sCAA0B,EAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;YAC1F,MAAM,iBAAiB,GAAG,MAAM,IAAA,wBAAc,EAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;YAE5E,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,MAAM,UAAU,CAAC,OAAO,CACtB,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACP,YAAY,CAAC,QAAQ,EACrB,WAAW,CACZ,CAAA;YACH,CAAC;YAED,gCAAgC;YAChC,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,gBAAgB,SAAS,cAAc,MAAM,EAAE,CAAC,CAAA;gBAC9E,MAAM,aAAa,GAAG,IAAA,uCAA0B,EAAC,OAAO,CAAC,CAAA;gBACzD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,SAAQ;gBACV,CAAC;gBACD,MAAM,SAAS,GAAG,IAAA,sCAA0B,EAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;gBACjF,MAAM,mBAAmB,GAAG,MAAM,IAAA,wBAAc,EAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;gBAE3E,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;oBACjC,MAAM,IAAI,CAAC,OAAO,CAChB,SAAS,EACT,MAAM,EACN,mBAAmB,EACnB,OAAO,EACP,SAAS,CAAC,QAAQ,EAClB,WAAW,CACZ,CAAA;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,aAA4B,EAAE,SAAiB;IAC1E,IAAI,aAAa,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAClC,OAAO,IAAI,gDAAqB,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IACjE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,aAAa,CAAC,IAAI,8BAA8B,CAAC,CAAA;AAChG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lambda.d.ts","sourceRoot":"","sources":["../../../../src/syncs/lambda/lambda.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lambda.d.ts","sourceRoot":"","sources":["../../../../src/syncs/lambda/lambda.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,UAAU,2BAgDtB,CAAA"}
|
|
@@ -2,50 +2,47 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LambdaSync = void 0;
|
|
4
4
|
const client_lambda_1 = require("@aws-sdk/client-lambda");
|
|
5
|
-
const ClientPool_js_1 = require("../../aws/ClientPool.js");
|
|
6
5
|
const client_tools_js_1 = require("../../utils/client-tools.js");
|
|
7
|
-
const sync_js_1 = require("../sync.js");
|
|
8
6
|
const typedSync_js_1 = require("../typedSync.js");
|
|
9
|
-
exports.LambdaSync = {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
7
|
+
exports.LambdaSync = (0, typedSync_js_1.createTypedSyncOperation)('lambda', 'lambdaFunctions', (0, typedSync_js_1.createResourceSyncType)({
|
|
8
|
+
client: client_lambda_1.LambdaClient,
|
|
9
|
+
command: client_lambda_1.ListFunctionsCommand,
|
|
10
|
+
key: 'Functions',
|
|
11
|
+
paginationConfig: {
|
|
12
|
+
inputKey: 'Marker',
|
|
13
|
+
outputKey: 'NextMarker'
|
|
14
|
+
},
|
|
15
|
+
resourceTypeParts: (accountId, region) => ({
|
|
16
|
+
service: 'lambda',
|
|
17
|
+
resourceType: 'function',
|
|
18
|
+
account: accountId,
|
|
19
|
+
region: region
|
|
20
|
+
}),
|
|
21
|
+
extraFields: {
|
|
22
|
+
tags: async (client, resource) => {
|
|
23
|
+
return (0, client_tools_js_1.runAndCatch404)(async () => {
|
|
24
|
+
const tagResult = await client.send(new client_lambda_1.ListTagsCommand({ Resource: resource.FunctionArn }));
|
|
25
|
+
return tagResult.Tags;
|
|
26
|
+
});
|
|
27
|
+
},
|
|
28
|
+
policy: async (client, resource) => {
|
|
29
|
+
return (0, client_tools_js_1.runAndCatch404)(async () => {
|
|
30
|
+
const policyResult = await client.send(new client_lambda_1.GetPolicyCommand({ FunctionName: resource.FunctionName }));
|
|
23
31
|
if (policyResult.Policy) {
|
|
24
32
|
return JSON.parse(policyResult.Policy);
|
|
25
33
|
}
|
|
26
34
|
return undefined;
|
|
27
35
|
});
|
|
28
|
-
const tags = await (0, client_tools_js_1.runAndCatch404)(async () => {
|
|
29
|
-
const tagsResult = await lambdaClient.send(new client_lambda_1.ListTagsCommand({ Resource: func.FunctionArn }));
|
|
30
|
-
return tagsResult.Tags;
|
|
31
|
-
});
|
|
32
|
-
functionData.push({
|
|
33
|
-
arn: func.FunctionArn,
|
|
34
|
-
metadata: {
|
|
35
|
-
role: func.Role,
|
|
36
|
-
arn: func.FunctionArn,
|
|
37
|
-
name: func.FunctionName
|
|
38
|
-
},
|
|
39
|
-
policy,
|
|
40
|
-
tags
|
|
41
|
-
});
|
|
42
36
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
37
|
+
},
|
|
38
|
+
tags: (func) => func.extraFields.tags,
|
|
39
|
+
arn: (func) => func.FunctionArn,
|
|
40
|
+
results: (func) => ({
|
|
41
|
+
metadata: {
|
|
42
|
+
role: func.Role,
|
|
43
|
+
name: func.FunctionName
|
|
44
|
+
},
|
|
45
|
+
policy: func.extraFields.policy
|
|
46
|
+
})
|
|
47
|
+
}));
|
|
51
48
|
//# sourceMappingURL=lambda.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../src/syncs/lambda/lambda.ts"],"names":[],"mappings":";;;AAAA,0DAK+B;
|
|
1
|
+
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../src/syncs/lambda/lambda.ts"],"names":[],"mappings":";;;AAAA,0DAK+B;AAC/B,iEAA4D;AAC5D,kDAAkF;AAErE,QAAA,UAAU,GAAG,IAAA,uCAAwB,EAChD,QAAQ,EACR,iBAAiB,EACjB,IAAA,qCAAsB,EAAC;IACrB,MAAM,EAAE,4BAAY;IACpB,OAAO,EAAE,oCAAoB;IAC7B,GAAG,EAAE,WAAW;IAChB,gBAAgB,EAAE;QAChB,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,YAAY;KACxB;IACD,iBAAiB,EAAE,CAAC,SAAiB,EAAE,MAAc,EAAE,EAAE,CAAC,CAAC;QACzD,OAAO,EAAE,QAAQ;QACjB,YAAY,EAAE,UAAU;QACxB,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,MAAM;KACf,CAAC;IACF,WAAW,EAAE;QACX,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;YAC/B,OAAO,IAAA,gCAAc,EAAC,KAAK,IAAI,EAAE;gBAC/B,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CACjC,IAAI,+BAAe,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CACxD,CAAA;gBACD,OAAO,SAAS,CAAC,IAAI,CAAA;YACvB,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;YACjC,OAAO,IAAA,gCAAc,EAAC,KAAK,IAAI,EAAE;gBAC/B,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,IAAI,CACpC,IAAI,gCAAgB,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,CAC9D,CAAA;gBACD,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;oBACxB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;gBACxC,CAAC;gBACD,OAAO,SAAS,CAAA;YAClB,CAAC,CAAC,CAAA;QACJ,CAAC;KACF;IACD,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI;IACrC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAY;IAChC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClB,QAAQ,EAAE;YACR,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,YAAY;SACxB;QACD,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;KAChC,CAAC;CACH,CAAC,CACH,CAAA"}
|
package/dist/cjs/syncs/sync.d.ts
CHANGED
|
@@ -21,9 +21,8 @@ export interface Sync {
|
|
|
21
21
|
*/
|
|
22
22
|
execute(accountId: string, region: string, credentials: AwsCredentialIdentityWithMetaData, storage: AwsIamStore, endpoint: string | undefined, syncOptions: SyncOptions): Promise<void>;
|
|
23
23
|
}
|
|
24
|
-
type DataRecord = Record<string, any> & {
|
|
24
|
+
export type DataRecord = Record<string, any> & {
|
|
25
25
|
arn: string;
|
|
26
26
|
};
|
|
27
27
|
export declare function syncData(records: DataRecord[], storage: AwsIamStore, accountId: string, resourceTypeParts: ResourceTypeParts): Promise<void>;
|
|
28
|
-
export {};
|
|
29
28
|
//# sourceMappingURL=sync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/syncs/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,MAAM,WAAW,WAAW;CAAG;AAE/B,MAAM,WAAW,IAAI;IACnB;;OAEG;IACH,UAAU,EAAE,UAAU,CAAA;IAEtB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAEhB;;OAEG;IACH,OAAO,CACL,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,iCAAiC,EAC9C,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAAA;CACjB;AAED,
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/syncs/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,MAAM,WAAW,WAAW;CAAG;AAE/B,MAAM,WAAW,IAAI;IACnB;;OAEG;IACH,UAAU,EAAE,UAAU,CAAA;IAEtB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAEhB;;OAEG;IACH,OAAO,CACL,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,iCAAiC,EAC9C,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAAA;CACjB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAC9D,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,UAAU,EAAE,EACrB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,iBAAiB,iBAarC"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { Client, Command } from '@smithy/smithy-client';
|
|
2
|
+
import { AwsCredentialIdentityWithMetaData } from '../aws/auth.js';
|
|
3
|
+
import { ResourceTypeParts } from '../persistence/AwsIamStore.js';
|
|
4
|
+
import { AwsService } from '../services.js';
|
|
5
|
+
import { Sync } from './sync.js';
|
|
2
6
|
export type ClientConstructor = new (args: any) => Client<any, any, any, any>;
|
|
3
7
|
type CommandConstructor = new (args: any) => Command<any, any, any, any, any>;
|
|
4
8
|
type ShortCommandConstructor = new (args: any) => Command<any, any, any>;
|
|
@@ -21,5 +25,101 @@ type ClientInstanceOrConstructor = InstanceType<ClientConstructor>;
|
|
|
21
25
|
* @returns Returns an array of resources returned from the commandClass Response Type key
|
|
22
26
|
*/
|
|
23
27
|
export declare function paginateResource<C extends CommandConstructors, K extends keyof ExtractOutputType<C>>(clientClassOrInstance: ClientInstanceOrConstructor, commandClass: C, key: K, paginationConfig: Pagination<C>, params?: Partial<ExtractInputType<C>>): Promise<NonNullable<ExtractOutputType<C>[K]>>;
|
|
28
|
+
type ArrayElementType<T> = T extends (infer E)[] ? E : never;
|
|
29
|
+
type ResourceElementType<C extends CommandConstructors, K extends keyof ExtractOutputType<C>> = ArrayElementType<ExtractOutputType<C>[K]> extends string ? {
|
|
30
|
+
name: string;
|
|
31
|
+
} : ArrayElementType<ExtractOutputType<C>[K]>;
|
|
32
|
+
type PromiseType<T extends Promise<any>> = T extends Promise<infer U> ? U : never;
|
|
33
|
+
export type ExtraFieldsDefinition<C extends ClientConstructor, Cmd extends CommandConstructors, K extends keyof ExtractOutputType<Cmd>> = Record<string, (client: InstanceType<C>, resource: ResourceElementType<Cmd, K>, accountId: string, region: string) => Promise<any>>;
|
|
34
|
+
type ExtraFieldsReturnType<T extends ExtraFieldsDefinition<any, any, any>> = {
|
|
35
|
+
[K in keyof T]: PromiseType<ReturnType<T[K]>>;
|
|
36
|
+
};
|
|
37
|
+
export type ExtendedResourceElementType<Cmd extends CommandConstructors, K extends keyof ExtractOutputType<Cmd>, ExtraFieldsFunc extends ExtraFieldsDefinition<any, Cmd, K>> = ResourceElementType<Cmd, K> & {
|
|
38
|
+
extraFields: ExtraFieldsReturnType<ExtraFieldsFunc>;
|
|
39
|
+
};
|
|
40
|
+
export type ResourceSyncType<C extends ClientConstructor, Cmd extends CommandConstructors, K extends keyof ExtractOutputType<Cmd>, ExtraFields extends ExtraFieldsDefinition<C, Cmd, K> = Record<string, () => Promise<any>>> = {
|
|
41
|
+
/**
|
|
42
|
+
* The client to use
|
|
43
|
+
*/
|
|
44
|
+
client: C;
|
|
45
|
+
/**
|
|
46
|
+
* The command to execute
|
|
47
|
+
*/
|
|
48
|
+
command: Cmd;
|
|
49
|
+
/**
|
|
50
|
+
* The key of the resource in the command output to pull
|
|
51
|
+
*/
|
|
52
|
+
key: K;
|
|
53
|
+
/**
|
|
54
|
+
* The pagination token to get from the response and pass to the next call
|
|
55
|
+
*/
|
|
56
|
+
paginationConfig: Pagination<Cmd>;
|
|
57
|
+
/**
|
|
58
|
+
* The resource type parts used to sync with storage
|
|
59
|
+
*
|
|
60
|
+
* @param accountId the account ID of the resource
|
|
61
|
+
* @param region the region of the resource
|
|
62
|
+
* @returns the resource type parts
|
|
63
|
+
*/
|
|
64
|
+
resourceTypeParts: (accountId: string, region: string) => ResourceTypeParts;
|
|
65
|
+
/**
|
|
66
|
+
* Custom arguments to pass to the command, useful for filtering resources.
|
|
67
|
+
*
|
|
68
|
+
* @param awsId The AWS account ID being queried
|
|
69
|
+
* @param region The region being queried
|
|
70
|
+
* @returns a set of arguments to pass to the command
|
|
71
|
+
*/
|
|
72
|
+
arguments?: (awsId: string, region: string) => Partial<ExtractInputType<Cmd>>;
|
|
73
|
+
/**
|
|
74
|
+
* Indicates if the resource type is global.
|
|
75
|
+
*/
|
|
76
|
+
globalResourceType?: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* The function to get the tags for a resource
|
|
79
|
+
* @param resource The resource to get the tags for
|
|
80
|
+
* @returns The tags for the resource, or undefined if there are no tags
|
|
81
|
+
*/
|
|
82
|
+
tags: (resource: ExtendedResourceElementType<Cmd, K, ExtraFields>) => Record<string, string> | undefined;
|
|
83
|
+
/**
|
|
84
|
+
* Create the ARN for a resource
|
|
85
|
+
*
|
|
86
|
+
* @param resource the resource to create the ARN for
|
|
87
|
+
* @param region the region the resource is in
|
|
88
|
+
* @param accountId the account the resource is in
|
|
89
|
+
* @returns the ARN for the resource
|
|
90
|
+
*/
|
|
91
|
+
arn: (resource: ResourceElementType<Cmd, K>, region: string, accountId: string) => string;
|
|
92
|
+
/**
|
|
93
|
+
* The extra fields to get for a resource
|
|
94
|
+
* @param client The client to use to get the extra fields
|
|
95
|
+
* @param resource The resource to get the extra fields for
|
|
96
|
+
* @returns an object of extra fields to get, where the key is the name of the field and the value is a function that returns the value of the field
|
|
97
|
+
*/
|
|
98
|
+
extraFields?: ExtraFields;
|
|
99
|
+
/**
|
|
100
|
+
* The results to persist for a resource, except for the ARN and tags, those are handled automatically.
|
|
101
|
+
*
|
|
102
|
+
* @param resource The resource to get the custom fields for, includes extraFields from the `extraFields` function
|
|
103
|
+
*/
|
|
104
|
+
results: (resource: ExtendedResourceElementType<Cmd, K, ExtraFields>) => Record<string, any>;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Creates a resource sync type and returns it. This provides cleaner syntax than
|
|
108
|
+
* making one directly and having to define the types twice.
|
|
109
|
+
*
|
|
110
|
+
* @param config Configuration for the resource sync type
|
|
111
|
+
* @returns The ResourceSyncType instance passed in.
|
|
112
|
+
*/
|
|
113
|
+
export declare function createResourceSyncType<C extends ClientConstructor, Cmd extends CommandConstructors, K extends keyof ExtractOutputType<Cmd>, ExtraFieldsFunc extends ExtraFieldsDefinition<C, Cmd, K>>(config: ResourceSyncType<C, Cmd, K, ExtraFieldsFunc>): ResourceSyncType<C, Cmd, K, ExtraFieldsFunc>;
|
|
114
|
+
/**
|
|
115
|
+
* Paginates a ResourceSyncType and returns the resources.
|
|
116
|
+
*
|
|
117
|
+
* @param resourceTypeSync The configuration to use.
|
|
118
|
+
* @param credentials The credentials to use for AWS API calls. Pass undefined to use the environment credentials.
|
|
119
|
+
* @param region The region to get the resources for.
|
|
120
|
+
* @returns Returns all the resources for the given type in the given region with extraFields populated.
|
|
121
|
+
*/
|
|
122
|
+
export declare function paginateResourceConfig<C extends ClientConstructor, Cmd extends CommandConstructors, K extends keyof ExtractOutputType<Cmd>, ExtraFieldsFunc extends ExtraFieldsDefinition<C, Cmd, K>>(resourceTypeSync: ResourceSyncType<C, Cmd, K, ExtraFieldsFunc>, credentials: AwsCredentialIdentityWithMetaData, region: string, endpoint: string | undefined): Promise<ExtendedResourceElementType<Cmd, K, ExtraFieldsFunc>[]>;
|
|
123
|
+
export declare function createTypedSyncOperation<C extends ClientConstructor, Cmd extends CommandConstructors, K extends keyof ExtractOutputType<Cmd>, ExtraFieldsFunc extends ExtraFieldsDefinition<C, Cmd, K>>(awsService: AwsService, name: string, resourceTypeSync: ResourceSyncType<C, Cmd, K, ExtraFieldsFunc>): Sync;
|
|
24
124
|
export {};
|
|
25
125
|
//# sourceMappingURL=typedSync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typedSync.d.ts","sourceRoot":"","sources":["../../../src/syncs/typedSync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"typedSync.d.ts","sourceRoot":"","sources":["../../../src/syncs/typedSync.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.paginateResource = paginateResource;
|
|
4
|
+
exports.createResourceSyncType = createResourceSyncType;
|
|
5
|
+
exports.paginateResourceConfig = paginateResourceConfig;
|
|
6
|
+
exports.createTypedSyncOperation = createTypedSyncOperation;
|
|
7
|
+
const ClientPool_js_1 = require("../aws/ClientPool.js");
|
|
8
|
+
const sync_js_1 = require("./sync.js");
|
|
4
9
|
/**
|
|
5
10
|
* Paginates through all available resources for a given AWS API
|
|
6
11
|
*
|
|
@@ -56,4 +61,66 @@ function paginationOutputKey(paginationConfig) {
|
|
|
56
61
|
return undefined;
|
|
57
62
|
}
|
|
58
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Creates a resource sync type and returns it. This provides cleaner syntax than
|
|
66
|
+
* making one directly and having to define the types twice.
|
|
67
|
+
*
|
|
68
|
+
* @param config Configuration for the resource sync type
|
|
69
|
+
* @returns The ResourceSyncType instance passed in.
|
|
70
|
+
*/
|
|
71
|
+
function createResourceSyncType(config) {
|
|
72
|
+
return config;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Paginates a ResourceSyncType and returns the resources.
|
|
76
|
+
*
|
|
77
|
+
* @param resourceTypeSync The configuration to use.
|
|
78
|
+
* @param credentials The credentials to use for AWS API calls. Pass undefined to use the environment credentials.
|
|
79
|
+
* @param region The region to get the resources for.
|
|
80
|
+
* @returns Returns all the resources for the given type in the given region with extraFields populated.
|
|
81
|
+
*/
|
|
82
|
+
async function paginateResourceConfig(resourceTypeSync, credentials, region, endpoint) {
|
|
83
|
+
const accountId = credentials.accountId;
|
|
84
|
+
const client = ClientPool_js_1.AwsClientPool.defaultInstance.client(resourceTypeSync.client, credentials, region, endpoint);
|
|
85
|
+
let resources = await paginateResource(client, resourceTypeSync.command, resourceTypeSync.key, resourceTypeSync.paginationConfig, resourceTypeSync.arguments ? resourceTypeSync.arguments(accountId, region) : undefined);
|
|
86
|
+
//If the resource is a string, convert it to an object with the name field set
|
|
87
|
+
if (resources.length > 0 && typeof resources[0] === 'string') {
|
|
88
|
+
resources = resources.map((resource) => ({ name: resource }));
|
|
89
|
+
}
|
|
90
|
+
if (resourceTypeSync.extraFields) {
|
|
91
|
+
await Promise.all(resources.map(async (resource) => {
|
|
92
|
+
const fields = resourceTypeSync.extraFields || {};
|
|
93
|
+
const extraFields = Object.entries(fields);
|
|
94
|
+
//Get the extra field values
|
|
95
|
+
const extraFieldValues = await Promise.all(extraFields.map(async ([key, callback]) => {
|
|
96
|
+
const value = await callback(client, resource, credentials.accountId, region);
|
|
97
|
+
return [key, value];
|
|
98
|
+
}));
|
|
99
|
+
//Map the extra field values to an object
|
|
100
|
+
const extraFieldsObject = extraFieldValues.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});
|
|
101
|
+
resource.extraFields = extraFieldsObject;
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
return resources;
|
|
105
|
+
}
|
|
106
|
+
function createTypedSyncOperation(awsService, name, resourceTypeSync) {
|
|
107
|
+
return {
|
|
108
|
+
awsService,
|
|
109
|
+
name,
|
|
110
|
+
execute: async (accountId, region, credentials, storage, endpoint, syncOptions) => {
|
|
111
|
+
const awsId = credentials.accountId;
|
|
112
|
+
const resources = await paginateResourceConfig(resourceTypeSync, credentials, region, endpoint);
|
|
113
|
+
const records = resources.map((resource) => {
|
|
114
|
+
const result = resourceTypeSync.results(resource);
|
|
115
|
+
result.arn = resourceTypeSync.arn(resource, region, awsId);
|
|
116
|
+
if (result.metadata) {
|
|
117
|
+
result.metadata.arn = result.arn;
|
|
118
|
+
}
|
|
119
|
+
result.tags = resourceTypeSync.tags(resource);
|
|
120
|
+
return result;
|
|
121
|
+
});
|
|
122
|
+
await (0, sync_js_1.syncData)(records, storage, accountId, resourceTypeSync.resourceTypeParts(awsId, region));
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
}
|
|
59
126
|
//# sourceMappingURL=typedSync.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typedSync.js","sourceRoot":"","sources":["../../../src/syncs/typedSync.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"typedSync.js","sourceRoot":"","sources":["../../../src/syncs/typedSync.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/cli.js
CHANGED
package/dist/esm/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAErD,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IACtB,MAAM,OAAO,GAAG,MAAM,iBAAiB,EAAE,CAAA;IACzC,MAAM,GAAG,GAAG,iBAAiB,CAC3B,aAAa,EACb;QACE,IAAI,EAAE;YACJ,WAAW,EAAE,+CAA+C;YAC5D,OAAO,EAAE,EAAE;SACZ;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,mBAAmB;YAChC,OAAO,EAAE;gBACP,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gCAAgC;oBAC7C,MAAM,EAAE,UAAU;iBACnB;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kCAAkC;oBAC/C,MAAM,EAAE,UAAU;iBACnB;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8BAA8B;oBAC3C,MAAM,EAAE,UAAU;iBACnB;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0BAA0B;oBACvC,MAAM,EAAE,UAAU;iBACnB;aACF;SACF;KACF,EACD,EAAE,EACF;QACE,SAAS,EAAE,aAAa;QACxB,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,IAAI;QACvB,OAAO,EAAE,OAAO;KACjB,CACF,CAAA;IAED,IAAI,GAAG,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QAC9B,IAAI,mBAAmB,EAAE,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC9B,MAAM,0BAA0B,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAErD,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IACtB,MAAM,OAAO,GAAG,MAAM,iBAAiB,EAAE,CAAA;IACzC,MAAM,GAAG,GAAG,iBAAiB,CAC3B,aAAa,EACb;QACE,IAAI,EAAE;YACJ,WAAW,EAAE,+CAA+C;YAC5D,OAAO,EAAE,EAAE;SACZ;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,mBAAmB;YAChC,OAAO,EAAE;gBACP,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gCAAgC;oBAC7C,MAAM,EAAE,UAAU;iBACnB;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kCAAkC;oBAC/C,MAAM,EAAE,UAAU;iBACnB;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8BAA8B;oBAC3C,MAAM,EAAE,UAAU;iBACnB;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0BAA0B;oBACvC,MAAM,EAAE,UAAU;iBACnB;aACF;SACF;KACF,EACD,EAAE,EACF;QACE,SAAS,EAAE,aAAa;QACxB,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,IAAI;QACvB,OAAO,EAAE,OAAO;KACjB,CACF,CAAA;IAED,IAAI,GAAG,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QAC9B,IAAI,mBAAmB,EAAE,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC9B,MAAM,0BAA0B,EAAE,CAAA;IACpC,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACzC,MAAM,aAAa,GAAG,qBAAqB,CAAA;QAC3C,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;QAC7F,MAAM,OAAO,GAAG,eAAe,CAAC,WAAW,CAAC,CAAA;QAC5C,MAAM,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACvF,CAAC;AACH,CAAC,CAAA;AAED,IAAI,EAAE;KACH,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC;KACD,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;KACd,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,cAAc,EACf,MAAM,qBAAqB,CAAA;AAO5B,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EAAE,EACzB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,cAAc,EACf,MAAM,qBAAqB,CAAA;AAO5B,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EAAE,EACzB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,CAyEf"}
|
|
@@ -18,9 +18,8 @@ export async function downloadData(configs, accountIds, regions, services) {
|
|
|
18
18
|
console.log(`Downloading data for account ${accountId}`);
|
|
19
19
|
const authForAccount = getAccountAuthConfig(accountId, configs);
|
|
20
20
|
const credentials = await getCredentials(accountId, authForAccount);
|
|
21
|
-
let enabledRegions = [];
|
|
22
21
|
if (regions.length === 0) {
|
|
23
|
-
|
|
22
|
+
regions = await getEnabledRegions(credentials);
|
|
24
23
|
// console.log(`Enabled regions for account ${accountId}:`, enabledRegions)
|
|
25
24
|
}
|
|
26
25
|
const storage = createStorageClient(storageConfig, credentials.partition);
|
|
@@ -31,7 +30,7 @@ export async function downloadData(configs, accountIds, regions, services) {
|
|
|
31
30
|
const enabledServices = servicesForAccount(accountId, configs, services);
|
|
32
31
|
for (const service of enabledServices) {
|
|
33
32
|
console.log(`Service ${service} for account ${accountId}`);
|
|
34
|
-
const serviceRegions = regionsForService(service, accountId, configs,
|
|
33
|
+
const serviceRegions = regionsForService(service, accountId, configs, regions);
|
|
35
34
|
//Global syncs for the service
|
|
36
35
|
const globalSyncs = getGlobalSyncsForService(service);
|
|
37
36
|
const globalRegion = serviceRegions.at(0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACpF,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAGnB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAA;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAE1F,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAyB,EACzB,UAAoB,EACpB,OAAiB,EACjB,QAAkB;IAElB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,kBAAkB,GAAG,MAAM,qBAAqB,EAAE,CAAA;QACxD,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAAC,CAAA;QACxD,UAAU,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IACpC,CAAC;IAED,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;IAC1E,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAA;QACxD,MAAM,cAAc,GAAG,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAC/D,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;QAEnE,IAAI,
|
|
1
|
+
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lambda.d.ts","sourceRoot":"","sources":["../../../../src/syncs/lambda/lambda.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lambda.d.ts","sourceRoot":"","sources":["../../../../src/syncs/lambda/lambda.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,UAAU,2BAgDtB,CAAA"}
|
|
@@ -1,48 +1,45 @@
|
|
|
1
1
|
import { GetPolicyCommand, LambdaClient, ListFunctionsCommand, ListTagsCommand } from '@aws-sdk/client-lambda';
|
|
2
|
-
import { AwsClientPool } from '../../aws/ClientPool.js';
|
|
3
2
|
import { runAndCatch404 } from '../../utils/client-tools.js';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
3
|
+
import { createResourceSyncType, createTypedSyncOperation } from '../typedSync.js';
|
|
4
|
+
export const LambdaSync = createTypedSyncOperation('lambda', 'lambdaFunctions', createResourceSyncType({
|
|
5
|
+
client: LambdaClient,
|
|
6
|
+
command: ListFunctionsCommand,
|
|
7
|
+
key: 'Functions',
|
|
8
|
+
paginationConfig: {
|
|
9
|
+
inputKey: 'Marker',
|
|
10
|
+
outputKey: 'NextMarker'
|
|
11
|
+
},
|
|
12
|
+
resourceTypeParts: (accountId, region) => ({
|
|
13
|
+
service: 'lambda',
|
|
14
|
+
resourceType: 'function',
|
|
15
|
+
account: accountId,
|
|
16
|
+
region: region
|
|
17
|
+
}),
|
|
18
|
+
extraFields: {
|
|
19
|
+
tags: async (client, resource) => {
|
|
20
|
+
return runAndCatch404(async () => {
|
|
21
|
+
const tagResult = await client.send(new ListTagsCommand({ Resource: resource.FunctionArn }));
|
|
22
|
+
return tagResult.Tags;
|
|
23
|
+
});
|
|
24
|
+
},
|
|
25
|
+
policy: async (client, resource) => {
|
|
26
|
+
return runAndCatch404(async () => {
|
|
27
|
+
const policyResult = await client.send(new GetPolicyCommand({ FunctionName: resource.FunctionName }));
|
|
20
28
|
if (policyResult.Policy) {
|
|
21
29
|
return JSON.parse(policyResult.Policy);
|
|
22
30
|
}
|
|
23
31
|
return undefined;
|
|
24
32
|
});
|
|
25
|
-
const tags = await runAndCatch404(async () => {
|
|
26
|
-
const tagsResult = await lambdaClient.send(new ListTagsCommand({ Resource: func.FunctionArn }));
|
|
27
|
-
return tagsResult.Tags;
|
|
28
|
-
});
|
|
29
|
-
functionData.push({
|
|
30
|
-
arn: func.FunctionArn,
|
|
31
|
-
metadata: {
|
|
32
|
-
role: func.Role,
|
|
33
|
-
arn: func.FunctionArn,
|
|
34
|
-
name: func.FunctionName
|
|
35
|
-
},
|
|
36
|
-
policy,
|
|
37
|
-
tags
|
|
38
|
-
});
|
|
39
33
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
34
|
+
},
|
|
35
|
+
tags: (func) => func.extraFields.tags,
|
|
36
|
+
arn: (func) => func.FunctionArn,
|
|
37
|
+
results: (func) => ({
|
|
38
|
+
metadata: {
|
|
39
|
+
role: func.Role,
|
|
40
|
+
name: func.FunctionName
|
|
41
|
+
},
|
|
42
|
+
policy: func.extraFields.policy
|
|
43
|
+
})
|
|
44
|
+
}));
|
|
48
45
|
//# sourceMappingURL=lambda.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../src/syncs/lambda/lambda.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,eAAe,EAChB,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../src/syncs/lambda/lambda.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,eAAe,EAChB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAElF,MAAM,CAAC,MAAM,UAAU,GAAG,wBAAwB,CAChD,QAAQ,EACR,iBAAiB,EACjB,sBAAsB,CAAC;IACrB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,oBAAoB;IAC7B,GAAG,EAAE,WAAW;IAChB,gBAAgB,EAAE;QAChB,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,YAAY;KACxB;IACD,iBAAiB,EAAE,CAAC,SAAiB,EAAE,MAAc,EAAE,EAAE,CAAC,CAAC;QACzD,OAAO,EAAE,QAAQ;QACjB,YAAY,EAAE,UAAU;QACxB,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,MAAM;KACf,CAAC;IACF,WAAW,EAAE;QACX,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;YAC/B,OAAO,cAAc,CAAC,KAAK,IAAI,EAAE;gBAC/B,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CACjC,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CACxD,CAAA;gBACD,OAAO,SAAS,CAAC,IAAI,CAAA;YACvB,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;YACjC,OAAO,cAAc,CAAC,KAAK,IAAI,EAAE;gBAC/B,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,IAAI,CACpC,IAAI,gBAAgB,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,CAC9D,CAAA;gBACD,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;oBACxB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;gBACxC,CAAC;gBACD,OAAO,SAAS,CAAA;YAClB,CAAC,CAAC,CAAA;QACJ,CAAC;KACF;IACD,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI;IACrC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAY;IAChC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClB,QAAQ,EAAE;YACR,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,YAAY;SACxB;QACD,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;KAChC,CAAC;CACH,CAAC,CACH,CAAA"}
|
package/dist/esm/syncs/sync.d.ts
CHANGED
|
@@ -21,9 +21,8 @@ export interface Sync {
|
|
|
21
21
|
*/
|
|
22
22
|
execute(accountId: string, region: string, credentials: AwsCredentialIdentityWithMetaData, storage: AwsIamStore, endpoint: string | undefined, syncOptions: SyncOptions): Promise<void>;
|
|
23
23
|
}
|
|
24
|
-
type DataRecord = Record<string, any> & {
|
|
24
|
+
export type DataRecord = Record<string, any> & {
|
|
25
25
|
arn: string;
|
|
26
26
|
};
|
|
27
27
|
export declare function syncData(records: DataRecord[], storage: AwsIamStore, accountId: string, resourceTypeParts: ResourceTypeParts): Promise<void>;
|
|
28
|
-
export {};
|
|
29
28
|
//# sourceMappingURL=sync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/syncs/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,MAAM,WAAW,WAAW;CAAG;AAE/B,MAAM,WAAW,IAAI;IACnB;;OAEG;IACH,UAAU,EAAE,UAAU,CAAA;IAEtB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAEhB;;OAEG;IACH,OAAO,CACL,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,iCAAiC,EAC9C,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAAA;CACjB;AAED,
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/syncs/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,MAAM,WAAW,WAAW;CAAG;AAE/B,MAAM,WAAW,IAAI;IACnB;;OAEG;IACH,UAAU,EAAE,UAAU,CAAA;IAEtB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAEhB;;OAEG;IACH,OAAO,CACL,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,iCAAiC,EAC9C,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAAA;CACjB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAC9D,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,UAAU,EAAE,EACrB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,iBAAiB,iBAarC"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { Client, Command } from '@smithy/smithy-client';
|
|
2
|
+
import { AwsCredentialIdentityWithMetaData } from '../aws/auth.js';
|
|
3
|
+
import { ResourceTypeParts } from '../persistence/AwsIamStore.js';
|
|
4
|
+
import { AwsService } from '../services.js';
|
|
5
|
+
import { Sync } from './sync.js';
|
|
2
6
|
export type ClientConstructor = new (args: any) => Client<any, any, any, any>;
|
|
3
7
|
type CommandConstructor = new (args: any) => Command<any, any, any, any, any>;
|
|
4
8
|
type ShortCommandConstructor = new (args: any) => Command<any, any, any>;
|
|
@@ -21,5 +25,101 @@ type ClientInstanceOrConstructor = InstanceType<ClientConstructor>;
|
|
|
21
25
|
* @returns Returns an array of resources returned from the commandClass Response Type key
|
|
22
26
|
*/
|
|
23
27
|
export declare function paginateResource<C extends CommandConstructors, K extends keyof ExtractOutputType<C>>(clientClassOrInstance: ClientInstanceOrConstructor, commandClass: C, key: K, paginationConfig: Pagination<C>, params?: Partial<ExtractInputType<C>>): Promise<NonNullable<ExtractOutputType<C>[K]>>;
|
|
28
|
+
type ArrayElementType<T> = T extends (infer E)[] ? E : never;
|
|
29
|
+
type ResourceElementType<C extends CommandConstructors, K extends keyof ExtractOutputType<C>> = ArrayElementType<ExtractOutputType<C>[K]> extends string ? {
|
|
30
|
+
name: string;
|
|
31
|
+
} : ArrayElementType<ExtractOutputType<C>[K]>;
|
|
32
|
+
type PromiseType<T extends Promise<any>> = T extends Promise<infer U> ? U : never;
|
|
33
|
+
export type ExtraFieldsDefinition<C extends ClientConstructor, Cmd extends CommandConstructors, K extends keyof ExtractOutputType<Cmd>> = Record<string, (client: InstanceType<C>, resource: ResourceElementType<Cmd, K>, accountId: string, region: string) => Promise<any>>;
|
|
34
|
+
type ExtraFieldsReturnType<T extends ExtraFieldsDefinition<any, any, any>> = {
|
|
35
|
+
[K in keyof T]: PromiseType<ReturnType<T[K]>>;
|
|
36
|
+
};
|
|
37
|
+
export type ExtendedResourceElementType<Cmd extends CommandConstructors, K extends keyof ExtractOutputType<Cmd>, ExtraFieldsFunc extends ExtraFieldsDefinition<any, Cmd, K>> = ResourceElementType<Cmd, K> & {
|
|
38
|
+
extraFields: ExtraFieldsReturnType<ExtraFieldsFunc>;
|
|
39
|
+
};
|
|
40
|
+
export type ResourceSyncType<C extends ClientConstructor, Cmd extends CommandConstructors, K extends keyof ExtractOutputType<Cmd>, ExtraFields extends ExtraFieldsDefinition<C, Cmd, K> = Record<string, () => Promise<any>>> = {
|
|
41
|
+
/**
|
|
42
|
+
* The client to use
|
|
43
|
+
*/
|
|
44
|
+
client: C;
|
|
45
|
+
/**
|
|
46
|
+
* The command to execute
|
|
47
|
+
*/
|
|
48
|
+
command: Cmd;
|
|
49
|
+
/**
|
|
50
|
+
* The key of the resource in the command output to pull
|
|
51
|
+
*/
|
|
52
|
+
key: K;
|
|
53
|
+
/**
|
|
54
|
+
* The pagination token to get from the response and pass to the next call
|
|
55
|
+
*/
|
|
56
|
+
paginationConfig: Pagination<Cmd>;
|
|
57
|
+
/**
|
|
58
|
+
* The resource type parts used to sync with storage
|
|
59
|
+
*
|
|
60
|
+
* @param accountId the account ID of the resource
|
|
61
|
+
* @param region the region of the resource
|
|
62
|
+
* @returns the resource type parts
|
|
63
|
+
*/
|
|
64
|
+
resourceTypeParts: (accountId: string, region: string) => ResourceTypeParts;
|
|
65
|
+
/**
|
|
66
|
+
* Custom arguments to pass to the command, useful for filtering resources.
|
|
67
|
+
*
|
|
68
|
+
* @param awsId The AWS account ID being queried
|
|
69
|
+
* @param region The region being queried
|
|
70
|
+
* @returns a set of arguments to pass to the command
|
|
71
|
+
*/
|
|
72
|
+
arguments?: (awsId: string, region: string) => Partial<ExtractInputType<Cmd>>;
|
|
73
|
+
/**
|
|
74
|
+
* Indicates if the resource type is global.
|
|
75
|
+
*/
|
|
76
|
+
globalResourceType?: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* The function to get the tags for a resource
|
|
79
|
+
* @param resource The resource to get the tags for
|
|
80
|
+
* @returns The tags for the resource, or undefined if there are no tags
|
|
81
|
+
*/
|
|
82
|
+
tags: (resource: ExtendedResourceElementType<Cmd, K, ExtraFields>) => Record<string, string> | undefined;
|
|
83
|
+
/**
|
|
84
|
+
* Create the ARN for a resource
|
|
85
|
+
*
|
|
86
|
+
* @param resource the resource to create the ARN for
|
|
87
|
+
* @param region the region the resource is in
|
|
88
|
+
* @param accountId the account the resource is in
|
|
89
|
+
* @returns the ARN for the resource
|
|
90
|
+
*/
|
|
91
|
+
arn: (resource: ResourceElementType<Cmd, K>, region: string, accountId: string) => string;
|
|
92
|
+
/**
|
|
93
|
+
* The extra fields to get for a resource
|
|
94
|
+
* @param client The client to use to get the extra fields
|
|
95
|
+
* @param resource The resource to get the extra fields for
|
|
96
|
+
* @returns an object of extra fields to get, where the key is the name of the field and the value is a function that returns the value of the field
|
|
97
|
+
*/
|
|
98
|
+
extraFields?: ExtraFields;
|
|
99
|
+
/**
|
|
100
|
+
* The results to persist for a resource, except for the ARN and tags, those are handled automatically.
|
|
101
|
+
*
|
|
102
|
+
* @param resource The resource to get the custom fields for, includes extraFields from the `extraFields` function
|
|
103
|
+
*/
|
|
104
|
+
results: (resource: ExtendedResourceElementType<Cmd, K, ExtraFields>) => Record<string, any>;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Creates a resource sync type and returns it. This provides cleaner syntax than
|
|
108
|
+
* making one directly and having to define the types twice.
|
|
109
|
+
*
|
|
110
|
+
* @param config Configuration for the resource sync type
|
|
111
|
+
* @returns The ResourceSyncType instance passed in.
|
|
112
|
+
*/
|
|
113
|
+
export declare function createResourceSyncType<C extends ClientConstructor, Cmd extends CommandConstructors, K extends keyof ExtractOutputType<Cmd>, ExtraFieldsFunc extends ExtraFieldsDefinition<C, Cmd, K>>(config: ResourceSyncType<C, Cmd, K, ExtraFieldsFunc>): ResourceSyncType<C, Cmd, K, ExtraFieldsFunc>;
|
|
114
|
+
/**
|
|
115
|
+
* Paginates a ResourceSyncType and returns the resources.
|
|
116
|
+
*
|
|
117
|
+
* @param resourceTypeSync The configuration to use.
|
|
118
|
+
* @param credentials The credentials to use for AWS API calls. Pass undefined to use the environment credentials.
|
|
119
|
+
* @param region The region to get the resources for.
|
|
120
|
+
* @returns Returns all the resources for the given type in the given region with extraFields populated.
|
|
121
|
+
*/
|
|
122
|
+
export declare function paginateResourceConfig<C extends ClientConstructor, Cmd extends CommandConstructors, K extends keyof ExtractOutputType<Cmd>, ExtraFieldsFunc extends ExtraFieldsDefinition<C, Cmd, K>>(resourceTypeSync: ResourceSyncType<C, Cmd, K, ExtraFieldsFunc>, credentials: AwsCredentialIdentityWithMetaData, region: string, endpoint: string | undefined): Promise<ExtendedResourceElementType<Cmd, K, ExtraFieldsFunc>[]>;
|
|
123
|
+
export declare function createTypedSyncOperation<C extends ClientConstructor, Cmd extends CommandConstructors, K extends keyof ExtractOutputType<Cmd>, ExtraFieldsFunc extends ExtraFieldsDefinition<C, Cmd, K>>(awsService: AwsService, name: string, resourceTypeSync: ResourceSyncType<C, Cmd, K, ExtraFieldsFunc>): Sync;
|
|
24
124
|
export {};
|
|
25
125
|
//# sourceMappingURL=typedSync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typedSync.d.ts","sourceRoot":"","sources":["../../../src/syncs/typedSync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"typedSync.d.ts","sourceRoot":"","sources":["../../../src/syncs/typedSync.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { AwsClientPool } from '../aws/ClientPool.js';
|
|
2
|
+
import { syncData } from './sync.js';
|
|
1
3
|
/**
|
|
2
4
|
* Paginates through all available resources for a given AWS API
|
|
3
5
|
*
|
|
@@ -53,4 +55,66 @@ function paginationOutputKey(paginationConfig) {
|
|
|
53
55
|
return undefined;
|
|
54
56
|
}
|
|
55
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Creates a resource sync type and returns it. This provides cleaner syntax than
|
|
60
|
+
* making one directly and having to define the types twice.
|
|
61
|
+
*
|
|
62
|
+
* @param config Configuration for the resource sync type
|
|
63
|
+
* @returns The ResourceSyncType instance passed in.
|
|
64
|
+
*/
|
|
65
|
+
export function createResourceSyncType(config) {
|
|
66
|
+
return config;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Paginates a ResourceSyncType and returns the resources.
|
|
70
|
+
*
|
|
71
|
+
* @param resourceTypeSync The configuration to use.
|
|
72
|
+
* @param credentials The credentials to use for AWS API calls. Pass undefined to use the environment credentials.
|
|
73
|
+
* @param region The region to get the resources for.
|
|
74
|
+
* @returns Returns all the resources for the given type in the given region with extraFields populated.
|
|
75
|
+
*/
|
|
76
|
+
export async function paginateResourceConfig(resourceTypeSync, credentials, region, endpoint) {
|
|
77
|
+
const accountId = credentials.accountId;
|
|
78
|
+
const client = AwsClientPool.defaultInstance.client(resourceTypeSync.client, credentials, region, endpoint);
|
|
79
|
+
let resources = await paginateResource(client, resourceTypeSync.command, resourceTypeSync.key, resourceTypeSync.paginationConfig, resourceTypeSync.arguments ? resourceTypeSync.arguments(accountId, region) : undefined);
|
|
80
|
+
//If the resource is a string, convert it to an object with the name field set
|
|
81
|
+
if (resources.length > 0 && typeof resources[0] === 'string') {
|
|
82
|
+
resources = resources.map((resource) => ({ name: resource }));
|
|
83
|
+
}
|
|
84
|
+
if (resourceTypeSync.extraFields) {
|
|
85
|
+
await Promise.all(resources.map(async (resource) => {
|
|
86
|
+
const fields = resourceTypeSync.extraFields || {};
|
|
87
|
+
const extraFields = Object.entries(fields);
|
|
88
|
+
//Get the extra field values
|
|
89
|
+
const extraFieldValues = await Promise.all(extraFields.map(async ([key, callback]) => {
|
|
90
|
+
const value = await callback(client, resource, credentials.accountId, region);
|
|
91
|
+
return [key, value];
|
|
92
|
+
}));
|
|
93
|
+
//Map the extra field values to an object
|
|
94
|
+
const extraFieldsObject = extraFieldValues.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});
|
|
95
|
+
resource.extraFields = extraFieldsObject;
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
98
|
+
return resources;
|
|
99
|
+
}
|
|
100
|
+
export function createTypedSyncOperation(awsService, name, resourceTypeSync) {
|
|
101
|
+
return {
|
|
102
|
+
awsService,
|
|
103
|
+
name,
|
|
104
|
+
execute: async (accountId, region, credentials, storage, endpoint, syncOptions) => {
|
|
105
|
+
const awsId = credentials.accountId;
|
|
106
|
+
const resources = await paginateResourceConfig(resourceTypeSync, credentials, region, endpoint);
|
|
107
|
+
const records = resources.map((resource) => {
|
|
108
|
+
const result = resourceTypeSync.results(resource);
|
|
109
|
+
result.arn = resourceTypeSync.arn(resource, region, awsId);
|
|
110
|
+
if (result.metadata) {
|
|
111
|
+
result.metadata.arn = result.arn;
|
|
112
|
+
}
|
|
113
|
+
result.tags = resourceTypeSync.tags(resource);
|
|
114
|
+
return result;
|
|
115
|
+
});
|
|
116
|
+
await syncData(records, storage, accountId, resourceTypeSync.resourceTypeParts(awsId, region));
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
}
|
|
56
120
|
//# sourceMappingURL=typedSync.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typedSync.js","sourceRoot":"","sources":["../../../src/syncs/typedSync.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typedSync.js","sourceRoot":"","sources":["../../../src/syncs/typedSync.ts"],"names":[],"mappings":"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"}
|