UNPKG

19.8 kBTypeScriptView Raw
1import { FunctionConfiguration, type GetSchemaCreationStatusCommandInput, type GetSchemaCreationStatusCommandOutput, type ListFunctionsCommandInput, type StartSchemaCreationCommandInput, type StartSchemaCreationCommandOutput, type UpdateApiKeyCommandInput, type UpdateApiKeyCommandOutput, type UpdateFunctionCommandInput, type UpdateFunctionCommandOutput, type UpdateResolverCommandInput, type UpdateResolverCommandOutput } from '@aws-sdk/client-appsync';
2import { GetResourceCommandInput, GetResourceCommandOutput, ListResourcesCommandInput, ListResourcesCommandOutput } from '@aws-sdk/client-cloudcontrol';
3import { ContinueUpdateRollbackCommandInput, ContinueUpdateRollbackCommandOutput, type CreateChangeSetCommandInput, type CreateChangeSetCommandOutput, type CreateGeneratedTemplateCommandInput, type CreateGeneratedTemplateCommandOutput, type CreateStackCommandInput, type CreateStackCommandOutput, type DeleteChangeSetCommandInput, type DeleteChangeSetCommandOutput, type DeleteGeneratedTemplateCommandInput, type DeleteGeneratedTemplateCommandOutput, type DeleteStackCommandInput, type DeleteStackCommandOutput, type DescribeChangeSetCommandInput, type DescribeChangeSetCommandOutput, type DescribeGeneratedTemplateCommandInput, type DescribeGeneratedTemplateCommandOutput, type DescribeResourceScanCommandInput, type DescribeResourceScanCommandOutput, type DescribeStackEventsCommandInput, DescribeStackEventsCommandOutput, DescribeStackResourcesCommandInput, DescribeStackResourcesCommandOutput, type DescribeStacksCommandInput, type DescribeStacksCommandOutput, type ExecuteChangeSetCommandInput, type ExecuteChangeSetCommandOutput, type GetGeneratedTemplateCommandInput, type GetGeneratedTemplateCommandOutput, type GetTemplateCommandInput, type GetTemplateCommandOutput, type GetTemplateSummaryCommandInput, type GetTemplateSummaryCommandOutput, type ListExportsCommandInput, type ListExportsCommandOutput, type ListResourceScanRelatedResourcesCommandInput, type ListResourceScanRelatedResourcesCommandOutput, type ListResourceScanResourcesCommandInput, type ListResourceScanResourcesCommandOutput, type ListResourceScansCommandInput, type ListResourceScansCommandOutput, type ListStackResourcesCommandInput, ListStacksCommandInput, ListStacksCommandOutput, RollbackStackCommandInput, RollbackStackCommandOutput, StackResourceSummary, type StartResourceScanCommandInput, type StartResourceScanCommandOutput, type UpdateStackCommandInput, type UpdateStackCommandOutput, type UpdateTerminationProtectionCommandInput, type UpdateTerminationProtectionCommandOutput } from '@aws-sdk/client-cloudformation';
4import { type DescribeLogGroupsCommandInput, type DescribeLogGroupsCommandOutput, FilterLogEventsCommandInput, FilterLogEventsCommandOutput } from '@aws-sdk/client-cloudwatch-logs';
5import { type UpdateProjectCommandInput, type UpdateProjectCommandOutput } from '@aws-sdk/client-codebuild';
6import { type DescribeAvailabilityZonesCommandInput, type DescribeAvailabilityZonesCommandOutput, type DescribeImagesCommandInput, type DescribeImagesCommandOutput, type DescribeInstancesCommandInput, type DescribeInstancesCommandOutput, type DescribeRouteTablesCommandInput, type DescribeRouteTablesCommandOutput, type DescribeSecurityGroupsCommandInput, type DescribeSecurityGroupsCommandOutput, type DescribeSubnetsCommandInput, type DescribeSubnetsCommandOutput, type DescribeVpcEndpointServicesCommandInput, type DescribeVpcEndpointServicesCommandOutput, type DescribeVpcsCommandInput, type DescribeVpcsCommandOutput, type DescribeVpnGatewaysCommandInput, type DescribeVpnGatewaysCommandOutput } from '@aws-sdk/client-ec2';
7import { BatchDeleteImageCommandInput, BatchDeleteImageCommandOutput, type CreateRepositoryCommandInput, type CreateRepositoryCommandOutput, type DescribeImagesCommandInput as ECRDescribeImagesCommandInput, type DescribeImagesCommandOutput as ECRDescribeImagesCommandOutput, type DescribeRepositoriesCommandInput, type DescribeRepositoriesCommandOutput, type GetAuthorizationTokenCommandInput, type GetAuthorizationTokenCommandOutput, ListImagesCommandInput, ListImagesCommandOutput, PutImageCommandInput, PutImageCommandOutput, type PutImageScanningConfigurationCommandInput, type PutImageScanningConfigurationCommandOutput, BatchGetImageCommandInput, BatchGetImageCommandOutput } from '@aws-sdk/client-ecr';
8import { DescribeServicesCommandInput, type ListClustersCommandInput, type ListClustersCommandOutput, RegisterTaskDefinitionCommandInput, type RegisterTaskDefinitionCommandOutput, type UpdateServiceCommandInput, type UpdateServiceCommandOutput } from '@aws-sdk/client-ecs';
9import { type DescribeListenersCommandInput, type DescribeListenersCommandOutput, type DescribeLoadBalancersCommandInput, type DescribeLoadBalancersCommandOutput, type DescribeTagsCommandInput, type DescribeTagsCommandOutput, Listener, LoadBalancer } from '@aws-sdk/client-elastic-load-balancing-v2';
10import { type CreatePolicyCommandInput, type CreatePolicyCommandOutput, type GetPolicyCommandInput, type GetPolicyCommandOutput, type GetRoleCommandInput, type GetRoleCommandOutput } from '@aws-sdk/client-iam';
11import { type DescribeKeyCommandInput, type DescribeKeyCommandOutput, type ListAliasesCommandInput, type ListAliasesCommandOutput } from '@aws-sdk/client-kms';
12import { type InvokeCommandInput, type InvokeCommandOutput, type PublishVersionCommandInput, type PublishVersionCommandOutput, type UpdateAliasCommandInput, type UpdateAliasCommandOutput, type UpdateFunctionCodeCommandInput, type UpdateFunctionCodeCommandOutput, type UpdateFunctionConfigurationCommandInput, type UpdateFunctionConfigurationCommandOutput } from '@aws-sdk/client-lambda';
13import { type GetHostedZoneCommandInput, type GetHostedZoneCommandOutput, type ListHostedZonesByNameCommandInput, type ListHostedZonesByNameCommandOutput, type ListHostedZonesCommandInput, type ListHostedZonesCommandOutput } from '@aws-sdk/client-route-53';
14import { type CompleteMultipartUploadCommandOutput, DeleteObjectsCommandInput, DeleteObjectsCommandOutput, DeleteObjectTaggingCommandInput, DeleteObjectTaggingCommandOutput, type GetBucketEncryptionCommandInput, type GetBucketEncryptionCommandOutput, type GetBucketLocationCommandInput, type GetBucketLocationCommandOutput, type GetObjectCommandInput, type GetObjectCommandOutput, GetObjectTaggingCommandInput, GetObjectTaggingCommandOutput, type ListObjectsV2CommandInput, type ListObjectsV2CommandOutput, type PutObjectCommandInput, PutObjectTaggingCommandInput, PutObjectTaggingCommandOutput } from '@aws-sdk/client-s3';
15import { type GetSecretValueCommandInput, type GetSecretValueCommandOutput } from '@aws-sdk/client-secrets-manager';
16import { UpdateStateMachineCommandInput, UpdateStateMachineCommandOutput } from '@aws-sdk/client-sfn';
17import { type GetParameterCommandInput, type GetParameterCommandOutput } from '@aws-sdk/client-ssm';
18import type { NodeHttpHandlerOptions } from '@smithy/node-http-handler';
19import { AwsCredentialIdentityProvider, Logger } from '@smithy/types';
20import { ConfiguredRetryStrategy } from '@smithy/util-retry';
21import { WaiterResult } from '@smithy/util-waiter';
22import { Account } from './sdk-provider';
23export interface S3ClientOptions {
24 /**
25 * If APIs are used that require MD5 checksums.
26 *
27 * Some S3 APIs in SDKv2 have a bug that always requires them to use a MD5 checksum.
28 * These APIs are not going to be supported in a FIPS environment.
29 */
30 needsMd5Checksums?: boolean;
31}
32/**
33 * Additional SDK configuration options
34 */
35export interface SdkOptions {
36 /**
37 * Additional descriptive strings that indicate where the "AssumeRole" credentials are coming from
38 *
39 * Will be printed in an error message to help users diagnose auth problems.
40 */
41 readonly assumeRoleCredentialsSourceDescription?: string;
42}
43export interface ConfigurationOptions {
44 region: string;
45 credentials: AwsCredentialIdentityProvider;
46 requestHandler: NodeHttpHandlerOptions;
47 retryStrategy: ConfiguredRetryStrategy;
48 customUserAgent: string;
49 logger?: Logger;
50 s3DisableBodySigning?: boolean;
51 computeChecksums?: boolean;
52}
53export interface IAppSyncClient {
54 getSchemaCreationStatus(input: GetSchemaCreationStatusCommandInput): Promise<GetSchemaCreationStatusCommandOutput>;
55 startSchemaCreation(input: StartSchemaCreationCommandInput): Promise<StartSchemaCreationCommandOutput>;
56 updateApiKey(input: UpdateApiKeyCommandInput): Promise<UpdateApiKeyCommandOutput>;
57 updateFunction(input: UpdateFunctionCommandInput): Promise<UpdateFunctionCommandOutput>;
58 updateResolver(input: UpdateResolverCommandInput): Promise<UpdateResolverCommandOutput>;
59 listFunctions(input: ListFunctionsCommandInput): Promise<FunctionConfiguration[]>;
60}
61export interface ICloudControlClient {
62 listResources(input: ListResourcesCommandInput): Promise<ListResourcesCommandOutput>;
63 getResource(input: GetResourceCommandInput): Promise<GetResourceCommandOutput>;
64}
65export interface ICloudFormationClient {
66 continueUpdateRollback(input: ContinueUpdateRollbackCommandInput): Promise<ContinueUpdateRollbackCommandOutput>;
67 createChangeSet(input: CreateChangeSetCommandInput): Promise<CreateChangeSetCommandOutput>;
68 createGeneratedTemplate(input: CreateGeneratedTemplateCommandInput): Promise<CreateGeneratedTemplateCommandOutput>;
69 createStack(input: CreateStackCommandInput): Promise<CreateStackCommandOutput>;
70 deleteChangeSet(input: DeleteChangeSetCommandInput): Promise<DeleteChangeSetCommandOutput>;
71 deleteGeneratedTemplate(input: DeleteGeneratedTemplateCommandInput): Promise<DeleteGeneratedTemplateCommandOutput>;
72 deleteStack(input: DeleteStackCommandInput): Promise<DeleteStackCommandOutput>;
73 describeChangeSet(input: DescribeChangeSetCommandInput): Promise<DescribeChangeSetCommandOutput>;
74 describeGeneratedTemplate(input: DescribeGeneratedTemplateCommandInput): Promise<DescribeGeneratedTemplateCommandOutput>;
75 describeResourceScan(input: DescribeResourceScanCommandInput): Promise<DescribeResourceScanCommandOutput>;
76 describeStacks(input: DescribeStacksCommandInput): Promise<DescribeStacksCommandOutput>;
77 describeStackResources(input: DescribeStackResourcesCommandInput): Promise<DescribeStackResourcesCommandOutput>;
78 executeChangeSet(input: ExecuteChangeSetCommandInput): Promise<ExecuteChangeSetCommandOutput>;
79 getGeneratedTemplate(input: GetGeneratedTemplateCommandInput): Promise<GetGeneratedTemplateCommandOutput>;
80 getTemplate(input: GetTemplateCommandInput): Promise<GetTemplateCommandOutput>;
81 getTemplateSummary(input: GetTemplateSummaryCommandInput): Promise<GetTemplateSummaryCommandOutput>;
82 listExports(input: ListExportsCommandInput): Promise<ListExportsCommandOutput>;
83 listResourceScanRelatedResources(input: ListResourceScanRelatedResourcesCommandInput): Promise<ListResourceScanRelatedResourcesCommandOutput>;
84 listResourceScanResources(input: ListResourceScanResourcesCommandInput): Promise<ListResourceScanResourcesCommandOutput>;
85 listResourceScans(input?: ListResourceScansCommandInput): Promise<ListResourceScansCommandOutput>;
86 listStacks(input: ListStacksCommandInput): Promise<ListStacksCommandOutput>;
87 rollbackStack(input: RollbackStackCommandInput): Promise<RollbackStackCommandOutput>;
88 startResourceScan(input: StartResourceScanCommandInput): Promise<StartResourceScanCommandOutput>;
89 updateStack(input: UpdateStackCommandInput): Promise<UpdateStackCommandOutput>;
90 updateTerminationProtection(input: UpdateTerminationProtectionCommandInput): Promise<UpdateTerminationProtectionCommandOutput>;
91 describeStackEvents(input: DescribeStackEventsCommandInput): Promise<DescribeStackEventsCommandOutput>;
92 listStackResources(input: ListStackResourcesCommandInput): Promise<StackResourceSummary[]>;
93}
94export interface ICloudWatchLogsClient {
95 describeLogGroups(input: DescribeLogGroupsCommandInput): Promise<DescribeLogGroupsCommandOutput>;
96 filterLogEvents(input: FilterLogEventsCommandInput): Promise<FilterLogEventsCommandOutput>;
97}
98export interface ICodeBuildClient {
99 updateProject(input: UpdateProjectCommandInput): Promise<UpdateProjectCommandOutput>;
100}
101export interface IEC2Client {
102 describeAvailabilityZones(input: DescribeAvailabilityZonesCommandInput): Promise<DescribeAvailabilityZonesCommandOutput>;
103 describeImages(input: DescribeImagesCommandInput): Promise<DescribeImagesCommandOutput>;
104 describeInstances(input: DescribeInstancesCommandInput): Promise<DescribeInstancesCommandOutput>;
105 describeRouteTables(input: DescribeRouteTablesCommandInput): Promise<DescribeRouteTablesCommandOutput>;
106 describeSecurityGroups(input: DescribeSecurityGroupsCommandInput): Promise<DescribeSecurityGroupsCommandOutput>;
107 describeSubnets(input: DescribeSubnetsCommandInput): Promise<DescribeSubnetsCommandOutput>;
108 describeVpcEndpointServices(input: DescribeVpcEndpointServicesCommandInput): Promise<DescribeVpcEndpointServicesCommandOutput>;
109 describeVpcs(input: DescribeVpcsCommandInput): Promise<DescribeVpcsCommandOutput>;
110 describeVpnGateways(input: DescribeVpnGatewaysCommandInput): Promise<DescribeVpnGatewaysCommandOutput>;
111}
112export interface IECRClient {
113 batchDeleteImage(input: BatchDeleteImageCommandInput): Promise<BatchDeleteImageCommandOutput>;
114 batchGetImage(input: BatchGetImageCommandInput): Promise<BatchGetImageCommandOutput>;
115 createRepository(input: CreateRepositoryCommandInput): Promise<CreateRepositoryCommandOutput>;
116 describeImages(input: ECRDescribeImagesCommandInput): Promise<ECRDescribeImagesCommandOutput>;
117 describeRepositories(input: DescribeRepositoriesCommandInput): Promise<DescribeRepositoriesCommandOutput>;
118 getAuthorizationToken(input: GetAuthorizationTokenCommandInput): Promise<GetAuthorizationTokenCommandOutput>;
119 listImages(input: ListImagesCommandInput): Promise<ListImagesCommandOutput>;
120 putImage(input: PutImageCommandInput): Promise<PutImageCommandOutput>;
121 putImageScanningConfiguration(input: PutImageScanningConfigurationCommandInput): Promise<PutImageScanningConfigurationCommandOutput>;
122}
123export interface IECSClient {
124 listClusters(input: ListClustersCommandInput): Promise<ListClustersCommandOutput>;
125 registerTaskDefinition(input: RegisterTaskDefinitionCommandInput): Promise<RegisterTaskDefinitionCommandOutput>;
126 updateService(input: UpdateServiceCommandInput): Promise<UpdateServiceCommandOutput>;
127 waitUntilServicesStable(input: DescribeServicesCommandInput): Promise<WaiterResult>;
128}
129export interface IElasticLoadBalancingV2Client {
130 describeListeners(input: DescribeListenersCommandInput): Promise<DescribeListenersCommandOutput>;
131 describeLoadBalancers(input: DescribeLoadBalancersCommandInput): Promise<DescribeLoadBalancersCommandOutput>;
132 describeTags(input: DescribeTagsCommandInput): Promise<DescribeTagsCommandOutput>;
133 paginateDescribeListeners(input: DescribeListenersCommandInput): Promise<Listener[]>;
134 paginateDescribeLoadBalancers(input: DescribeLoadBalancersCommandInput): Promise<LoadBalancer[]>;
135}
136export interface IIAMClient {
137 createPolicy(input: CreatePolicyCommandInput): Promise<CreatePolicyCommandOutput>;
138 getPolicy(input: GetPolicyCommandInput): Promise<GetPolicyCommandOutput>;
139 getRole(input: GetRoleCommandInput): Promise<GetRoleCommandOutput>;
140}
141export interface IKMSClient {
142 describeKey(input: DescribeKeyCommandInput): Promise<DescribeKeyCommandOutput>;
143 listAliases(input: ListAliasesCommandInput): Promise<ListAliasesCommandOutput>;
144}
145export interface ILambdaClient {
146 invokeCommand(input: InvokeCommandInput): Promise<InvokeCommandOutput>;
147 publishVersion(input: PublishVersionCommandInput): Promise<PublishVersionCommandOutput>;
148 updateAlias(input: UpdateAliasCommandInput): Promise<UpdateAliasCommandOutput>;
149 updateFunctionCode(input: UpdateFunctionCodeCommandInput): Promise<UpdateFunctionCodeCommandOutput>;
150 updateFunctionConfiguration(input: UpdateFunctionConfigurationCommandInput): Promise<UpdateFunctionConfigurationCommandOutput>;
151 waitUntilFunctionUpdated(delaySeconds: number, input: UpdateFunctionConfigurationCommandInput): Promise<WaiterResult>;
152}
153export interface IRoute53Client {
154 getHostedZone(input: GetHostedZoneCommandInput): Promise<GetHostedZoneCommandOutput>;
155 listHostedZones(input: ListHostedZonesCommandInput): Promise<ListHostedZonesCommandOutput>;
156 listHostedZonesByName(input: ListHostedZonesByNameCommandInput): Promise<ListHostedZonesByNameCommandOutput>;
157}
158export interface IS3Client {
159 deleteObjects(input: DeleteObjectsCommandInput): Promise<DeleteObjectsCommandOutput>;
160 deleteObjectTagging(input: DeleteObjectTaggingCommandInput): Promise<DeleteObjectTaggingCommandOutput>;
161 getBucketEncryption(input: GetBucketEncryptionCommandInput): Promise<GetBucketEncryptionCommandOutput>;
162 getBucketLocation(input: GetBucketLocationCommandInput): Promise<GetBucketLocationCommandOutput>;
163 getObject(input: GetObjectCommandInput): Promise<GetObjectCommandOutput>;
164 getObjectTagging(input: GetObjectTaggingCommandInput): Promise<GetObjectTaggingCommandOutput>;
165 listObjectsV2(input: ListObjectsV2CommandInput): Promise<ListObjectsV2CommandOutput>;
166 putObjectTagging(input: PutObjectTaggingCommandInput): Promise<PutObjectTaggingCommandOutput>;
167 upload(input: PutObjectCommandInput): Promise<CompleteMultipartUploadCommandOutput>;
168}
169export interface ISecretsManagerClient {
170 getSecretValue(input: GetSecretValueCommandInput): Promise<GetSecretValueCommandOutput>;
171}
172export interface ISSMClient {
173 getParameter(input: GetParameterCommandInput): Promise<GetParameterCommandOutput>;
174}
175export interface IStepFunctionsClient {
176 updateStateMachine(input: UpdateStateMachineCommandInput): Promise<UpdateStateMachineCommandOutput>;
177}
178/**
179 * Base functionality of SDK without credential fetching
180 */
181export declare class SDK {
182 private readonly credProvider;
183 private static readonly accountCache;
184 readonly currentRegion: string;
185 readonly config: ConfigurationOptions;
186 protected readonly logger?: Logger;
187 /**
188 * STS is used to check credential validity, don't do too many retries.
189 */
190 private readonly stsRetryStrategy;
191 /**
192 * Whether we have proof that the credentials have not expired
193 *
194 * We need to do some manual plumbing around this because the JS SDKv2 treats `ExpiredToken`
195 * as retriable and we have hefty retries on CFN calls making the CLI hang for a good 15 minutes
196 * if the credentials have expired.
197 */
198 private _credentialsValidated;
199 constructor(credProvider: AwsCredentialIdentityProvider, region: string, requestHandler: NodeHttpHandlerOptions, logger?: Logger);
200 appendCustomUserAgent(userAgentData?: string): void;
201 removeCustomUserAgent(userAgentData: string): void;
202 appsync(): IAppSyncClient;
203 cloudControl(): ICloudControlClient;
204 cloudFormation(): ICloudFormationClient;
205 cloudWatchLogs(): ICloudWatchLogsClient;
206 codeBuild(): ICodeBuildClient;
207 ec2(): IEC2Client;
208 ecr(): IECRClient;
209 ecs(): IECSClient;
210 elbv2(): IElasticLoadBalancingV2Client;
211 iam(): IIAMClient;
212 kms(): IKMSClient;
213 lambda(): ILambdaClient;
214 route53(): IRoute53Client;
215 s3(): IS3Client;
216 secretsManager(): ISecretsManagerClient;
217 ssm(): ISSMClient;
218 stepFunctions(): IStepFunctionsClient;
219 /**
220 * The AWS SDK v3 requires a client config and a command in order to get an endpoint for
221 * any given service.
222 */
223 getUrlSuffix(region: string): Promise<string>;
224 currentAccount(): Promise<Account>;
225 /**
226 * Make sure the the current credentials are not expired
227 */
228 validateCredentials(): Promise<void>;
229}