UNPKG

@cloud-copilot/iam-collect

Version:

Collect IAM information from AWS Accounts

50 lines 1.86 kB
"use strict"; 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