@cloud-copilot/iam-collect
Version:
Collect IAM information from AWS Accounts
51 lines • 2.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BackupVaultsSync = void 0;
const client_backup_1 = require("@aws-sdk/client-backup");
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.BackupVaultsSync = (0, typedSync_js_1.createTypedSyncOperation)('backup', 'vaults', (0, typedSync_js_1.createResourceSyncType)({
client: client_backup_1.BackupClient,
command: client_backup_1.ListBackupVaultsCommand,
key: 'BackupVaultList',
paginationConfig: {
inputKey: 'NextToken',
outputKey: 'NextToken'
},
resourceTypeParts: (accountId, region) => ({
service: 'backup',
resourceType: 'backup-vault',
account: accountId,
region: region
}),
extraFields: {
tags: async (client, vault) => {
return (0, client_tools_js_1.runAndCatchError)('ResourceNotFoundException', async () => {
return (0, client_tools_js_1.runAndCatch404)(async () => {
const tagResult = await client.send(new client_backup_1.ListTagsCommand({ ResourceArn: vault.BackupVaultArn }));
return tagResult.Tags;
});
});
},
policy: async (client, vault) => {
return (0, client_tools_js_1.runAndCatchError)('ResourceNotFoundException', async () => {
return (0, client_tools_js_1.runAndCatch404)(async () => {
const policyResult = await client.send(new client_backup_1.GetBackupVaultAccessPolicyCommand({ BackupVaultName: vault.BackupVaultName }));
return (0, json_js_1.parseIfPresent)(policyResult.Policy);
});
});
}
},
tags: (vault) => vault.extraFields.tags,
arn: (vault) => vault.BackupVaultArn,
results: (vault) => ({
metadata: {
name: vault.BackupVaultName,
key: vault.EncryptionKeyArn,
state: vault.VaultState
},
policy: vault.extraFields.policy
})
}));
//# sourceMappingURL=backupVaults.js.map