UNPKG

@cloud-copilot/iam-lens

Version:

Visibility in IAM in and across AWS accounts

44 lines 2.06 kB
import { type TopLevelConfig } from '@cloud-copilot/iam-collect'; import { IamCollectClient, type IamCollectClientOptions } from './client.js'; /** * Load IAM collect configs from the specified paths. * * @param configPaths the paths to the config files * @returns the top-level configs */ export declare function loadCollectConfigs(configPaths: string[]): Promise<TopLevelConfig[]>; /** * Configuration for a plugin that wraps the default `IamCollectClient` with a * custom implementation. * * The factory function referenced by `factoryExport` is called with * `(store: AwsIamStore, options: IamCollectClientOptions | undefined, data: unknown)` * and must return an `IamCollectClient` (or subclass). */ export interface ClientFactoryPlugin { /** Package name (e.g. '@my-org/my-factory') or absolute path — resolved via require() */ module: string; /** Name of the exported factory function */ factoryExport: string; /** JSON-serializable data passed as the third argument to the factory */ data: unknown; } export interface CollectClientOptions extends IamCollectClientOptions { clientFactoryPlugin?: ClientFactoryPlugin; } /** * Get a collect client for the specified partition using the provided configs. * * If a `clientFactoryPlugin` is provided, the factory function is called with * `(store, clientOptions, data)` — i.e. the raw `AwsIamStore` and * `IamCollectClientOptions` rather than a pre-built client — so the factory * can construct whatever client subclass it needs without discarding an * intermediate instance. * * @param configs - The top-level configs to use for storage. * @param partition - Which partition to use (aws, aws-cn, aws-us-gov). * @param options - Optional client options including a `clientFactoryPlugin`. * @returns The iam-collect client to use for retrieving IAM resources. */ export declare function getCollectClient(configs: TopLevelConfig[], partition: string, options?: CollectClientOptions): Promise<IamCollectClient>; //# sourceMappingURL=collect.d.ts.map