UNPKG

@cloud-copilot/iam-collect

Version:

Collect IAM information from AWS Accounts

48 lines 2.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OpenSearchDomainsSync = void 0; const client_opensearch_1 = require("@aws-sdk/client-opensearch"); 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"); function domainArn(domainName, region, accountId, partition) { return `arn:${partition}:es:${region}:${accountId}:domain/${domainName}`; } exports.OpenSearchDomainsSync = (0, typedSync_js_1.createTypedSyncOperation)('es', 'domains', (0, typedSync_js_1.createResourceSyncType)({ client: client_opensearch_1.OpenSearchClient, command: client_opensearch_1.ListDomainNamesCommand, key: 'DomainNames', paginationConfig: '::no-pagination::', resourceTypeParts: (accountId, region) => ({ service: 'es', // OpenSearch domains use 'es' service in ARNs resourceType: 'domain', account: accountId, region: region }), extraFields: { domainDetails: async (client, domain, accountId, region, partition) => { return (0, client_tools_js_1.runAndCatch404)(async () => { const result = await client.send(new client_opensearch_1.DescribeDomainCommand({ DomainName: domain.DomainName })); return result.DomainStatus; }); }, tags: async (client, domain, accountId, region, partition) => { return (0, client_tools_js_1.runAndCatch404)(async () => { const tagResult = await client.send(new client_opensearch_1.ListTagsCommand({ ARN: domainArn(domain.DomainName, region, accountId, partition) })); return tagResult.TagList; }); } }, tags: (domain) => domain.extraFields.tags, arn: (domain, region, accountId, partition) => domainArn(domain.DomainName, region, accountId, partition), results: (domain) => ({ metadata: { name: domain.DomainName, keyId: domain.extraFields.domainDetails?.EncryptionAtRestOptions?.KmsKeyId }, policy: (0, json_js_1.parseIfPresent)(domain.extraFields.domainDetails?.AccessPolicies) }) })); //# sourceMappingURL=domains.js.map