@cloud-copilot/iam-collect
Version:
Collect IAM information from AWS Accounts
39 lines • 1.4 kB
TypeScript
import { AwsCredentialIdentityWithMetaData } from '../aws/coreAuth.js';
import { AwsIamStore, ResourceTypeParts } from '../persistence/AwsIamStore.js';
import { AwsService } from '../services.js';
export interface SyncOptions {
}
export interface Sync {
/**
* What service the sync is for.
*/
awsService: AwsService;
/**
* The name of the sync. This should be a unique identifier for the sync.
*/
name: string;
/**
* Is the sync global. If so, it should only be one in one region per account.
*/
global?: boolean;
/**
* Execute the sync for a given account and region.
*/
execute(accountId: string, region: string, credentials: AwsCredentialIdentityWithMetaData, storage: AwsIamStore, endpoint: string | undefined, syncOptions: SyncOptions): Promise<void>;
}
export type DataRecord = Record<string, any> & {
arn: string;
};
/**
* Synchronize the data for a given set of resources.
* This will:
* 1. Delete any resources that meet the `resourceTypeParts` and are not in the `records` list.
* 2. Save all resources that are in the `records`.
*
* @param records
* @param storage
* @param accountId
* @param resourceTypeParts
*/
export declare function syncData(records: DataRecord[], storage: AwsIamStore, accountId: string, resourceTypeParts: ResourceTypeParts): Promise<void>;
//# sourceMappingURL=sync.d.ts.map