jjrawlins-cdk-ami-builder 0.0.3__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.

Potentially problematic release.


This version of jjrawlins-cdk-ami-builder might be problematic. Click here for more details.

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