@aws-cdk/aws-imagebuilder-alpha 2.228.0-alpha.0 → 2.229.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,491 @@
1
+ import * as cdk from 'aws-cdk-lib';
2
+ import * as iam from 'aws-cdk-lib/aws-iam';
3
+ import * as kms from 'aws-cdk-lib/aws-kms';
4
+ import * as s3 from 'aws-cdk-lib/aws-s3';
5
+ import * as s3assets from 'aws-cdk-lib/aws-s3-assets';
6
+ import { Construct } from 'constructs';
7
+ /**
8
+ * An EC2 Image Builder Workflow.
9
+ */
10
+ export interface IWorkflow extends cdk.IResource {
11
+ /**
12
+ * The ARN of the workflow
13
+ *
14
+ * @attribute
15
+ */
16
+ readonly workflowArn: string;
17
+ /**
18
+ * The name of the workflow
19
+ *
20
+ * @attribute
21
+ */
22
+ readonly workflowName: string;
23
+ /**
24
+ * The type of the workflow
25
+ *
26
+ * @attribute
27
+ */
28
+ readonly workflowType: string;
29
+ /**
30
+ * The version of the workflow
31
+ *
32
+ * @attribute
33
+ */
34
+ readonly workflowVersion: string;
35
+ /**
36
+ * Grant custom actions to the given grantee for the workflow
37
+ *
38
+ * @param grantee The principal
39
+ * @param actions The list of actions
40
+ */
41
+ grant(grantee: iam.IGrantable, ...actions: string[]): iam.Grant;
42
+ /**
43
+ * Grant read permissions to the given grantee for the workflow
44
+ *
45
+ * @param grantee The principal
46
+ */
47
+ grantRead(grantee: iam.IGrantable): iam.Grant;
48
+ }
49
+ /**
50
+ * Properties for creating a Workflow resource
51
+ */
52
+ export interface WorkflowProps {
53
+ /**
54
+ * The workflow document content that defines the image creation process.
55
+ */
56
+ readonly data: WorkflowData;
57
+ /**
58
+ * The phase in the image build process for which the workflow resource is responsible.
59
+ */
60
+ readonly workflowType: WorkflowType;
61
+ /**
62
+ * The name of the workflow.
63
+ *
64
+ * @default - a name is generated
65
+ */
66
+ readonly workflowName?: string;
67
+ /**
68
+ * The version of the workflow.
69
+ *
70
+ * @default 1.0.0
71
+ */
72
+ readonly workflowVersion?: string;
73
+ /**
74
+ * The description of the workflow.
75
+ *
76
+ * @default None
77
+ */
78
+ readonly description?: string;
79
+ /**
80
+ * The change description of the workflow. Describes what change has been made in this version of the workflow, or
81
+ * what makes this version different from other versions.
82
+ *
83
+ * @default None
84
+ */
85
+ readonly changeDescription?: string;
86
+ /**
87
+ * The KMS key used to encrypt this workflow.
88
+ *
89
+ * @default - an Image Builder owned key will be used to encrypt the workflow.
90
+ */
91
+ readonly kmsKey?: kms.IKey;
92
+ /**
93
+ * The tags to apply to the workflow
94
+ *
95
+ * @default None
96
+ */
97
+ readonly tags?: {
98
+ [key: string]: string;
99
+ };
100
+ }
101
+ /**
102
+ * Properties for an EC2 Image Builder Workflow
103
+ */
104
+ export interface WorkflowAttributes {
105
+ /**
106
+ * The ARN of the workflow
107
+ *
108
+ * @default - the ARN is automatically constructed if a workflowName and workflowType is provided, otherwise a
109
+ * workflowArn is required
110
+ */
111
+ readonly workflowArn?: string;
112
+ /**
113
+ * The name of the workflow
114
+ *
115
+ * @default - the name is automatically constructed if a workflowArn is provided, otherwise a workflowName is required
116
+ */
117
+ readonly workflowName?: string;
118
+ /**
119
+ * The type of the workflow
120
+ *
121
+ * @default - the type is automatically constructed if a workflowArn is provided, otherwise a workflowType is required
122
+ */
123
+ readonly workflowType?: WorkflowType;
124
+ /**
125
+ * The version of the workflow
126
+ *
127
+ * @default x.x.x
128
+ */
129
+ readonly workflowVersion?: string;
130
+ }
131
+ /**
132
+ * Properties for an EC2 Image Builder AWS-managed workflow
133
+ */
134
+ export interface AwsManagedWorkflowAttributes {
135
+ /**
136
+ * The name of the AWS-managed workflow
137
+ */
138
+ readonly workflowName: string;
139
+ /**
140
+ * The type of the AWS-managed workflow
141
+ */
142
+ readonly workflowType: WorkflowType;
143
+ }
144
+ /**
145
+ * The action for a step within the workflow document
146
+ */
147
+ export declare enum WorkflowAction {
148
+ /**
149
+ * Applies customizations and configurations to the input AMIs, such as publishing the AMI to SSM Parameter Store,
150
+ * or creating launch template versions with the AMI IDs provided in the input
151
+ */
152
+ APPLY_IMAGE_CONFIGURATIONS = "ApplyImageConfigurations",
153
+ /**
154
+ * The BootstrapInstanceForContainer action runs a service script to bootstrap the instance with minimum requirements
155
+ * to run container workflows
156
+ */
157
+ BOOTSTRAP_INSTANCE_FOR_CONTAINER = "BootstrapInstanceForContainer",
158
+ /**
159
+ * The CollectImageMetadata action collects additional information about the instance, such as the list of packages
160
+ * and their respective versions
161
+ */
162
+ COLLECT_IMAGE_METADATA = "CollectImageMetadata",
163
+ /**
164
+ * The CollectImageScanFindings action collects findings reported by Amazon Inspector for the provided instance
165
+ */
166
+ COLLECT_IMAGE_SCAN_FINDINGS = "CollectImageScanFindings",
167
+ /**
168
+ * The CreateImage action creates an AMI from a running instance with the ec2:CreateImage API
169
+ */
170
+ CREATE_IMAGE = "CreateImage",
171
+ /**
172
+ * The DistributeImage action copies an AMI using the image's distribution configuration, or using the distribution
173
+ * settings in the step input
174
+ */
175
+ DISTRIBUTE_IMAGE = "DistributeImage",
176
+ /**
177
+ * The ExecuteComponents action runs components that are specified in the recipe for the current image being built
178
+ */
179
+ EXECUTE_COMPONENTS = "ExecuteComponents",
180
+ /**
181
+ * The ExecuteStateMachine action executes a the state machine provided and waits for completion as part of the
182
+ * workflow
183
+ */
184
+ EXECUTE_STATE_MACHINE = "ExecuteStateMachine",
185
+ /**
186
+ * The LaunchInstance action launches an instance using the settings from your recipe and infrastructure configuration
187
+ * resources
188
+ */
189
+ LAUNCH_INSTANCE = "LaunchInstance",
190
+ /**
191
+ * Applies attribute updates to the provided set of distributed images, such as launch permission updates
192
+ */
193
+ MODIFY_IMAGE_ATTRIBUTES = "ModifyImageAttributes",
194
+ /**
195
+ * The RunCommand action runs a command document against the provided instance
196
+ */
197
+ RUN_COMMAND = "RunCommand",
198
+ /**
199
+ * The RegisterImage action creates an AMI from a set of snapshots with the ec2:RegisterImage API
200
+ */
201
+ REGISTER_IMAGE = "RegisterImage",
202
+ /**
203
+ * The RunSysprep action runs the Sysprep document on the provided Windows instance
204
+ */
205
+ RUN_SYS_PREP = "RunSysPrep",
206
+ /**
207
+ * The SanitizeInstance action runs a recommended sanitization script on Linux instances
208
+ */
209
+ SANITIZE_INSTANCE = "SanitizeInstance",
210
+ /**
211
+ * The TerminateInstance action terminates the provided instance
212
+ */
213
+ TERMINATE_INSTANCE = "TerminateInstance",
214
+ /**
215
+ * The WaitForAction action pauses the workflow and waits to receive an external signal from the
216
+ * imagebuilder:SendWorkflowStepAction API
217
+ */
218
+ WAIT_FOR_ACTION = "WaitForAction",
219
+ /**
220
+ * The WaitForSSMAgent action waits for the given instance to have connectivity with SSM before proceeding
221
+ */
222
+ WAIT_FOR_SSM_AGENT = "WaitForSSMAgent"
223
+ }
224
+ /**
225
+ * The action to take if the workflow fails
226
+ */
227
+ export declare enum WorkflowOnFailure {
228
+ /**
229
+ * Fails the image build if the workflow fails
230
+ */
231
+ ABORT = "Abort",
232
+ /**
233
+ * Continues with the image build if the workflow fails
234
+ */
235
+ CONTINUE = "Continue"
236
+ }
237
+ /**
238
+ * The parameter type for the workflow parameter
239
+ */
240
+ export declare enum WorkflowParameterType {
241
+ /**
242
+ * Indicates the workflow parameter has a boolean value
243
+ */
244
+ BOOLEAN = "boolean",
245
+ /**
246
+ * Indicates the workflow parameter has an integer value
247
+ */
248
+ INTEGER = "integer",
249
+ /**
250
+ * Indicates the workflow parameter has a string value
251
+ */
252
+ STRING = "string",
253
+ /**
254
+ * Indicates the workflow parameter has a string list value
255
+ */
256
+ STRING_LIST = "stringList"
257
+ }
258
+ /**
259
+ * The schema version of the workflow
260
+ */
261
+ export declare enum WorkflowSchemaVersion {
262
+ /**
263
+ * Schema version 1.0 for the workflow document
264
+ */
265
+ V1_0 = "1.0"
266
+ }
267
+ /**
268
+ * The type of the workflow
269
+ */
270
+ export declare enum WorkflowType {
271
+ /**
272
+ * Indicates the workflow is for building images
273
+ */
274
+ BUILD = "BUILD",
275
+ /**
276
+ * Indicates the workflow is for testing images
277
+ */
278
+ TEST = "TEST",
279
+ /**
280
+ * Indicates the workflow is for distributing images
281
+ */
282
+ DISTRIBUTION = "DISTRIBUTION"
283
+ }
284
+ /**
285
+ * The rendered workflow data value, for use in CloudFormation.
286
+ * - For inline workflows, data is the workflow text
287
+ * - For S3-backed workflows, uri is the S3 URL
288
+ */
289
+ export interface WorkflowDataConfig {
290
+ /**
291
+ * The rendered workflow data, for use in CloudFormation
292
+ *
293
+ * @default - none if uri is set
294
+ */
295
+ readonly data?: string;
296
+ /**
297
+ * The rendered workflow data URI, for use in CloudFormation
298
+ *
299
+ * @default - none if data is set
300
+ */
301
+ readonly uri?: string;
302
+ }
303
+ /**
304
+ * Helper class for referencing and uploading workflow data
305
+ */
306
+ export declare abstract class WorkflowData {
307
+ /**
308
+ * Uploads workflow data from a local file to S3 to use as the workflow data
309
+ *
310
+ * @param scope The construct scope
311
+ * @param id Identifier of the construct
312
+ * @param path The local path to the workflow data file
313
+ * @param options S3 asset upload options
314
+ */
315
+ static fromAsset(scope: Construct, id: string, path: string, options?: s3assets.AssetOptions): S3WorkflowData;
316
+ /**
317
+ * References workflow data from a pre-existing S3 object
318
+ *
319
+ * @param bucket The S3 bucket where the workflow data is stored
320
+ * @param key The S3 key of the workflow data file
321
+ */
322
+ static fromS3(bucket: s3.IBucket, key: string): S3WorkflowData;
323
+ /**
324
+ * Uses an inline JSON object as the workflow data
325
+ *
326
+ * @param data An inline JSON object representing the workflow data
327
+ */
328
+ static fromJsonObject(data: {
329
+ [key: string]: any;
330
+ }): WorkflowData;
331
+ /**
332
+ * Uses an inline JSON or YAML string as the workflow data
333
+ *
334
+ * @param data An inline JSON or YAML string representing the workflow data
335
+ */
336
+ static fromInline(data: string): WorkflowData;
337
+ /**
338
+ * The rendered workflow data value, for use in CloudFormation.
339
+ * - For inline workflows, data is the workflow text
340
+ * - For S3-backed workflows, uri is the S3 URL
341
+ */
342
+ abstract render(): WorkflowDataConfig;
343
+ }
344
+ /**
345
+ * Helper class for S3-based workflow data references, containing additional permission grant methods on the S3 object
346
+ */
347
+ export declare abstract class S3WorkflowData extends WorkflowData {
348
+ protected readonly bucket: s3.IBucket;
349
+ protected readonly key: string;
350
+ protected constructor(bucket: s3.IBucket, key: string);
351
+ /**
352
+ * The rendered workflow data text, for use in CloudFormation
353
+ */
354
+ render(): WorkflowDataConfig;
355
+ /**
356
+ * Grant put permissions to the given grantee for the workflow data in S3
357
+ *
358
+ * @param grantee The principal
359
+ */
360
+ grantPut(grantee: iam.IGrantable): iam.Grant;
361
+ /**
362
+ * Grant read permissions to the given grantee for the workflow data in S3
363
+ *
364
+ * @param grantee The principal
365
+ */
366
+ grantRead(grantee: iam.IGrantable): iam.Grant;
367
+ }
368
+ /**
369
+ * Helper class for working with AWS-managed workflows
370
+ */
371
+ export declare class AwsManagedWorkflow {
372
+ /**
373
+ * Imports the build-container AWS-managed workflow
374
+ *
375
+ * @param scope The construct scope
376
+ * @param id Identifier of the construct
377
+ */
378
+ static buildContainer(scope: Construct, id: string): IWorkflow;
379
+ /**
380
+ * Imports the build-image AWS-managed workflow
381
+ *
382
+ * @param scope The construct scope
383
+ * @param id Identifier of the construct
384
+ */
385
+ static buildImage(scope: Construct, id: string): IWorkflow;
386
+ /**
387
+ * Imports the distribute-container AWS-managed workflow
388
+ *
389
+ * @param scope The construct scope
390
+ * @param id Identifier of the construct
391
+ */
392
+ static distributeContainer(scope: Construct, id: string): IWorkflow;
393
+ /**
394
+ * Imports the test-container AWS-managed workflow
395
+ *
396
+ * @param scope The construct scope
397
+ * @param id Identifier of the construct
398
+ */
399
+ static testContainer(scope: Construct, id: string): IWorkflow;
400
+ /**
401
+ * Imports the test-image AWS-managed workflow
402
+ *
403
+ * @param scope The construct scope
404
+ * @param id Identifier of the construct
405
+ */
406
+ static testImage(scope: Construct, id: string): IWorkflow;
407
+ /**
408
+ * Imports an AWS-managed workflow from its attributes
409
+ *
410
+ * @param scope The construct scope
411
+ * @param id Identifier of the construct
412
+ * @param attrs The attributes of the AWS-managed workflow
413
+ */
414
+ static fromAwsManagedWorkflowAttributes(scope: Construct, id: string, attrs: AwsManagedWorkflowAttributes): IWorkflow;
415
+ }
416
+ /**
417
+ * A new or imported Workflow
418
+ */
419
+ declare abstract class WorkflowBase extends cdk.Resource implements IWorkflow {
420
+ /**
421
+ * The ARN of the workflow
422
+ */
423
+ abstract readonly workflowArn: string;
424
+ /**
425
+ * The name of the workflow
426
+ */
427
+ abstract readonly workflowName: string;
428
+ /**
429
+ * The type of the workflow
430
+ */
431
+ abstract readonly workflowType: string;
432
+ /**
433
+ * The version of the workflow
434
+ */
435
+ abstract readonly workflowVersion: string;
436
+ /**
437
+ * Grant custom actions to the given grantee for the workflow
438
+ *
439
+ * @param grantee The principal
440
+ * @param actions The list of actions
441
+ */
442
+ grant(grantee: iam.IGrantable, ...actions: string[]): iam.Grant;
443
+ /**
444
+ * Grant read permissions to the given grantee for the workflow
445
+ *
446
+ * @param grantee The principal
447
+ */
448
+ grantRead(grantee: iam.IGrantable): iam.Grant;
449
+ }
450
+ /**
451
+ * Represents an EC2 Image Builder Workflow.
452
+ *
453
+ * @see https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html
454
+ */
455
+ export declare class Workflow extends WorkflowBase {
456
+ /** Uniquely identifies this class. */
457
+ static readonly PROPERTY_INJECTION_ID: string;
458
+ /**
459
+ * Import an existing workflow given its ARN.
460
+ */
461
+ static fromWorkflowArn(scope: Construct, id: string, workflowArn: string): IWorkflow;
462
+ /**
463
+ * Import an existing workflow by providing its attributes. The provided name must be normalized by converting
464
+ * all alphabetical characters to lowercase, and replacing all spaces and underscores with hyphens. You may not
465
+ * provide a dynamic expression for the workflowArn or workflowType
466
+ */
467
+ static fromWorkflowAttributes(scope: Construct, id: string, attrs: WorkflowAttributes): IWorkflow;
468
+ /**
469
+ * Return whether the given object is a Workflow.
470
+ */
471
+ static isWorkflow(x: any): x is Workflow;
472
+ /**
473
+ * The ARN of the workflow
474
+ */
475
+ readonly workflowArn: string;
476
+ /**
477
+ * The name of the workflow
478
+ */
479
+ readonly workflowName: string;
480
+ /**
481
+ * The type of the workflow
482
+ */
483
+ readonly workflowType: string;
484
+ /**
485
+ * The version of the workflow
486
+ */
487
+ readonly workflowVersion: string;
488
+ constructor(scope: Construct, id: string, props: WorkflowProps);
489
+ private validateWorkflowName;
490
+ }
491
+ export {};