22import { exec as runCli } from 'aws-cdk/lib' ;
33// eslint-disable-next-line import/no-extraneous-dependencies
44import { createAssembly , prepareContext , prepareDefaultEnvironment } from 'aws-cdk/lib/api/cxapp/exec' ;
5- import { SharedOptions , DeployOptions , DestroyOptions , SynthOptions , ListOptions , StackActivityProgress } from './commands' ;
5+ import { SharedOptions , DeployOptions , DestroyOptions , BootstrapOptions , SynthOptions , ListOptions , StackActivityProgress } from './commands' ;
66
77/**
88 * AWS CDK CLI operations
@@ -18,6 +18,11 @@ export interface IAwsCdkCli {
1818 */
1919 synth ( options ?: SynthOptions ) : Promise < void > ;
2020
21+ /**
22+ * cdk bootstrap
23+ */
24+ bootstrap ( options ?: BootstrapOptions ) : Promise < void > ;
25+
2126 /**
2227 * cdk deploy
2328 */
@@ -163,6 +168,34 @@ export class AwsCdkCli implements IAwsCdkCli {
163168 await this . exec ( [ 'synth' , ...synthCommandArgs ] ) ;
164169 }
165170
171+ /**
172+ * cdk bootstrap
173+ */
174+ public async bootstrap ( options : BootstrapOptions = { } ) {
175+ const bootstrapCommandArgs : string [ ] = [
176+ ...renderBooleanArg ( 'force' , options . force ) ,
177+ ...renderBooleanArg ( 'show-template' , options . showTemplate ) ,
178+ ...renderBooleanArg ( 'terminationProtection' , options . terminationProtection ) ,
179+ ...renderBooleanArg ( 'example-permissions-boundary' , options . examplePermissionsBoundary ) ,
180+ ...renderBooleanArg ( 'terminationProtection' , options . usePreviousParameters ) ,
181+ ...renderBooleanArg ( 'execute' , options . execute ) ,
182+ ...options . toolkitStackName ? [ '--toolkit-stack-name' , options . toolkitStackName ] : [ ] ,
183+ ...options . bootstrapBucketName ? [ '--bootstrap-bucket-name' , options . bootstrapBucketName ] : [ ] ,
184+ ...options . cfnExecutionPolicy ? [ '--cloudformation-execution-policies' , options . cfnExecutionPolicy ] : [ ] ,
185+ ...options . template ? [ '--template' , options . template ] : [ ] ,
186+ ...options . customPermissionsBoundary ? [ '--custom-permissions-boundary' , options . customPermissionsBoundary ] : [ ] ,
187+ ...options . qualifier ? [ '--qualifier' , options . qualifier ] : [ ] ,
188+ ...options . trust ? [ '--qualifier' , options . trust ] : [ ] ,
189+ ...options . trustForLookup ? [ '--qualifier' , options . trustForLookup ] : [ ] ,
190+ ...options . bootstrapKmsKeyId ? [ '--bootstrap-kms-key-id' , options . bootstrapKmsKeyId ] : [ ] ,
191+ ...options . bootstrapCustomerKey ? [ '--bootstrap-customer-key' , options . bootstrapCustomerKey ] : [ ] ,
192+ ...options . publicAccessBlockConfiguration ? [ '--public-access-block-configuration' , options . publicAccessBlockConfiguration ] : [ ] ,
193+ ...this . createDefaultArguments ( options ) ,
194+ ] ;
195+
196+ await this . exec ( [ 'bootstrap' , ...bootstrapCommandArgs ] ) ;
197+ }
198+
166199 /**
167200 * cdk deploy
168201 */
0 commit comments