@cloud-copilot/iam-collect
Version:
Collect IAM information from AWS Accounts
31 lines • 1.1 kB
JavaScript
import { APIGatewayClient, GetRestApisCommand } from '@aws-sdk/client-api-gateway';
import { parseIfPresent } from '../../utils/json.js';
import { createResourceSyncType, createTypedSyncOperation } from '../typedSync.js';
export const RestApisSync = createTypedSyncOperation('apigateway', 'gateways', createResourceSyncType({
client: APIGatewayClient,
command: GetRestApisCommand,
key: 'items',
paginationConfig: {
inputKey: 'position',
outputKey: 'position'
},
arn: (api, region, account, partition) => restApiArn(api.id, region, account, partition),
tags: (api) => api.tags,
resourceTypeParts: (account, region) => ({
account,
service: 'apigateway',
region,
resourceType: 'restapis'
}),
results: (api) => ({
metadata: {
id: api.id,
name: api.name
},
policy: parseIfPresent(api.policy)
})
}));
function restApiArn(apiId, region, account, partition) {
return `arn:${partition}:apigateway:${region}::/restapis/${apiId}`;
}
//# sourceMappingURL=gateways.js.map