@cloud-copilot/iam-collect
Version:
Collect IAM information from AWS Accounts
53 lines • 2.32 kB
TypeScript
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