UNPKG

@cloud-copilot/iam-collect

Version:

Collect IAM information from AWS Accounts

53 lines 2.32 kB
import type { Client } from '@smithy/smithy-client'; import { AwsClientPool } from '../aws/ClientPool.js'; import { type AwsCredentialProviderWithMetaData } from '../aws/coreAuth.js'; import { AbstractClient, type ClientConstructor } from './AbstractClient.js'; type AnyClient = Client<any, any, any, any>; /** * Type for custom client constructors */ type CustomClientConstructor<CustomClientContext = {}> = (new (options: { credentials: AwsCredentialProviderWithMetaData; region: string | undefined; endpoint?: string | undefined; }, customContext: CustomClientContext) => AbstractClient<CustomClientContext>) & { clientName: string; }; /** * AWS Config-based client pool using dedicated Config client classes with registry */ export declare class AbstractClientPool<CustomClientContext = {}> extends AwsClientPool { private configClientCache; private clientRegistry; constructor(); /** * Register the default supported clients */ protected registerDefaultClients(): void; /** * Get the custom client context for a specific client type and configuration * @param ClientType The client constructor * @param credentials AWS credentials * @param region AWS region * @param endpoint Custom endpoint * @returns Custom client context */ protected getClientContext(ClientType: ClientConstructor<any>, credentials: AwsCredentialProviderWithMetaData, region: string | undefined, endpoint: string | undefined): CustomClientContext; /** * Register a Config client implementation - automatically extracts SDK client name * * @param customClientConstructor The custom client constructor */ registerClient(customClientConstructor: CustomClientConstructor<CustomClientContext>): void; /** * Returns a Config-based client that implements the same interface as the AWS SDK client * * @param ClientType The AWS SDK client constructor * @param credentials AWS credentials * @param region AWS region * @param endpoint Custom endpoint */ client<T extends AnyClient>(ClientType: ClientConstructor<T>, credentials: AwsCredentialProviderWithMetaData, region: string | undefined, endpoint: string | undefined): T; } export {}; //# sourceMappingURL=AbstractClientPool.d.ts.map