@cloud-copilot/iam-collect
Version:
Collect IAM information from AWS Accounts
119 lines • 5.02 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getGlobalSyncsForService = getGlobalSyncsForService;
exports.getRegionalSyncsForService = getRegionalSyncsForService;
const services_js_1 = require("../services.js");
const gateways_js_1 = require("./apigateway/gateways.js");
const backupVaults_js_1 = require("./backup/backupVaults.js");
const dynamoDbStreams_js_1 = require("./dynamodb/dynamoDbStreams.js");
const tables_js_1 = require("./dynamodb/tables.js");
const vpcEndpoints_js_1 = require("./ec2/vpcEndpoints.js");
const ecrSyncs_js_1 = require("./ecr/ecrSyncs.js");
const fileSystems_js_1 = require("./efs/fileSystems.js");
const eventBuses_js_1 = require("./events/eventBuses.js");
const catalogs_js_1 = require("./glue/catalogs.js");
const authorizationDetails_js_1 = require("./iam/authorizationDetails.js");
const identityProviders_js_1 = require("./iam/identityProviders.js");
const instanceProfiles_js_1 = require("./iam/instanceProfiles.js");
const clusters_js_1 = require("./kafka/clusters.js");
const dataStreams_js_1 = require("./kinesis/dataStreams.js");
const key_js_1 = require("./kms/key.js");
const lambda_js_1 = require("./lambda/lambda.js");
const domains_js_1 = require("./opensearch/domains.js");
const organizations_js_1 = require("./organizations/organizations.js");
const ramShares_js_1 = require("./ram/ramShares.js");
const accessPoints_js_1 = require("./s3/accessPoints.js");
const accountBpa_js_1 = require("./s3/accountBpa.js");
const buckets_js_1 = require("./s3/buckets.js");
const multiRegionAccessPoints_js_1 = require("./s3/multiRegionAccessPoints.js");
const objectLambdaAccessPoints_js_1 = require("./s3/objectLambdaAccessPoints.js");
const vaults_js_1 = require("./s3/vaults.js");
const s3DirectoryAccessPointsSync_js_1 = require("./s3express/s3DirectoryAccessPointsSync.js");
const s3DirectoryBucketsSync_js_1 = require("./s3express/s3DirectoryBucketsSync.js");
const s3OutpostsSyncs_js_1 = require("./s3outposts/s3OutpostsSyncs.js");
const s3TablesSync_js_1 = require("./s3tables/s3TablesSync.js");
const secrets_js_1 = require("./secretsmanager/secrets.js");
const topics_js_1 = require("./sns/topics.js");
const queues_js_1 = require("./sqs/queues.js");
const ssoInstances_js_1 = require("./sso/ssoInstances.js");
const allSyncs = [
accountBpa_js_1.AccountS3BpaSync,
authorizationDetails_js_1.AuthorizationDetailsSync,
backupVaults_js_1.BackupVaultsSync,
dynamoDbStreams_js_1.DynamoDbStreamsSync,
tables_js_1.DynamoDBTableSync,
...ecrSyncs_js_1.EcrSyncs,
fileSystems_js_1.ElasticFileSystemsSync,
eventBuses_js_1.EventBridgeEventBusesSync,
instanceProfiles_js_1.InstanceProfilesSync,
...identityProviders_js_1.IdentityProviderSyncs,
vaults_js_1.GlacierVaultsSync,
catalogs_js_1.GlueCatalogSync,
clusters_js_1.KafkaClustersSync,
dataStreams_js_1.KinesisDataStreamsSync,
key_js_1.KeySync,
lambda_js_1.LambdaSync,
lambda_js_1.LambdaLayerVersionsSync,
domains_js_1.OpenSearchDomainsSync,
organizations_js_1.OrganizationSync,
ramShares_js_1.RamResourcesSync,
gateways_js_1.RestApisSync,
accessPoints_js_1.S3AccessPointsSync,
s3DirectoryBucketsSync_js_1.S3DirectoryBucketsSync,
s3DirectoryAccessPointsSync_js_1.S3DirectoryAccessPointsSync,
buckets_js_1.S3GeneralPurposeBucketSync,
multiRegionAccessPoints_js_1.S3MultiRegionAccessPointsSync,
objectLambdaAccessPoints_js_1.S3ObjectLambdaAccessPointsSync,
s3OutpostsSyncs_js_1.S3OutpostsAccessPointsSync,
s3OutpostsSyncs_js_1.S3OutpostsBucketsSync,
s3TablesSync_js_1.S3TableBucketsSync,
secrets_js_1.SecretSync,
topics_js_1.SnsTopicsSync,
queues_js_1.SqsQueueSync,
ssoInstances_js_1.SsoDataSync,
vpcEndpoints_js_1.VpcEndpointsSync
];
const syncMap = new Map();
for (const sync of allSyncs) {
const service = (0, services_js_1.lowerCaseService)(sync.awsService);
if (!syncMap.has(service)) {
syncMap.set(service, {
regional: [],
global: []
});
}
const syncs = syncMap.get(service);
if (sync.global) {
syncs.global.push(sync);
}
else {
syncs.regional.push(sync);
}
}
/**
* Get the global syncs for a given AWS service.
*
* @param service The AWS service to get the syncs for
* @returns An array of syncs that are global for the specified service.
*/
function getGlobalSyncsForService(service) {
const syncs = syncMap.get((0, services_js_1.lowerCaseService)(service));
if (!syncs) {
return [];
}
return syncs.global;
}
/**
* Get the regional syncs for a given AWS service.
*
* @param service The AWS service to get the syncs for
* @returns An array of syncs that are regional for the specified service.
*/
function getRegionalSyncsForService(service) {
const syncs = syncMap.get((0, services_js_1.lowerCaseService)(service));
if (!syncs) {
return [];
}
return syncs.regional;
}
//# sourceMappingURL=syncMap.js.map