@cloud-copilot/iam-collect
Version:
Collect IAM information from AWS Accounts
50 lines • 1.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.GlacierVaultsSync = void 0;
const client_glacier_1 = require("@aws-sdk/client-glacier");
const client_tools_js_1 = require("../../utils/client-tools.js");
const json_js_1 = require("../../utils/json.js");
const typedSync_js_1 = require("../typedSync.js");
exports.GlacierVaultsSync = (0, typedSync_js_1.createTypedSyncOperation)('glacier', 'glacierVaults', (0, typedSync_js_1.createResourceSyncType)({
client: client_glacier_1.GlacierClient,
command: client_glacier_1.ListVaultsCommand,
key: 'VaultList',
paginationConfig: {
inputKey: 'marker',
outputKey: 'Marker'
},
arn: (vault) => vault.VaultARN,
resourceTypeParts: (account, region) => ({
account,
region,
resourceType: 'vaults',
service: 'glacier'
}),
tags: (vault) => vault.extraFields.tags,
extraFields: {
policy: async (client, vault, accountId) => {
const policy = await (0, client_tools_js_1.runAndCatch404)(async () => {
const result = await client.send(new client_glacier_1.GetVaultAccessPolicyCommand({
accountId,
vaultName: vault.VaultName
}));
return (0, json_js_1.parseIfPresent)(result.policy?.Policy);
});
return policy;
},
tags: async (client, vault, accountId) => {
const tags = await client.send(new client_glacier_1.ListTagsForVaultCommand({
accountId,
vaultName: vault.VaultName
}));
return tags.Tags;
}
},
results: (vault) => ({
metadata: {
name: vault.VaultName
},
policy: vault.extraFields.policy
})
}));
//# sourceMappingURL=vaults.js.map