@cloud-copilot/iam-collect
Version:
Collect IAM information from AWS Accounts
48 lines • 1.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SqsQueueSync = void 0;
const client_sqs_1 = require("@aws-sdk/client-sqs");
const json_js_1 = require("../../utils/json.js");
const typedSync_js_1 = require("../typedSync.js");
exports.SqsQueueSync = (0, typedSync_js_1.createTypedSyncOperation)('sqs', 'queue', (0, typedSync_js_1.createResourceSyncType)({
client: client_sqs_1.SQSClient,
command: client_sqs_1.ListQueuesCommand,
key: 'QueueUrls',
paginationConfig: {
inputKey: 'NextToken',
outputKey: 'NextToken'
},
arn: (queue, region, account, partition) => {
const queueName = queue.name.split('/').pop();
return `arn:${partition}:sqs:${region}:${account}:${queueName}`;
},
resourceTypeParts: (account, region) => ({
account,
region,
service: 'sqs'
}),
tags: (queue) => queue.extraFields.tags,
extraFields: {
tags: async (client, topic) => {
const tagResult = await client.send(new client_sqs_1.ListQueueTagsCommand({
QueueUrl: topic.name
}));
return tagResult.Tags;
},
attributes: async (client, queue) => {
const attributes = await client.send(new client_sqs_1.GetQueueAttributesCommand({
QueueUrl: queue.name,
AttributeNames: ['KmsMasterKeyId', 'Policy']
}));
return attributes.Attributes;
}
},
results: (queue) => ({
metadata: {
name: queue.name.split('/').pop() || '',
kmsKey: queue.extraFields.attributes?.KmsMasterKeyId
},
policy: (0, json_js_1.parseIfPresent)(queue.extraFields.attributes?.Policy)
})
}));
//# sourceMappingURL=queues.js.map