jjrawlins-cdk-ami-builder 0.0.79__py3-none-any.whl

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,3526 @@
1
+ r'''
2
+ # ImagePipeline Construct for AWS CDK
3
+
4
+ ## Overview
5
+
6
+ The `ImagePipeline` construct is a versatile and powerful component of the AWS Cloud Development Kit (CDK) designed for
7
+ creating and managing AWS Image Builder pipelines. This construct simplifies the process of setting up automated
8
+ pipelines for building and maintaining Amazon Machine Images (AMIs). It provides extensive customization options,
9
+ enabling users to tailor the pipeline to specific needs, including vulnerability scanning, cross-account distribution,
10
+ and more.
11
+
12
+ ## Benefits
13
+
14
+ 1. **Customizable Image Building**: Offers a wide range of parameters to customize the AMI, including VPC settings,
15
+ security groups, instance types, and more.
16
+ 2. **Automated Pipeline Management**: Automates the pipeline creation and execution process, reducing manual effort and
17
+ potential errors.
18
+ 3. **Cross-Account AMI Distribution**: Facilitates the copying of AMIs to multiple AWS accounts, enhancing resource
19
+ sharing and collaboration.
20
+ 4. **Vulnerability Scanning Integration**: Supports integration with AWS Inspector for continuous vulnerability
21
+ scanning, ensuring security compliance.
22
+ 5. **User-Friendly**: Designed with user experience in mind, making it easy to integrate into AWS CDK projects.
23
+ 6. **Scalability and Flexibility**: Scales according to your needs and provides flexibility in configuring various
24
+ aspects of the image building process.
25
+
26
+ ## Prerequisites
27
+
28
+ * AWS account and AWS CLI configured.
29
+ * Familiarity with AWS CDK and TypeScript.
30
+ * Node.js and npm installed.
31
+
32
+ ## Installation
33
+
34
+ Ensure that you have the AWS CDK installed. If not, you can install it using npm:
35
+
36
+ ```bash
37
+ npm install -g aws-cdk
38
+ ```
39
+
40
+ Next, add the `ImagePipeline` construct to your CDK project:
41
+
42
+ ```bash
43
+ npm install '@jjrawlins/cdk-ami-builder' --save
44
+ ```
45
+
46
+ ## Usage Example
47
+
48
+ Below is an example of how to use the `ImagePipeline` construct in your CDK application.
49
+
50
+ ### Importing the Construct
51
+
52
+ First, import the `ImagePipeline` construct into your CDK application:
53
+
54
+ ```python
55
+ import { ImagePipeline } from '@jjrawlins/cdk-ami-builder';
56
+ ```
57
+
58
+ ### Using the Construct
59
+
60
+ Here's an example of how to use the `ImagePipeline` construct:
61
+
62
+ ```python
63
+ const vpc = new Vpc(this, 'Vpc', {
64
+ ipAddresses: IpAddresses.cidr(props.vpcCidr as string),
65
+ maxAzs: 2,
66
+ subnetConfiguration: [
67
+ {
68
+ name: 'Public',
69
+ subnetType: SubnetType.PUBLIC,
70
+ cidrMask: 24,
71
+ },
72
+ {
73
+ name: 'Private',
74
+ subnetType: SubnetType.PRIVATE_WITH_EGRESS,
75
+ cidrMask: 24,
76
+ },
77
+ ],
78
+ natGateways: 1,
79
+ });
80
+
81
+ const image = ec2.MachineImage.lookup({
82
+ name: 'ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-*',
83
+ owners: ['099720109477'],
84
+ });
85
+
86
+ const version = process.env.IMAGE_VERSION_NUMBER ?? '0.0.8';
87
+
88
+ const imagePipeline = new ImagePipeline(this, 'ImagePipeline', {
89
+ parentImage: image.getImage(this).imageId,
90
+ vpc: vpc,
91
+ imageRecipeVersion: version,
92
+ components: [
93
+ {
94
+ name: 'Install-Monitoring',
95
+ platform: 'Linux',
96
+ componentDocument: {
97
+ phases: [{
98
+ name: 'build',
99
+ steps: [
100
+ {
101
+ name: 'Install-CloudWatch-Agent',
102
+ action: 'ExecuteBash',
103
+ inputs: {
104
+ commands: [
105
+ 'apt-get update',
106
+ 'DEBIAN_FRONTEND=noninteractive apt-get install -y g++ make cmake unzip libcur14-openssl-dev',
107
+ 'DEBIAN_FRONTEND=noninteractive apt-get install -y curl sudo jq bash zip unzip iptables software-properties-common ca-certificates',
108
+ 'curl -sfLo /tmp/amazon-cloudwatch-agent.deb https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb',
109
+ 'dpkg -i -E /tmp/amazon-cloudwatch-agent.deb',
110
+ 'rm /tmp/amazon-cloudwatch-agent.deb',
111
+ ],
112
+ },
113
+ },
114
+ ],
115
+ }],
116
+ },
117
+ },
118
+ ],
119
+ });
120
+
121
+ new CfnOutput(this, `ImageId-${this.stackName}`, {
122
+ value: imagePipeline.imageId, // Only valid if autoBuild=true
123
+ description: 'The AMI ID of the image created by the pipeline',
124
+ });
125
+ ```
126
+
127
+ This example demonstrates creating a new VPC and setting up an Image Pipeline within it. You can customize the `
128
+
129
+ ImagePipeline` properties according to your requirements.
130
+
131
+ ### Customization Options
132
+
133
+ * `vpc`: Specify the VPC where the Image Pipeline will be deployed.
134
+ * `parentImage`: Define the base AMI for the image recipe.
135
+ * `components`: List custom components for the AMI, such as software installations and configurations.
136
+ * Additional properties like `imageRecipeVersion`, `platform`, `enableVulnScans`, etc., allow further customization.
137
+
138
+ ### Outputs
139
+
140
+ The construct provides outputs like `imagePipelineArn` and `imageId`, which can be used in other parts of your AWS
141
+ infrastructure setup.
142
+
143
+ ## Best Practices
144
+
145
+ 1. **Parameter Validation**: Ensure that all inputs to the construct are validated.
146
+ 2. **Security**: Follow best practices for security group and IAM role configurations.
147
+ 3. **Resource Naming**: Use meaningful names for resources for better manageability.
148
+ 4. **Error Handling**: Implement error handling for pipeline execution and custom resources.
149
+
150
+ ## Support and Contribution
151
+
152
+ For support, please contact the package maintainer or open an issue in the repository. Contributions to the package are
153
+ welcome. Please follow the contribution guidelines in the repository.
154
+
155
+ ---
156
+
157
+
158
+ This README provides a basic guide to getting started with the `ImagePipeline` construct. For more advanced usage and
159
+ customization, refer to the detailed documentation in the package.
160
+
161
+ ![User](https://lh3.googleusercontent.com/a/AEdFTp6yNsN1-EC5-OZ2vss91NDDYmHKgEHn8xwdd6eS=s96-c)
162
+ '''
163
+ from pkgutil import extend_path
164
+ __path__ = extend_path(__path__, __name__)
165
+
166
+ import abc
167
+ import builtins
168
+ import datetime
169
+ import enum
170
+ import typing
171
+
172
+ import jsii
173
+ import publication
174
+ import typing_extensions
175
+
176
+ import typeguard
177
+ from importlib.metadata import version as _metadata_package_version
178
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
179
+
180
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
181
+ if TYPEGUARD_MAJOR_VERSION <= 2:
182
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
183
+ else:
184
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
185
+ pass
186
+ else:
187
+ if TYPEGUARD_MAJOR_VERSION == 3:
188
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
189
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
190
+ else:
191
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
192
+
193
+ from ._jsii import *
194
+
195
+ import aws_cdk as _aws_cdk_ceddda9d
196
+ import aws_cdk.aws_codeguruprofiler as _aws_cdk_aws_codeguruprofiler_ceddda9d
197
+ import aws_cdk.aws_ec2 as _aws_cdk_aws_ec2_ceddda9d
198
+ import aws_cdk.aws_iam as _aws_cdk_aws_iam_ceddda9d
199
+ import aws_cdk.aws_imagebuilder as _aws_cdk_aws_imagebuilder_ceddda9d
200
+ import aws_cdk.aws_kms as _aws_cdk_aws_kms_ceddda9d
201
+ import aws_cdk.aws_lambda as _aws_cdk_aws_lambda_ceddda9d
202
+ import aws_cdk.aws_logs as _aws_cdk_aws_logs_ceddda9d
203
+ import aws_cdk.aws_sns as _aws_cdk_aws_sns_ceddda9d
204
+ import aws_cdk.aws_sqs as _aws_cdk_aws_sqs_ceddda9d
205
+ import constructs as _constructs_77d1e7e8
206
+
207
+
208
+ class CheckStateMachineStatusFunction(
209
+ _aws_cdk_aws_lambda_ceddda9d.Function,
210
+ metaclass=jsii.JSIIMeta,
211
+ jsii_type="@jjrawlins/cdk-ami-builder.CheckStateMachineStatusFunction",
212
+ ):
213
+ '''An AWS Lambda function which executes src/Lambdas/CheckStateMachineStatus/CheckStateMachineStatus.'''
214
+
215
+ def __init__(
216
+ self,
217
+ scope: _constructs_77d1e7e8.Construct,
218
+ id: builtins.str,
219
+ *,
220
+ adot_instrumentation: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.AdotInstrumentationConfig, typing.Dict[builtins.str, typing.Any]]] = None,
221
+ allow_all_outbound: typing.Optional[builtins.bool] = None,
222
+ allow_public_subnet: typing.Optional[builtins.bool] = None,
223
+ architecture: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Architecture] = None,
224
+ code_signing_config: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ICodeSigningConfig] = None,
225
+ current_version_options: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.VersionOptions, typing.Dict[builtins.str, typing.Any]]] = None,
226
+ dead_letter_queue: typing.Optional[_aws_cdk_aws_sqs_ceddda9d.IQueue] = None,
227
+ dead_letter_queue_enabled: typing.Optional[builtins.bool] = None,
228
+ dead_letter_topic: typing.Optional[_aws_cdk_aws_sns_ceddda9d.ITopic] = None,
229
+ description: typing.Optional[builtins.str] = None,
230
+ environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
231
+ environment_encryption: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
232
+ ephemeral_storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
233
+ events: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.IEventSource]] = None,
234
+ filesystem: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.FileSystem] = None,
235
+ function_name: typing.Optional[builtins.str] = None,
236
+ initial_policy: typing.Optional[typing.Sequence[_aws_cdk_aws_iam_ceddda9d.PolicyStatement]] = None,
237
+ insights_version: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.LambdaInsightsVersion] = None,
238
+ layers: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.ILayerVersion]] = None,
239
+ log_retention: typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays] = None,
240
+ log_retention_retry_options: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.LogRetentionRetryOptions, typing.Dict[builtins.str, typing.Any]]] = None,
241
+ log_retention_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
242
+ memory_size: typing.Optional[jsii.Number] = None,
243
+ params_and_secrets: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ParamsAndSecretsLayerVersion] = None,
244
+ profiling: typing.Optional[builtins.bool] = None,
245
+ profiling_group: typing.Optional[_aws_cdk_aws_codeguruprofiler_ceddda9d.IProfilingGroup] = None,
246
+ reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
247
+ role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
248
+ runtime_management_mode: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.RuntimeManagementMode] = None,
249
+ security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
250
+ timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
251
+ tracing: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Tracing] = None,
252
+ vpc: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc] = None,
253
+ vpc_subnets: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
254
+ max_event_age: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
255
+ on_failure: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination] = None,
256
+ on_success: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination] = None,
257
+ retry_attempts: typing.Optional[jsii.Number] = None,
258
+ ) -> None:
259
+ '''
260
+ :param scope: -
261
+ :param id: -
262
+ :param adot_instrumentation: Specify the configuration of AWS Distro for OpenTelemetry (ADOT) instrumentation. Default: - No ADOT instrumentation
263
+ :param allow_all_outbound: Whether to allow the Lambda to send all network traffic. If set to false, you must individually add traffic rules to allow the Lambda to connect to network targets. Default: true
264
+ :param allow_public_subnet: Lambda Functions in a public subnet can NOT access the internet. Use this property to acknowledge this limitation and still place the function in a public subnet. Default: false
265
+ :param architecture: The system architectures compatible with this lambda function. Default: Architecture.X86_64
266
+ :param code_signing_config: Code signing config associated with this function. Default: - Not Sign the Code
267
+ :param current_version_options: Options for the ``lambda.Version`` resource automatically created by the ``fn.currentVersion`` method. Default: - default options as described in ``VersionOptions``
268
+ :param dead_letter_queue: The SQS queue to use if DLQ is enabled. If SNS topic is desired, specify ``deadLetterTopic`` property instead. Default: - SQS queue with 14 day retention period if ``deadLetterQueueEnabled`` is ``true``
269
+ :param dead_letter_queue_enabled: Enabled DLQ. If ``deadLetterQueue`` is undefined, an SQS queue with default options will be defined for your Function. Default: - false unless ``deadLetterQueue`` is set, which implies DLQ is enabled.
270
+ :param dead_letter_topic: The SNS topic to use as a DLQ. Note that if ``deadLetterQueueEnabled`` is set to ``true``, an SQS queue will be created rather than an SNS topic. Using an SNS topic as a DLQ requires this property to be set explicitly. Default: - no SNS topic
271
+ :param description: A description of the function. Default: - No description.
272
+ :param environment: Key-value pairs that Lambda caches and makes available for your Lambda functions. Use environment variables to apply configuration changes, such as test and production environment configurations, without changing your Lambda function source code. Default: - No environment variables.
273
+ :param environment_encryption: The AWS KMS key that's used to encrypt your function's environment variables. Default: - AWS Lambda creates and uses an AWS managed customer master key (CMK).
274
+ :param ephemeral_storage_size: The size of the function’s /tmp directory in MiB. Default: 512 MiB
275
+ :param events: Event sources for this function. You can also add event sources using ``addEventSource``. Default: - No event sources.
276
+ :param filesystem: The filesystem configuration for the lambda function. Default: - will not mount any filesystem
277
+ :param function_name: A name for the function. Default: - AWS CloudFormation generates a unique physical ID and uses that ID for the function's name. For more information, see Name Type.
278
+ :param initial_policy: Initial policy statements to add to the created Lambda Role. You can call ``addToRolePolicy`` to the created lambda to add statements post creation. Default: - No policy statements are added to the created Lambda role.
279
+ :param insights_version: Specify the version of CloudWatch Lambda insights to use for monitoring. Default: - No Lambda Insights
280
+ :param layers: A list of layers to add to the function's execution environment. You can configure your Lambda function to pull in additional code during initialization in the form of layers. Layers are packages of libraries or other dependencies that can be used by multiple functions. Default: - No layers.
281
+ :param log_retention: The number of days log events are kept in CloudWatch Logs. When updating this property, unsetting it doesn't remove the log retention policy. To remove the retention policy, set the value to ``INFINITE``. Default: logs.RetentionDays.INFINITE
282
+ :param log_retention_retry_options: When log retention is specified, a custom resource attempts to create the CloudWatch log group. These options control the retry policy when interacting with CloudWatch APIs. Default: - Default AWS SDK retry options.
283
+ :param log_retention_role: The IAM role for the Lambda function associated with the custom resource that sets the retention policy. Default: - A new role is created.
284
+ :param memory_size: The amount of memory, in MB, that is allocated to your Lambda function. Lambda uses this value to proportionally allocate the amount of CPU power. For more information, see Resource Model in the AWS Lambda Developer Guide. Default: 128
285
+ :param params_and_secrets: Specify the configuration of Parameters and Secrets Extension. Default: - No Parameters and Secrets Extension
286
+ :param profiling: Enable profiling. Default: - No profiling.
287
+ :param profiling_group: Profiling Group. Default: - A new profiling group will be created if ``profiling`` is set.
288
+ :param reserved_concurrent_executions: The maximum of concurrent executions you want to reserve for the function. Default: - No specific limit - account limit.
289
+ :param role: Lambda execution role. This is the role that will be assumed by the function upon execution. It controls the permissions that the function will have. The Role must be assumable by the 'lambda.amazonaws.com' service principal. The default Role automatically has permissions granted for Lambda execution. If you provide a Role, you must add the relevant AWS managed policies yourself. The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and "service-role/AWSLambdaVPCAccessExecutionRole". Default: - A unique role will be generated for this lambda function. Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
290
+ :param runtime_management_mode: Sets the runtime management configuration for a function's version. Default: Auto
291
+ :param security_groups: The list of security groups to associate with the Lambda's network interfaces. Only used if 'vpc' is supplied. Default: - If the function is placed within a VPC and a security group is not specified, either by this or securityGroup prop, a dedicated security group will be created for this function.
292
+ :param timeout: The function execution time (in seconds) after which Lambda terminates the function. Because the execution time affects cost, set this value based on the function's expected execution time. Default: Duration.seconds(3)
293
+ :param tracing: Enable AWS X-Ray Tracing for Lambda Function. Default: Tracing.Disabled
294
+ :param vpc: VPC network to place Lambda network interfaces. Specify this if the Lambda function needs to access resources in a VPC. This is required when ``vpcSubnets`` is specified. Default: - Function is not placed within a VPC.
295
+ :param vpc_subnets: Where to place the network interfaces within the VPC. This requires ``vpc`` to be specified in order for interfaces to actually be placed in the subnets. If ``vpc`` is not specify, this will raise an error. Note: Internet access for Lambda Functions requires a NAT Gateway, so picking public subnets is not allowed (unless ``allowPublicSubnet`` is set to ``true``). Default: - the Vpc default strategy if not specified
296
+ :param max_event_age: The maximum age of a request that Lambda sends to a function for processing. Minimum: 60 seconds Maximum: 6 hours Default: Duration.hours(6)
297
+ :param on_failure: The destination for failed invocations. Default: - no destination
298
+ :param on_success: The destination for successful invocations. Default: - no destination
299
+ :param retry_attempts: The maximum number of times to retry when the function returns an error. Minimum: 0 Maximum: 2 Default: 2
300
+ '''
301
+ if __debug__:
302
+ type_hints = typing.get_type_hints(_typecheckingstub__80a7e839717caae4ae025b044129f52691774b5a0c3597bea181450461089015)
303
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
304
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
305
+ props = CheckStateMachineStatusFunctionProps(
306
+ adot_instrumentation=adot_instrumentation,
307
+ allow_all_outbound=allow_all_outbound,
308
+ allow_public_subnet=allow_public_subnet,
309
+ architecture=architecture,
310
+ code_signing_config=code_signing_config,
311
+ current_version_options=current_version_options,
312
+ dead_letter_queue=dead_letter_queue,
313
+ dead_letter_queue_enabled=dead_letter_queue_enabled,
314
+ dead_letter_topic=dead_letter_topic,
315
+ description=description,
316
+ environment=environment,
317
+ environment_encryption=environment_encryption,
318
+ ephemeral_storage_size=ephemeral_storage_size,
319
+ events=events,
320
+ filesystem=filesystem,
321
+ function_name=function_name,
322
+ initial_policy=initial_policy,
323
+ insights_version=insights_version,
324
+ layers=layers,
325
+ log_retention=log_retention,
326
+ log_retention_retry_options=log_retention_retry_options,
327
+ log_retention_role=log_retention_role,
328
+ memory_size=memory_size,
329
+ params_and_secrets=params_and_secrets,
330
+ profiling=profiling,
331
+ profiling_group=profiling_group,
332
+ reserved_concurrent_executions=reserved_concurrent_executions,
333
+ role=role,
334
+ runtime_management_mode=runtime_management_mode,
335
+ security_groups=security_groups,
336
+ timeout=timeout,
337
+ tracing=tracing,
338
+ vpc=vpc,
339
+ vpc_subnets=vpc_subnets,
340
+ max_event_age=max_event_age,
341
+ on_failure=on_failure,
342
+ on_success=on_success,
343
+ retry_attempts=retry_attempts,
344
+ )
345
+
346
+ jsii.create(self.__class__, self, [scope, id, props])
347
+
348
+
349
+ @jsii.data_type(
350
+ jsii_type="@jjrawlins/cdk-ami-builder.CheckStateMachineStatusFunctionProps",
351
+ jsii_struct_bases=[_aws_cdk_aws_lambda_ceddda9d.FunctionOptions],
352
+ name_mapping={
353
+ "max_event_age": "maxEventAge",
354
+ "on_failure": "onFailure",
355
+ "on_success": "onSuccess",
356
+ "retry_attempts": "retryAttempts",
357
+ "adot_instrumentation": "adotInstrumentation",
358
+ "allow_all_outbound": "allowAllOutbound",
359
+ "allow_public_subnet": "allowPublicSubnet",
360
+ "architecture": "architecture",
361
+ "code_signing_config": "codeSigningConfig",
362
+ "current_version_options": "currentVersionOptions",
363
+ "dead_letter_queue": "deadLetterQueue",
364
+ "dead_letter_queue_enabled": "deadLetterQueueEnabled",
365
+ "dead_letter_topic": "deadLetterTopic",
366
+ "description": "description",
367
+ "environment": "environment",
368
+ "environment_encryption": "environmentEncryption",
369
+ "ephemeral_storage_size": "ephemeralStorageSize",
370
+ "events": "events",
371
+ "filesystem": "filesystem",
372
+ "function_name": "functionName",
373
+ "initial_policy": "initialPolicy",
374
+ "insights_version": "insightsVersion",
375
+ "layers": "layers",
376
+ "log_retention": "logRetention",
377
+ "log_retention_retry_options": "logRetentionRetryOptions",
378
+ "log_retention_role": "logRetentionRole",
379
+ "memory_size": "memorySize",
380
+ "params_and_secrets": "paramsAndSecrets",
381
+ "profiling": "profiling",
382
+ "profiling_group": "profilingGroup",
383
+ "reserved_concurrent_executions": "reservedConcurrentExecutions",
384
+ "role": "role",
385
+ "runtime_management_mode": "runtimeManagementMode",
386
+ "security_groups": "securityGroups",
387
+ "timeout": "timeout",
388
+ "tracing": "tracing",
389
+ "vpc": "vpc",
390
+ "vpc_subnets": "vpcSubnets",
391
+ },
392
+ )
393
+ class CheckStateMachineStatusFunctionProps(
394
+ _aws_cdk_aws_lambda_ceddda9d.FunctionOptions,
395
+ ):
396
+ def __init__(
397
+ self,
398
+ *,
399
+ max_event_age: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
400
+ on_failure: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination] = None,
401
+ on_success: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination] = None,
402
+ retry_attempts: typing.Optional[jsii.Number] = None,
403
+ adot_instrumentation: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.AdotInstrumentationConfig, typing.Dict[builtins.str, typing.Any]]] = None,
404
+ allow_all_outbound: typing.Optional[builtins.bool] = None,
405
+ allow_public_subnet: typing.Optional[builtins.bool] = None,
406
+ architecture: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Architecture] = None,
407
+ code_signing_config: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ICodeSigningConfig] = None,
408
+ current_version_options: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.VersionOptions, typing.Dict[builtins.str, typing.Any]]] = None,
409
+ dead_letter_queue: typing.Optional[_aws_cdk_aws_sqs_ceddda9d.IQueue] = None,
410
+ dead_letter_queue_enabled: typing.Optional[builtins.bool] = None,
411
+ dead_letter_topic: typing.Optional[_aws_cdk_aws_sns_ceddda9d.ITopic] = None,
412
+ description: typing.Optional[builtins.str] = None,
413
+ environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
414
+ environment_encryption: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
415
+ ephemeral_storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
416
+ events: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.IEventSource]] = None,
417
+ filesystem: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.FileSystem] = None,
418
+ function_name: typing.Optional[builtins.str] = None,
419
+ initial_policy: typing.Optional[typing.Sequence[_aws_cdk_aws_iam_ceddda9d.PolicyStatement]] = None,
420
+ insights_version: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.LambdaInsightsVersion] = None,
421
+ layers: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.ILayerVersion]] = None,
422
+ log_retention: typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays] = None,
423
+ log_retention_retry_options: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.LogRetentionRetryOptions, typing.Dict[builtins.str, typing.Any]]] = None,
424
+ log_retention_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
425
+ memory_size: typing.Optional[jsii.Number] = None,
426
+ params_and_secrets: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ParamsAndSecretsLayerVersion] = None,
427
+ profiling: typing.Optional[builtins.bool] = None,
428
+ profiling_group: typing.Optional[_aws_cdk_aws_codeguruprofiler_ceddda9d.IProfilingGroup] = None,
429
+ reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
430
+ role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
431
+ runtime_management_mode: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.RuntimeManagementMode] = None,
432
+ security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
433
+ timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
434
+ tracing: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Tracing] = None,
435
+ vpc: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc] = None,
436
+ vpc_subnets: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
437
+ ) -> None:
438
+ '''Props for CheckStateMachineStatusFunction.
439
+
440
+ :param max_event_age: The maximum age of a request that Lambda sends to a function for processing. Minimum: 60 seconds Maximum: 6 hours Default: Duration.hours(6)
441
+ :param on_failure: The destination for failed invocations. Default: - no destination
442
+ :param on_success: The destination for successful invocations. Default: - no destination
443
+ :param retry_attempts: The maximum number of times to retry when the function returns an error. Minimum: 0 Maximum: 2 Default: 2
444
+ :param adot_instrumentation: Specify the configuration of AWS Distro for OpenTelemetry (ADOT) instrumentation. Default: - No ADOT instrumentation
445
+ :param allow_all_outbound: Whether to allow the Lambda to send all network traffic. If set to false, you must individually add traffic rules to allow the Lambda to connect to network targets. Default: true
446
+ :param allow_public_subnet: Lambda Functions in a public subnet can NOT access the internet. Use this property to acknowledge this limitation and still place the function in a public subnet. Default: false
447
+ :param architecture: The system architectures compatible with this lambda function. Default: Architecture.X86_64
448
+ :param code_signing_config: Code signing config associated with this function. Default: - Not Sign the Code
449
+ :param current_version_options: Options for the ``lambda.Version`` resource automatically created by the ``fn.currentVersion`` method. Default: - default options as described in ``VersionOptions``
450
+ :param dead_letter_queue: The SQS queue to use if DLQ is enabled. If SNS topic is desired, specify ``deadLetterTopic`` property instead. Default: - SQS queue with 14 day retention period if ``deadLetterQueueEnabled`` is ``true``
451
+ :param dead_letter_queue_enabled: Enabled DLQ. If ``deadLetterQueue`` is undefined, an SQS queue with default options will be defined for your Function. Default: - false unless ``deadLetterQueue`` is set, which implies DLQ is enabled.
452
+ :param dead_letter_topic: The SNS topic to use as a DLQ. Note that if ``deadLetterQueueEnabled`` is set to ``true``, an SQS queue will be created rather than an SNS topic. Using an SNS topic as a DLQ requires this property to be set explicitly. Default: - no SNS topic
453
+ :param description: A description of the function. Default: - No description.
454
+ :param environment: Key-value pairs that Lambda caches and makes available for your Lambda functions. Use environment variables to apply configuration changes, such as test and production environment configurations, without changing your Lambda function source code. Default: - No environment variables.
455
+ :param environment_encryption: The AWS KMS key that's used to encrypt your function's environment variables. Default: - AWS Lambda creates and uses an AWS managed customer master key (CMK).
456
+ :param ephemeral_storage_size: The size of the function’s /tmp directory in MiB. Default: 512 MiB
457
+ :param events: Event sources for this function. You can also add event sources using ``addEventSource``. Default: - No event sources.
458
+ :param filesystem: The filesystem configuration for the lambda function. Default: - will not mount any filesystem
459
+ :param function_name: A name for the function. Default: - AWS CloudFormation generates a unique physical ID and uses that ID for the function's name. For more information, see Name Type.
460
+ :param initial_policy: Initial policy statements to add to the created Lambda Role. You can call ``addToRolePolicy`` to the created lambda to add statements post creation. Default: - No policy statements are added to the created Lambda role.
461
+ :param insights_version: Specify the version of CloudWatch Lambda insights to use for monitoring. Default: - No Lambda Insights
462
+ :param layers: A list of layers to add to the function's execution environment. You can configure your Lambda function to pull in additional code during initialization in the form of layers. Layers are packages of libraries or other dependencies that can be used by multiple functions. Default: - No layers.
463
+ :param log_retention: The number of days log events are kept in CloudWatch Logs. When updating this property, unsetting it doesn't remove the log retention policy. To remove the retention policy, set the value to ``INFINITE``. Default: logs.RetentionDays.INFINITE
464
+ :param log_retention_retry_options: When log retention is specified, a custom resource attempts to create the CloudWatch log group. These options control the retry policy when interacting with CloudWatch APIs. Default: - Default AWS SDK retry options.
465
+ :param log_retention_role: The IAM role for the Lambda function associated with the custom resource that sets the retention policy. Default: - A new role is created.
466
+ :param memory_size: The amount of memory, in MB, that is allocated to your Lambda function. Lambda uses this value to proportionally allocate the amount of CPU power. For more information, see Resource Model in the AWS Lambda Developer Guide. Default: 128
467
+ :param params_and_secrets: Specify the configuration of Parameters and Secrets Extension. Default: - No Parameters and Secrets Extension
468
+ :param profiling: Enable profiling. Default: - No profiling.
469
+ :param profiling_group: Profiling Group. Default: - A new profiling group will be created if ``profiling`` is set.
470
+ :param reserved_concurrent_executions: The maximum of concurrent executions you want to reserve for the function. Default: - No specific limit - account limit.
471
+ :param role: Lambda execution role. This is the role that will be assumed by the function upon execution. It controls the permissions that the function will have. The Role must be assumable by the 'lambda.amazonaws.com' service principal. The default Role automatically has permissions granted for Lambda execution. If you provide a Role, you must add the relevant AWS managed policies yourself. The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and "service-role/AWSLambdaVPCAccessExecutionRole". Default: - A unique role will be generated for this lambda function. Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
472
+ :param runtime_management_mode: Sets the runtime management configuration for a function's version. Default: Auto
473
+ :param security_groups: The list of security groups to associate with the Lambda's network interfaces. Only used if 'vpc' is supplied. Default: - If the function is placed within a VPC and a security group is not specified, either by this or securityGroup prop, a dedicated security group will be created for this function.
474
+ :param timeout: The function execution time (in seconds) after which Lambda terminates the function. Because the execution time affects cost, set this value based on the function's expected execution time. Default: Duration.seconds(3)
475
+ :param tracing: Enable AWS X-Ray Tracing for Lambda Function. Default: Tracing.Disabled
476
+ :param vpc: VPC network to place Lambda network interfaces. Specify this if the Lambda function needs to access resources in a VPC. This is required when ``vpcSubnets`` is specified. Default: - Function is not placed within a VPC.
477
+ :param vpc_subnets: Where to place the network interfaces within the VPC. This requires ``vpc`` to be specified in order for interfaces to actually be placed in the subnets. If ``vpc`` is not specify, this will raise an error. Note: Internet access for Lambda Functions requires a NAT Gateway, so picking public subnets is not allowed (unless ``allowPublicSubnet`` is set to ``true``). Default: - the Vpc default strategy if not specified
478
+ '''
479
+ if isinstance(adot_instrumentation, dict):
480
+ adot_instrumentation = _aws_cdk_aws_lambda_ceddda9d.AdotInstrumentationConfig(**adot_instrumentation)
481
+ if isinstance(current_version_options, dict):
482
+ current_version_options = _aws_cdk_aws_lambda_ceddda9d.VersionOptions(**current_version_options)
483
+ if isinstance(log_retention_retry_options, dict):
484
+ log_retention_retry_options = _aws_cdk_aws_lambda_ceddda9d.LogRetentionRetryOptions(**log_retention_retry_options)
485
+ if isinstance(vpc_subnets, dict):
486
+ vpc_subnets = _aws_cdk_aws_ec2_ceddda9d.SubnetSelection(**vpc_subnets)
487
+ if __debug__:
488
+ type_hints = typing.get_type_hints(_typecheckingstub__7ad187f6fa75af251088f0d01089ce5af9c6e78ba8a6e1736dfdb9666988616b)
489
+ check_type(argname="argument max_event_age", value=max_event_age, expected_type=type_hints["max_event_age"])
490
+ check_type(argname="argument on_failure", value=on_failure, expected_type=type_hints["on_failure"])
491
+ check_type(argname="argument on_success", value=on_success, expected_type=type_hints["on_success"])
492
+ check_type(argname="argument retry_attempts", value=retry_attempts, expected_type=type_hints["retry_attempts"])
493
+ check_type(argname="argument adot_instrumentation", value=adot_instrumentation, expected_type=type_hints["adot_instrumentation"])
494
+ check_type(argname="argument allow_all_outbound", value=allow_all_outbound, expected_type=type_hints["allow_all_outbound"])
495
+ check_type(argname="argument allow_public_subnet", value=allow_public_subnet, expected_type=type_hints["allow_public_subnet"])
496
+ check_type(argname="argument architecture", value=architecture, expected_type=type_hints["architecture"])
497
+ check_type(argname="argument code_signing_config", value=code_signing_config, expected_type=type_hints["code_signing_config"])
498
+ check_type(argname="argument current_version_options", value=current_version_options, expected_type=type_hints["current_version_options"])
499
+ check_type(argname="argument dead_letter_queue", value=dead_letter_queue, expected_type=type_hints["dead_letter_queue"])
500
+ check_type(argname="argument dead_letter_queue_enabled", value=dead_letter_queue_enabled, expected_type=type_hints["dead_letter_queue_enabled"])
501
+ check_type(argname="argument dead_letter_topic", value=dead_letter_topic, expected_type=type_hints["dead_letter_topic"])
502
+ check_type(argname="argument description", value=description, expected_type=type_hints["description"])
503
+ check_type(argname="argument environment", value=environment, expected_type=type_hints["environment"])
504
+ check_type(argname="argument environment_encryption", value=environment_encryption, expected_type=type_hints["environment_encryption"])
505
+ check_type(argname="argument ephemeral_storage_size", value=ephemeral_storage_size, expected_type=type_hints["ephemeral_storage_size"])
506
+ check_type(argname="argument events", value=events, expected_type=type_hints["events"])
507
+ check_type(argname="argument filesystem", value=filesystem, expected_type=type_hints["filesystem"])
508
+ check_type(argname="argument function_name", value=function_name, expected_type=type_hints["function_name"])
509
+ check_type(argname="argument initial_policy", value=initial_policy, expected_type=type_hints["initial_policy"])
510
+ check_type(argname="argument insights_version", value=insights_version, expected_type=type_hints["insights_version"])
511
+ check_type(argname="argument layers", value=layers, expected_type=type_hints["layers"])
512
+ check_type(argname="argument log_retention", value=log_retention, expected_type=type_hints["log_retention"])
513
+ check_type(argname="argument log_retention_retry_options", value=log_retention_retry_options, expected_type=type_hints["log_retention_retry_options"])
514
+ check_type(argname="argument log_retention_role", value=log_retention_role, expected_type=type_hints["log_retention_role"])
515
+ check_type(argname="argument memory_size", value=memory_size, expected_type=type_hints["memory_size"])
516
+ check_type(argname="argument params_and_secrets", value=params_and_secrets, expected_type=type_hints["params_and_secrets"])
517
+ check_type(argname="argument profiling", value=profiling, expected_type=type_hints["profiling"])
518
+ check_type(argname="argument profiling_group", value=profiling_group, expected_type=type_hints["profiling_group"])
519
+ check_type(argname="argument reserved_concurrent_executions", value=reserved_concurrent_executions, expected_type=type_hints["reserved_concurrent_executions"])
520
+ check_type(argname="argument role", value=role, expected_type=type_hints["role"])
521
+ check_type(argname="argument runtime_management_mode", value=runtime_management_mode, expected_type=type_hints["runtime_management_mode"])
522
+ check_type(argname="argument security_groups", value=security_groups, expected_type=type_hints["security_groups"])
523
+ check_type(argname="argument timeout", value=timeout, expected_type=type_hints["timeout"])
524
+ check_type(argname="argument tracing", value=tracing, expected_type=type_hints["tracing"])
525
+ check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
526
+ check_type(argname="argument vpc_subnets", value=vpc_subnets, expected_type=type_hints["vpc_subnets"])
527
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
528
+ if max_event_age is not None:
529
+ self._values["max_event_age"] = max_event_age
530
+ if on_failure is not None:
531
+ self._values["on_failure"] = on_failure
532
+ if on_success is not None:
533
+ self._values["on_success"] = on_success
534
+ if retry_attempts is not None:
535
+ self._values["retry_attempts"] = retry_attempts
536
+ if adot_instrumentation is not None:
537
+ self._values["adot_instrumentation"] = adot_instrumentation
538
+ if allow_all_outbound is not None:
539
+ self._values["allow_all_outbound"] = allow_all_outbound
540
+ if allow_public_subnet is not None:
541
+ self._values["allow_public_subnet"] = allow_public_subnet
542
+ if architecture is not None:
543
+ self._values["architecture"] = architecture
544
+ if code_signing_config is not None:
545
+ self._values["code_signing_config"] = code_signing_config
546
+ if current_version_options is not None:
547
+ self._values["current_version_options"] = current_version_options
548
+ if dead_letter_queue is not None:
549
+ self._values["dead_letter_queue"] = dead_letter_queue
550
+ if dead_letter_queue_enabled is not None:
551
+ self._values["dead_letter_queue_enabled"] = dead_letter_queue_enabled
552
+ if dead_letter_topic is not None:
553
+ self._values["dead_letter_topic"] = dead_letter_topic
554
+ if description is not None:
555
+ self._values["description"] = description
556
+ if environment is not None:
557
+ self._values["environment"] = environment
558
+ if environment_encryption is not None:
559
+ self._values["environment_encryption"] = environment_encryption
560
+ if ephemeral_storage_size is not None:
561
+ self._values["ephemeral_storage_size"] = ephemeral_storage_size
562
+ if events is not None:
563
+ self._values["events"] = events
564
+ if filesystem is not None:
565
+ self._values["filesystem"] = filesystem
566
+ if function_name is not None:
567
+ self._values["function_name"] = function_name
568
+ if initial_policy is not None:
569
+ self._values["initial_policy"] = initial_policy
570
+ if insights_version is not None:
571
+ self._values["insights_version"] = insights_version
572
+ if layers is not None:
573
+ self._values["layers"] = layers
574
+ if log_retention is not None:
575
+ self._values["log_retention"] = log_retention
576
+ if log_retention_retry_options is not None:
577
+ self._values["log_retention_retry_options"] = log_retention_retry_options
578
+ if log_retention_role is not None:
579
+ self._values["log_retention_role"] = log_retention_role
580
+ if memory_size is not None:
581
+ self._values["memory_size"] = memory_size
582
+ if params_and_secrets is not None:
583
+ self._values["params_and_secrets"] = params_and_secrets
584
+ if profiling is not None:
585
+ self._values["profiling"] = profiling
586
+ if profiling_group is not None:
587
+ self._values["profiling_group"] = profiling_group
588
+ if reserved_concurrent_executions is not None:
589
+ self._values["reserved_concurrent_executions"] = reserved_concurrent_executions
590
+ if role is not None:
591
+ self._values["role"] = role
592
+ if runtime_management_mode is not None:
593
+ self._values["runtime_management_mode"] = runtime_management_mode
594
+ if security_groups is not None:
595
+ self._values["security_groups"] = security_groups
596
+ if timeout is not None:
597
+ self._values["timeout"] = timeout
598
+ if tracing is not None:
599
+ self._values["tracing"] = tracing
600
+ if vpc is not None:
601
+ self._values["vpc"] = vpc
602
+ if vpc_subnets is not None:
603
+ self._values["vpc_subnets"] = vpc_subnets
604
+
605
+ @builtins.property
606
+ def max_event_age(self) -> typing.Optional[_aws_cdk_ceddda9d.Duration]:
607
+ '''The maximum age of a request that Lambda sends to a function for processing.
608
+
609
+ Minimum: 60 seconds
610
+ Maximum: 6 hours
611
+
612
+ :default: Duration.hours(6)
613
+ '''
614
+ result = self._values.get("max_event_age")
615
+ return typing.cast(typing.Optional[_aws_cdk_ceddda9d.Duration], result)
616
+
617
+ @builtins.property
618
+ def on_failure(self) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination]:
619
+ '''The destination for failed invocations.
620
+
621
+ :default: - no destination
622
+ '''
623
+ result = self._values.get("on_failure")
624
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination], result)
625
+
626
+ @builtins.property
627
+ def on_success(self) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination]:
628
+ '''The destination for successful invocations.
629
+
630
+ :default: - no destination
631
+ '''
632
+ result = self._values.get("on_success")
633
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination], result)
634
+
635
+ @builtins.property
636
+ def retry_attempts(self) -> typing.Optional[jsii.Number]:
637
+ '''The maximum number of times to retry when the function returns an error.
638
+
639
+ Minimum: 0
640
+ Maximum: 2
641
+
642
+ :default: 2
643
+ '''
644
+ result = self._values.get("retry_attempts")
645
+ return typing.cast(typing.Optional[jsii.Number], result)
646
+
647
+ @builtins.property
648
+ def adot_instrumentation(
649
+ self,
650
+ ) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.AdotInstrumentationConfig]:
651
+ '''Specify the configuration of AWS Distro for OpenTelemetry (ADOT) instrumentation.
652
+
653
+ :default: - No ADOT instrumentation
654
+
655
+ :see: https://aws-otel.github.io/docs/getting-started/lambda
656
+ '''
657
+ result = self._values.get("adot_instrumentation")
658
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.AdotInstrumentationConfig], result)
659
+
660
+ @builtins.property
661
+ def allow_all_outbound(self) -> typing.Optional[builtins.bool]:
662
+ '''Whether to allow the Lambda to send all network traffic.
663
+
664
+ If set to false, you must individually add traffic rules to allow the
665
+ Lambda to connect to network targets.
666
+
667
+ :default: true
668
+ '''
669
+ result = self._values.get("allow_all_outbound")
670
+ return typing.cast(typing.Optional[builtins.bool], result)
671
+
672
+ @builtins.property
673
+ def allow_public_subnet(self) -> typing.Optional[builtins.bool]:
674
+ '''Lambda Functions in a public subnet can NOT access the internet.
675
+
676
+ Use this property to acknowledge this limitation and still place the function in a public subnet.
677
+
678
+ :default: false
679
+
680
+ :see: https://stackoverflow.com/questions/52992085/why-cant-an-aws-lambda-function-inside-a-public-subnet-in-a-vpc-connect-to-the/52994841#52994841
681
+ '''
682
+ result = self._values.get("allow_public_subnet")
683
+ return typing.cast(typing.Optional[builtins.bool], result)
684
+
685
+ @builtins.property
686
+ def architecture(
687
+ self,
688
+ ) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Architecture]:
689
+ '''The system architectures compatible with this lambda function.
690
+
691
+ :default: Architecture.X86_64
692
+ '''
693
+ result = self._values.get("architecture")
694
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Architecture], result)
695
+
696
+ @builtins.property
697
+ def code_signing_config(
698
+ self,
699
+ ) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ICodeSigningConfig]:
700
+ '''Code signing config associated with this function.
701
+
702
+ :default: - Not Sign the Code
703
+ '''
704
+ result = self._values.get("code_signing_config")
705
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ICodeSigningConfig], result)
706
+
707
+ @builtins.property
708
+ def current_version_options(
709
+ self,
710
+ ) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.VersionOptions]:
711
+ '''Options for the ``lambda.Version`` resource automatically created by the ``fn.currentVersion`` method.
712
+
713
+ :default: - default options as described in ``VersionOptions``
714
+ '''
715
+ result = self._values.get("current_version_options")
716
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.VersionOptions], result)
717
+
718
+ @builtins.property
719
+ def dead_letter_queue(self) -> typing.Optional[_aws_cdk_aws_sqs_ceddda9d.IQueue]:
720
+ '''The SQS queue to use if DLQ is enabled.
721
+
722
+ If SNS topic is desired, specify ``deadLetterTopic`` property instead.
723
+
724
+ :default: - SQS queue with 14 day retention period if ``deadLetterQueueEnabled`` is ``true``
725
+ '''
726
+ result = self._values.get("dead_letter_queue")
727
+ return typing.cast(typing.Optional[_aws_cdk_aws_sqs_ceddda9d.IQueue], result)
728
+
729
+ @builtins.property
730
+ def dead_letter_queue_enabled(self) -> typing.Optional[builtins.bool]:
731
+ '''Enabled DLQ.
732
+
733
+ If ``deadLetterQueue`` is undefined,
734
+ an SQS queue with default options will be defined for your Function.
735
+
736
+ :default: - false unless ``deadLetterQueue`` is set, which implies DLQ is enabled.
737
+ '''
738
+ result = self._values.get("dead_letter_queue_enabled")
739
+ return typing.cast(typing.Optional[builtins.bool], result)
740
+
741
+ @builtins.property
742
+ def dead_letter_topic(self) -> typing.Optional[_aws_cdk_aws_sns_ceddda9d.ITopic]:
743
+ '''The SNS topic to use as a DLQ.
744
+
745
+ Note that if ``deadLetterQueueEnabled`` is set to ``true``, an SQS queue will be created
746
+ rather than an SNS topic. Using an SNS topic as a DLQ requires this property to be set explicitly.
747
+
748
+ :default: - no SNS topic
749
+ '''
750
+ result = self._values.get("dead_letter_topic")
751
+ return typing.cast(typing.Optional[_aws_cdk_aws_sns_ceddda9d.ITopic], result)
752
+
753
+ @builtins.property
754
+ def description(self) -> typing.Optional[builtins.str]:
755
+ '''A description of the function.
756
+
757
+ :default: - No description.
758
+ '''
759
+ result = self._values.get("description")
760
+ return typing.cast(typing.Optional[builtins.str], result)
761
+
762
+ @builtins.property
763
+ def environment(
764
+ self,
765
+ ) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
766
+ '''Key-value pairs that Lambda caches and makes available for your Lambda functions.
767
+
768
+ Use environment variables to apply configuration changes, such
769
+ as test and production environment configurations, without changing your
770
+ Lambda function source code.
771
+
772
+ :default: - No environment variables.
773
+ '''
774
+ result = self._values.get("environment")
775
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
776
+
777
+ @builtins.property
778
+ def environment_encryption(self) -> typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey]:
779
+ '''The AWS KMS key that's used to encrypt your function's environment variables.
780
+
781
+ :default: - AWS Lambda creates and uses an AWS managed customer master key (CMK).
782
+ '''
783
+ result = self._values.get("environment_encryption")
784
+ return typing.cast(typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey], result)
785
+
786
+ @builtins.property
787
+ def ephemeral_storage_size(self) -> typing.Optional[_aws_cdk_ceddda9d.Size]:
788
+ '''The size of the function’s /tmp directory in MiB.
789
+
790
+ :default: 512 MiB
791
+ '''
792
+ result = self._values.get("ephemeral_storage_size")
793
+ return typing.cast(typing.Optional[_aws_cdk_ceddda9d.Size], result)
794
+
795
+ @builtins.property
796
+ def events(
797
+ self,
798
+ ) -> typing.Optional[typing.List[_aws_cdk_aws_lambda_ceddda9d.IEventSource]]:
799
+ '''Event sources for this function.
800
+
801
+ You can also add event sources using ``addEventSource``.
802
+
803
+ :default: - No event sources.
804
+ '''
805
+ result = self._values.get("events")
806
+ return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_lambda_ceddda9d.IEventSource]], result)
807
+
808
+ @builtins.property
809
+ def filesystem(self) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.FileSystem]:
810
+ '''The filesystem configuration for the lambda function.
811
+
812
+ :default: - will not mount any filesystem
813
+ '''
814
+ result = self._values.get("filesystem")
815
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.FileSystem], result)
816
+
817
+ @builtins.property
818
+ def function_name(self) -> typing.Optional[builtins.str]:
819
+ '''A name for the function.
820
+
821
+ :default:
822
+
823
+ - AWS CloudFormation generates a unique physical ID and uses that
824
+ ID for the function's name. For more information, see Name Type.
825
+ '''
826
+ result = self._values.get("function_name")
827
+ return typing.cast(typing.Optional[builtins.str], result)
828
+
829
+ @builtins.property
830
+ def initial_policy(
831
+ self,
832
+ ) -> typing.Optional[typing.List[_aws_cdk_aws_iam_ceddda9d.PolicyStatement]]:
833
+ '''Initial policy statements to add to the created Lambda Role.
834
+
835
+ You can call ``addToRolePolicy`` to the created lambda to add statements post creation.
836
+
837
+ :default: - No policy statements are added to the created Lambda role.
838
+ '''
839
+ result = self._values.get("initial_policy")
840
+ return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_iam_ceddda9d.PolicyStatement]], result)
841
+
842
+ @builtins.property
843
+ def insights_version(
844
+ self,
845
+ ) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.LambdaInsightsVersion]:
846
+ '''Specify the version of CloudWatch Lambda insights to use for monitoring.
847
+
848
+ :default: - No Lambda Insights
849
+
850
+ :see: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Lambda-Insights-Getting-Started-docker.html
851
+ '''
852
+ result = self._values.get("insights_version")
853
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.LambdaInsightsVersion], result)
854
+
855
+ @builtins.property
856
+ def layers(
857
+ self,
858
+ ) -> typing.Optional[typing.List[_aws_cdk_aws_lambda_ceddda9d.ILayerVersion]]:
859
+ '''A list of layers to add to the function's execution environment.
860
+
861
+ You can configure your Lambda function to pull in
862
+ additional code during initialization in the form of layers. Layers are packages of libraries or other dependencies
863
+ that can be used by multiple functions.
864
+
865
+ :default: - No layers.
866
+ '''
867
+ result = self._values.get("layers")
868
+ return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_lambda_ceddda9d.ILayerVersion]], result)
869
+
870
+ @builtins.property
871
+ def log_retention(
872
+ self,
873
+ ) -> typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays]:
874
+ '''The number of days log events are kept in CloudWatch Logs.
875
+
876
+ When updating
877
+ this property, unsetting it doesn't remove the log retention policy. To
878
+ remove the retention policy, set the value to ``INFINITE``.
879
+
880
+ :default: logs.RetentionDays.INFINITE
881
+ '''
882
+ result = self._values.get("log_retention")
883
+ return typing.cast(typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays], result)
884
+
885
+ @builtins.property
886
+ def log_retention_retry_options(
887
+ self,
888
+ ) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.LogRetentionRetryOptions]:
889
+ '''When log retention is specified, a custom resource attempts to create the CloudWatch log group.
890
+
891
+ These options control the retry policy when interacting with CloudWatch APIs.
892
+
893
+ :default: - Default AWS SDK retry options.
894
+ '''
895
+ result = self._values.get("log_retention_retry_options")
896
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.LogRetentionRetryOptions], result)
897
+
898
+ @builtins.property
899
+ def log_retention_role(self) -> typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole]:
900
+ '''The IAM role for the Lambda function associated with the custom resource that sets the retention policy.
901
+
902
+ :default: - A new role is created.
903
+ '''
904
+ result = self._values.get("log_retention_role")
905
+ return typing.cast(typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole], result)
906
+
907
+ @builtins.property
908
+ def memory_size(self) -> typing.Optional[jsii.Number]:
909
+ '''The amount of memory, in MB, that is allocated to your Lambda function.
910
+
911
+ Lambda uses this value to proportionally allocate the amount of CPU
912
+ power. For more information, see Resource Model in the AWS Lambda
913
+ Developer Guide.
914
+
915
+ :default: 128
916
+ '''
917
+ result = self._values.get("memory_size")
918
+ return typing.cast(typing.Optional[jsii.Number], result)
919
+
920
+ @builtins.property
921
+ def params_and_secrets(
922
+ self,
923
+ ) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ParamsAndSecretsLayerVersion]:
924
+ '''Specify the configuration of Parameters and Secrets Extension.
925
+
926
+ :default: - No Parameters and Secrets Extension
927
+
928
+ :see: https://docs.aws.amazon.com/systems-manager/latest/userguide/ps-integration-lambda-extensions.html
929
+ '''
930
+ result = self._values.get("params_and_secrets")
931
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ParamsAndSecretsLayerVersion], result)
932
+
933
+ @builtins.property
934
+ def profiling(self) -> typing.Optional[builtins.bool]:
935
+ '''Enable profiling.
936
+
937
+ :default: - No profiling.
938
+
939
+ :see: https://docs.aws.amazon.com/codeguru/latest/profiler-ug/setting-up-lambda.html
940
+ '''
941
+ result = self._values.get("profiling")
942
+ return typing.cast(typing.Optional[builtins.bool], result)
943
+
944
+ @builtins.property
945
+ def profiling_group(
946
+ self,
947
+ ) -> typing.Optional[_aws_cdk_aws_codeguruprofiler_ceddda9d.IProfilingGroup]:
948
+ '''Profiling Group.
949
+
950
+ :default: - A new profiling group will be created if ``profiling`` is set.
951
+
952
+ :see: https://docs.aws.amazon.com/codeguru/latest/profiler-ug/setting-up-lambda.html
953
+ '''
954
+ result = self._values.get("profiling_group")
955
+ return typing.cast(typing.Optional[_aws_cdk_aws_codeguruprofiler_ceddda9d.IProfilingGroup], result)
956
+
957
+ @builtins.property
958
+ def reserved_concurrent_executions(self) -> typing.Optional[jsii.Number]:
959
+ '''The maximum of concurrent executions you want to reserve for the function.
960
+
961
+ :default: - No specific limit - account limit.
962
+
963
+ :see: https://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html
964
+ '''
965
+ result = self._values.get("reserved_concurrent_executions")
966
+ return typing.cast(typing.Optional[jsii.Number], result)
967
+
968
+ @builtins.property
969
+ def role(self) -> typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole]:
970
+ '''Lambda execution role.
971
+
972
+ This is the role that will be assumed by the function upon execution.
973
+ It controls the permissions that the function will have. The Role must
974
+ be assumable by the 'lambda.amazonaws.com' service principal.
975
+
976
+ The default Role automatically has permissions granted for Lambda execution. If you
977
+ provide a Role, you must add the relevant AWS managed policies yourself.
978
+
979
+ The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and
980
+ "service-role/AWSLambdaVPCAccessExecutionRole".
981
+
982
+ :default:
983
+
984
+ - A unique role will be generated for this lambda function.
985
+ Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
986
+ '''
987
+ result = self._values.get("role")
988
+ return typing.cast(typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole], result)
989
+
990
+ @builtins.property
991
+ def runtime_management_mode(
992
+ self,
993
+ ) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.RuntimeManagementMode]:
994
+ '''Sets the runtime management configuration for a function's version.
995
+
996
+ :default: Auto
997
+ '''
998
+ result = self._values.get("runtime_management_mode")
999
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.RuntimeManagementMode], result)
1000
+
1001
+ @builtins.property
1002
+ def security_groups(
1003
+ self,
1004
+ ) -> typing.Optional[typing.List[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]]:
1005
+ '''The list of security groups to associate with the Lambda's network interfaces.
1006
+
1007
+ Only used if 'vpc' is supplied.
1008
+
1009
+ :default:
1010
+
1011
+ - If the function is placed within a VPC and a security group is
1012
+ not specified, either by this or securityGroup prop, a dedicated security
1013
+ group will be created for this function.
1014
+ '''
1015
+ result = self._values.get("security_groups")
1016
+ return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]], result)
1017
+
1018
+ @builtins.property
1019
+ def timeout(self) -> typing.Optional[_aws_cdk_ceddda9d.Duration]:
1020
+ '''The function execution time (in seconds) after which Lambda terminates the function.
1021
+
1022
+ Because the execution time affects cost, set this value
1023
+ based on the function's expected execution time.
1024
+
1025
+ :default: Duration.seconds(3)
1026
+ '''
1027
+ result = self._values.get("timeout")
1028
+ return typing.cast(typing.Optional[_aws_cdk_ceddda9d.Duration], result)
1029
+
1030
+ @builtins.property
1031
+ def tracing(self) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Tracing]:
1032
+ '''Enable AWS X-Ray Tracing for Lambda Function.
1033
+
1034
+ :default: Tracing.Disabled
1035
+ '''
1036
+ result = self._values.get("tracing")
1037
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Tracing], result)
1038
+
1039
+ @builtins.property
1040
+ def vpc(self) -> typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc]:
1041
+ '''VPC network to place Lambda network interfaces.
1042
+
1043
+ Specify this if the Lambda function needs to access resources in a VPC.
1044
+ This is required when ``vpcSubnets`` is specified.
1045
+
1046
+ :default: - Function is not placed within a VPC.
1047
+ '''
1048
+ result = self._values.get("vpc")
1049
+ return typing.cast(typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc], result)
1050
+
1051
+ @builtins.property
1052
+ def vpc_subnets(self) -> typing.Optional[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection]:
1053
+ '''Where to place the network interfaces within the VPC.
1054
+
1055
+ This requires ``vpc`` to be specified in order for interfaces to actually be
1056
+ placed in the subnets. If ``vpc`` is not specify, this will raise an error.
1057
+
1058
+ Note: Internet access for Lambda Functions requires a NAT Gateway, so picking
1059
+ public subnets is not allowed (unless ``allowPublicSubnet`` is set to ``true``).
1060
+
1061
+ :default: - the Vpc default strategy if not specified
1062
+ '''
1063
+ result = self._values.get("vpc_subnets")
1064
+ return typing.cast(typing.Optional[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection], result)
1065
+
1066
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1067
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1068
+
1069
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1070
+ return not (rhs == self)
1071
+
1072
+ def __repr__(self) -> str:
1073
+ return "CheckStateMachineStatusFunctionProps(%s)" % ", ".join(
1074
+ k + "=" + repr(v) for k, v in self._values.items()
1075
+ )
1076
+
1077
+
1078
+ @jsii.interface(jsii_type="@jjrawlins/cdk-ami-builder.IActionCommands")
1079
+ class IActionCommands(typing_extensions.Protocol):
1080
+ '''Build commands for the component.'''
1081
+
1082
+ @builtins.property
1083
+ @jsii.member(jsii_name="commands")
1084
+ def commands(self) -> typing.List[builtins.str]:
1085
+ ...
1086
+
1087
+ @commands.setter
1088
+ def commands(self, value: typing.List[builtins.str]) -> None:
1089
+ ...
1090
+
1091
+
1092
+ class _IActionCommandsProxy:
1093
+ '''Build commands for the component.'''
1094
+
1095
+ __jsii_type__: typing.ClassVar[str] = "@jjrawlins/cdk-ami-builder.IActionCommands"
1096
+
1097
+ @builtins.property
1098
+ @jsii.member(jsii_name="commands")
1099
+ def commands(self) -> typing.List[builtins.str]:
1100
+ return typing.cast(typing.List[builtins.str], jsii.get(self, "commands"))
1101
+
1102
+ @commands.setter
1103
+ def commands(self, value: typing.List[builtins.str]) -> None:
1104
+ if __debug__:
1105
+ type_hints = typing.get_type_hints(_typecheckingstub__10f5fea34bd77d6054ed796f746dbb227d06d5b5d758e1eb35055430d0518bdf)
1106
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1107
+ jsii.set(self, "commands", value) # pyright: ignore[reportArgumentType]
1108
+
1109
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
1110
+ typing.cast(typing.Any, IActionCommands).__jsii_proxy_class__ = lambda : _IActionCommandsProxy
1111
+
1112
+
1113
+ @jsii.interface(jsii_type="@jjrawlins/cdk-ami-builder.IComponentDocument")
1114
+ class IComponentDocument(typing_extensions.Protocol):
1115
+ '''Component data.'''
1116
+
1117
+ @builtins.property
1118
+ @jsii.member(jsii_name="phases")
1119
+ def phases(self) -> typing.List["IPhases"]:
1120
+ ...
1121
+
1122
+ @phases.setter
1123
+ def phases(self, value: typing.List["IPhases"]) -> None:
1124
+ ...
1125
+
1126
+ @builtins.property
1127
+ @jsii.member(jsii_name="description")
1128
+ def description(self) -> typing.Optional[builtins.str]:
1129
+ ...
1130
+
1131
+ @description.setter
1132
+ def description(self, value: typing.Optional[builtins.str]) -> None:
1133
+ ...
1134
+
1135
+ @builtins.property
1136
+ @jsii.member(jsii_name="name")
1137
+ def name(self) -> typing.Optional[builtins.str]:
1138
+ ...
1139
+
1140
+ @name.setter
1141
+ def name(self, value: typing.Optional[builtins.str]) -> None:
1142
+ ...
1143
+
1144
+ @builtins.property
1145
+ @jsii.member(jsii_name="schemaVersion")
1146
+ def schema_version(self) -> typing.Optional[builtins.str]:
1147
+ ...
1148
+
1149
+ @schema_version.setter
1150
+ def schema_version(self, value: typing.Optional[builtins.str]) -> None:
1151
+ ...
1152
+
1153
+
1154
+ class _IComponentDocumentProxy:
1155
+ '''Component data.'''
1156
+
1157
+ __jsii_type__: typing.ClassVar[str] = "@jjrawlins/cdk-ami-builder.IComponentDocument"
1158
+
1159
+ @builtins.property
1160
+ @jsii.member(jsii_name="phases")
1161
+ def phases(self) -> typing.List["IPhases"]:
1162
+ return typing.cast(typing.List["IPhases"], jsii.get(self, "phases"))
1163
+
1164
+ @phases.setter
1165
+ def phases(self, value: typing.List["IPhases"]) -> None:
1166
+ if __debug__:
1167
+ type_hints = typing.get_type_hints(_typecheckingstub__624a7bb48f946403e3ab1b4ae0dbb8031caf7b944311ff9c993a6126ef5e3287)
1168
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1169
+ jsii.set(self, "phases", value) # pyright: ignore[reportArgumentType]
1170
+
1171
+ @builtins.property
1172
+ @jsii.member(jsii_name="description")
1173
+ def description(self) -> typing.Optional[builtins.str]:
1174
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "description"))
1175
+
1176
+ @description.setter
1177
+ def description(self, value: typing.Optional[builtins.str]) -> None:
1178
+ if __debug__:
1179
+ type_hints = typing.get_type_hints(_typecheckingstub__de97257fb85051b7e1a2f01dbece22036f46f0b683a3d5e9a4169541ec11b5e1)
1180
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1181
+ jsii.set(self, "description", value) # pyright: ignore[reportArgumentType]
1182
+
1183
+ @builtins.property
1184
+ @jsii.member(jsii_name="name")
1185
+ def name(self) -> typing.Optional[builtins.str]:
1186
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "name"))
1187
+
1188
+ @name.setter
1189
+ def name(self, value: typing.Optional[builtins.str]) -> None:
1190
+ if __debug__:
1191
+ type_hints = typing.get_type_hints(_typecheckingstub__70cb5dabf5f8f2356d27488542eac48b55efd3d699b5e052701945bf99619aca)
1192
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1193
+ jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]
1194
+
1195
+ @builtins.property
1196
+ @jsii.member(jsii_name="schemaVersion")
1197
+ def schema_version(self) -> typing.Optional[builtins.str]:
1198
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "schemaVersion"))
1199
+
1200
+ @schema_version.setter
1201
+ def schema_version(self, value: typing.Optional[builtins.str]) -> None:
1202
+ if __debug__:
1203
+ type_hints = typing.get_type_hints(_typecheckingstub__efffe851a3d571fabc89bb8f1e37d1a4ec032e1342122b5ab489204a1e44f6b8)
1204
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1205
+ jsii.set(self, "schemaVersion", value) # pyright: ignore[reportArgumentType]
1206
+
1207
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
1208
+ typing.cast(typing.Any, IComponentDocument).__jsii_proxy_class__ = lambda : _IComponentDocumentProxy
1209
+
1210
+
1211
+ @jsii.interface(jsii_type="@jjrawlins/cdk-ami-builder.IComponentProps")
1212
+ class IComponentProps(typing_extensions.Protocol):
1213
+ '''Component props.'''
1214
+
1215
+ @builtins.property
1216
+ @jsii.member(jsii_name="componentDocument")
1217
+ def component_document(self) -> IComponentDocument:
1218
+ ...
1219
+
1220
+ @component_document.setter
1221
+ def component_document(self, value: IComponentDocument) -> None:
1222
+ ...
1223
+
1224
+ @builtins.property
1225
+ @jsii.member(jsii_name="componentVersion")
1226
+ def component_version(self) -> typing.Optional[builtins.str]:
1227
+ ...
1228
+
1229
+ @component_version.setter
1230
+ def component_version(self, value: typing.Optional[builtins.str]) -> None:
1231
+ ...
1232
+
1233
+ @builtins.property
1234
+ @jsii.member(jsii_name="description")
1235
+ def description(self) -> typing.Optional[builtins.str]:
1236
+ ...
1237
+
1238
+ @description.setter
1239
+ def description(self, value: typing.Optional[builtins.str]) -> None:
1240
+ ...
1241
+
1242
+ @builtins.property
1243
+ @jsii.member(jsii_name="name")
1244
+ def name(self) -> typing.Optional[builtins.str]:
1245
+ ...
1246
+
1247
+ @name.setter
1248
+ def name(self, value: typing.Optional[builtins.str]) -> None:
1249
+ ...
1250
+
1251
+ @builtins.property
1252
+ @jsii.member(jsii_name="parameters")
1253
+ def parameters(
1254
+ self,
1255
+ ) -> typing.Optional[typing.Mapping[builtins.str, "IInputParameter"]]:
1256
+ ...
1257
+
1258
+ @parameters.setter
1259
+ def parameters(
1260
+ self,
1261
+ value: typing.Optional[typing.Mapping[builtins.str, "IInputParameter"]],
1262
+ ) -> None:
1263
+ ...
1264
+
1265
+ @builtins.property
1266
+ @jsii.member(jsii_name="platform")
1267
+ def platform(self) -> typing.Optional[builtins.str]:
1268
+ ...
1269
+
1270
+ @platform.setter
1271
+ def platform(self, value: typing.Optional[builtins.str]) -> None:
1272
+ ...
1273
+
1274
+ @builtins.property
1275
+ @jsii.member(jsii_name="schemaVersion")
1276
+ def schema_version(self) -> typing.Optional[builtins.str]:
1277
+ ...
1278
+
1279
+ @schema_version.setter
1280
+ def schema_version(self, value: typing.Optional[builtins.str]) -> None:
1281
+ ...
1282
+
1283
+
1284
+ class _IComponentPropsProxy:
1285
+ '''Component props.'''
1286
+
1287
+ __jsii_type__: typing.ClassVar[str] = "@jjrawlins/cdk-ami-builder.IComponentProps"
1288
+
1289
+ @builtins.property
1290
+ @jsii.member(jsii_name="componentDocument")
1291
+ def component_document(self) -> IComponentDocument:
1292
+ return typing.cast(IComponentDocument, jsii.get(self, "componentDocument"))
1293
+
1294
+ @component_document.setter
1295
+ def component_document(self, value: IComponentDocument) -> None:
1296
+ if __debug__:
1297
+ type_hints = typing.get_type_hints(_typecheckingstub__b0ad2caab3355f4838637405d4f26c75ee1cce783903c32551e643abe82659e8)
1298
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1299
+ jsii.set(self, "componentDocument", value) # pyright: ignore[reportArgumentType]
1300
+
1301
+ @builtins.property
1302
+ @jsii.member(jsii_name="componentVersion")
1303
+ def component_version(self) -> typing.Optional[builtins.str]:
1304
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "componentVersion"))
1305
+
1306
+ @component_version.setter
1307
+ def component_version(self, value: typing.Optional[builtins.str]) -> None:
1308
+ if __debug__:
1309
+ type_hints = typing.get_type_hints(_typecheckingstub__0bce0f8dc96228f8efb876e5919d9c2c1ee92c26a24d14eca94a50a06cd4926f)
1310
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1311
+ jsii.set(self, "componentVersion", value) # pyright: ignore[reportArgumentType]
1312
+
1313
+ @builtins.property
1314
+ @jsii.member(jsii_name="description")
1315
+ def description(self) -> typing.Optional[builtins.str]:
1316
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "description"))
1317
+
1318
+ @description.setter
1319
+ def description(self, value: typing.Optional[builtins.str]) -> None:
1320
+ if __debug__:
1321
+ type_hints = typing.get_type_hints(_typecheckingstub__c0c7dec14ffd9bf1a1a114795b123ba90e9b80ca69c21fdaa3f475ddf85d78b1)
1322
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1323
+ jsii.set(self, "description", value) # pyright: ignore[reportArgumentType]
1324
+
1325
+ @builtins.property
1326
+ @jsii.member(jsii_name="name")
1327
+ def name(self) -> typing.Optional[builtins.str]:
1328
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "name"))
1329
+
1330
+ @name.setter
1331
+ def name(self, value: typing.Optional[builtins.str]) -> None:
1332
+ if __debug__:
1333
+ type_hints = typing.get_type_hints(_typecheckingstub__72232f5835e0beda072a77bad77970be5491d2709e66ba2ca97fd7bc9db71006)
1334
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1335
+ jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]
1336
+
1337
+ @builtins.property
1338
+ @jsii.member(jsii_name="parameters")
1339
+ def parameters(
1340
+ self,
1341
+ ) -> typing.Optional[typing.Mapping[builtins.str, "IInputParameter"]]:
1342
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, "IInputParameter"]], jsii.get(self, "parameters"))
1343
+
1344
+ @parameters.setter
1345
+ def parameters(
1346
+ self,
1347
+ value: typing.Optional[typing.Mapping[builtins.str, "IInputParameter"]],
1348
+ ) -> None:
1349
+ if __debug__:
1350
+ type_hints = typing.get_type_hints(_typecheckingstub__86f16715a17e21602912ba9d4533eca197b8693c30d16442cfab62b7ea33370d)
1351
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1352
+ jsii.set(self, "parameters", value) # pyright: ignore[reportArgumentType]
1353
+
1354
+ @builtins.property
1355
+ @jsii.member(jsii_name="platform")
1356
+ def platform(self) -> typing.Optional[builtins.str]:
1357
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "platform"))
1358
+
1359
+ @platform.setter
1360
+ def platform(self, value: typing.Optional[builtins.str]) -> None:
1361
+ if __debug__:
1362
+ type_hints = typing.get_type_hints(_typecheckingstub__a23ae80ba76ecddd4143609bb122f336b79f3ab095cc2c2c5d4d1385ef62693a)
1363
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1364
+ jsii.set(self, "platform", value) # pyright: ignore[reportArgumentType]
1365
+
1366
+ @builtins.property
1367
+ @jsii.member(jsii_name="schemaVersion")
1368
+ def schema_version(self) -> typing.Optional[builtins.str]:
1369
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "schemaVersion"))
1370
+
1371
+ @schema_version.setter
1372
+ def schema_version(self, value: typing.Optional[builtins.str]) -> None:
1373
+ if __debug__:
1374
+ type_hints = typing.get_type_hints(_typecheckingstub__9973b3d6b077a057d59e04c03013dce9d7ed43148817bf0433987b401da20438)
1375
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1376
+ jsii.set(self, "schemaVersion", value) # pyright: ignore[reportArgumentType]
1377
+
1378
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
1379
+ typing.cast(typing.Any, IComponentProps).__jsii_proxy_class__ = lambda : _IComponentPropsProxy
1380
+
1381
+
1382
+ @jsii.interface(jsii_type="@jjrawlins/cdk-ami-builder.IEbsParameters")
1383
+ class IEbsParameters(typing_extensions.Protocol):
1384
+ @builtins.property
1385
+ @jsii.member(jsii_name="volumeSize")
1386
+ def volume_size(self) -> jsii.Number:
1387
+ '''Size of the volume in GiB.'''
1388
+ ...
1389
+
1390
+ @volume_size.setter
1391
+ def volume_size(self, value: jsii.Number) -> None:
1392
+ ...
1393
+
1394
+ @builtins.property
1395
+ @jsii.member(jsii_name="deleteOnTermination")
1396
+ def delete_on_termination(self) -> typing.Optional[builtins.bool]:
1397
+ '''Whether the volume is deleted when the instance is terminated.
1398
+
1399
+ :default: true
1400
+ '''
1401
+ ...
1402
+
1403
+ @delete_on_termination.setter
1404
+ def delete_on_termination(self, value: typing.Optional[builtins.bool]) -> None:
1405
+ ...
1406
+
1407
+ @builtins.property
1408
+ @jsii.member(jsii_name="encrypted")
1409
+ def encrypted(self) -> typing.Optional[builtins.bool]:
1410
+ '''Whether the volume is encrypted.
1411
+
1412
+ :default: true
1413
+ '''
1414
+ ...
1415
+
1416
+ @encrypted.setter
1417
+ def encrypted(self, value: typing.Optional[builtins.bool]) -> None:
1418
+ ...
1419
+
1420
+ @builtins.property
1421
+ @jsii.member(jsii_name="kmsKeyId")
1422
+ def kms_key_id(self) -> typing.Optional[builtins.str]:
1423
+ '''KMS Key Alias for the volume If not specified, the default AMI encryption key alias will be used Custom KMS Keys Alias need to exist in the other accounts for distribution to work correctly.
1424
+
1425
+ :default: alias/aws/ebs
1426
+ '''
1427
+ ...
1428
+
1429
+ @kms_key_id.setter
1430
+ def kms_key_id(self, value: typing.Optional[builtins.str]) -> None:
1431
+ ...
1432
+
1433
+ @builtins.property
1434
+ @jsii.member(jsii_name="volumeType")
1435
+ def volume_type(self) -> typing.Optional[builtins.str]:
1436
+ '''Type of the volume.
1437
+
1438
+ :default: gp2
1439
+ '''
1440
+ ...
1441
+
1442
+ @volume_type.setter
1443
+ def volume_type(self, value: typing.Optional[builtins.str]) -> None:
1444
+ ...
1445
+
1446
+
1447
+ class _IEbsParametersProxy:
1448
+ __jsii_type__: typing.ClassVar[str] = "@jjrawlins/cdk-ami-builder.IEbsParameters"
1449
+
1450
+ @builtins.property
1451
+ @jsii.member(jsii_name="volumeSize")
1452
+ def volume_size(self) -> jsii.Number:
1453
+ '''Size of the volume in GiB.'''
1454
+ return typing.cast(jsii.Number, jsii.get(self, "volumeSize"))
1455
+
1456
+ @volume_size.setter
1457
+ def volume_size(self, value: jsii.Number) -> None:
1458
+ if __debug__:
1459
+ type_hints = typing.get_type_hints(_typecheckingstub__0e5d81c411808594f27bf71993213cf332e7b7bc72d420381bada3679eeea8ec)
1460
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1461
+ jsii.set(self, "volumeSize", value) # pyright: ignore[reportArgumentType]
1462
+
1463
+ @builtins.property
1464
+ @jsii.member(jsii_name="deleteOnTermination")
1465
+ def delete_on_termination(self) -> typing.Optional[builtins.bool]:
1466
+ '''Whether the volume is deleted when the instance is terminated.
1467
+
1468
+ :default: true
1469
+ '''
1470
+ return typing.cast(typing.Optional[builtins.bool], jsii.get(self, "deleteOnTermination"))
1471
+
1472
+ @delete_on_termination.setter
1473
+ def delete_on_termination(self, value: typing.Optional[builtins.bool]) -> None:
1474
+ if __debug__:
1475
+ type_hints = typing.get_type_hints(_typecheckingstub__b540c011e8f4a3a07534f2b6ce7d7f97f2c406cb2e6c3fe31235455d998f6241)
1476
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1477
+ jsii.set(self, "deleteOnTermination", value) # pyright: ignore[reportArgumentType]
1478
+
1479
+ @builtins.property
1480
+ @jsii.member(jsii_name="encrypted")
1481
+ def encrypted(self) -> typing.Optional[builtins.bool]:
1482
+ '''Whether the volume is encrypted.
1483
+
1484
+ :default: true
1485
+ '''
1486
+ return typing.cast(typing.Optional[builtins.bool], jsii.get(self, "encrypted"))
1487
+
1488
+ @encrypted.setter
1489
+ def encrypted(self, value: typing.Optional[builtins.bool]) -> None:
1490
+ if __debug__:
1491
+ type_hints = typing.get_type_hints(_typecheckingstub__7e13b146751f14eee56e18d77364984f0f27022180ae37bc0ded34faef00f0c4)
1492
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1493
+ jsii.set(self, "encrypted", value) # pyright: ignore[reportArgumentType]
1494
+
1495
+ @builtins.property
1496
+ @jsii.member(jsii_name="kmsKeyId")
1497
+ def kms_key_id(self) -> typing.Optional[builtins.str]:
1498
+ '''KMS Key Alias for the volume If not specified, the default AMI encryption key alias will be used Custom KMS Keys Alias need to exist in the other accounts for distribution to work correctly.
1499
+
1500
+ :default: alias/aws/ebs
1501
+ '''
1502
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "kmsKeyId"))
1503
+
1504
+ @kms_key_id.setter
1505
+ def kms_key_id(self, value: typing.Optional[builtins.str]) -> None:
1506
+ if __debug__:
1507
+ type_hints = typing.get_type_hints(_typecheckingstub__c302f146869b52368ce6de4d6f01976b8eca3e9d54f8efbbffe44cf8b19d0869)
1508
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1509
+ jsii.set(self, "kmsKeyId", value) # pyright: ignore[reportArgumentType]
1510
+
1511
+ @builtins.property
1512
+ @jsii.member(jsii_name="volumeType")
1513
+ def volume_type(self) -> typing.Optional[builtins.str]:
1514
+ '''Type of the volume.
1515
+
1516
+ :default: gp2
1517
+ '''
1518
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "volumeType"))
1519
+
1520
+ @volume_type.setter
1521
+ def volume_type(self, value: typing.Optional[builtins.str]) -> None:
1522
+ if __debug__:
1523
+ type_hints = typing.get_type_hints(_typecheckingstub__e81a510a2a024c038328cbad4402309e14a7833b607324f360373866e250b3f7)
1524
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1525
+ jsii.set(self, "volumeType", value) # pyright: ignore[reportArgumentType]
1526
+
1527
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
1528
+ typing.cast(typing.Any, IEbsParameters).__jsii_proxy_class__ = lambda : _IEbsParametersProxy
1529
+
1530
+
1531
+ @jsii.interface(jsii_type="@jjrawlins/cdk-ami-builder.IInputParameter")
1532
+ class IInputParameter(typing_extensions.Protocol):
1533
+ @builtins.property
1534
+ @jsii.member(jsii_name="default")
1535
+ def default(self) -> builtins.str:
1536
+ ...
1537
+
1538
+ @default.setter
1539
+ def default(self, value: builtins.str) -> None:
1540
+ ...
1541
+
1542
+ @builtins.property
1543
+ @jsii.member(jsii_name="description")
1544
+ def description(self) -> builtins.str:
1545
+ ...
1546
+
1547
+ @description.setter
1548
+ def description(self, value: builtins.str) -> None:
1549
+ ...
1550
+
1551
+ @builtins.property
1552
+ @jsii.member(jsii_name="type")
1553
+ def type(self) -> builtins.str:
1554
+ ...
1555
+
1556
+ @type.setter
1557
+ def type(self, value: builtins.str) -> None:
1558
+ ...
1559
+
1560
+
1561
+ class _IInputParameterProxy:
1562
+ __jsii_type__: typing.ClassVar[str] = "@jjrawlins/cdk-ami-builder.IInputParameter"
1563
+
1564
+ @builtins.property
1565
+ @jsii.member(jsii_name="default")
1566
+ def default(self) -> builtins.str:
1567
+ return typing.cast(builtins.str, jsii.get(self, "default"))
1568
+
1569
+ @default.setter
1570
+ def default(self, value: builtins.str) -> None:
1571
+ if __debug__:
1572
+ type_hints = typing.get_type_hints(_typecheckingstub__aaf310c2928dde39cb8af7991b84c39540130f8d881fe6005d7eab25d2d118c0)
1573
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1574
+ jsii.set(self, "default", value) # pyright: ignore[reportArgumentType]
1575
+
1576
+ @builtins.property
1577
+ @jsii.member(jsii_name="description")
1578
+ def description(self) -> builtins.str:
1579
+ return typing.cast(builtins.str, jsii.get(self, "description"))
1580
+
1581
+ @description.setter
1582
+ def description(self, value: builtins.str) -> None:
1583
+ if __debug__:
1584
+ type_hints = typing.get_type_hints(_typecheckingstub__4560f5bbdf32517a539c1af9e6599ca9195835a850a0f07ddfc0dcdf3641b1f7)
1585
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1586
+ jsii.set(self, "description", value) # pyright: ignore[reportArgumentType]
1587
+
1588
+ @builtins.property
1589
+ @jsii.member(jsii_name="type")
1590
+ def type(self) -> builtins.str:
1591
+ return typing.cast(builtins.str, jsii.get(self, "type"))
1592
+
1593
+ @type.setter
1594
+ def type(self, value: builtins.str) -> None:
1595
+ if __debug__:
1596
+ type_hints = typing.get_type_hints(_typecheckingstub__8fb09906d4a1b21165f080811572771be07edead36213cbdddbcae3f59ca4fe7)
1597
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1598
+ jsii.set(self, "type", value) # pyright: ignore[reportArgumentType]
1599
+
1600
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
1601
+ typing.cast(typing.Any, IInputParameter).__jsii_proxy_class__ = lambda : _IInputParameterProxy
1602
+
1603
+
1604
+ @jsii.interface(jsii_type="@jjrawlins/cdk-ami-builder.IPhases")
1605
+ class IPhases(typing_extensions.Protocol):
1606
+ '''Phases for the component.'''
1607
+
1608
+ @builtins.property
1609
+ @jsii.member(jsii_name="name")
1610
+ def name(self) -> builtins.str:
1611
+ ...
1612
+
1613
+ @name.setter
1614
+ def name(self, value: builtins.str) -> None:
1615
+ ...
1616
+
1617
+ @builtins.property
1618
+ @jsii.member(jsii_name="steps")
1619
+ def steps(self) -> typing.List["IStepCommands"]:
1620
+ ...
1621
+
1622
+ @steps.setter
1623
+ def steps(self, value: typing.List["IStepCommands"]) -> None:
1624
+ ...
1625
+
1626
+
1627
+ class _IPhasesProxy:
1628
+ '''Phases for the component.'''
1629
+
1630
+ __jsii_type__: typing.ClassVar[str] = "@jjrawlins/cdk-ami-builder.IPhases"
1631
+
1632
+ @builtins.property
1633
+ @jsii.member(jsii_name="name")
1634
+ def name(self) -> builtins.str:
1635
+ return typing.cast(builtins.str, jsii.get(self, "name"))
1636
+
1637
+ @name.setter
1638
+ def name(self, value: builtins.str) -> None:
1639
+ if __debug__:
1640
+ type_hints = typing.get_type_hints(_typecheckingstub__44eb356dcf22fafae58586b67e463188c1ceb5872e7d4700b983131d9fa722c2)
1641
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1642
+ jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]
1643
+
1644
+ @builtins.property
1645
+ @jsii.member(jsii_name="steps")
1646
+ def steps(self) -> typing.List["IStepCommands"]:
1647
+ return typing.cast(typing.List["IStepCommands"], jsii.get(self, "steps"))
1648
+
1649
+ @steps.setter
1650
+ def steps(self, value: typing.List["IStepCommands"]) -> None:
1651
+ if __debug__:
1652
+ type_hints = typing.get_type_hints(_typecheckingstub__df462b42f744b117b0586075ca023a73546818bc12bda3af473d5cded5a14453)
1653
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1654
+ jsii.set(self, "steps", value) # pyright: ignore[reportArgumentType]
1655
+
1656
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
1657
+ typing.cast(typing.Any, IPhases).__jsii_proxy_class__ = lambda : _IPhasesProxy
1658
+
1659
+
1660
+ @jsii.interface(jsii_type="@jjrawlins/cdk-ami-builder.IStepCommands")
1661
+ class IStepCommands(typing_extensions.Protocol):
1662
+ @builtins.property
1663
+ @jsii.member(jsii_name="action")
1664
+ def action(self) -> builtins.str:
1665
+ ...
1666
+
1667
+ @action.setter
1668
+ def action(self, value: builtins.str) -> None:
1669
+ ...
1670
+
1671
+ @builtins.property
1672
+ @jsii.member(jsii_name="name")
1673
+ def name(self) -> builtins.str:
1674
+ ...
1675
+
1676
+ @name.setter
1677
+ def name(self, value: builtins.str) -> None:
1678
+ ...
1679
+
1680
+ @builtins.property
1681
+ @jsii.member(jsii_name="inputs")
1682
+ def inputs(self) -> typing.Optional[IActionCommands]:
1683
+ ...
1684
+
1685
+ @inputs.setter
1686
+ def inputs(self, value: typing.Optional[IActionCommands]) -> None:
1687
+ ...
1688
+
1689
+
1690
+ class _IStepCommandsProxy:
1691
+ __jsii_type__: typing.ClassVar[str] = "@jjrawlins/cdk-ami-builder.IStepCommands"
1692
+
1693
+ @builtins.property
1694
+ @jsii.member(jsii_name="action")
1695
+ def action(self) -> builtins.str:
1696
+ return typing.cast(builtins.str, jsii.get(self, "action"))
1697
+
1698
+ @action.setter
1699
+ def action(self, value: builtins.str) -> None:
1700
+ if __debug__:
1701
+ type_hints = typing.get_type_hints(_typecheckingstub__d2a55181a699ecdb46fd277bb5d051f1e9f4433e27639332395478ed06c7bada)
1702
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1703
+ jsii.set(self, "action", value) # pyright: ignore[reportArgumentType]
1704
+
1705
+ @builtins.property
1706
+ @jsii.member(jsii_name="name")
1707
+ def name(self) -> builtins.str:
1708
+ return typing.cast(builtins.str, jsii.get(self, "name"))
1709
+
1710
+ @name.setter
1711
+ def name(self, value: builtins.str) -> None:
1712
+ if __debug__:
1713
+ type_hints = typing.get_type_hints(_typecheckingstub__c7fd2c10de441da316399b8d67ef9fe6302063110bab78de675bf72c8d330cd5)
1714
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1715
+ jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]
1716
+
1717
+ @builtins.property
1718
+ @jsii.member(jsii_name="inputs")
1719
+ def inputs(self) -> typing.Optional[IActionCommands]:
1720
+ return typing.cast(typing.Optional[IActionCommands], jsii.get(self, "inputs"))
1721
+
1722
+ @inputs.setter
1723
+ def inputs(self, value: typing.Optional[IActionCommands]) -> None:
1724
+ if __debug__:
1725
+ type_hints = typing.get_type_hints(_typecheckingstub__31f544d77b7639a100d3ef21a2dccb6780ad4865ad30dc0927169fa6f58ba844)
1726
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1727
+ jsii.set(self, "inputs", value) # pyright: ignore[reportArgumentType]
1728
+
1729
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
1730
+ typing.cast(typing.Any, IStepCommands).__jsii_proxy_class__ = lambda : _IStepCommandsProxy
1731
+
1732
+
1733
+ class ImagePipeline(
1734
+ _constructs_77d1e7e8.Construct,
1735
+ metaclass=jsii.JSIIMeta,
1736
+ jsii_type="@jjrawlins/cdk-ami-builder.ImagePipeline",
1737
+ ):
1738
+ def __init__(
1739
+ self,
1740
+ scope: _constructs_77d1e7e8.Construct,
1741
+ id: builtins.str,
1742
+ *,
1743
+ components: typing.Sequence[IComponentProps],
1744
+ parent_image: builtins.str,
1745
+ vpc: _aws_cdk_aws_ec2_ceddda9d.Vpc,
1746
+ additional_policies: typing.Optional[typing.Sequence[_aws_cdk_aws_iam_ceddda9d.ManagedPolicy]] = None,
1747
+ debug_image_pipeline: typing.Optional[builtins.bool] = None,
1748
+ distribution_account_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
1749
+ distribution_kms_key_alias: typing.Optional[builtins.str] = None,
1750
+ distribution_regions: typing.Optional[typing.Sequence[builtins.str]] = None,
1751
+ ebs_volume_configurations: typing.Optional[typing.Sequence[typing.Union["VolumeProps", typing.Dict[builtins.str, typing.Any]]]] = None,
1752
+ email: typing.Optional[builtins.str] = None,
1753
+ enable_vuln_scans: typing.Optional[builtins.bool] = None,
1754
+ image_recipe_version: typing.Optional[builtins.str] = None,
1755
+ instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
1756
+ platform: typing.Optional[builtins.str] = None,
1757
+ profile_name: typing.Optional[builtins.str] = None,
1758
+ security_group_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
1759
+ security_groups: typing.Optional[typing.Sequence[builtins.str]] = None,
1760
+ subnet_id: typing.Optional[builtins.str] = None,
1761
+ user_data_script: typing.Optional[builtins.str] = None,
1762
+ vuln_scans_repo_name: typing.Optional[builtins.str] = None,
1763
+ vuln_scans_repo_tags: typing.Optional[typing.Sequence[builtins.str]] = None,
1764
+ ) -> None:
1765
+ '''
1766
+ :param scope: -
1767
+ :param id: -
1768
+ :param components: List of component props.
1769
+ :param parent_image: The source (parent) image that the image recipe uses as its base environment. The value can be the parent image ARN or an Image Builder AMI ID
1770
+ :param vpc: Vpc to use for the Image Builder Pipeline.
1771
+ :param additional_policies: Additional policies to add to the instance profile associated with the Instance Configurations.
1772
+ :param debug_image_pipeline: Flag indicating whether the debug image pipeline is enabled or not. This variable is optional. Default value is false. Functionally, this will flag to return as finished immediately after first check to see if the image pipeline has finished. This is useful for debugging the image pipeline. However, there will be no AMI value returned.
1773
+ :param distribution_account_ids: This variable represents an array of shared account IDs. It is optional and readonly. If it is provided, this AMI will be visible to the accounts in the array. In order to share the AMI with other accounts, you must specify a KMS key ID for the EBS volume configuration as AWS does not allow sharing AMIs encrypted with the default AMI encryption key.
1774
+ :param distribution_kms_key_alias: The alias of the KMS key used for encryption and decryption of content in the distribution. This property is optional and readonly. The default encryption key is not compatible with cross-account AMI sharing. If you specify distributionAccountIds, you must specify a non-default encryption key using this property. Otherwise, Image Builder will throw an error. Keep in mind that the KMS key in the distribution account must allow the EC2ImageBuilderDistributionCrossAccountRole role to use the key.
1775
+ :param distribution_regions:
1776
+ :param ebs_volume_configurations: Subnet ID for the Infrastructure Configuration.
1777
+ :param email: Email used to receive Image Builder Pipeline Notifications via SNS.
1778
+ :param enable_vuln_scans: Set to true if you want to enable continuous vulnerability scans through AWS Inpector.
1779
+ :param image_recipe_version: Image recipe version (Default: 0.0.1).
1780
+ :param instance_types: List of instance types used in the Instance Configuration (Default: [ 't3.medium', 'm5.large', 'm5.xlarge' ]).
1781
+ :param platform: Platform type Linux or Windows (Default: Linux).
1782
+ :param profile_name: Name of the instance profile that will be associated with the Instance Configuration.
1783
+ :param security_group_ids: List of security group IDs for the Infrastructure Configuration.
1784
+ :param security_groups:
1785
+ :param subnet_id:
1786
+ :param user_data_script: UserData script that will override default one (if specified). Default: - none
1787
+ :param vuln_scans_repo_name: Store vulnerability scans through AWS Inspector in ECR using this repo name (if option is enabled).
1788
+ :param vuln_scans_repo_tags: Store vulnerability scans through AWS Inspector in ECR using these image tags (if option is enabled).
1789
+ '''
1790
+ if __debug__:
1791
+ type_hints = typing.get_type_hints(_typecheckingstub__bf6bd3c038c0cdfd3e7d1a6b8572fb503cc2e9cedcc165c10c8c3747c9bd5e18)
1792
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1793
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1794
+ props = ImagePipelineProps(
1795
+ components=components,
1796
+ parent_image=parent_image,
1797
+ vpc=vpc,
1798
+ additional_policies=additional_policies,
1799
+ debug_image_pipeline=debug_image_pipeline,
1800
+ distribution_account_ids=distribution_account_ids,
1801
+ distribution_kms_key_alias=distribution_kms_key_alias,
1802
+ distribution_regions=distribution_regions,
1803
+ ebs_volume_configurations=ebs_volume_configurations,
1804
+ email=email,
1805
+ enable_vuln_scans=enable_vuln_scans,
1806
+ image_recipe_version=image_recipe_version,
1807
+ instance_types=instance_types,
1808
+ platform=platform,
1809
+ profile_name=profile_name,
1810
+ security_group_ids=security_group_ids,
1811
+ security_groups=security_groups,
1812
+ subnet_id=subnet_id,
1813
+ user_data_script=user_data_script,
1814
+ vuln_scans_repo_name=vuln_scans_repo_name,
1815
+ vuln_scans_repo_tags=vuln_scans_repo_tags,
1816
+ )
1817
+
1818
+ jsii.create(self.__class__, self, [scope, id, props])
1819
+
1820
+ @builtins.property
1821
+ @jsii.member(jsii_name="imageId")
1822
+ def image_id(self) -> builtins.str:
1823
+ return typing.cast(builtins.str, jsii.get(self, "imageId"))
1824
+
1825
+ @image_id.setter
1826
+ def image_id(self, value: builtins.str) -> None:
1827
+ if __debug__:
1828
+ type_hints = typing.get_type_hints(_typecheckingstub__3caaa0e87efd31863d50ae14b716d1c26963b70e3c7cb6faf0382a7a992902db)
1829
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1830
+ jsii.set(self, "imageId", value) # pyright: ignore[reportArgumentType]
1831
+
1832
+ @builtins.property
1833
+ @jsii.member(jsii_name="imagePipelineArn")
1834
+ def image_pipeline_arn(self) -> builtins.str:
1835
+ return typing.cast(builtins.str, jsii.get(self, "imagePipelineArn"))
1836
+
1837
+ @image_pipeline_arn.setter
1838
+ def image_pipeline_arn(self, value: builtins.str) -> None:
1839
+ if __debug__:
1840
+ type_hints = typing.get_type_hints(_typecheckingstub__8f26b6fa7ec32bfa71a51e8decd4140be699fde137d1b00acb1efb9403c33617)
1841
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1842
+ jsii.set(self, "imagePipelineArn", value) # pyright: ignore[reportArgumentType]
1843
+
1844
+ @builtins.property
1845
+ @jsii.member(jsii_name="imageRecipeComponents")
1846
+ def image_recipe_components(
1847
+ self,
1848
+ ) -> typing.List[_aws_cdk_aws_imagebuilder_ceddda9d.CfnImageRecipe.ComponentConfigurationProperty]:
1849
+ return typing.cast(typing.List[_aws_cdk_aws_imagebuilder_ceddda9d.CfnImageRecipe.ComponentConfigurationProperty], jsii.get(self, "imageRecipeComponents"))
1850
+
1851
+ @image_recipe_components.setter
1852
+ def image_recipe_components(
1853
+ self,
1854
+ value: typing.List[_aws_cdk_aws_imagebuilder_ceddda9d.CfnImageRecipe.ComponentConfigurationProperty],
1855
+ ) -> None:
1856
+ if __debug__:
1857
+ type_hints = typing.get_type_hints(_typecheckingstub__eeb1c8226fc2b10c398b3b6c92875d7937e349500e49aef10cfda8c99a39abca)
1858
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1859
+ jsii.set(self, "imageRecipeComponents", value) # pyright: ignore[reportArgumentType]
1860
+
1861
+
1862
+ @jsii.data_type(
1863
+ jsii_type="@jjrawlins/cdk-ami-builder.ImagePipelineProps",
1864
+ jsii_struct_bases=[],
1865
+ name_mapping={
1866
+ "components": "components",
1867
+ "parent_image": "parentImage",
1868
+ "vpc": "vpc",
1869
+ "additional_policies": "additionalPolicies",
1870
+ "debug_image_pipeline": "debugImagePipeline",
1871
+ "distribution_account_ids": "distributionAccountIds",
1872
+ "distribution_kms_key_alias": "distributionKmsKeyAlias",
1873
+ "distribution_regions": "distributionRegions",
1874
+ "ebs_volume_configurations": "ebsVolumeConfigurations",
1875
+ "email": "email",
1876
+ "enable_vuln_scans": "enableVulnScans",
1877
+ "image_recipe_version": "imageRecipeVersion",
1878
+ "instance_types": "instanceTypes",
1879
+ "platform": "platform",
1880
+ "profile_name": "profileName",
1881
+ "security_group_ids": "securityGroupIds",
1882
+ "security_groups": "securityGroups",
1883
+ "subnet_id": "subnetId",
1884
+ "user_data_script": "userDataScript",
1885
+ "vuln_scans_repo_name": "vulnScansRepoName",
1886
+ "vuln_scans_repo_tags": "vulnScansRepoTags",
1887
+ },
1888
+ )
1889
+ class ImagePipelineProps:
1890
+ def __init__(
1891
+ self,
1892
+ *,
1893
+ components: typing.Sequence[IComponentProps],
1894
+ parent_image: builtins.str,
1895
+ vpc: _aws_cdk_aws_ec2_ceddda9d.Vpc,
1896
+ additional_policies: typing.Optional[typing.Sequence[_aws_cdk_aws_iam_ceddda9d.ManagedPolicy]] = None,
1897
+ debug_image_pipeline: typing.Optional[builtins.bool] = None,
1898
+ distribution_account_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
1899
+ distribution_kms_key_alias: typing.Optional[builtins.str] = None,
1900
+ distribution_regions: typing.Optional[typing.Sequence[builtins.str]] = None,
1901
+ ebs_volume_configurations: typing.Optional[typing.Sequence[typing.Union["VolumeProps", typing.Dict[builtins.str, typing.Any]]]] = None,
1902
+ email: typing.Optional[builtins.str] = None,
1903
+ enable_vuln_scans: typing.Optional[builtins.bool] = None,
1904
+ image_recipe_version: typing.Optional[builtins.str] = None,
1905
+ instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
1906
+ platform: typing.Optional[builtins.str] = None,
1907
+ profile_name: typing.Optional[builtins.str] = None,
1908
+ security_group_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
1909
+ security_groups: typing.Optional[typing.Sequence[builtins.str]] = None,
1910
+ subnet_id: typing.Optional[builtins.str] = None,
1911
+ user_data_script: typing.Optional[builtins.str] = None,
1912
+ vuln_scans_repo_name: typing.Optional[builtins.str] = None,
1913
+ vuln_scans_repo_tags: typing.Optional[typing.Sequence[builtins.str]] = None,
1914
+ ) -> None:
1915
+ '''
1916
+ :param components: List of component props.
1917
+ :param parent_image: The source (parent) image that the image recipe uses as its base environment. The value can be the parent image ARN or an Image Builder AMI ID
1918
+ :param vpc: Vpc to use for the Image Builder Pipeline.
1919
+ :param additional_policies: Additional policies to add to the instance profile associated with the Instance Configurations.
1920
+ :param debug_image_pipeline: Flag indicating whether the debug image pipeline is enabled or not. This variable is optional. Default value is false. Functionally, this will flag to return as finished immediately after first check to see if the image pipeline has finished. This is useful for debugging the image pipeline. However, there will be no AMI value returned.
1921
+ :param distribution_account_ids: This variable represents an array of shared account IDs. It is optional and readonly. If it is provided, this AMI will be visible to the accounts in the array. In order to share the AMI with other accounts, you must specify a KMS key ID for the EBS volume configuration as AWS does not allow sharing AMIs encrypted with the default AMI encryption key.
1922
+ :param distribution_kms_key_alias: The alias of the KMS key used for encryption and decryption of content in the distribution. This property is optional and readonly. The default encryption key is not compatible with cross-account AMI sharing. If you specify distributionAccountIds, you must specify a non-default encryption key using this property. Otherwise, Image Builder will throw an error. Keep in mind that the KMS key in the distribution account must allow the EC2ImageBuilderDistributionCrossAccountRole role to use the key.
1923
+ :param distribution_regions:
1924
+ :param ebs_volume_configurations: Subnet ID for the Infrastructure Configuration.
1925
+ :param email: Email used to receive Image Builder Pipeline Notifications via SNS.
1926
+ :param enable_vuln_scans: Set to true if you want to enable continuous vulnerability scans through AWS Inpector.
1927
+ :param image_recipe_version: Image recipe version (Default: 0.0.1).
1928
+ :param instance_types: List of instance types used in the Instance Configuration (Default: [ 't3.medium', 'm5.large', 'm5.xlarge' ]).
1929
+ :param platform: Platform type Linux or Windows (Default: Linux).
1930
+ :param profile_name: Name of the instance profile that will be associated with the Instance Configuration.
1931
+ :param security_group_ids: List of security group IDs for the Infrastructure Configuration.
1932
+ :param security_groups:
1933
+ :param subnet_id:
1934
+ :param user_data_script: UserData script that will override default one (if specified). Default: - none
1935
+ :param vuln_scans_repo_name: Store vulnerability scans through AWS Inspector in ECR using this repo name (if option is enabled).
1936
+ :param vuln_scans_repo_tags: Store vulnerability scans through AWS Inspector in ECR using these image tags (if option is enabled).
1937
+ '''
1938
+ if __debug__:
1939
+ type_hints = typing.get_type_hints(_typecheckingstub__f604923f8f82998f5caecff757715f94c0405ceeb95a6c1b00fa96d9d35d16d6)
1940
+ check_type(argname="argument components", value=components, expected_type=type_hints["components"])
1941
+ check_type(argname="argument parent_image", value=parent_image, expected_type=type_hints["parent_image"])
1942
+ check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
1943
+ check_type(argname="argument additional_policies", value=additional_policies, expected_type=type_hints["additional_policies"])
1944
+ check_type(argname="argument debug_image_pipeline", value=debug_image_pipeline, expected_type=type_hints["debug_image_pipeline"])
1945
+ check_type(argname="argument distribution_account_ids", value=distribution_account_ids, expected_type=type_hints["distribution_account_ids"])
1946
+ check_type(argname="argument distribution_kms_key_alias", value=distribution_kms_key_alias, expected_type=type_hints["distribution_kms_key_alias"])
1947
+ check_type(argname="argument distribution_regions", value=distribution_regions, expected_type=type_hints["distribution_regions"])
1948
+ check_type(argname="argument ebs_volume_configurations", value=ebs_volume_configurations, expected_type=type_hints["ebs_volume_configurations"])
1949
+ check_type(argname="argument email", value=email, expected_type=type_hints["email"])
1950
+ check_type(argname="argument enable_vuln_scans", value=enable_vuln_scans, expected_type=type_hints["enable_vuln_scans"])
1951
+ check_type(argname="argument image_recipe_version", value=image_recipe_version, expected_type=type_hints["image_recipe_version"])
1952
+ check_type(argname="argument instance_types", value=instance_types, expected_type=type_hints["instance_types"])
1953
+ check_type(argname="argument platform", value=platform, expected_type=type_hints["platform"])
1954
+ check_type(argname="argument profile_name", value=profile_name, expected_type=type_hints["profile_name"])
1955
+ check_type(argname="argument security_group_ids", value=security_group_ids, expected_type=type_hints["security_group_ids"])
1956
+ check_type(argname="argument security_groups", value=security_groups, expected_type=type_hints["security_groups"])
1957
+ check_type(argname="argument subnet_id", value=subnet_id, expected_type=type_hints["subnet_id"])
1958
+ check_type(argname="argument user_data_script", value=user_data_script, expected_type=type_hints["user_data_script"])
1959
+ check_type(argname="argument vuln_scans_repo_name", value=vuln_scans_repo_name, expected_type=type_hints["vuln_scans_repo_name"])
1960
+ check_type(argname="argument vuln_scans_repo_tags", value=vuln_scans_repo_tags, expected_type=type_hints["vuln_scans_repo_tags"])
1961
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1962
+ "components": components,
1963
+ "parent_image": parent_image,
1964
+ "vpc": vpc,
1965
+ }
1966
+ if additional_policies is not None:
1967
+ self._values["additional_policies"] = additional_policies
1968
+ if debug_image_pipeline is not None:
1969
+ self._values["debug_image_pipeline"] = debug_image_pipeline
1970
+ if distribution_account_ids is not None:
1971
+ self._values["distribution_account_ids"] = distribution_account_ids
1972
+ if distribution_kms_key_alias is not None:
1973
+ self._values["distribution_kms_key_alias"] = distribution_kms_key_alias
1974
+ if distribution_regions is not None:
1975
+ self._values["distribution_regions"] = distribution_regions
1976
+ if ebs_volume_configurations is not None:
1977
+ self._values["ebs_volume_configurations"] = ebs_volume_configurations
1978
+ if email is not None:
1979
+ self._values["email"] = email
1980
+ if enable_vuln_scans is not None:
1981
+ self._values["enable_vuln_scans"] = enable_vuln_scans
1982
+ if image_recipe_version is not None:
1983
+ self._values["image_recipe_version"] = image_recipe_version
1984
+ if instance_types is not None:
1985
+ self._values["instance_types"] = instance_types
1986
+ if platform is not None:
1987
+ self._values["platform"] = platform
1988
+ if profile_name is not None:
1989
+ self._values["profile_name"] = profile_name
1990
+ if security_group_ids is not None:
1991
+ self._values["security_group_ids"] = security_group_ids
1992
+ if security_groups is not None:
1993
+ self._values["security_groups"] = security_groups
1994
+ if subnet_id is not None:
1995
+ self._values["subnet_id"] = subnet_id
1996
+ if user_data_script is not None:
1997
+ self._values["user_data_script"] = user_data_script
1998
+ if vuln_scans_repo_name is not None:
1999
+ self._values["vuln_scans_repo_name"] = vuln_scans_repo_name
2000
+ if vuln_scans_repo_tags is not None:
2001
+ self._values["vuln_scans_repo_tags"] = vuln_scans_repo_tags
2002
+
2003
+ @builtins.property
2004
+ def components(self) -> typing.List[IComponentProps]:
2005
+ '''List of component props.'''
2006
+ result = self._values.get("components")
2007
+ assert result is not None, "Required property 'components' is missing"
2008
+ return typing.cast(typing.List[IComponentProps], result)
2009
+
2010
+ @builtins.property
2011
+ def parent_image(self) -> builtins.str:
2012
+ '''The source (parent) image that the image recipe uses as its base environment.
2013
+
2014
+ The value can be the parent image ARN or an Image Builder AMI ID
2015
+ '''
2016
+ result = self._values.get("parent_image")
2017
+ assert result is not None, "Required property 'parent_image' is missing"
2018
+ return typing.cast(builtins.str, result)
2019
+
2020
+ @builtins.property
2021
+ def vpc(self) -> _aws_cdk_aws_ec2_ceddda9d.Vpc:
2022
+ '''Vpc to use for the Image Builder Pipeline.'''
2023
+ result = self._values.get("vpc")
2024
+ assert result is not None, "Required property 'vpc' is missing"
2025
+ return typing.cast(_aws_cdk_aws_ec2_ceddda9d.Vpc, result)
2026
+
2027
+ @builtins.property
2028
+ def additional_policies(
2029
+ self,
2030
+ ) -> typing.Optional[typing.List[_aws_cdk_aws_iam_ceddda9d.ManagedPolicy]]:
2031
+ '''Additional policies to add to the instance profile associated with the Instance Configurations.'''
2032
+ result = self._values.get("additional_policies")
2033
+ return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_iam_ceddda9d.ManagedPolicy]], result)
2034
+
2035
+ @builtins.property
2036
+ def debug_image_pipeline(self) -> typing.Optional[builtins.bool]:
2037
+ '''Flag indicating whether the debug image pipeline is enabled or not.
2038
+
2039
+ This variable is optional. Default value is false.
2040
+ Functionally, this will flag to return as finished immediately after first check to see if the image pipeline has finished.
2041
+ This is useful for debugging the image pipeline. However, there will be no AMI value returned.
2042
+
2043
+ :readonly: true
2044
+ :type: {boolean}
2045
+ '''
2046
+ result = self._values.get("debug_image_pipeline")
2047
+ return typing.cast(typing.Optional[builtins.bool], result)
2048
+
2049
+ @builtins.property
2050
+ def distribution_account_ids(self) -> typing.Optional[typing.List[builtins.str]]:
2051
+ '''This variable represents an array of shared account IDs.
2052
+
2053
+ It is optional and readonly.
2054
+ If it is provided, this AMI will be visible to the accounts in the array.
2055
+ In order to share the AMI with other accounts, you must specify a KMS key ID for the EBS volume configuration as AWS does not allow sharing AMIs encrypted with the default AMI encryption key.
2056
+
2057
+ :readonly: true
2058
+ :type: {Array}
2059
+ '''
2060
+ result = self._values.get("distribution_account_ids")
2061
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
2062
+
2063
+ @builtins.property
2064
+ def distribution_kms_key_alias(self) -> typing.Optional[builtins.str]:
2065
+ '''The alias of the KMS key used for encryption and decryption of content in the distribution.
2066
+
2067
+ This property is optional and readonly.
2068
+ The default encryption key is not compatible with cross-account AMI sharing.
2069
+ If you specify distributionAccountIds, you must specify a non-default encryption key using this property. Otherwise, Image Builder will throw an error.
2070
+ Keep in mind that the KMS key in the distribution account must allow the EC2ImageBuilderDistributionCrossAccountRole role to use the key.
2071
+
2072
+ :readonly: true
2073
+ :type: {string}
2074
+ '''
2075
+ result = self._values.get("distribution_kms_key_alias")
2076
+ return typing.cast(typing.Optional[builtins.str], result)
2077
+
2078
+ @builtins.property
2079
+ def distribution_regions(self) -> typing.Optional[typing.List[builtins.str]]:
2080
+ result = self._values.get("distribution_regions")
2081
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
2082
+
2083
+ @builtins.property
2084
+ def ebs_volume_configurations(self) -> typing.Optional[typing.List["VolumeProps"]]:
2085
+ '''Subnet ID for the Infrastructure Configuration.'''
2086
+ result = self._values.get("ebs_volume_configurations")
2087
+ return typing.cast(typing.Optional[typing.List["VolumeProps"]], result)
2088
+
2089
+ @builtins.property
2090
+ def email(self) -> typing.Optional[builtins.str]:
2091
+ '''Email used to receive Image Builder Pipeline Notifications via SNS.'''
2092
+ result = self._values.get("email")
2093
+ return typing.cast(typing.Optional[builtins.str], result)
2094
+
2095
+ @builtins.property
2096
+ def enable_vuln_scans(self) -> typing.Optional[builtins.bool]:
2097
+ '''Set to true if you want to enable continuous vulnerability scans through AWS Inpector.'''
2098
+ result = self._values.get("enable_vuln_scans")
2099
+ return typing.cast(typing.Optional[builtins.bool], result)
2100
+
2101
+ @builtins.property
2102
+ def image_recipe_version(self) -> typing.Optional[builtins.str]:
2103
+ '''Image recipe version (Default: 0.0.1).'''
2104
+ result = self._values.get("image_recipe_version")
2105
+ return typing.cast(typing.Optional[builtins.str], result)
2106
+
2107
+ @builtins.property
2108
+ def instance_types(self) -> typing.Optional[typing.List[builtins.str]]:
2109
+ '''List of instance types used in the Instance Configuration (Default: [ 't3.medium', 'm5.large', 'm5.xlarge' ]).'''
2110
+ result = self._values.get("instance_types")
2111
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
2112
+
2113
+ @builtins.property
2114
+ def platform(self) -> typing.Optional[builtins.str]:
2115
+ '''Platform type Linux or Windows (Default: Linux).'''
2116
+ result = self._values.get("platform")
2117
+ return typing.cast(typing.Optional[builtins.str], result)
2118
+
2119
+ @builtins.property
2120
+ def profile_name(self) -> typing.Optional[builtins.str]:
2121
+ '''Name of the instance profile that will be associated with the Instance Configuration.'''
2122
+ result = self._values.get("profile_name")
2123
+ return typing.cast(typing.Optional[builtins.str], result)
2124
+
2125
+ @builtins.property
2126
+ def security_group_ids(self) -> typing.Optional[typing.List[builtins.str]]:
2127
+ '''List of security group IDs for the Infrastructure Configuration.'''
2128
+ result = self._values.get("security_group_ids")
2129
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
2130
+
2131
+ @builtins.property
2132
+ def security_groups(self) -> typing.Optional[typing.List[builtins.str]]:
2133
+ result = self._values.get("security_groups")
2134
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
2135
+
2136
+ @builtins.property
2137
+ def subnet_id(self) -> typing.Optional[builtins.str]:
2138
+ result = self._values.get("subnet_id")
2139
+ return typing.cast(typing.Optional[builtins.str], result)
2140
+
2141
+ @builtins.property
2142
+ def user_data_script(self) -> typing.Optional[builtins.str]:
2143
+ '''UserData script that will override default one (if specified).
2144
+
2145
+ :default: - none
2146
+ '''
2147
+ result = self._values.get("user_data_script")
2148
+ return typing.cast(typing.Optional[builtins.str], result)
2149
+
2150
+ @builtins.property
2151
+ def vuln_scans_repo_name(self) -> typing.Optional[builtins.str]:
2152
+ '''Store vulnerability scans through AWS Inspector in ECR using this repo name (if option is enabled).'''
2153
+ result = self._values.get("vuln_scans_repo_name")
2154
+ return typing.cast(typing.Optional[builtins.str], result)
2155
+
2156
+ @builtins.property
2157
+ def vuln_scans_repo_tags(self) -> typing.Optional[typing.List[builtins.str]]:
2158
+ '''Store vulnerability scans through AWS Inspector in ECR using these image tags (if option is enabled).'''
2159
+ result = self._values.get("vuln_scans_repo_tags")
2160
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
2161
+
2162
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2163
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2164
+
2165
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2166
+ return not (rhs == self)
2167
+
2168
+ def __repr__(self) -> str:
2169
+ return "ImagePipelineProps(%s)" % ", ".join(
2170
+ k + "=" + repr(v) for k, v in self._values.items()
2171
+ )
2172
+
2173
+
2174
+ class StartStateMachineFunction(
2175
+ _aws_cdk_aws_lambda_ceddda9d.Function,
2176
+ metaclass=jsii.JSIIMeta,
2177
+ jsii_type="@jjrawlins/cdk-ami-builder.StartStateMachineFunction",
2178
+ ):
2179
+ '''An AWS Lambda function which executes src/Lambdas/StartStateMachine/StartStateMachine.'''
2180
+
2181
+ def __init__(
2182
+ self,
2183
+ scope: _constructs_77d1e7e8.Construct,
2184
+ id: builtins.str,
2185
+ *,
2186
+ adot_instrumentation: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.AdotInstrumentationConfig, typing.Dict[builtins.str, typing.Any]]] = None,
2187
+ allow_all_outbound: typing.Optional[builtins.bool] = None,
2188
+ allow_public_subnet: typing.Optional[builtins.bool] = None,
2189
+ architecture: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Architecture] = None,
2190
+ code_signing_config: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ICodeSigningConfig] = None,
2191
+ current_version_options: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.VersionOptions, typing.Dict[builtins.str, typing.Any]]] = None,
2192
+ dead_letter_queue: typing.Optional[_aws_cdk_aws_sqs_ceddda9d.IQueue] = None,
2193
+ dead_letter_queue_enabled: typing.Optional[builtins.bool] = None,
2194
+ dead_letter_topic: typing.Optional[_aws_cdk_aws_sns_ceddda9d.ITopic] = None,
2195
+ description: typing.Optional[builtins.str] = None,
2196
+ environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
2197
+ environment_encryption: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
2198
+ ephemeral_storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
2199
+ events: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.IEventSource]] = None,
2200
+ filesystem: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.FileSystem] = None,
2201
+ function_name: typing.Optional[builtins.str] = None,
2202
+ initial_policy: typing.Optional[typing.Sequence[_aws_cdk_aws_iam_ceddda9d.PolicyStatement]] = None,
2203
+ insights_version: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.LambdaInsightsVersion] = None,
2204
+ layers: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.ILayerVersion]] = None,
2205
+ log_retention: typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays] = None,
2206
+ log_retention_retry_options: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.LogRetentionRetryOptions, typing.Dict[builtins.str, typing.Any]]] = None,
2207
+ log_retention_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
2208
+ memory_size: typing.Optional[jsii.Number] = None,
2209
+ params_and_secrets: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ParamsAndSecretsLayerVersion] = None,
2210
+ profiling: typing.Optional[builtins.bool] = None,
2211
+ profiling_group: typing.Optional[_aws_cdk_aws_codeguruprofiler_ceddda9d.IProfilingGroup] = None,
2212
+ reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
2213
+ role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
2214
+ runtime_management_mode: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.RuntimeManagementMode] = None,
2215
+ security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
2216
+ timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
2217
+ tracing: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Tracing] = None,
2218
+ vpc: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc] = None,
2219
+ vpc_subnets: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
2220
+ max_event_age: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
2221
+ on_failure: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination] = None,
2222
+ on_success: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination] = None,
2223
+ retry_attempts: typing.Optional[jsii.Number] = None,
2224
+ ) -> None:
2225
+ '''
2226
+ :param scope: -
2227
+ :param id: -
2228
+ :param adot_instrumentation: Specify the configuration of AWS Distro for OpenTelemetry (ADOT) instrumentation. Default: - No ADOT instrumentation
2229
+ :param allow_all_outbound: Whether to allow the Lambda to send all network traffic. If set to false, you must individually add traffic rules to allow the Lambda to connect to network targets. Default: true
2230
+ :param allow_public_subnet: Lambda Functions in a public subnet can NOT access the internet. Use this property to acknowledge this limitation and still place the function in a public subnet. Default: false
2231
+ :param architecture: The system architectures compatible with this lambda function. Default: Architecture.X86_64
2232
+ :param code_signing_config: Code signing config associated with this function. Default: - Not Sign the Code
2233
+ :param current_version_options: Options for the ``lambda.Version`` resource automatically created by the ``fn.currentVersion`` method. Default: - default options as described in ``VersionOptions``
2234
+ :param dead_letter_queue: The SQS queue to use if DLQ is enabled. If SNS topic is desired, specify ``deadLetterTopic`` property instead. Default: - SQS queue with 14 day retention period if ``deadLetterQueueEnabled`` is ``true``
2235
+ :param dead_letter_queue_enabled: Enabled DLQ. If ``deadLetterQueue`` is undefined, an SQS queue with default options will be defined for your Function. Default: - false unless ``deadLetterQueue`` is set, which implies DLQ is enabled.
2236
+ :param dead_letter_topic: The SNS topic to use as a DLQ. Note that if ``deadLetterQueueEnabled`` is set to ``true``, an SQS queue will be created rather than an SNS topic. Using an SNS topic as a DLQ requires this property to be set explicitly. Default: - no SNS topic
2237
+ :param description: A description of the function. Default: - No description.
2238
+ :param environment: Key-value pairs that Lambda caches and makes available for your Lambda functions. Use environment variables to apply configuration changes, such as test and production environment configurations, without changing your Lambda function source code. Default: - No environment variables.
2239
+ :param environment_encryption: The AWS KMS key that's used to encrypt your function's environment variables. Default: - AWS Lambda creates and uses an AWS managed customer master key (CMK).
2240
+ :param ephemeral_storage_size: The size of the function’s /tmp directory in MiB. Default: 512 MiB
2241
+ :param events: Event sources for this function. You can also add event sources using ``addEventSource``. Default: - No event sources.
2242
+ :param filesystem: The filesystem configuration for the lambda function. Default: - will not mount any filesystem
2243
+ :param function_name: A name for the function. Default: - AWS CloudFormation generates a unique physical ID and uses that ID for the function's name. For more information, see Name Type.
2244
+ :param initial_policy: Initial policy statements to add to the created Lambda Role. You can call ``addToRolePolicy`` to the created lambda to add statements post creation. Default: - No policy statements are added to the created Lambda role.
2245
+ :param insights_version: Specify the version of CloudWatch Lambda insights to use for monitoring. Default: - No Lambda Insights
2246
+ :param layers: A list of layers to add to the function's execution environment. You can configure your Lambda function to pull in additional code during initialization in the form of layers. Layers are packages of libraries or other dependencies that can be used by multiple functions. Default: - No layers.
2247
+ :param log_retention: The number of days log events are kept in CloudWatch Logs. When updating this property, unsetting it doesn't remove the log retention policy. To remove the retention policy, set the value to ``INFINITE``. Default: logs.RetentionDays.INFINITE
2248
+ :param log_retention_retry_options: When log retention is specified, a custom resource attempts to create the CloudWatch log group. These options control the retry policy when interacting with CloudWatch APIs. Default: - Default AWS SDK retry options.
2249
+ :param log_retention_role: The IAM role for the Lambda function associated with the custom resource that sets the retention policy. Default: - A new role is created.
2250
+ :param memory_size: The amount of memory, in MB, that is allocated to your Lambda function. Lambda uses this value to proportionally allocate the amount of CPU power. For more information, see Resource Model in the AWS Lambda Developer Guide. Default: 128
2251
+ :param params_and_secrets: Specify the configuration of Parameters and Secrets Extension. Default: - No Parameters and Secrets Extension
2252
+ :param profiling: Enable profiling. Default: - No profiling.
2253
+ :param profiling_group: Profiling Group. Default: - A new profiling group will be created if ``profiling`` is set.
2254
+ :param reserved_concurrent_executions: The maximum of concurrent executions you want to reserve for the function. Default: - No specific limit - account limit.
2255
+ :param role: Lambda execution role. This is the role that will be assumed by the function upon execution. It controls the permissions that the function will have. The Role must be assumable by the 'lambda.amazonaws.com' service principal. The default Role automatically has permissions granted for Lambda execution. If you provide a Role, you must add the relevant AWS managed policies yourself. The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and "service-role/AWSLambdaVPCAccessExecutionRole". Default: - A unique role will be generated for this lambda function. Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
2256
+ :param runtime_management_mode: Sets the runtime management configuration for a function's version. Default: Auto
2257
+ :param security_groups: The list of security groups to associate with the Lambda's network interfaces. Only used if 'vpc' is supplied. Default: - If the function is placed within a VPC and a security group is not specified, either by this or securityGroup prop, a dedicated security group will be created for this function.
2258
+ :param timeout: The function execution time (in seconds) after which Lambda terminates the function. Because the execution time affects cost, set this value based on the function's expected execution time. Default: Duration.seconds(3)
2259
+ :param tracing: Enable AWS X-Ray Tracing for Lambda Function. Default: Tracing.Disabled
2260
+ :param vpc: VPC network to place Lambda network interfaces. Specify this if the Lambda function needs to access resources in a VPC. This is required when ``vpcSubnets`` is specified. Default: - Function is not placed within a VPC.
2261
+ :param vpc_subnets: Where to place the network interfaces within the VPC. This requires ``vpc`` to be specified in order for interfaces to actually be placed in the subnets. If ``vpc`` is not specify, this will raise an error. Note: Internet access for Lambda Functions requires a NAT Gateway, so picking public subnets is not allowed (unless ``allowPublicSubnet`` is set to ``true``). Default: - the Vpc default strategy if not specified
2262
+ :param max_event_age: The maximum age of a request that Lambda sends to a function for processing. Minimum: 60 seconds Maximum: 6 hours Default: Duration.hours(6)
2263
+ :param on_failure: The destination for failed invocations. Default: - no destination
2264
+ :param on_success: The destination for successful invocations. Default: - no destination
2265
+ :param retry_attempts: The maximum number of times to retry when the function returns an error. Minimum: 0 Maximum: 2 Default: 2
2266
+ '''
2267
+ if __debug__:
2268
+ type_hints = typing.get_type_hints(_typecheckingstub__e2190d2a548e965066a88afc4c9200b01b6ec131b60f821166bf35aedc4ef922)
2269
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
2270
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
2271
+ props = StartStateMachineFunctionProps(
2272
+ adot_instrumentation=adot_instrumentation,
2273
+ allow_all_outbound=allow_all_outbound,
2274
+ allow_public_subnet=allow_public_subnet,
2275
+ architecture=architecture,
2276
+ code_signing_config=code_signing_config,
2277
+ current_version_options=current_version_options,
2278
+ dead_letter_queue=dead_letter_queue,
2279
+ dead_letter_queue_enabled=dead_letter_queue_enabled,
2280
+ dead_letter_topic=dead_letter_topic,
2281
+ description=description,
2282
+ environment=environment,
2283
+ environment_encryption=environment_encryption,
2284
+ ephemeral_storage_size=ephemeral_storage_size,
2285
+ events=events,
2286
+ filesystem=filesystem,
2287
+ function_name=function_name,
2288
+ initial_policy=initial_policy,
2289
+ insights_version=insights_version,
2290
+ layers=layers,
2291
+ log_retention=log_retention,
2292
+ log_retention_retry_options=log_retention_retry_options,
2293
+ log_retention_role=log_retention_role,
2294
+ memory_size=memory_size,
2295
+ params_and_secrets=params_and_secrets,
2296
+ profiling=profiling,
2297
+ profiling_group=profiling_group,
2298
+ reserved_concurrent_executions=reserved_concurrent_executions,
2299
+ role=role,
2300
+ runtime_management_mode=runtime_management_mode,
2301
+ security_groups=security_groups,
2302
+ timeout=timeout,
2303
+ tracing=tracing,
2304
+ vpc=vpc,
2305
+ vpc_subnets=vpc_subnets,
2306
+ max_event_age=max_event_age,
2307
+ on_failure=on_failure,
2308
+ on_success=on_success,
2309
+ retry_attempts=retry_attempts,
2310
+ )
2311
+
2312
+ jsii.create(self.__class__, self, [scope, id, props])
2313
+
2314
+
2315
+ @jsii.data_type(
2316
+ jsii_type="@jjrawlins/cdk-ami-builder.StartStateMachineFunctionProps",
2317
+ jsii_struct_bases=[_aws_cdk_aws_lambda_ceddda9d.FunctionOptions],
2318
+ name_mapping={
2319
+ "max_event_age": "maxEventAge",
2320
+ "on_failure": "onFailure",
2321
+ "on_success": "onSuccess",
2322
+ "retry_attempts": "retryAttempts",
2323
+ "adot_instrumentation": "adotInstrumentation",
2324
+ "allow_all_outbound": "allowAllOutbound",
2325
+ "allow_public_subnet": "allowPublicSubnet",
2326
+ "architecture": "architecture",
2327
+ "code_signing_config": "codeSigningConfig",
2328
+ "current_version_options": "currentVersionOptions",
2329
+ "dead_letter_queue": "deadLetterQueue",
2330
+ "dead_letter_queue_enabled": "deadLetterQueueEnabled",
2331
+ "dead_letter_topic": "deadLetterTopic",
2332
+ "description": "description",
2333
+ "environment": "environment",
2334
+ "environment_encryption": "environmentEncryption",
2335
+ "ephemeral_storage_size": "ephemeralStorageSize",
2336
+ "events": "events",
2337
+ "filesystem": "filesystem",
2338
+ "function_name": "functionName",
2339
+ "initial_policy": "initialPolicy",
2340
+ "insights_version": "insightsVersion",
2341
+ "layers": "layers",
2342
+ "log_retention": "logRetention",
2343
+ "log_retention_retry_options": "logRetentionRetryOptions",
2344
+ "log_retention_role": "logRetentionRole",
2345
+ "memory_size": "memorySize",
2346
+ "params_and_secrets": "paramsAndSecrets",
2347
+ "profiling": "profiling",
2348
+ "profiling_group": "profilingGroup",
2349
+ "reserved_concurrent_executions": "reservedConcurrentExecutions",
2350
+ "role": "role",
2351
+ "runtime_management_mode": "runtimeManagementMode",
2352
+ "security_groups": "securityGroups",
2353
+ "timeout": "timeout",
2354
+ "tracing": "tracing",
2355
+ "vpc": "vpc",
2356
+ "vpc_subnets": "vpcSubnets",
2357
+ },
2358
+ )
2359
+ class StartStateMachineFunctionProps(_aws_cdk_aws_lambda_ceddda9d.FunctionOptions):
2360
+ def __init__(
2361
+ self,
2362
+ *,
2363
+ max_event_age: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
2364
+ on_failure: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination] = None,
2365
+ on_success: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination] = None,
2366
+ retry_attempts: typing.Optional[jsii.Number] = None,
2367
+ adot_instrumentation: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.AdotInstrumentationConfig, typing.Dict[builtins.str, typing.Any]]] = None,
2368
+ allow_all_outbound: typing.Optional[builtins.bool] = None,
2369
+ allow_public_subnet: typing.Optional[builtins.bool] = None,
2370
+ architecture: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Architecture] = None,
2371
+ code_signing_config: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ICodeSigningConfig] = None,
2372
+ current_version_options: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.VersionOptions, typing.Dict[builtins.str, typing.Any]]] = None,
2373
+ dead_letter_queue: typing.Optional[_aws_cdk_aws_sqs_ceddda9d.IQueue] = None,
2374
+ dead_letter_queue_enabled: typing.Optional[builtins.bool] = None,
2375
+ dead_letter_topic: typing.Optional[_aws_cdk_aws_sns_ceddda9d.ITopic] = None,
2376
+ description: typing.Optional[builtins.str] = None,
2377
+ environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
2378
+ environment_encryption: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
2379
+ ephemeral_storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
2380
+ events: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.IEventSource]] = None,
2381
+ filesystem: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.FileSystem] = None,
2382
+ function_name: typing.Optional[builtins.str] = None,
2383
+ initial_policy: typing.Optional[typing.Sequence[_aws_cdk_aws_iam_ceddda9d.PolicyStatement]] = None,
2384
+ insights_version: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.LambdaInsightsVersion] = None,
2385
+ layers: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.ILayerVersion]] = None,
2386
+ log_retention: typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays] = None,
2387
+ log_retention_retry_options: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.LogRetentionRetryOptions, typing.Dict[builtins.str, typing.Any]]] = None,
2388
+ log_retention_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
2389
+ memory_size: typing.Optional[jsii.Number] = None,
2390
+ params_and_secrets: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ParamsAndSecretsLayerVersion] = None,
2391
+ profiling: typing.Optional[builtins.bool] = None,
2392
+ profiling_group: typing.Optional[_aws_cdk_aws_codeguruprofiler_ceddda9d.IProfilingGroup] = None,
2393
+ reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
2394
+ role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
2395
+ runtime_management_mode: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.RuntimeManagementMode] = None,
2396
+ security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
2397
+ timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
2398
+ tracing: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Tracing] = None,
2399
+ vpc: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc] = None,
2400
+ vpc_subnets: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
2401
+ ) -> None:
2402
+ '''Props for StartStateMachineFunction.
2403
+
2404
+ :param max_event_age: The maximum age of a request that Lambda sends to a function for processing. Minimum: 60 seconds Maximum: 6 hours Default: Duration.hours(6)
2405
+ :param on_failure: The destination for failed invocations. Default: - no destination
2406
+ :param on_success: The destination for successful invocations. Default: - no destination
2407
+ :param retry_attempts: The maximum number of times to retry when the function returns an error. Minimum: 0 Maximum: 2 Default: 2
2408
+ :param adot_instrumentation: Specify the configuration of AWS Distro for OpenTelemetry (ADOT) instrumentation. Default: - No ADOT instrumentation
2409
+ :param allow_all_outbound: Whether to allow the Lambda to send all network traffic. If set to false, you must individually add traffic rules to allow the Lambda to connect to network targets. Default: true
2410
+ :param allow_public_subnet: Lambda Functions in a public subnet can NOT access the internet. Use this property to acknowledge this limitation and still place the function in a public subnet. Default: false
2411
+ :param architecture: The system architectures compatible with this lambda function. Default: Architecture.X86_64
2412
+ :param code_signing_config: Code signing config associated with this function. Default: - Not Sign the Code
2413
+ :param current_version_options: Options for the ``lambda.Version`` resource automatically created by the ``fn.currentVersion`` method. Default: - default options as described in ``VersionOptions``
2414
+ :param dead_letter_queue: The SQS queue to use if DLQ is enabled. If SNS topic is desired, specify ``deadLetterTopic`` property instead. Default: - SQS queue with 14 day retention period if ``deadLetterQueueEnabled`` is ``true``
2415
+ :param dead_letter_queue_enabled: Enabled DLQ. If ``deadLetterQueue`` is undefined, an SQS queue with default options will be defined for your Function. Default: - false unless ``deadLetterQueue`` is set, which implies DLQ is enabled.
2416
+ :param dead_letter_topic: The SNS topic to use as a DLQ. Note that if ``deadLetterQueueEnabled`` is set to ``true``, an SQS queue will be created rather than an SNS topic. Using an SNS topic as a DLQ requires this property to be set explicitly. Default: - no SNS topic
2417
+ :param description: A description of the function. Default: - No description.
2418
+ :param environment: Key-value pairs that Lambda caches and makes available for your Lambda functions. Use environment variables to apply configuration changes, such as test and production environment configurations, without changing your Lambda function source code. Default: - No environment variables.
2419
+ :param environment_encryption: The AWS KMS key that's used to encrypt your function's environment variables. Default: - AWS Lambda creates and uses an AWS managed customer master key (CMK).
2420
+ :param ephemeral_storage_size: The size of the function’s /tmp directory in MiB. Default: 512 MiB
2421
+ :param events: Event sources for this function. You can also add event sources using ``addEventSource``. Default: - No event sources.
2422
+ :param filesystem: The filesystem configuration for the lambda function. Default: - will not mount any filesystem
2423
+ :param function_name: A name for the function. Default: - AWS CloudFormation generates a unique physical ID and uses that ID for the function's name. For more information, see Name Type.
2424
+ :param initial_policy: Initial policy statements to add to the created Lambda Role. You can call ``addToRolePolicy`` to the created lambda to add statements post creation. Default: - No policy statements are added to the created Lambda role.
2425
+ :param insights_version: Specify the version of CloudWatch Lambda insights to use for monitoring. Default: - No Lambda Insights
2426
+ :param layers: A list of layers to add to the function's execution environment. You can configure your Lambda function to pull in additional code during initialization in the form of layers. Layers are packages of libraries or other dependencies that can be used by multiple functions. Default: - No layers.
2427
+ :param log_retention: The number of days log events are kept in CloudWatch Logs. When updating this property, unsetting it doesn't remove the log retention policy. To remove the retention policy, set the value to ``INFINITE``. Default: logs.RetentionDays.INFINITE
2428
+ :param log_retention_retry_options: When log retention is specified, a custom resource attempts to create the CloudWatch log group. These options control the retry policy when interacting with CloudWatch APIs. Default: - Default AWS SDK retry options.
2429
+ :param log_retention_role: The IAM role for the Lambda function associated with the custom resource that sets the retention policy. Default: - A new role is created.
2430
+ :param memory_size: The amount of memory, in MB, that is allocated to your Lambda function. Lambda uses this value to proportionally allocate the amount of CPU power. For more information, see Resource Model in the AWS Lambda Developer Guide. Default: 128
2431
+ :param params_and_secrets: Specify the configuration of Parameters and Secrets Extension. Default: - No Parameters and Secrets Extension
2432
+ :param profiling: Enable profiling. Default: - No profiling.
2433
+ :param profiling_group: Profiling Group. Default: - A new profiling group will be created if ``profiling`` is set.
2434
+ :param reserved_concurrent_executions: The maximum of concurrent executions you want to reserve for the function. Default: - No specific limit - account limit.
2435
+ :param role: Lambda execution role. This is the role that will be assumed by the function upon execution. It controls the permissions that the function will have. The Role must be assumable by the 'lambda.amazonaws.com' service principal. The default Role automatically has permissions granted for Lambda execution. If you provide a Role, you must add the relevant AWS managed policies yourself. The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and "service-role/AWSLambdaVPCAccessExecutionRole". Default: - A unique role will be generated for this lambda function. Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
2436
+ :param runtime_management_mode: Sets the runtime management configuration for a function's version. Default: Auto
2437
+ :param security_groups: The list of security groups to associate with the Lambda's network interfaces. Only used if 'vpc' is supplied. Default: - If the function is placed within a VPC and a security group is not specified, either by this or securityGroup prop, a dedicated security group will be created for this function.
2438
+ :param timeout: The function execution time (in seconds) after which Lambda terminates the function. Because the execution time affects cost, set this value based on the function's expected execution time. Default: Duration.seconds(3)
2439
+ :param tracing: Enable AWS X-Ray Tracing for Lambda Function. Default: Tracing.Disabled
2440
+ :param vpc: VPC network to place Lambda network interfaces. Specify this if the Lambda function needs to access resources in a VPC. This is required when ``vpcSubnets`` is specified. Default: - Function is not placed within a VPC.
2441
+ :param vpc_subnets: Where to place the network interfaces within the VPC. This requires ``vpc`` to be specified in order for interfaces to actually be placed in the subnets. If ``vpc`` is not specify, this will raise an error. Note: Internet access for Lambda Functions requires a NAT Gateway, so picking public subnets is not allowed (unless ``allowPublicSubnet`` is set to ``true``). Default: - the Vpc default strategy if not specified
2442
+ '''
2443
+ if isinstance(adot_instrumentation, dict):
2444
+ adot_instrumentation = _aws_cdk_aws_lambda_ceddda9d.AdotInstrumentationConfig(**adot_instrumentation)
2445
+ if isinstance(current_version_options, dict):
2446
+ current_version_options = _aws_cdk_aws_lambda_ceddda9d.VersionOptions(**current_version_options)
2447
+ if isinstance(log_retention_retry_options, dict):
2448
+ log_retention_retry_options = _aws_cdk_aws_lambda_ceddda9d.LogRetentionRetryOptions(**log_retention_retry_options)
2449
+ if isinstance(vpc_subnets, dict):
2450
+ vpc_subnets = _aws_cdk_aws_ec2_ceddda9d.SubnetSelection(**vpc_subnets)
2451
+ if __debug__:
2452
+ type_hints = typing.get_type_hints(_typecheckingstub__eb8aced8ffa672fc77ae37739036b372b4660892fca88a7d548de7d9809b88ab)
2453
+ check_type(argname="argument max_event_age", value=max_event_age, expected_type=type_hints["max_event_age"])
2454
+ check_type(argname="argument on_failure", value=on_failure, expected_type=type_hints["on_failure"])
2455
+ check_type(argname="argument on_success", value=on_success, expected_type=type_hints["on_success"])
2456
+ check_type(argname="argument retry_attempts", value=retry_attempts, expected_type=type_hints["retry_attempts"])
2457
+ check_type(argname="argument adot_instrumentation", value=adot_instrumentation, expected_type=type_hints["adot_instrumentation"])
2458
+ check_type(argname="argument allow_all_outbound", value=allow_all_outbound, expected_type=type_hints["allow_all_outbound"])
2459
+ check_type(argname="argument allow_public_subnet", value=allow_public_subnet, expected_type=type_hints["allow_public_subnet"])
2460
+ check_type(argname="argument architecture", value=architecture, expected_type=type_hints["architecture"])
2461
+ check_type(argname="argument code_signing_config", value=code_signing_config, expected_type=type_hints["code_signing_config"])
2462
+ check_type(argname="argument current_version_options", value=current_version_options, expected_type=type_hints["current_version_options"])
2463
+ check_type(argname="argument dead_letter_queue", value=dead_letter_queue, expected_type=type_hints["dead_letter_queue"])
2464
+ check_type(argname="argument dead_letter_queue_enabled", value=dead_letter_queue_enabled, expected_type=type_hints["dead_letter_queue_enabled"])
2465
+ check_type(argname="argument dead_letter_topic", value=dead_letter_topic, expected_type=type_hints["dead_letter_topic"])
2466
+ check_type(argname="argument description", value=description, expected_type=type_hints["description"])
2467
+ check_type(argname="argument environment", value=environment, expected_type=type_hints["environment"])
2468
+ check_type(argname="argument environment_encryption", value=environment_encryption, expected_type=type_hints["environment_encryption"])
2469
+ check_type(argname="argument ephemeral_storage_size", value=ephemeral_storage_size, expected_type=type_hints["ephemeral_storage_size"])
2470
+ check_type(argname="argument events", value=events, expected_type=type_hints["events"])
2471
+ check_type(argname="argument filesystem", value=filesystem, expected_type=type_hints["filesystem"])
2472
+ check_type(argname="argument function_name", value=function_name, expected_type=type_hints["function_name"])
2473
+ check_type(argname="argument initial_policy", value=initial_policy, expected_type=type_hints["initial_policy"])
2474
+ check_type(argname="argument insights_version", value=insights_version, expected_type=type_hints["insights_version"])
2475
+ check_type(argname="argument layers", value=layers, expected_type=type_hints["layers"])
2476
+ check_type(argname="argument log_retention", value=log_retention, expected_type=type_hints["log_retention"])
2477
+ check_type(argname="argument log_retention_retry_options", value=log_retention_retry_options, expected_type=type_hints["log_retention_retry_options"])
2478
+ check_type(argname="argument log_retention_role", value=log_retention_role, expected_type=type_hints["log_retention_role"])
2479
+ check_type(argname="argument memory_size", value=memory_size, expected_type=type_hints["memory_size"])
2480
+ check_type(argname="argument params_and_secrets", value=params_and_secrets, expected_type=type_hints["params_and_secrets"])
2481
+ check_type(argname="argument profiling", value=profiling, expected_type=type_hints["profiling"])
2482
+ check_type(argname="argument profiling_group", value=profiling_group, expected_type=type_hints["profiling_group"])
2483
+ check_type(argname="argument reserved_concurrent_executions", value=reserved_concurrent_executions, expected_type=type_hints["reserved_concurrent_executions"])
2484
+ check_type(argname="argument role", value=role, expected_type=type_hints["role"])
2485
+ check_type(argname="argument runtime_management_mode", value=runtime_management_mode, expected_type=type_hints["runtime_management_mode"])
2486
+ check_type(argname="argument security_groups", value=security_groups, expected_type=type_hints["security_groups"])
2487
+ check_type(argname="argument timeout", value=timeout, expected_type=type_hints["timeout"])
2488
+ check_type(argname="argument tracing", value=tracing, expected_type=type_hints["tracing"])
2489
+ check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
2490
+ check_type(argname="argument vpc_subnets", value=vpc_subnets, expected_type=type_hints["vpc_subnets"])
2491
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
2492
+ if max_event_age is not None:
2493
+ self._values["max_event_age"] = max_event_age
2494
+ if on_failure is not None:
2495
+ self._values["on_failure"] = on_failure
2496
+ if on_success is not None:
2497
+ self._values["on_success"] = on_success
2498
+ if retry_attempts is not None:
2499
+ self._values["retry_attempts"] = retry_attempts
2500
+ if adot_instrumentation is not None:
2501
+ self._values["adot_instrumentation"] = adot_instrumentation
2502
+ if allow_all_outbound is not None:
2503
+ self._values["allow_all_outbound"] = allow_all_outbound
2504
+ if allow_public_subnet is not None:
2505
+ self._values["allow_public_subnet"] = allow_public_subnet
2506
+ if architecture is not None:
2507
+ self._values["architecture"] = architecture
2508
+ if code_signing_config is not None:
2509
+ self._values["code_signing_config"] = code_signing_config
2510
+ if current_version_options is not None:
2511
+ self._values["current_version_options"] = current_version_options
2512
+ if dead_letter_queue is not None:
2513
+ self._values["dead_letter_queue"] = dead_letter_queue
2514
+ if dead_letter_queue_enabled is not None:
2515
+ self._values["dead_letter_queue_enabled"] = dead_letter_queue_enabled
2516
+ if dead_letter_topic is not None:
2517
+ self._values["dead_letter_topic"] = dead_letter_topic
2518
+ if description is not None:
2519
+ self._values["description"] = description
2520
+ if environment is not None:
2521
+ self._values["environment"] = environment
2522
+ if environment_encryption is not None:
2523
+ self._values["environment_encryption"] = environment_encryption
2524
+ if ephemeral_storage_size is not None:
2525
+ self._values["ephemeral_storage_size"] = ephemeral_storage_size
2526
+ if events is not None:
2527
+ self._values["events"] = events
2528
+ if filesystem is not None:
2529
+ self._values["filesystem"] = filesystem
2530
+ if function_name is not None:
2531
+ self._values["function_name"] = function_name
2532
+ if initial_policy is not None:
2533
+ self._values["initial_policy"] = initial_policy
2534
+ if insights_version is not None:
2535
+ self._values["insights_version"] = insights_version
2536
+ if layers is not None:
2537
+ self._values["layers"] = layers
2538
+ if log_retention is not None:
2539
+ self._values["log_retention"] = log_retention
2540
+ if log_retention_retry_options is not None:
2541
+ self._values["log_retention_retry_options"] = log_retention_retry_options
2542
+ if log_retention_role is not None:
2543
+ self._values["log_retention_role"] = log_retention_role
2544
+ if memory_size is not None:
2545
+ self._values["memory_size"] = memory_size
2546
+ if params_and_secrets is not None:
2547
+ self._values["params_and_secrets"] = params_and_secrets
2548
+ if profiling is not None:
2549
+ self._values["profiling"] = profiling
2550
+ if profiling_group is not None:
2551
+ self._values["profiling_group"] = profiling_group
2552
+ if reserved_concurrent_executions is not None:
2553
+ self._values["reserved_concurrent_executions"] = reserved_concurrent_executions
2554
+ if role is not None:
2555
+ self._values["role"] = role
2556
+ if runtime_management_mode is not None:
2557
+ self._values["runtime_management_mode"] = runtime_management_mode
2558
+ if security_groups is not None:
2559
+ self._values["security_groups"] = security_groups
2560
+ if timeout is not None:
2561
+ self._values["timeout"] = timeout
2562
+ if tracing is not None:
2563
+ self._values["tracing"] = tracing
2564
+ if vpc is not None:
2565
+ self._values["vpc"] = vpc
2566
+ if vpc_subnets is not None:
2567
+ self._values["vpc_subnets"] = vpc_subnets
2568
+
2569
+ @builtins.property
2570
+ def max_event_age(self) -> typing.Optional[_aws_cdk_ceddda9d.Duration]:
2571
+ '''The maximum age of a request that Lambda sends to a function for processing.
2572
+
2573
+ Minimum: 60 seconds
2574
+ Maximum: 6 hours
2575
+
2576
+ :default: Duration.hours(6)
2577
+ '''
2578
+ result = self._values.get("max_event_age")
2579
+ return typing.cast(typing.Optional[_aws_cdk_ceddda9d.Duration], result)
2580
+
2581
+ @builtins.property
2582
+ def on_failure(self) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination]:
2583
+ '''The destination for failed invocations.
2584
+
2585
+ :default: - no destination
2586
+ '''
2587
+ result = self._values.get("on_failure")
2588
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination], result)
2589
+
2590
+ @builtins.property
2591
+ def on_success(self) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination]:
2592
+ '''The destination for successful invocations.
2593
+
2594
+ :default: - no destination
2595
+ '''
2596
+ result = self._values.get("on_success")
2597
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination], result)
2598
+
2599
+ @builtins.property
2600
+ def retry_attempts(self) -> typing.Optional[jsii.Number]:
2601
+ '''The maximum number of times to retry when the function returns an error.
2602
+
2603
+ Minimum: 0
2604
+ Maximum: 2
2605
+
2606
+ :default: 2
2607
+ '''
2608
+ result = self._values.get("retry_attempts")
2609
+ return typing.cast(typing.Optional[jsii.Number], result)
2610
+
2611
+ @builtins.property
2612
+ def adot_instrumentation(
2613
+ self,
2614
+ ) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.AdotInstrumentationConfig]:
2615
+ '''Specify the configuration of AWS Distro for OpenTelemetry (ADOT) instrumentation.
2616
+
2617
+ :default: - No ADOT instrumentation
2618
+
2619
+ :see: https://aws-otel.github.io/docs/getting-started/lambda
2620
+ '''
2621
+ result = self._values.get("adot_instrumentation")
2622
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.AdotInstrumentationConfig], result)
2623
+
2624
+ @builtins.property
2625
+ def allow_all_outbound(self) -> typing.Optional[builtins.bool]:
2626
+ '''Whether to allow the Lambda to send all network traffic.
2627
+
2628
+ If set to false, you must individually add traffic rules to allow the
2629
+ Lambda to connect to network targets.
2630
+
2631
+ :default: true
2632
+ '''
2633
+ result = self._values.get("allow_all_outbound")
2634
+ return typing.cast(typing.Optional[builtins.bool], result)
2635
+
2636
+ @builtins.property
2637
+ def allow_public_subnet(self) -> typing.Optional[builtins.bool]:
2638
+ '''Lambda Functions in a public subnet can NOT access the internet.
2639
+
2640
+ Use this property to acknowledge this limitation and still place the function in a public subnet.
2641
+
2642
+ :default: false
2643
+
2644
+ :see: https://stackoverflow.com/questions/52992085/why-cant-an-aws-lambda-function-inside-a-public-subnet-in-a-vpc-connect-to-the/52994841#52994841
2645
+ '''
2646
+ result = self._values.get("allow_public_subnet")
2647
+ return typing.cast(typing.Optional[builtins.bool], result)
2648
+
2649
+ @builtins.property
2650
+ def architecture(
2651
+ self,
2652
+ ) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Architecture]:
2653
+ '''The system architectures compatible with this lambda function.
2654
+
2655
+ :default: Architecture.X86_64
2656
+ '''
2657
+ result = self._values.get("architecture")
2658
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Architecture], result)
2659
+
2660
+ @builtins.property
2661
+ def code_signing_config(
2662
+ self,
2663
+ ) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ICodeSigningConfig]:
2664
+ '''Code signing config associated with this function.
2665
+
2666
+ :default: - Not Sign the Code
2667
+ '''
2668
+ result = self._values.get("code_signing_config")
2669
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ICodeSigningConfig], result)
2670
+
2671
+ @builtins.property
2672
+ def current_version_options(
2673
+ self,
2674
+ ) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.VersionOptions]:
2675
+ '''Options for the ``lambda.Version`` resource automatically created by the ``fn.currentVersion`` method.
2676
+
2677
+ :default: - default options as described in ``VersionOptions``
2678
+ '''
2679
+ result = self._values.get("current_version_options")
2680
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.VersionOptions], result)
2681
+
2682
+ @builtins.property
2683
+ def dead_letter_queue(self) -> typing.Optional[_aws_cdk_aws_sqs_ceddda9d.IQueue]:
2684
+ '''The SQS queue to use if DLQ is enabled.
2685
+
2686
+ If SNS topic is desired, specify ``deadLetterTopic`` property instead.
2687
+
2688
+ :default: - SQS queue with 14 day retention period if ``deadLetterQueueEnabled`` is ``true``
2689
+ '''
2690
+ result = self._values.get("dead_letter_queue")
2691
+ return typing.cast(typing.Optional[_aws_cdk_aws_sqs_ceddda9d.IQueue], result)
2692
+
2693
+ @builtins.property
2694
+ def dead_letter_queue_enabled(self) -> typing.Optional[builtins.bool]:
2695
+ '''Enabled DLQ.
2696
+
2697
+ If ``deadLetterQueue`` is undefined,
2698
+ an SQS queue with default options will be defined for your Function.
2699
+
2700
+ :default: - false unless ``deadLetterQueue`` is set, which implies DLQ is enabled.
2701
+ '''
2702
+ result = self._values.get("dead_letter_queue_enabled")
2703
+ return typing.cast(typing.Optional[builtins.bool], result)
2704
+
2705
+ @builtins.property
2706
+ def dead_letter_topic(self) -> typing.Optional[_aws_cdk_aws_sns_ceddda9d.ITopic]:
2707
+ '''The SNS topic to use as a DLQ.
2708
+
2709
+ Note that if ``deadLetterQueueEnabled`` is set to ``true``, an SQS queue will be created
2710
+ rather than an SNS topic. Using an SNS topic as a DLQ requires this property to be set explicitly.
2711
+
2712
+ :default: - no SNS topic
2713
+ '''
2714
+ result = self._values.get("dead_letter_topic")
2715
+ return typing.cast(typing.Optional[_aws_cdk_aws_sns_ceddda9d.ITopic], result)
2716
+
2717
+ @builtins.property
2718
+ def description(self) -> typing.Optional[builtins.str]:
2719
+ '''A description of the function.
2720
+
2721
+ :default: - No description.
2722
+ '''
2723
+ result = self._values.get("description")
2724
+ return typing.cast(typing.Optional[builtins.str], result)
2725
+
2726
+ @builtins.property
2727
+ def environment(
2728
+ self,
2729
+ ) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
2730
+ '''Key-value pairs that Lambda caches and makes available for your Lambda functions.
2731
+
2732
+ Use environment variables to apply configuration changes, such
2733
+ as test and production environment configurations, without changing your
2734
+ Lambda function source code.
2735
+
2736
+ :default: - No environment variables.
2737
+ '''
2738
+ result = self._values.get("environment")
2739
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
2740
+
2741
+ @builtins.property
2742
+ def environment_encryption(self) -> typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey]:
2743
+ '''The AWS KMS key that's used to encrypt your function's environment variables.
2744
+
2745
+ :default: - AWS Lambda creates and uses an AWS managed customer master key (CMK).
2746
+ '''
2747
+ result = self._values.get("environment_encryption")
2748
+ return typing.cast(typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey], result)
2749
+
2750
+ @builtins.property
2751
+ def ephemeral_storage_size(self) -> typing.Optional[_aws_cdk_ceddda9d.Size]:
2752
+ '''The size of the function’s /tmp directory in MiB.
2753
+
2754
+ :default: 512 MiB
2755
+ '''
2756
+ result = self._values.get("ephemeral_storage_size")
2757
+ return typing.cast(typing.Optional[_aws_cdk_ceddda9d.Size], result)
2758
+
2759
+ @builtins.property
2760
+ def events(
2761
+ self,
2762
+ ) -> typing.Optional[typing.List[_aws_cdk_aws_lambda_ceddda9d.IEventSource]]:
2763
+ '''Event sources for this function.
2764
+
2765
+ You can also add event sources using ``addEventSource``.
2766
+
2767
+ :default: - No event sources.
2768
+ '''
2769
+ result = self._values.get("events")
2770
+ return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_lambda_ceddda9d.IEventSource]], result)
2771
+
2772
+ @builtins.property
2773
+ def filesystem(self) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.FileSystem]:
2774
+ '''The filesystem configuration for the lambda function.
2775
+
2776
+ :default: - will not mount any filesystem
2777
+ '''
2778
+ result = self._values.get("filesystem")
2779
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.FileSystem], result)
2780
+
2781
+ @builtins.property
2782
+ def function_name(self) -> typing.Optional[builtins.str]:
2783
+ '''A name for the function.
2784
+
2785
+ :default:
2786
+
2787
+ - AWS CloudFormation generates a unique physical ID and uses that
2788
+ ID for the function's name. For more information, see Name Type.
2789
+ '''
2790
+ result = self._values.get("function_name")
2791
+ return typing.cast(typing.Optional[builtins.str], result)
2792
+
2793
+ @builtins.property
2794
+ def initial_policy(
2795
+ self,
2796
+ ) -> typing.Optional[typing.List[_aws_cdk_aws_iam_ceddda9d.PolicyStatement]]:
2797
+ '''Initial policy statements to add to the created Lambda Role.
2798
+
2799
+ You can call ``addToRolePolicy`` to the created lambda to add statements post creation.
2800
+
2801
+ :default: - No policy statements are added to the created Lambda role.
2802
+ '''
2803
+ result = self._values.get("initial_policy")
2804
+ return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_iam_ceddda9d.PolicyStatement]], result)
2805
+
2806
+ @builtins.property
2807
+ def insights_version(
2808
+ self,
2809
+ ) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.LambdaInsightsVersion]:
2810
+ '''Specify the version of CloudWatch Lambda insights to use for monitoring.
2811
+
2812
+ :default: - No Lambda Insights
2813
+
2814
+ :see: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Lambda-Insights-Getting-Started-docker.html
2815
+ '''
2816
+ result = self._values.get("insights_version")
2817
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.LambdaInsightsVersion], result)
2818
+
2819
+ @builtins.property
2820
+ def layers(
2821
+ self,
2822
+ ) -> typing.Optional[typing.List[_aws_cdk_aws_lambda_ceddda9d.ILayerVersion]]:
2823
+ '''A list of layers to add to the function's execution environment.
2824
+
2825
+ You can configure your Lambda function to pull in
2826
+ additional code during initialization in the form of layers. Layers are packages of libraries or other dependencies
2827
+ that can be used by multiple functions.
2828
+
2829
+ :default: - No layers.
2830
+ '''
2831
+ result = self._values.get("layers")
2832
+ return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_lambda_ceddda9d.ILayerVersion]], result)
2833
+
2834
+ @builtins.property
2835
+ def log_retention(
2836
+ self,
2837
+ ) -> typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays]:
2838
+ '''The number of days log events are kept in CloudWatch Logs.
2839
+
2840
+ When updating
2841
+ this property, unsetting it doesn't remove the log retention policy. To
2842
+ remove the retention policy, set the value to ``INFINITE``.
2843
+
2844
+ :default: logs.RetentionDays.INFINITE
2845
+ '''
2846
+ result = self._values.get("log_retention")
2847
+ return typing.cast(typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays], result)
2848
+
2849
+ @builtins.property
2850
+ def log_retention_retry_options(
2851
+ self,
2852
+ ) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.LogRetentionRetryOptions]:
2853
+ '''When log retention is specified, a custom resource attempts to create the CloudWatch log group.
2854
+
2855
+ These options control the retry policy when interacting with CloudWatch APIs.
2856
+
2857
+ :default: - Default AWS SDK retry options.
2858
+ '''
2859
+ result = self._values.get("log_retention_retry_options")
2860
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.LogRetentionRetryOptions], result)
2861
+
2862
+ @builtins.property
2863
+ def log_retention_role(self) -> typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole]:
2864
+ '''The IAM role for the Lambda function associated with the custom resource that sets the retention policy.
2865
+
2866
+ :default: - A new role is created.
2867
+ '''
2868
+ result = self._values.get("log_retention_role")
2869
+ return typing.cast(typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole], result)
2870
+
2871
+ @builtins.property
2872
+ def memory_size(self) -> typing.Optional[jsii.Number]:
2873
+ '''The amount of memory, in MB, that is allocated to your Lambda function.
2874
+
2875
+ Lambda uses this value to proportionally allocate the amount of CPU
2876
+ power. For more information, see Resource Model in the AWS Lambda
2877
+ Developer Guide.
2878
+
2879
+ :default: 128
2880
+ '''
2881
+ result = self._values.get("memory_size")
2882
+ return typing.cast(typing.Optional[jsii.Number], result)
2883
+
2884
+ @builtins.property
2885
+ def params_and_secrets(
2886
+ self,
2887
+ ) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ParamsAndSecretsLayerVersion]:
2888
+ '''Specify the configuration of Parameters and Secrets Extension.
2889
+
2890
+ :default: - No Parameters and Secrets Extension
2891
+
2892
+ :see: https://docs.aws.amazon.com/systems-manager/latest/userguide/ps-integration-lambda-extensions.html
2893
+ '''
2894
+ result = self._values.get("params_and_secrets")
2895
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ParamsAndSecretsLayerVersion], result)
2896
+
2897
+ @builtins.property
2898
+ def profiling(self) -> typing.Optional[builtins.bool]:
2899
+ '''Enable profiling.
2900
+
2901
+ :default: - No profiling.
2902
+
2903
+ :see: https://docs.aws.amazon.com/codeguru/latest/profiler-ug/setting-up-lambda.html
2904
+ '''
2905
+ result = self._values.get("profiling")
2906
+ return typing.cast(typing.Optional[builtins.bool], result)
2907
+
2908
+ @builtins.property
2909
+ def profiling_group(
2910
+ self,
2911
+ ) -> typing.Optional[_aws_cdk_aws_codeguruprofiler_ceddda9d.IProfilingGroup]:
2912
+ '''Profiling Group.
2913
+
2914
+ :default: - A new profiling group will be created if ``profiling`` is set.
2915
+
2916
+ :see: https://docs.aws.amazon.com/codeguru/latest/profiler-ug/setting-up-lambda.html
2917
+ '''
2918
+ result = self._values.get("profiling_group")
2919
+ return typing.cast(typing.Optional[_aws_cdk_aws_codeguruprofiler_ceddda9d.IProfilingGroup], result)
2920
+
2921
+ @builtins.property
2922
+ def reserved_concurrent_executions(self) -> typing.Optional[jsii.Number]:
2923
+ '''The maximum of concurrent executions you want to reserve for the function.
2924
+
2925
+ :default: - No specific limit - account limit.
2926
+
2927
+ :see: https://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html
2928
+ '''
2929
+ result = self._values.get("reserved_concurrent_executions")
2930
+ return typing.cast(typing.Optional[jsii.Number], result)
2931
+
2932
+ @builtins.property
2933
+ def role(self) -> typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole]:
2934
+ '''Lambda execution role.
2935
+
2936
+ This is the role that will be assumed by the function upon execution.
2937
+ It controls the permissions that the function will have. The Role must
2938
+ be assumable by the 'lambda.amazonaws.com' service principal.
2939
+
2940
+ The default Role automatically has permissions granted for Lambda execution. If you
2941
+ provide a Role, you must add the relevant AWS managed policies yourself.
2942
+
2943
+ The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and
2944
+ "service-role/AWSLambdaVPCAccessExecutionRole".
2945
+
2946
+ :default:
2947
+
2948
+ - A unique role will be generated for this lambda function.
2949
+ Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
2950
+ '''
2951
+ result = self._values.get("role")
2952
+ return typing.cast(typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole], result)
2953
+
2954
+ @builtins.property
2955
+ def runtime_management_mode(
2956
+ self,
2957
+ ) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.RuntimeManagementMode]:
2958
+ '''Sets the runtime management configuration for a function's version.
2959
+
2960
+ :default: Auto
2961
+ '''
2962
+ result = self._values.get("runtime_management_mode")
2963
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.RuntimeManagementMode], result)
2964
+
2965
+ @builtins.property
2966
+ def security_groups(
2967
+ self,
2968
+ ) -> typing.Optional[typing.List[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]]:
2969
+ '''The list of security groups to associate with the Lambda's network interfaces.
2970
+
2971
+ Only used if 'vpc' is supplied.
2972
+
2973
+ :default:
2974
+
2975
+ - If the function is placed within a VPC and a security group is
2976
+ not specified, either by this or securityGroup prop, a dedicated security
2977
+ group will be created for this function.
2978
+ '''
2979
+ result = self._values.get("security_groups")
2980
+ return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]], result)
2981
+
2982
+ @builtins.property
2983
+ def timeout(self) -> typing.Optional[_aws_cdk_ceddda9d.Duration]:
2984
+ '''The function execution time (in seconds) after which Lambda terminates the function.
2985
+
2986
+ Because the execution time affects cost, set this value
2987
+ based on the function's expected execution time.
2988
+
2989
+ :default: Duration.seconds(3)
2990
+ '''
2991
+ result = self._values.get("timeout")
2992
+ return typing.cast(typing.Optional[_aws_cdk_ceddda9d.Duration], result)
2993
+
2994
+ @builtins.property
2995
+ def tracing(self) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Tracing]:
2996
+ '''Enable AWS X-Ray Tracing for Lambda Function.
2997
+
2998
+ :default: Tracing.Disabled
2999
+ '''
3000
+ result = self._values.get("tracing")
3001
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Tracing], result)
3002
+
3003
+ @builtins.property
3004
+ def vpc(self) -> typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc]:
3005
+ '''VPC network to place Lambda network interfaces.
3006
+
3007
+ Specify this if the Lambda function needs to access resources in a VPC.
3008
+ This is required when ``vpcSubnets`` is specified.
3009
+
3010
+ :default: - Function is not placed within a VPC.
3011
+ '''
3012
+ result = self._values.get("vpc")
3013
+ return typing.cast(typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc], result)
3014
+
3015
+ @builtins.property
3016
+ def vpc_subnets(self) -> typing.Optional[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection]:
3017
+ '''Where to place the network interfaces within the VPC.
3018
+
3019
+ This requires ``vpc`` to be specified in order for interfaces to actually be
3020
+ placed in the subnets. If ``vpc`` is not specify, this will raise an error.
3021
+
3022
+ Note: Internet access for Lambda Functions requires a NAT Gateway, so picking
3023
+ public subnets is not allowed (unless ``allowPublicSubnet`` is set to ``true``).
3024
+
3025
+ :default: - the Vpc default strategy if not specified
3026
+ '''
3027
+ result = self._values.get("vpc_subnets")
3028
+ return typing.cast(typing.Optional[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection], result)
3029
+
3030
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3031
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3032
+
3033
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3034
+ return not (rhs == self)
3035
+
3036
+ def __repr__(self) -> str:
3037
+ return "StartStateMachineFunctionProps(%s)" % ", ".join(
3038
+ k + "=" + repr(v) for k, v in self._values.items()
3039
+ )
3040
+
3041
+
3042
+ @jsii.data_type(
3043
+ jsii_type="@jjrawlins/cdk-ami-builder.VolumeProps",
3044
+ jsii_struct_bases=[],
3045
+ name_mapping={"device_name": "deviceName", "ebs": "ebs"},
3046
+ )
3047
+ class VolumeProps:
3048
+ def __init__(self, *, device_name: builtins.str, ebs: IEbsParameters) -> None:
3049
+ '''
3050
+ :param device_name: Name of the volume.
3051
+ :param ebs: EBS Block Store Parameters. By default, the 'kmsKeyId' of EBS volume is set to 'amiEncryptionKey.keyId', and 'encrypted' is set to 'true'. If you wish to use a different KMS Key, you may do so. However, please make sure that the necessary permissions and compliance requirements for the KMS Key are already set up.
3052
+ '''
3053
+ if __debug__:
3054
+ type_hints = typing.get_type_hints(_typecheckingstub__9d1da9ea32dfd5f2b80899e3b65cfd331e8667db730686426f0ff1a173e565e6)
3055
+ check_type(argname="argument device_name", value=device_name, expected_type=type_hints["device_name"])
3056
+ check_type(argname="argument ebs", value=ebs, expected_type=type_hints["ebs"])
3057
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3058
+ "device_name": device_name,
3059
+ "ebs": ebs,
3060
+ }
3061
+
3062
+ @builtins.property
3063
+ def device_name(self) -> builtins.str:
3064
+ '''Name of the volume.'''
3065
+ result = self._values.get("device_name")
3066
+ assert result is not None, "Required property 'device_name' is missing"
3067
+ return typing.cast(builtins.str, result)
3068
+
3069
+ @builtins.property
3070
+ def ebs(self) -> IEbsParameters:
3071
+ '''EBS Block Store Parameters.
3072
+
3073
+ By default, the 'kmsKeyId' of EBS volume is set to 'amiEncryptionKey.keyId',
3074
+ and 'encrypted' is set to 'true'. If you wish to use a different KMS Key,
3075
+ you may do so. However, please make sure that the necessary permissions
3076
+ and compliance requirements for the KMS Key are already set up.
3077
+ '''
3078
+ result = self._values.get("ebs")
3079
+ assert result is not None, "Required property 'ebs' is missing"
3080
+ return typing.cast(IEbsParameters, result)
3081
+
3082
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3083
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3084
+
3085
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3086
+ return not (rhs == self)
3087
+
3088
+ def __repr__(self) -> str:
3089
+ return "VolumeProps(%s)" % ", ".join(
3090
+ k + "=" + repr(v) for k, v in self._values.items()
3091
+ )
3092
+
3093
+
3094
+ __all__ = [
3095
+ "CheckStateMachineStatusFunction",
3096
+ "CheckStateMachineStatusFunctionProps",
3097
+ "IActionCommands",
3098
+ "IComponentDocument",
3099
+ "IComponentProps",
3100
+ "IEbsParameters",
3101
+ "IInputParameter",
3102
+ "IPhases",
3103
+ "IStepCommands",
3104
+ "ImagePipeline",
3105
+ "ImagePipelineProps",
3106
+ "StartStateMachineFunction",
3107
+ "StartStateMachineFunctionProps",
3108
+ "VolumeProps",
3109
+ ]
3110
+
3111
+ publication.publish()
3112
+
3113
+ def _typecheckingstub__80a7e839717caae4ae025b044129f52691774b5a0c3597bea181450461089015(
3114
+ scope: _constructs_77d1e7e8.Construct,
3115
+ id: builtins.str,
3116
+ *,
3117
+ adot_instrumentation: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.AdotInstrumentationConfig, typing.Dict[builtins.str, typing.Any]]] = None,
3118
+ allow_all_outbound: typing.Optional[builtins.bool] = None,
3119
+ allow_public_subnet: typing.Optional[builtins.bool] = None,
3120
+ architecture: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Architecture] = None,
3121
+ code_signing_config: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ICodeSigningConfig] = None,
3122
+ current_version_options: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.VersionOptions, typing.Dict[builtins.str, typing.Any]]] = None,
3123
+ dead_letter_queue: typing.Optional[_aws_cdk_aws_sqs_ceddda9d.IQueue] = None,
3124
+ dead_letter_queue_enabled: typing.Optional[builtins.bool] = None,
3125
+ dead_letter_topic: typing.Optional[_aws_cdk_aws_sns_ceddda9d.ITopic] = None,
3126
+ description: typing.Optional[builtins.str] = None,
3127
+ environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
3128
+ environment_encryption: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
3129
+ ephemeral_storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
3130
+ events: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.IEventSource]] = None,
3131
+ filesystem: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.FileSystem] = None,
3132
+ function_name: typing.Optional[builtins.str] = None,
3133
+ initial_policy: typing.Optional[typing.Sequence[_aws_cdk_aws_iam_ceddda9d.PolicyStatement]] = None,
3134
+ insights_version: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.LambdaInsightsVersion] = None,
3135
+ layers: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.ILayerVersion]] = None,
3136
+ log_retention: typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays] = None,
3137
+ log_retention_retry_options: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.LogRetentionRetryOptions, typing.Dict[builtins.str, typing.Any]]] = None,
3138
+ log_retention_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
3139
+ memory_size: typing.Optional[jsii.Number] = None,
3140
+ params_and_secrets: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ParamsAndSecretsLayerVersion] = None,
3141
+ profiling: typing.Optional[builtins.bool] = None,
3142
+ profiling_group: typing.Optional[_aws_cdk_aws_codeguruprofiler_ceddda9d.IProfilingGroup] = None,
3143
+ reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
3144
+ role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
3145
+ runtime_management_mode: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.RuntimeManagementMode] = None,
3146
+ security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
3147
+ timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
3148
+ tracing: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Tracing] = None,
3149
+ vpc: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc] = None,
3150
+ vpc_subnets: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
3151
+ max_event_age: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
3152
+ on_failure: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination] = None,
3153
+ on_success: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination] = None,
3154
+ retry_attempts: typing.Optional[jsii.Number] = None,
3155
+ ) -> None:
3156
+ """Type checking stubs"""
3157
+ pass
3158
+
3159
+ def _typecheckingstub__7ad187f6fa75af251088f0d01089ce5af9c6e78ba8a6e1736dfdb9666988616b(
3160
+ *,
3161
+ max_event_age: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
3162
+ on_failure: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination] = None,
3163
+ on_success: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination] = None,
3164
+ retry_attempts: typing.Optional[jsii.Number] = None,
3165
+ adot_instrumentation: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.AdotInstrumentationConfig, typing.Dict[builtins.str, typing.Any]]] = None,
3166
+ allow_all_outbound: typing.Optional[builtins.bool] = None,
3167
+ allow_public_subnet: typing.Optional[builtins.bool] = None,
3168
+ architecture: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Architecture] = None,
3169
+ code_signing_config: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ICodeSigningConfig] = None,
3170
+ current_version_options: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.VersionOptions, typing.Dict[builtins.str, typing.Any]]] = None,
3171
+ dead_letter_queue: typing.Optional[_aws_cdk_aws_sqs_ceddda9d.IQueue] = None,
3172
+ dead_letter_queue_enabled: typing.Optional[builtins.bool] = None,
3173
+ dead_letter_topic: typing.Optional[_aws_cdk_aws_sns_ceddda9d.ITopic] = None,
3174
+ description: typing.Optional[builtins.str] = None,
3175
+ environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
3176
+ environment_encryption: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
3177
+ ephemeral_storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
3178
+ events: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.IEventSource]] = None,
3179
+ filesystem: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.FileSystem] = None,
3180
+ function_name: typing.Optional[builtins.str] = None,
3181
+ initial_policy: typing.Optional[typing.Sequence[_aws_cdk_aws_iam_ceddda9d.PolicyStatement]] = None,
3182
+ insights_version: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.LambdaInsightsVersion] = None,
3183
+ layers: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.ILayerVersion]] = None,
3184
+ log_retention: typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays] = None,
3185
+ log_retention_retry_options: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.LogRetentionRetryOptions, typing.Dict[builtins.str, typing.Any]]] = None,
3186
+ log_retention_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
3187
+ memory_size: typing.Optional[jsii.Number] = None,
3188
+ params_and_secrets: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ParamsAndSecretsLayerVersion] = None,
3189
+ profiling: typing.Optional[builtins.bool] = None,
3190
+ profiling_group: typing.Optional[_aws_cdk_aws_codeguruprofiler_ceddda9d.IProfilingGroup] = None,
3191
+ reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
3192
+ role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
3193
+ runtime_management_mode: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.RuntimeManagementMode] = None,
3194
+ security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
3195
+ timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
3196
+ tracing: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Tracing] = None,
3197
+ vpc: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc] = None,
3198
+ vpc_subnets: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
3199
+ ) -> None:
3200
+ """Type checking stubs"""
3201
+ pass
3202
+
3203
+ def _typecheckingstub__10f5fea34bd77d6054ed796f746dbb227d06d5b5d758e1eb35055430d0518bdf(
3204
+ value: typing.List[builtins.str],
3205
+ ) -> None:
3206
+ """Type checking stubs"""
3207
+ pass
3208
+
3209
+ def _typecheckingstub__624a7bb48f946403e3ab1b4ae0dbb8031caf7b944311ff9c993a6126ef5e3287(
3210
+ value: typing.List[IPhases],
3211
+ ) -> None:
3212
+ """Type checking stubs"""
3213
+ pass
3214
+
3215
+ def _typecheckingstub__de97257fb85051b7e1a2f01dbece22036f46f0b683a3d5e9a4169541ec11b5e1(
3216
+ value: typing.Optional[builtins.str],
3217
+ ) -> None:
3218
+ """Type checking stubs"""
3219
+ pass
3220
+
3221
+ def _typecheckingstub__70cb5dabf5f8f2356d27488542eac48b55efd3d699b5e052701945bf99619aca(
3222
+ value: typing.Optional[builtins.str],
3223
+ ) -> None:
3224
+ """Type checking stubs"""
3225
+ pass
3226
+
3227
+ def _typecheckingstub__efffe851a3d571fabc89bb8f1e37d1a4ec032e1342122b5ab489204a1e44f6b8(
3228
+ value: typing.Optional[builtins.str],
3229
+ ) -> None:
3230
+ """Type checking stubs"""
3231
+ pass
3232
+
3233
+ def _typecheckingstub__b0ad2caab3355f4838637405d4f26c75ee1cce783903c32551e643abe82659e8(
3234
+ value: IComponentDocument,
3235
+ ) -> None:
3236
+ """Type checking stubs"""
3237
+ pass
3238
+
3239
+ def _typecheckingstub__0bce0f8dc96228f8efb876e5919d9c2c1ee92c26a24d14eca94a50a06cd4926f(
3240
+ value: typing.Optional[builtins.str],
3241
+ ) -> None:
3242
+ """Type checking stubs"""
3243
+ pass
3244
+
3245
+ def _typecheckingstub__c0c7dec14ffd9bf1a1a114795b123ba90e9b80ca69c21fdaa3f475ddf85d78b1(
3246
+ value: typing.Optional[builtins.str],
3247
+ ) -> None:
3248
+ """Type checking stubs"""
3249
+ pass
3250
+
3251
+ def _typecheckingstub__72232f5835e0beda072a77bad77970be5491d2709e66ba2ca97fd7bc9db71006(
3252
+ value: typing.Optional[builtins.str],
3253
+ ) -> None:
3254
+ """Type checking stubs"""
3255
+ pass
3256
+
3257
+ def _typecheckingstub__86f16715a17e21602912ba9d4533eca197b8693c30d16442cfab62b7ea33370d(
3258
+ value: typing.Optional[typing.Mapping[builtins.str, IInputParameter]],
3259
+ ) -> None:
3260
+ """Type checking stubs"""
3261
+ pass
3262
+
3263
+ def _typecheckingstub__a23ae80ba76ecddd4143609bb122f336b79f3ab095cc2c2c5d4d1385ef62693a(
3264
+ value: typing.Optional[builtins.str],
3265
+ ) -> None:
3266
+ """Type checking stubs"""
3267
+ pass
3268
+
3269
+ def _typecheckingstub__9973b3d6b077a057d59e04c03013dce9d7ed43148817bf0433987b401da20438(
3270
+ value: typing.Optional[builtins.str],
3271
+ ) -> None:
3272
+ """Type checking stubs"""
3273
+ pass
3274
+
3275
+ def _typecheckingstub__0e5d81c411808594f27bf71993213cf332e7b7bc72d420381bada3679eeea8ec(
3276
+ value: jsii.Number,
3277
+ ) -> None:
3278
+ """Type checking stubs"""
3279
+ pass
3280
+
3281
+ def _typecheckingstub__b540c011e8f4a3a07534f2b6ce7d7f97f2c406cb2e6c3fe31235455d998f6241(
3282
+ value: typing.Optional[builtins.bool],
3283
+ ) -> None:
3284
+ """Type checking stubs"""
3285
+ pass
3286
+
3287
+ def _typecheckingstub__7e13b146751f14eee56e18d77364984f0f27022180ae37bc0ded34faef00f0c4(
3288
+ value: typing.Optional[builtins.bool],
3289
+ ) -> None:
3290
+ """Type checking stubs"""
3291
+ pass
3292
+
3293
+ def _typecheckingstub__c302f146869b52368ce6de4d6f01976b8eca3e9d54f8efbbffe44cf8b19d0869(
3294
+ value: typing.Optional[builtins.str],
3295
+ ) -> None:
3296
+ """Type checking stubs"""
3297
+ pass
3298
+
3299
+ def _typecheckingstub__e81a510a2a024c038328cbad4402309e14a7833b607324f360373866e250b3f7(
3300
+ value: typing.Optional[builtins.str],
3301
+ ) -> None:
3302
+ """Type checking stubs"""
3303
+ pass
3304
+
3305
+ def _typecheckingstub__aaf310c2928dde39cb8af7991b84c39540130f8d881fe6005d7eab25d2d118c0(
3306
+ value: builtins.str,
3307
+ ) -> None:
3308
+ """Type checking stubs"""
3309
+ pass
3310
+
3311
+ def _typecheckingstub__4560f5bbdf32517a539c1af9e6599ca9195835a850a0f07ddfc0dcdf3641b1f7(
3312
+ value: builtins.str,
3313
+ ) -> None:
3314
+ """Type checking stubs"""
3315
+ pass
3316
+
3317
+ def _typecheckingstub__8fb09906d4a1b21165f080811572771be07edead36213cbdddbcae3f59ca4fe7(
3318
+ value: builtins.str,
3319
+ ) -> None:
3320
+ """Type checking stubs"""
3321
+ pass
3322
+
3323
+ def _typecheckingstub__44eb356dcf22fafae58586b67e463188c1ceb5872e7d4700b983131d9fa722c2(
3324
+ value: builtins.str,
3325
+ ) -> None:
3326
+ """Type checking stubs"""
3327
+ pass
3328
+
3329
+ def _typecheckingstub__df462b42f744b117b0586075ca023a73546818bc12bda3af473d5cded5a14453(
3330
+ value: typing.List[IStepCommands],
3331
+ ) -> None:
3332
+ """Type checking stubs"""
3333
+ pass
3334
+
3335
+ def _typecheckingstub__d2a55181a699ecdb46fd277bb5d051f1e9f4433e27639332395478ed06c7bada(
3336
+ value: builtins.str,
3337
+ ) -> None:
3338
+ """Type checking stubs"""
3339
+ pass
3340
+
3341
+ def _typecheckingstub__c7fd2c10de441da316399b8d67ef9fe6302063110bab78de675bf72c8d330cd5(
3342
+ value: builtins.str,
3343
+ ) -> None:
3344
+ """Type checking stubs"""
3345
+ pass
3346
+
3347
+ def _typecheckingstub__31f544d77b7639a100d3ef21a2dccb6780ad4865ad30dc0927169fa6f58ba844(
3348
+ value: typing.Optional[IActionCommands],
3349
+ ) -> None:
3350
+ """Type checking stubs"""
3351
+ pass
3352
+
3353
+ def _typecheckingstub__bf6bd3c038c0cdfd3e7d1a6b8572fb503cc2e9cedcc165c10c8c3747c9bd5e18(
3354
+ scope: _constructs_77d1e7e8.Construct,
3355
+ id: builtins.str,
3356
+ *,
3357
+ components: typing.Sequence[IComponentProps],
3358
+ parent_image: builtins.str,
3359
+ vpc: _aws_cdk_aws_ec2_ceddda9d.Vpc,
3360
+ additional_policies: typing.Optional[typing.Sequence[_aws_cdk_aws_iam_ceddda9d.ManagedPolicy]] = None,
3361
+ debug_image_pipeline: typing.Optional[builtins.bool] = None,
3362
+ distribution_account_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
3363
+ distribution_kms_key_alias: typing.Optional[builtins.str] = None,
3364
+ distribution_regions: typing.Optional[typing.Sequence[builtins.str]] = None,
3365
+ ebs_volume_configurations: typing.Optional[typing.Sequence[typing.Union[VolumeProps, typing.Dict[builtins.str, typing.Any]]]] = None,
3366
+ email: typing.Optional[builtins.str] = None,
3367
+ enable_vuln_scans: typing.Optional[builtins.bool] = None,
3368
+ image_recipe_version: typing.Optional[builtins.str] = None,
3369
+ instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
3370
+ platform: typing.Optional[builtins.str] = None,
3371
+ profile_name: typing.Optional[builtins.str] = None,
3372
+ security_group_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
3373
+ security_groups: typing.Optional[typing.Sequence[builtins.str]] = None,
3374
+ subnet_id: typing.Optional[builtins.str] = None,
3375
+ user_data_script: typing.Optional[builtins.str] = None,
3376
+ vuln_scans_repo_name: typing.Optional[builtins.str] = None,
3377
+ vuln_scans_repo_tags: typing.Optional[typing.Sequence[builtins.str]] = None,
3378
+ ) -> None:
3379
+ """Type checking stubs"""
3380
+ pass
3381
+
3382
+ def _typecheckingstub__3caaa0e87efd31863d50ae14b716d1c26963b70e3c7cb6faf0382a7a992902db(
3383
+ value: builtins.str,
3384
+ ) -> None:
3385
+ """Type checking stubs"""
3386
+ pass
3387
+
3388
+ def _typecheckingstub__8f26b6fa7ec32bfa71a51e8decd4140be699fde137d1b00acb1efb9403c33617(
3389
+ value: builtins.str,
3390
+ ) -> None:
3391
+ """Type checking stubs"""
3392
+ pass
3393
+
3394
+ def _typecheckingstub__eeb1c8226fc2b10c398b3b6c92875d7937e349500e49aef10cfda8c99a39abca(
3395
+ value: typing.List[_aws_cdk_aws_imagebuilder_ceddda9d.CfnImageRecipe.ComponentConfigurationProperty],
3396
+ ) -> None:
3397
+ """Type checking stubs"""
3398
+ pass
3399
+
3400
+ def _typecheckingstub__f604923f8f82998f5caecff757715f94c0405ceeb95a6c1b00fa96d9d35d16d6(
3401
+ *,
3402
+ components: typing.Sequence[IComponentProps],
3403
+ parent_image: builtins.str,
3404
+ vpc: _aws_cdk_aws_ec2_ceddda9d.Vpc,
3405
+ additional_policies: typing.Optional[typing.Sequence[_aws_cdk_aws_iam_ceddda9d.ManagedPolicy]] = None,
3406
+ debug_image_pipeline: typing.Optional[builtins.bool] = None,
3407
+ distribution_account_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
3408
+ distribution_kms_key_alias: typing.Optional[builtins.str] = None,
3409
+ distribution_regions: typing.Optional[typing.Sequence[builtins.str]] = None,
3410
+ ebs_volume_configurations: typing.Optional[typing.Sequence[typing.Union[VolumeProps, typing.Dict[builtins.str, typing.Any]]]] = None,
3411
+ email: typing.Optional[builtins.str] = None,
3412
+ enable_vuln_scans: typing.Optional[builtins.bool] = None,
3413
+ image_recipe_version: typing.Optional[builtins.str] = None,
3414
+ instance_types: typing.Optional[typing.Sequence[builtins.str]] = None,
3415
+ platform: typing.Optional[builtins.str] = None,
3416
+ profile_name: typing.Optional[builtins.str] = None,
3417
+ security_group_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
3418
+ security_groups: typing.Optional[typing.Sequence[builtins.str]] = None,
3419
+ subnet_id: typing.Optional[builtins.str] = None,
3420
+ user_data_script: typing.Optional[builtins.str] = None,
3421
+ vuln_scans_repo_name: typing.Optional[builtins.str] = None,
3422
+ vuln_scans_repo_tags: typing.Optional[typing.Sequence[builtins.str]] = None,
3423
+ ) -> None:
3424
+ """Type checking stubs"""
3425
+ pass
3426
+
3427
+ def _typecheckingstub__e2190d2a548e965066a88afc4c9200b01b6ec131b60f821166bf35aedc4ef922(
3428
+ scope: _constructs_77d1e7e8.Construct,
3429
+ id: builtins.str,
3430
+ *,
3431
+ adot_instrumentation: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.AdotInstrumentationConfig, typing.Dict[builtins.str, typing.Any]]] = None,
3432
+ allow_all_outbound: typing.Optional[builtins.bool] = None,
3433
+ allow_public_subnet: typing.Optional[builtins.bool] = None,
3434
+ architecture: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Architecture] = None,
3435
+ code_signing_config: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ICodeSigningConfig] = None,
3436
+ current_version_options: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.VersionOptions, typing.Dict[builtins.str, typing.Any]]] = None,
3437
+ dead_letter_queue: typing.Optional[_aws_cdk_aws_sqs_ceddda9d.IQueue] = None,
3438
+ dead_letter_queue_enabled: typing.Optional[builtins.bool] = None,
3439
+ dead_letter_topic: typing.Optional[_aws_cdk_aws_sns_ceddda9d.ITopic] = None,
3440
+ description: typing.Optional[builtins.str] = None,
3441
+ environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
3442
+ environment_encryption: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
3443
+ ephemeral_storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
3444
+ events: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.IEventSource]] = None,
3445
+ filesystem: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.FileSystem] = None,
3446
+ function_name: typing.Optional[builtins.str] = None,
3447
+ initial_policy: typing.Optional[typing.Sequence[_aws_cdk_aws_iam_ceddda9d.PolicyStatement]] = None,
3448
+ insights_version: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.LambdaInsightsVersion] = None,
3449
+ layers: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.ILayerVersion]] = None,
3450
+ log_retention: typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays] = None,
3451
+ log_retention_retry_options: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.LogRetentionRetryOptions, typing.Dict[builtins.str, typing.Any]]] = None,
3452
+ log_retention_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
3453
+ memory_size: typing.Optional[jsii.Number] = None,
3454
+ params_and_secrets: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ParamsAndSecretsLayerVersion] = None,
3455
+ profiling: typing.Optional[builtins.bool] = None,
3456
+ profiling_group: typing.Optional[_aws_cdk_aws_codeguruprofiler_ceddda9d.IProfilingGroup] = None,
3457
+ reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
3458
+ role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
3459
+ runtime_management_mode: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.RuntimeManagementMode] = None,
3460
+ security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
3461
+ timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
3462
+ tracing: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Tracing] = None,
3463
+ vpc: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc] = None,
3464
+ vpc_subnets: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
3465
+ max_event_age: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
3466
+ on_failure: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination] = None,
3467
+ on_success: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination] = None,
3468
+ retry_attempts: typing.Optional[jsii.Number] = None,
3469
+ ) -> None:
3470
+ """Type checking stubs"""
3471
+ pass
3472
+
3473
+ def _typecheckingstub__eb8aced8ffa672fc77ae37739036b372b4660892fca88a7d548de7d9809b88ab(
3474
+ *,
3475
+ max_event_age: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
3476
+ on_failure: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination] = None,
3477
+ on_success: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.IDestination] = None,
3478
+ retry_attempts: typing.Optional[jsii.Number] = None,
3479
+ adot_instrumentation: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.AdotInstrumentationConfig, typing.Dict[builtins.str, typing.Any]]] = None,
3480
+ allow_all_outbound: typing.Optional[builtins.bool] = None,
3481
+ allow_public_subnet: typing.Optional[builtins.bool] = None,
3482
+ architecture: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Architecture] = None,
3483
+ code_signing_config: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ICodeSigningConfig] = None,
3484
+ current_version_options: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.VersionOptions, typing.Dict[builtins.str, typing.Any]]] = None,
3485
+ dead_letter_queue: typing.Optional[_aws_cdk_aws_sqs_ceddda9d.IQueue] = None,
3486
+ dead_letter_queue_enabled: typing.Optional[builtins.bool] = None,
3487
+ dead_letter_topic: typing.Optional[_aws_cdk_aws_sns_ceddda9d.ITopic] = None,
3488
+ description: typing.Optional[builtins.str] = None,
3489
+ environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
3490
+ environment_encryption: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
3491
+ ephemeral_storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
3492
+ events: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.IEventSource]] = None,
3493
+ filesystem: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.FileSystem] = None,
3494
+ function_name: typing.Optional[builtins.str] = None,
3495
+ initial_policy: typing.Optional[typing.Sequence[_aws_cdk_aws_iam_ceddda9d.PolicyStatement]] = None,
3496
+ insights_version: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.LambdaInsightsVersion] = None,
3497
+ layers: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.ILayerVersion]] = None,
3498
+ log_retention: typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays] = None,
3499
+ log_retention_retry_options: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.LogRetentionRetryOptions, typing.Dict[builtins.str, typing.Any]]] = None,
3500
+ log_retention_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
3501
+ memory_size: typing.Optional[jsii.Number] = None,
3502
+ params_and_secrets: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.ParamsAndSecretsLayerVersion] = None,
3503
+ profiling: typing.Optional[builtins.bool] = None,
3504
+ profiling_group: typing.Optional[_aws_cdk_aws_codeguruprofiler_ceddda9d.IProfilingGroup] = None,
3505
+ reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
3506
+ role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
3507
+ runtime_management_mode: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.RuntimeManagementMode] = None,
3508
+ security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
3509
+ timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
3510
+ tracing: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Tracing] = None,
3511
+ vpc: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc] = None,
3512
+ vpc_subnets: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
3513
+ ) -> None:
3514
+ """Type checking stubs"""
3515
+ pass
3516
+
3517
+ def _typecheckingstub__9d1da9ea32dfd5f2b80899e3b65cfd331e8667db730686426f0ff1a173e565e6(
3518
+ *,
3519
+ device_name: builtins.str,
3520
+ ebs: IEbsParameters,
3521
+ ) -> None:
3522
+ """Type checking stubs"""
3523
+ pass
3524
+
3525
+ for cls in [IActionCommands, IComponentDocument, IComponentProps, IEbsParameters, IInputParameter, IPhases, IStepCommands]:
3526
+ typing.cast(typing.Any, cls).__protocol_attrs__ = typing.cast(typing.Any, cls).__protocol_attrs__ - set(['__jsii_proxy_class__', '__jsii_type__'])