UNPKG

@cloud-copilot/iam-collect

Version:

Collect IAM information from AWS Accounts

107 lines 5.92 kB
import { type AwsIamStore, type OrganizationPolicyType, type ResourceTypeParts } from '../AwsIamStore.js'; import { type PathBasedPersistenceAdapter } from '../PathBasedPersistenceAdapter.js'; export declare class FileSystemAwsIamStore implements AwsIamStore { private readonly baseFolder; private readonly separator; private fsAdapter; constructor(baseFolder: string, partition: string, separator: string, fsAdapter: PathBasedPersistenceAdapter); private organizationPath; private organizationMetadataPath; private organizationalUnitsPath; private organizationalUnitPath; private organizationPoliciesPath; private organizationPolicyPath; private organizationPolicyMetadataPath; private organizationalUnitMetadataPath; private accountsPath; private accountPath; private accountMetadataPath; private buildResourcePath; private buildMetadataPath; /** * Root RAM folder for a given account. */ private ramRootPath; /** * Folder under ramRootPath for a specific region (or 'global'). */ private ramRegionPath; /** * File name for a given resource ARN: replace ':' and '/' with '-' */ private ramFileNameForArn; /** * Full path to the RAM policy file for this ARN in region. */ private ramPolicyFilePath; /** * Get the path to the indexes directory. * * @returns The path to the indexes directory. */ private indexesPath; /** * The path to the index file for a given index name. * * @param indexName the name of the index * @returns The path to the index file. */ private indexPath; saveResourceMetadata(accountId: string, arn: string, metadataType: string, data: string | any): Promise<void>; listResourceMetadata(accountId: string, arn: string): Promise<string[]>; getResourceMetadata<T, D extends T>(accountId: string, arn: string, metadataType: string, defaultValue?: D): Promise<D extends undefined ? T | undefined : T>; deleteResourceMetadata(accountId: string, arn: string, metadataType: string): Promise<void>; deleteResource(accountId: string, arn: string): Promise<void>; listResources(accountId: string, options: ResourceTypeParts): Promise<string[]>; findResourceMetadata<T>(accountId: string, options: ResourceTypeParts): Promise<T[]>; syncResourceList(accountId: string, options: ResourceTypeParts, desiredResources: string[]): Promise<void>; deleteAccountMetadata(accountId: string, metadataType: string): Promise<void>; saveAccountMetadata(accountId: string, metadataType: string, data: any): Promise<void>; getAccountMetadata<T, D extends T>(accountId: string, metadataType: string, defaultValue?: D): Promise<D extends undefined ? T | undefined : T>; getOrganizationMetadata<T, D extends T>(organizationId: string, metadataType: string, defaultValue?: D): Promise<D extends undefined ? T | undefined : T>; saveOrganizationMetadata(organizationId: string, metadataType: string, data: any): Promise<void>; deleteOrganizationMetadata(organizationId: string, metadataType: string): Promise<void>; listOrganizationalUnits(organizationId: string): Promise<string[]>; deleteOrganizationalUnitMetadata(organizationId: string, ouId: string, metadataType: string): Promise<void>; saveOrganizationalUnitMetadata(organizationId: string, ouId: string, metadataType: string, data: any): Promise<void>; getOrganizationalUnitMetadata<T, D extends T>(organizationId: string, ouId: string, metadataType: string, defaultValue?: D): Promise<D extends undefined ? T | undefined : T>; deleteOrganizationalUnit(organizationId: string, ouId: string): Promise<void>; deleteOrganizationPolicyMetadata(organizationId: string, policyType: OrganizationPolicyType, policyId: string, metadataType: string): Promise<void>; saveOrganizationPolicyMetadata(organizationId: string, policyType: OrganizationPolicyType, policyId: string, metadataType: string, data: any): Promise<void>; getOrganizationPolicyMetadata<T, D extends T>(organizationId: string, policyType: OrganizationPolicyType, policyId: string, metadataType: string, defaultValue?: D): Promise<D extends undefined ? T | undefined : T>; deleteOrganizationPolicy(organizationId: string, policyType: OrganizationPolicyType, policyId: string): Promise<void>; listOrganizationPolicies(organizationId: string, policyType: OrganizationPolicyType): Promise<string[]>; syncRamResources(accountId: string, region: string | undefined, arns: string[]): Promise<void>; saveRamResource(accountId: string, arn: string, data: any): Promise<void>; getRamResource<T, D extends T>(accountId: string, arn: string, defaultValue?: D): Promise<D extends undefined ? T | undefined : T>; listAccountIds(): Promise<string[]>; getIndex<T>(indexName: string, defaultValue: T): Promise<{ data: T; lockId: string; }>; saveIndex(indexName: string, data: any, lockId: string): Promise<boolean>; writeBatch(fn: () => Promise<void>): Promise<void>; /** * Checks if a given content value is empty. * * @param content The content to check. * @returns true if the content is empty, false otherwise. */ private isEmptyContent; /** * Read the content of a file or return a default value if the file does not exist. * * @param filePath the path to the file * @param defaultValue the default value to return if the file does not exist * @returns the content of the file or the default value */ private contentOrDefault; /** * Either saves the provided data to a file or deletes the file if the data is empty. * * @param filePath the path to the file * @param data the data to save in the file */ private saveOrDeleteFile; } //# sourceMappingURL=FileSystemAwsIamStore.d.ts.map