@cloud-copilot/iam-collect
Version:
Collect IAM information from AWS Accounts
70 lines • 2.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.IdentityProviderSyncs = void 0;
const client_iam_1 = require("@aws-sdk/client-iam");
const typedSync_js_1 = require("../typedSync.js");
exports.IdentityProviderSyncs = [
(0, typedSync_js_1.createTypedSyncOperation)('iam', 'oidcProviders', (0, typedSync_js_1.createResourceSyncType)({
globalResourceType: true,
client: client_iam_1.IAMClient,
command: client_iam_1.ListOpenIDConnectProvidersCommand,
key: 'OpenIDConnectProviderList',
paginationConfig: '::no-pagination::',
arn: (provider) => provider.Arn,
resourceTypeParts: (account, region) => ({
service: 'iam',
account,
resourceType: 'oidc-provider'
}),
extraFields: {
details: async (client, provider) => {
const command = new client_iam_1.GetOpenIDConnectProviderCommand({
OpenIDConnectProviderArn: provider.Arn
});
const result = await client.send(command);
return result;
}
},
tags: (provider) => provider.extraFields.details?.Tags,
results: (provider) => ({
metadata: {
audiences: provider.extraFields.details?.ClientIDList,
thumbprints: provider.extraFields.details?.ThumbprintList,
url: provider.extraFields.details?.Url
}
})
})),
(0, typedSync_js_1.createTypedSyncOperation)('iam', 'samlProviders', (0, typedSync_js_1.createResourceSyncType)({
globalResourceType: true,
client: client_iam_1.IAMClient,
command: client_iam_1.ListSAMLProvidersCommand,
key: 'SAMLProviderList',
paginationConfig: '::no-pagination::',
arn: (provider) => provider.Arn,
resourceTypeParts: (account, region) => ({
service: 'iam',
account,
resourceType: 'saml-provider'
}),
extraFields: {
details: async (client, provider) => {
const command = new client_iam_1.GetSAMLProviderCommand({
SAMLProviderArn: provider.Arn
});
const result = await client.send(command);
return result;
}
},
tags: (provider) => provider.extraFields.details?.Tags,
results: (provider) => ({
metadata: {
assertEncryption: provider.extraFields.details?.AssertionEncryptionMode,
'metadata-document': provider.extraFields.details?.SAMLMetadataDocument,
privateKeys: provider.extraFields.details?.PrivateKeyList,
uuid: provider.extraFields.details?.SAMLProviderUUID,
validUntil: provider.extraFields.details?.ValidUntil
}
})
}))
];
//# sourceMappingURL=identityProviders.js.map