UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

42 lines (41 loc) 2.58 kB
import { IsCompleteResponse, OnEventResponse } from '../../../custom-resources/lib/provider-framework/types'; import * as aws from 'aws-sdk'; export interface EksUpdateId { /** * If this field is included in an event passed to "IsComplete", it means we * initiated an EKS update that should be monitored using eks:DescribeUpdate * instead of just looking at the cluster status. */ EksUpdateId?: string; } export declare type ResourceEvent = AWSLambda.CloudFormationCustomResourceEvent & EksUpdateId; export declare abstract class ResourceHandler { protected readonly eks: EksClient; protected readonly requestId: string; protected readonly logicalResourceId: string; protected readonly requestType: 'Create' | 'Update' | 'Delete'; protected readonly physicalResourceId?: string; protected readonly event: ResourceEvent; constructor(eks: EksClient, event: ResourceEvent); onEvent(): Promise<void | OnEventResponse>; isComplete(): Promise<IsCompleteResponse>; protected log(x: any): void; protected abstract onCreate(): Promise<OnEventResponse>; protected abstract onDelete(): Promise<OnEventResponse | void>; protected abstract onUpdate(): Promise<(OnEventResponse & EksUpdateId) | void>; protected abstract isCreateComplete(): Promise<IsCompleteResponse>; protected abstract isDeleteComplete(): Promise<IsCompleteResponse>; protected abstract isUpdateComplete(): Promise<IsCompleteResponse>; } export interface EksClient { configureAssumeRole(request: aws.STS.AssumeRoleRequest): void; createCluster(request: aws.EKS.CreateClusterRequest): Promise<aws.EKS.CreateClusterResponse>; deleteCluster(request: aws.EKS.DeleteClusterRequest): Promise<aws.EKS.DeleteClusterResponse>; describeCluster(request: aws.EKS.DescribeClusterRequest): Promise<aws.EKS.DescribeClusterResponse>; updateClusterConfig(request: aws.EKS.UpdateClusterConfigRequest): Promise<aws.EKS.UpdateClusterConfigResponse>; updateClusterVersion(request: aws.EKS.UpdateClusterVersionRequest): Promise<aws.EKS.UpdateClusterVersionResponse>; describeUpdate(req: aws.EKS.DescribeUpdateRequest): Promise<aws.EKS.DescribeUpdateResponse>; createFargateProfile(request: aws.EKS.CreateFargateProfileRequest): Promise<aws.EKS.CreateFargateProfileResponse>; describeFargateProfile(request: aws.EKS.DescribeFargateProfileRequest): Promise<aws.EKS.DescribeFargateProfileResponse>; deleteFargateProfile(request: aws.EKS.DeleteFargateProfileRequest): Promise<aws.EKS.DeleteFargateProfileResponse>; }