io.github.cdklabs.generative_ai_cdk_constructs.DockerLambdaCustomProps Maven / Gradle / Ivy
Show all versions of generative-ai-cdk-constructs Show documentation
package io.github.cdklabs.generative_ai_cdk_constructs;
/**
* (experimental) DockerLambdaCustomProps.
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.103.1 (build bef2dea)", date = "2024-09-23T22:27:31.850Z")
@software.amazon.jsii.Jsii(module = io.github.cdklabs.generative_ai_cdk_constructs.$Module.class, fqn = "@cdklabs/generative-ai-cdk-constructs.DockerLambdaCustomProps")
@software.amazon.jsii.Jsii.Proxy(DockerLambdaCustomProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public interface DockerLambdaCustomProps extends software.amazon.jsii.JsiiSerializable {
/**
* The source code of your Lambda function.
*
* You can point to a file in an
* Amazon Simple Storage Service (Amazon S3) bucket or specify your source
* code as inline text.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@org.jetbrains.annotations.NotNull software.amazon.awscdk.services.lambda.DockerImageCode getCode();
/**
* Specify the configuration of AWS Distro for OpenTelemetry (ADOT) instrumentation.
*
* Default: - No ADOT instrumentation
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.lambda.AdotInstrumentationConfig getAdotInstrumentation() {
return null;
}
/**
* Sets the application log level for the function.
*
* Default: ApplicationLogLevel.INFO
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.lambda.ApplicationLogLevel getApplicationLogLevelV2() {
return null;
}
/**
* The system architectures compatible with this lambda function.
*
* Default: Architecture.X86_64
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.lambda.Architecture getArchitecture() {
return null;
}
/**
* Code signing config associated with this function.
*
* Default: - Not Sign the Code
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.lambda.ICodeSigningConfig getCodeSigningConfig() {
return null;
}
/**
* Options for the lambda.Version
resource automatically created by the fn.currentVersion
method.
*
* Default: - default options as described in `VersionOptions`
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.lambda.VersionOptions getCurrentVersionOptions() {
return null;
}
/**
* 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`
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.sqs.IQueue getDeadLetterQueue() {
return null;
}
/**
* 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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getDeadLetterQueueEnabled() {
return null;
}
/**
* 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
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.sns.ITopic getDeadLetterTopic() {
return null;
}
/**
* 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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.util.Map getEnvironment() {
return null;
}
/**
* 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).
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.kms.IKey getEnvironmentEncryption() {
return null;
}
/**
* The size of the function’s /tmp directory in MiB.
*
* Default: 512 MiB
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.Size getEphemeralStorageSize() {
return null;
}
/**
* Event sources for this function.
*
* You can also add event sources using addEventSource
.
*
* Default: - No event sources.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.util.List getEvents() {
return null;
}
/**
* The filesystem configuration for the lambda function.
*
* Default: - will not mount any filesystem
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.lambda.FileSystem getFilesystem() {
return null;
}
/**
* 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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.util.List getInitialPolicy() {
return null;
}
/**
* Specify the version of CloudWatch Lambda insights to use for monitoring.
*
* Default: - No Lambda Insights
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.lambda.LambdaInsightsVersion getInsightsVersion() {
return null;
}
/**
* Allows outbound IPv6 traffic on VPC functions that are connected to dual-stack subnets.
*
* Only used if 'vpc' is supplied.
*
* Default: false
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getIpv6AllowedForDualStack() {
return null;
}
/**
* Sets the loggingFormat for the function.
*
* Default: LoggingFormat.TEXT
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.lambda.LoggingFormat getLoggingFormat() {
return null;
}
/**
* The log group the function sends logs to.
*
* By default, Lambda functions send logs to an automatically created default log group named /aws/lambda/.
* 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
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.logs.ILogGroup getLogGroup() {
return null;
}
/**
* 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
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.logs.RetentionDays getLogRetention() {
return null;
}
/**
* 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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.lambda.LogRetentionRetryOptions getLogRetentionRetryOptions() {
return null;
}
/**
* 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.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.iam.IRole getLogRetentionRole() {
return null;
}
/**
* The maximum age of a request that Lambda sends to a function for processing.
*
* Minimum: 60 seconds
* Maximum: 6 hours
*
* Default: Duration.hours(6)
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.Duration getMaxEventAge() {
return null;
}
/**
* 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
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getMemorySize() {
return null;
}
/**
* The destination for failed invocations.
*
* Default: - no destination
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.lambda.IDestination getOnFailure() {
return null;
}
/**
* The destination for successful invocations.
*
* Default: - no destination
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.lambda.IDestination getOnSuccess() {
return null;
}
/**
* Specify the configuration of Parameters and Secrets Extension.
*
* Default: - No Parameters and Secrets Extension
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.lambda.ParamsAndSecretsLayerVersion getParamsAndSecrets() {
return null;
}
/**
* Enable profiling.
*
* Default: - No profiling.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getProfiling() {
return null;
}
/**
* Profiling Group.
*
* Default: - A new profiling group will be created if `profiling` is set.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.codeguruprofiler.IProfilingGroup getProfilingGroup() {
return null;
}
/**
* Sets the Recursive Loop Protection for Lambda Function.
*
* It lets Lambda detect and terminate unintended recusrive loops.
*
* Default: RecursiveLoop.Terminate
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.lambda.RecursiveLoop getRecursiveLoop() {
return null;
}
/**
* The maximum of concurrent executions you want to reserve for the function.
*
* Default: - No specific limit - account limit.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getReservedConcurrentExecutions() {
return null;
}
/**
* The maximum number of times to retry when the function returns an error.
*
* Minimum: 0
* Maximum: 2
*
* Default: 2
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getRetryAttempts() {
return null;
}
/**
* Sets the runtime management configuration for a function's version.
*
* Default: Auto
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.lambda.RuntimeManagementMode getRuntimeManagementMode() {
return null;
}
/**
* Enable SnapStart for Lambda Function.
*
* SnapStart is currently supported only for Java 11, 17 runtime
*
* Default: - No snapstart
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.lambda.SnapStartConf getSnapStart() {
return null;
}
/**
* Sets the system log level for the function.
*
* Default: SystemLogLevel.INFO
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.lambda.SystemLogLevel getSystemLogLevelV2() {
return null;
}
/**
* 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)
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.Duration getTimeout() {
return null;
}
/**
* @return a {@link Builder} of {@link DockerLambdaCustomProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link DockerLambdaCustomProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public static final class Builder implements software.amazon.jsii.Builder {
software.amazon.awscdk.services.lambda.DockerImageCode code;
software.amazon.awscdk.services.lambda.AdotInstrumentationConfig adotInstrumentation;
software.amazon.awscdk.services.lambda.ApplicationLogLevel applicationLogLevelV2;
software.amazon.awscdk.services.lambda.Architecture architecture;
software.amazon.awscdk.services.lambda.ICodeSigningConfig codeSigningConfig;
software.amazon.awscdk.services.lambda.VersionOptions currentVersionOptions;
software.amazon.awscdk.services.sqs.IQueue deadLetterQueue;
java.lang.Boolean deadLetterQueueEnabled;
software.amazon.awscdk.services.sns.ITopic deadLetterTopic;
java.util.Map environment;
software.amazon.awscdk.services.kms.IKey environmentEncryption;
software.amazon.awscdk.Size ephemeralStorageSize;
java.util.List events;
software.amazon.awscdk.services.lambda.FileSystem filesystem;
java.util.List initialPolicy;
software.amazon.awscdk.services.lambda.LambdaInsightsVersion insightsVersion;
java.lang.Boolean ipv6AllowedForDualStack;
software.amazon.awscdk.services.lambda.LoggingFormat loggingFormat;
software.amazon.awscdk.services.logs.ILogGroup logGroup;
software.amazon.awscdk.services.logs.RetentionDays logRetention;
software.amazon.awscdk.services.lambda.LogRetentionRetryOptions logRetentionRetryOptions;
software.amazon.awscdk.services.iam.IRole logRetentionRole;
software.amazon.awscdk.Duration maxEventAge;
java.lang.Number memorySize;
software.amazon.awscdk.services.lambda.IDestination onFailure;
software.amazon.awscdk.services.lambda.IDestination onSuccess;
software.amazon.awscdk.services.lambda.ParamsAndSecretsLayerVersion paramsAndSecrets;
java.lang.Boolean profiling;
software.amazon.awscdk.services.codeguruprofiler.IProfilingGroup profilingGroup;
software.amazon.awscdk.services.lambda.RecursiveLoop recursiveLoop;
java.lang.Number reservedConcurrentExecutions;
java.lang.Number retryAttempts;
software.amazon.awscdk.services.lambda.RuntimeManagementMode runtimeManagementMode;
software.amazon.awscdk.services.lambda.SnapStartConf snapStart;
software.amazon.awscdk.services.lambda.SystemLogLevel systemLogLevelV2;
software.amazon.awscdk.Duration timeout;
/**
* Sets the value of {@link DockerLambdaCustomProps#getCode}
* @param code The source code of your Lambda function. This parameter is required.
* You can point to a file in an
* Amazon Simple Storage Service (Amazon S3) bucket or specify your source
* code as inline text.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder code(software.amazon.awscdk.services.lambda.DockerImageCode code) {
this.code = code;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getAdotInstrumentation}
* @param adotInstrumentation Specify the configuration of AWS Distro for OpenTelemetry (ADOT) instrumentation.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder adotInstrumentation(software.amazon.awscdk.services.lambda.AdotInstrumentationConfig adotInstrumentation) {
this.adotInstrumentation = adotInstrumentation;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getApplicationLogLevelV2}
* @param applicationLogLevelV2 Sets the application log level for the function.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder applicationLogLevelV2(software.amazon.awscdk.services.lambda.ApplicationLogLevel applicationLogLevelV2) {
this.applicationLogLevelV2 = applicationLogLevelV2;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getArchitecture}
* @param architecture The system architectures compatible with this lambda function.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder architecture(software.amazon.awscdk.services.lambda.Architecture architecture) {
this.architecture = architecture;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getCodeSigningConfig}
* @param codeSigningConfig Code signing config associated with this function.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder codeSigningConfig(software.amazon.awscdk.services.lambda.ICodeSigningConfig codeSigningConfig) {
this.codeSigningConfig = codeSigningConfig;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getCurrentVersionOptions}
* @param currentVersionOptions Options for the lambda.Version
resource automatically created by the fn.currentVersion
method.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder currentVersionOptions(software.amazon.awscdk.services.lambda.VersionOptions currentVersionOptions) {
this.currentVersionOptions = currentVersionOptions;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getDeadLetterQueue}
* @param deadLetterQueue The SQS queue to use if DLQ is enabled.
* If SNS topic is desired, specify deadLetterTopic
property instead.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder deadLetterQueue(software.amazon.awscdk.services.sqs.IQueue deadLetterQueue) {
this.deadLetterQueue = deadLetterQueue;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getDeadLetterQueueEnabled}
* @param deadLetterQueueEnabled Enabled DLQ.
* If deadLetterQueue
is undefined,
* an SQS queue with default options will be defined for your Function.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder deadLetterQueueEnabled(java.lang.Boolean deadLetterQueueEnabled) {
this.deadLetterQueueEnabled = deadLetterQueueEnabled;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getDeadLetterTopic}
* @param deadLetterTopic 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.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder deadLetterTopic(software.amazon.awscdk.services.sns.ITopic deadLetterTopic) {
this.deadLetterTopic = deadLetterTopic;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getEnvironment}
* @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.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder environment(java.util.Map environment) {
this.environment = environment;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getEnvironmentEncryption}
* @param environmentEncryption The AWS KMS key that's used to encrypt your function's environment variables.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder environmentEncryption(software.amazon.awscdk.services.kms.IKey environmentEncryption) {
this.environmentEncryption = environmentEncryption;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getEphemeralStorageSize}
* @param ephemeralStorageSize The size of the function’s /tmp directory in MiB.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder ephemeralStorageSize(software.amazon.awscdk.Size ephemeralStorageSize) {
this.ephemeralStorageSize = ephemeralStorageSize;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getEvents}
* @param events Event sources for this function.
* You can also add event sources using addEventSource
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@SuppressWarnings("unchecked")
public Builder events(java.util.List extends software.amazon.awscdk.services.lambda.IEventSource> events) {
this.events = (java.util.List)events;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getFilesystem}
* @param filesystem The filesystem configuration for the lambda function.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder filesystem(software.amazon.awscdk.services.lambda.FileSystem filesystem) {
this.filesystem = filesystem;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getInitialPolicy}
* @param initialPolicy Initial policy statements to add to the created Lambda Role.
* You can call addToRolePolicy
to the created lambda to add statements post creation.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@SuppressWarnings("unchecked")
public Builder initialPolicy(java.util.List extends software.amazon.awscdk.services.iam.PolicyStatement> initialPolicy) {
this.initialPolicy = (java.util.List)initialPolicy;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getInsightsVersion}
* @param insightsVersion Specify the version of CloudWatch Lambda insights to use for monitoring.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder insightsVersion(software.amazon.awscdk.services.lambda.LambdaInsightsVersion insightsVersion) {
this.insightsVersion = insightsVersion;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getIpv6AllowedForDualStack}
* @param ipv6AllowedForDualStack Allows outbound IPv6 traffic on VPC functions that are connected to dual-stack subnets.
* Only used if 'vpc' is supplied.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder ipv6AllowedForDualStack(java.lang.Boolean ipv6AllowedForDualStack) {
this.ipv6AllowedForDualStack = ipv6AllowedForDualStack;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getLoggingFormat}
* @param loggingFormat Sets the loggingFormat for the function.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder loggingFormat(software.amazon.awscdk.services.lambda.LoggingFormat loggingFormat) {
this.loggingFormat = loggingFormat;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getLogGroup}
* @param logGroup The log group the function sends logs to.
* By default, Lambda functions send logs to an automatically created default log group named /aws/lambda/.
* 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.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder logGroup(software.amazon.awscdk.services.logs.ILogGroup logGroup) {
this.logGroup = logGroup;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getLogRetention}
* @param logRetention 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;
*
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder logRetention(software.amazon.awscdk.services.logs.RetentionDays logRetention) {
this.logRetention = logRetention;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getLogRetentionRetryOptions}
* @param logRetentionRetryOptions 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.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder logRetentionRetryOptions(software.amazon.awscdk.services.lambda.LogRetentionRetryOptions logRetentionRetryOptions) {
this.logRetentionRetryOptions = logRetentionRetryOptions;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getLogRetentionRole}
* @param logRetentionRole 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.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder logRetentionRole(software.amazon.awscdk.services.iam.IRole logRetentionRole) {
this.logRetentionRole = logRetentionRole;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getMaxEventAge}
* @param maxEventAge The maximum age of a request that Lambda sends to a function for processing.
* Minimum: 60 seconds
* Maximum: 6 hours
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder maxEventAge(software.amazon.awscdk.Duration maxEventAge) {
this.maxEventAge = maxEventAge;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getMemorySize}
* @param memorySize 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.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder memorySize(java.lang.Number memorySize) {
this.memorySize = memorySize;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getOnFailure}
* @param onFailure The destination for failed invocations.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder onFailure(software.amazon.awscdk.services.lambda.IDestination onFailure) {
this.onFailure = onFailure;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getOnSuccess}
* @param onSuccess The destination for successful invocations.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder onSuccess(software.amazon.awscdk.services.lambda.IDestination onSuccess) {
this.onSuccess = onSuccess;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getParamsAndSecrets}
* @param paramsAndSecrets Specify the configuration of Parameters and Secrets Extension.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder paramsAndSecrets(software.amazon.awscdk.services.lambda.ParamsAndSecretsLayerVersion paramsAndSecrets) {
this.paramsAndSecrets = paramsAndSecrets;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getProfiling}
* @param profiling Enable profiling.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder profiling(java.lang.Boolean profiling) {
this.profiling = profiling;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getProfilingGroup}
* @param profilingGroup Profiling Group.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder profilingGroup(software.amazon.awscdk.services.codeguruprofiler.IProfilingGroup profilingGroup) {
this.profilingGroup = profilingGroup;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getRecursiveLoop}
* @param recursiveLoop Sets the Recursive Loop Protection for Lambda Function.
* It lets Lambda detect and terminate unintended recusrive loops.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder recursiveLoop(software.amazon.awscdk.services.lambda.RecursiveLoop recursiveLoop) {
this.recursiveLoop = recursiveLoop;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getReservedConcurrentExecutions}
* @param reservedConcurrentExecutions The maximum of concurrent executions you want to reserve for the function.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder reservedConcurrentExecutions(java.lang.Number reservedConcurrentExecutions) {
this.reservedConcurrentExecutions = reservedConcurrentExecutions;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getRetryAttempts}
* @param retryAttempts The maximum number of times to retry when the function returns an error.
* Minimum: 0
* Maximum: 2
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder retryAttempts(java.lang.Number retryAttempts) {
this.retryAttempts = retryAttempts;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getRuntimeManagementMode}
* @param runtimeManagementMode Sets the runtime management configuration for a function's version.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder runtimeManagementMode(software.amazon.awscdk.services.lambda.RuntimeManagementMode runtimeManagementMode) {
this.runtimeManagementMode = runtimeManagementMode;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getSnapStart}
* @param snapStart Enable SnapStart for Lambda Function.
* SnapStart is currently supported only for Java 11, 17 runtime
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder snapStart(software.amazon.awscdk.services.lambda.SnapStartConf snapStart) {
this.snapStart = snapStart;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getSystemLogLevelV2}
* @param systemLogLevelV2 Sets the system log level for the function.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder systemLogLevelV2(software.amazon.awscdk.services.lambda.SystemLogLevel systemLogLevelV2) {
this.systemLogLevelV2 = systemLogLevelV2;
return this;
}
/**
* Sets the value of {@link DockerLambdaCustomProps#getTimeout}
* @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.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder timeout(software.amazon.awscdk.Duration timeout) {
this.timeout = timeout;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link DockerLambdaCustomProps}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@Override
public DockerLambdaCustomProps build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link DockerLambdaCustomProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements DockerLambdaCustomProps {
private final software.amazon.awscdk.services.lambda.DockerImageCode code;
private final software.amazon.awscdk.services.lambda.AdotInstrumentationConfig adotInstrumentation;
private final software.amazon.awscdk.services.lambda.ApplicationLogLevel applicationLogLevelV2;
private final software.amazon.awscdk.services.lambda.Architecture architecture;
private final software.amazon.awscdk.services.lambda.ICodeSigningConfig codeSigningConfig;
private final software.amazon.awscdk.services.lambda.VersionOptions currentVersionOptions;
private final software.amazon.awscdk.services.sqs.IQueue deadLetterQueue;
private final java.lang.Boolean deadLetterQueueEnabled;
private final software.amazon.awscdk.services.sns.ITopic deadLetterTopic;
private final java.util.Map environment;
private final software.amazon.awscdk.services.kms.IKey environmentEncryption;
private final software.amazon.awscdk.Size ephemeralStorageSize;
private final java.util.List events;
private final software.amazon.awscdk.services.lambda.FileSystem filesystem;
private final java.util.List initialPolicy;
private final software.amazon.awscdk.services.lambda.LambdaInsightsVersion insightsVersion;
private final java.lang.Boolean ipv6AllowedForDualStack;
private final software.amazon.awscdk.services.lambda.LoggingFormat loggingFormat;
private final software.amazon.awscdk.services.logs.ILogGroup logGroup;
private final software.amazon.awscdk.services.logs.RetentionDays logRetention;
private final software.amazon.awscdk.services.lambda.LogRetentionRetryOptions logRetentionRetryOptions;
private final software.amazon.awscdk.services.iam.IRole logRetentionRole;
private final software.amazon.awscdk.Duration maxEventAge;
private final java.lang.Number memorySize;
private final software.amazon.awscdk.services.lambda.IDestination onFailure;
private final software.amazon.awscdk.services.lambda.IDestination onSuccess;
private final software.amazon.awscdk.services.lambda.ParamsAndSecretsLayerVersion paramsAndSecrets;
private final java.lang.Boolean profiling;
private final software.amazon.awscdk.services.codeguruprofiler.IProfilingGroup profilingGroup;
private final software.amazon.awscdk.services.lambda.RecursiveLoop recursiveLoop;
private final java.lang.Number reservedConcurrentExecutions;
private final java.lang.Number retryAttempts;
private final software.amazon.awscdk.services.lambda.RuntimeManagementMode runtimeManagementMode;
private final software.amazon.awscdk.services.lambda.SnapStartConf snapStart;
private final software.amazon.awscdk.services.lambda.SystemLogLevel systemLogLevelV2;
private final software.amazon.awscdk.Duration timeout;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.code = software.amazon.jsii.Kernel.get(this, "code", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.DockerImageCode.class));
this.adotInstrumentation = software.amazon.jsii.Kernel.get(this, "adotInstrumentation", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.AdotInstrumentationConfig.class));
this.applicationLogLevelV2 = software.amazon.jsii.Kernel.get(this, "applicationLogLevelV2", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.ApplicationLogLevel.class));
this.architecture = software.amazon.jsii.Kernel.get(this, "architecture", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.Architecture.class));
this.codeSigningConfig = software.amazon.jsii.Kernel.get(this, "codeSigningConfig", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.ICodeSigningConfig.class));
this.currentVersionOptions = software.amazon.jsii.Kernel.get(this, "currentVersionOptions", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.VersionOptions.class));
this.deadLetterQueue = software.amazon.jsii.Kernel.get(this, "deadLetterQueue", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.sqs.IQueue.class));
this.deadLetterQueueEnabled = software.amazon.jsii.Kernel.get(this, "deadLetterQueueEnabled", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.deadLetterTopic = software.amazon.jsii.Kernel.get(this, "deadLetterTopic", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.sns.ITopic.class));
this.environment = software.amazon.jsii.Kernel.get(this, "environment", software.amazon.jsii.NativeType.mapOf(software.amazon.jsii.NativeType.forClass(java.lang.String.class)));
this.environmentEncryption = software.amazon.jsii.Kernel.get(this, "environmentEncryption", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.kms.IKey.class));
this.ephemeralStorageSize = software.amazon.jsii.Kernel.get(this, "ephemeralStorageSize", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.Size.class));
this.events = software.amazon.jsii.Kernel.get(this, "events", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.IEventSource.class)));
this.filesystem = software.amazon.jsii.Kernel.get(this, "filesystem", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.FileSystem.class));
this.initialPolicy = software.amazon.jsii.Kernel.get(this, "initialPolicy", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.iam.PolicyStatement.class)));
this.insightsVersion = software.amazon.jsii.Kernel.get(this, "insightsVersion", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.LambdaInsightsVersion.class));
this.ipv6AllowedForDualStack = software.amazon.jsii.Kernel.get(this, "ipv6AllowedForDualStack", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.loggingFormat = software.amazon.jsii.Kernel.get(this, "loggingFormat", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.LoggingFormat.class));
this.logGroup = software.amazon.jsii.Kernel.get(this, "logGroup", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.logs.ILogGroup.class));
this.logRetention = software.amazon.jsii.Kernel.get(this, "logRetention", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.logs.RetentionDays.class));
this.logRetentionRetryOptions = software.amazon.jsii.Kernel.get(this, "logRetentionRetryOptions", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.LogRetentionRetryOptions.class));
this.logRetentionRole = software.amazon.jsii.Kernel.get(this, "logRetentionRole", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.iam.IRole.class));
this.maxEventAge = software.amazon.jsii.Kernel.get(this, "maxEventAge", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.Duration.class));
this.memorySize = software.amazon.jsii.Kernel.get(this, "memorySize", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.onFailure = software.amazon.jsii.Kernel.get(this, "onFailure", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.IDestination.class));
this.onSuccess = software.amazon.jsii.Kernel.get(this, "onSuccess", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.IDestination.class));
this.paramsAndSecrets = software.amazon.jsii.Kernel.get(this, "paramsAndSecrets", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.ParamsAndSecretsLayerVersion.class));
this.profiling = software.amazon.jsii.Kernel.get(this, "profiling", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.profilingGroup = software.amazon.jsii.Kernel.get(this, "profilingGroup", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.codeguruprofiler.IProfilingGroup.class));
this.recursiveLoop = software.amazon.jsii.Kernel.get(this, "recursiveLoop", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.RecursiveLoop.class));
this.reservedConcurrentExecutions = software.amazon.jsii.Kernel.get(this, "reservedConcurrentExecutions", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.retryAttempts = software.amazon.jsii.Kernel.get(this, "retryAttempts", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.runtimeManagementMode = software.amazon.jsii.Kernel.get(this, "runtimeManagementMode", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.RuntimeManagementMode.class));
this.snapStart = software.amazon.jsii.Kernel.get(this, "snapStart", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.SnapStartConf.class));
this.systemLogLevelV2 = software.amazon.jsii.Kernel.get(this, "systemLogLevelV2", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.SystemLogLevel.class));
this.timeout = software.amazon.jsii.Kernel.get(this, "timeout", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.Duration.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
@SuppressWarnings("unchecked")
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.code = java.util.Objects.requireNonNull(builder.code, "code is required");
this.adotInstrumentation = builder.adotInstrumentation;
this.applicationLogLevelV2 = builder.applicationLogLevelV2;
this.architecture = builder.architecture;
this.codeSigningConfig = builder.codeSigningConfig;
this.currentVersionOptions = builder.currentVersionOptions;
this.deadLetterQueue = builder.deadLetterQueue;
this.deadLetterQueueEnabled = builder.deadLetterQueueEnabled;
this.deadLetterTopic = builder.deadLetterTopic;
this.environment = builder.environment;
this.environmentEncryption = builder.environmentEncryption;
this.ephemeralStorageSize = builder.ephemeralStorageSize;
this.events = (java.util.List)builder.events;
this.filesystem = builder.filesystem;
this.initialPolicy = (java.util.List)builder.initialPolicy;
this.insightsVersion = builder.insightsVersion;
this.ipv6AllowedForDualStack = builder.ipv6AllowedForDualStack;
this.loggingFormat = builder.loggingFormat;
this.logGroup = builder.logGroup;
this.logRetention = builder.logRetention;
this.logRetentionRetryOptions = builder.logRetentionRetryOptions;
this.logRetentionRole = builder.logRetentionRole;
this.maxEventAge = builder.maxEventAge;
this.memorySize = builder.memorySize;
this.onFailure = builder.onFailure;
this.onSuccess = builder.onSuccess;
this.paramsAndSecrets = builder.paramsAndSecrets;
this.profiling = builder.profiling;
this.profilingGroup = builder.profilingGroup;
this.recursiveLoop = builder.recursiveLoop;
this.reservedConcurrentExecutions = builder.reservedConcurrentExecutions;
this.retryAttempts = builder.retryAttempts;
this.runtimeManagementMode = builder.runtimeManagementMode;
this.snapStart = builder.snapStart;
this.systemLogLevelV2 = builder.systemLogLevelV2;
this.timeout = builder.timeout;
}
@Override
public final software.amazon.awscdk.services.lambda.DockerImageCode getCode() {
return this.code;
}
@Override
public final software.amazon.awscdk.services.lambda.AdotInstrumentationConfig getAdotInstrumentation() {
return this.adotInstrumentation;
}
@Override
public final software.amazon.awscdk.services.lambda.ApplicationLogLevel getApplicationLogLevelV2() {
return this.applicationLogLevelV2;
}
@Override
public final software.amazon.awscdk.services.lambda.Architecture getArchitecture() {
return this.architecture;
}
@Override
public final software.amazon.awscdk.services.lambda.ICodeSigningConfig getCodeSigningConfig() {
return this.codeSigningConfig;
}
@Override
public final software.amazon.awscdk.services.lambda.VersionOptions getCurrentVersionOptions() {
return this.currentVersionOptions;
}
@Override
public final software.amazon.awscdk.services.sqs.IQueue getDeadLetterQueue() {
return this.deadLetterQueue;
}
@Override
public final java.lang.Boolean getDeadLetterQueueEnabled() {
return this.deadLetterQueueEnabled;
}
@Override
public final software.amazon.awscdk.services.sns.ITopic getDeadLetterTopic() {
return this.deadLetterTopic;
}
@Override
public final java.util.Map getEnvironment() {
return this.environment;
}
@Override
public final software.amazon.awscdk.services.kms.IKey getEnvironmentEncryption() {
return this.environmentEncryption;
}
@Override
public final software.amazon.awscdk.Size getEphemeralStorageSize() {
return this.ephemeralStorageSize;
}
@Override
public final java.util.List getEvents() {
return this.events;
}
@Override
public final software.amazon.awscdk.services.lambda.FileSystem getFilesystem() {
return this.filesystem;
}
@Override
public final java.util.List getInitialPolicy() {
return this.initialPolicy;
}
@Override
public final software.amazon.awscdk.services.lambda.LambdaInsightsVersion getInsightsVersion() {
return this.insightsVersion;
}
@Override
public final java.lang.Boolean getIpv6AllowedForDualStack() {
return this.ipv6AllowedForDualStack;
}
@Override
public final software.amazon.awscdk.services.lambda.LoggingFormat getLoggingFormat() {
return this.loggingFormat;
}
@Override
public final software.amazon.awscdk.services.logs.ILogGroup getLogGroup() {
return this.logGroup;
}
@Override
public final software.amazon.awscdk.services.logs.RetentionDays getLogRetention() {
return this.logRetention;
}
@Override
public final software.amazon.awscdk.services.lambda.LogRetentionRetryOptions getLogRetentionRetryOptions() {
return this.logRetentionRetryOptions;
}
@Override
public final software.amazon.awscdk.services.iam.IRole getLogRetentionRole() {
return this.logRetentionRole;
}
@Override
public final software.amazon.awscdk.Duration getMaxEventAge() {
return this.maxEventAge;
}
@Override
public final java.lang.Number getMemorySize() {
return this.memorySize;
}
@Override
public final software.amazon.awscdk.services.lambda.IDestination getOnFailure() {
return this.onFailure;
}
@Override
public final software.amazon.awscdk.services.lambda.IDestination getOnSuccess() {
return this.onSuccess;
}
@Override
public final software.amazon.awscdk.services.lambda.ParamsAndSecretsLayerVersion getParamsAndSecrets() {
return this.paramsAndSecrets;
}
@Override
public final java.lang.Boolean getProfiling() {
return this.profiling;
}
@Override
public final software.amazon.awscdk.services.codeguruprofiler.IProfilingGroup getProfilingGroup() {
return this.profilingGroup;
}
@Override
public final software.amazon.awscdk.services.lambda.RecursiveLoop getRecursiveLoop() {
return this.recursiveLoop;
}
@Override
public final java.lang.Number getReservedConcurrentExecutions() {
return this.reservedConcurrentExecutions;
}
@Override
public final java.lang.Number getRetryAttempts() {
return this.retryAttempts;
}
@Override
public final software.amazon.awscdk.services.lambda.RuntimeManagementMode getRuntimeManagementMode() {
return this.runtimeManagementMode;
}
@Override
public final software.amazon.awscdk.services.lambda.SnapStartConf getSnapStart() {
return this.snapStart;
}
@Override
public final software.amazon.awscdk.services.lambda.SystemLogLevel getSystemLogLevelV2() {
return this.systemLogLevelV2;
}
@Override
public final software.amazon.awscdk.Duration getTimeout() {
return this.timeout;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
data.set("code", om.valueToTree(this.getCode()));
if (this.getAdotInstrumentation() != null) {
data.set("adotInstrumentation", om.valueToTree(this.getAdotInstrumentation()));
}
if (this.getApplicationLogLevelV2() != null) {
data.set("applicationLogLevelV2", om.valueToTree(this.getApplicationLogLevelV2()));
}
if (this.getArchitecture() != null) {
data.set("architecture", om.valueToTree(this.getArchitecture()));
}
if (this.getCodeSigningConfig() != null) {
data.set("codeSigningConfig", om.valueToTree(this.getCodeSigningConfig()));
}
if (this.getCurrentVersionOptions() != null) {
data.set("currentVersionOptions", om.valueToTree(this.getCurrentVersionOptions()));
}
if (this.getDeadLetterQueue() != null) {
data.set("deadLetterQueue", om.valueToTree(this.getDeadLetterQueue()));
}
if (this.getDeadLetterQueueEnabled() != null) {
data.set("deadLetterQueueEnabled", om.valueToTree(this.getDeadLetterQueueEnabled()));
}
if (this.getDeadLetterTopic() != null) {
data.set("deadLetterTopic", om.valueToTree(this.getDeadLetterTopic()));
}
if (this.getEnvironment() != null) {
data.set("environment", om.valueToTree(this.getEnvironment()));
}
if (this.getEnvironmentEncryption() != null) {
data.set("environmentEncryption", om.valueToTree(this.getEnvironmentEncryption()));
}
if (this.getEphemeralStorageSize() != null) {
data.set("ephemeralStorageSize", om.valueToTree(this.getEphemeralStorageSize()));
}
if (this.getEvents() != null) {
data.set("events", om.valueToTree(this.getEvents()));
}
if (this.getFilesystem() != null) {
data.set("filesystem", om.valueToTree(this.getFilesystem()));
}
if (this.getInitialPolicy() != null) {
data.set("initialPolicy", om.valueToTree(this.getInitialPolicy()));
}
if (this.getInsightsVersion() != null) {
data.set("insightsVersion", om.valueToTree(this.getInsightsVersion()));
}
if (this.getIpv6AllowedForDualStack() != null) {
data.set("ipv6AllowedForDualStack", om.valueToTree(this.getIpv6AllowedForDualStack()));
}
if (this.getLoggingFormat() != null) {
data.set("loggingFormat", om.valueToTree(this.getLoggingFormat()));
}
if (this.getLogGroup() != null) {
data.set("logGroup", om.valueToTree(this.getLogGroup()));
}
if (this.getLogRetention() != null) {
data.set("logRetention", om.valueToTree(this.getLogRetention()));
}
if (this.getLogRetentionRetryOptions() != null) {
data.set("logRetentionRetryOptions", om.valueToTree(this.getLogRetentionRetryOptions()));
}
if (this.getLogRetentionRole() != null) {
data.set("logRetentionRole", om.valueToTree(this.getLogRetentionRole()));
}
if (this.getMaxEventAge() != null) {
data.set("maxEventAge", om.valueToTree(this.getMaxEventAge()));
}
if (this.getMemorySize() != null) {
data.set("memorySize", om.valueToTree(this.getMemorySize()));
}
if (this.getOnFailure() != null) {
data.set("onFailure", om.valueToTree(this.getOnFailure()));
}
if (this.getOnSuccess() != null) {
data.set("onSuccess", om.valueToTree(this.getOnSuccess()));
}
if (this.getParamsAndSecrets() != null) {
data.set("paramsAndSecrets", om.valueToTree(this.getParamsAndSecrets()));
}
if (this.getProfiling() != null) {
data.set("profiling", om.valueToTree(this.getProfiling()));
}
if (this.getProfilingGroup() != null) {
data.set("profilingGroup", om.valueToTree(this.getProfilingGroup()));
}
if (this.getRecursiveLoop() != null) {
data.set("recursiveLoop", om.valueToTree(this.getRecursiveLoop()));
}
if (this.getReservedConcurrentExecutions() != null) {
data.set("reservedConcurrentExecutions", om.valueToTree(this.getReservedConcurrentExecutions()));
}
if (this.getRetryAttempts() != null) {
data.set("retryAttempts", om.valueToTree(this.getRetryAttempts()));
}
if (this.getRuntimeManagementMode() != null) {
data.set("runtimeManagementMode", om.valueToTree(this.getRuntimeManagementMode()));
}
if (this.getSnapStart() != null) {
data.set("snapStart", om.valueToTree(this.getSnapStart()));
}
if (this.getSystemLogLevelV2() != null) {
data.set("systemLogLevelV2", om.valueToTree(this.getSystemLogLevelV2()));
}
if (this.getTimeout() != null) {
data.set("timeout", om.valueToTree(this.getTimeout()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@cdklabs/generative-ai-cdk-constructs.DockerLambdaCustomProps"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DockerLambdaCustomProps.Jsii$Proxy that = (DockerLambdaCustomProps.Jsii$Proxy) o;
if (!code.equals(that.code)) return false;
if (this.adotInstrumentation != null ? !this.adotInstrumentation.equals(that.adotInstrumentation) : that.adotInstrumentation != null) return false;
if (this.applicationLogLevelV2 != null ? !this.applicationLogLevelV2.equals(that.applicationLogLevelV2) : that.applicationLogLevelV2 != null) return false;
if (this.architecture != null ? !this.architecture.equals(that.architecture) : that.architecture != null) return false;
if (this.codeSigningConfig != null ? !this.codeSigningConfig.equals(that.codeSigningConfig) : that.codeSigningConfig != null) return false;
if (this.currentVersionOptions != null ? !this.currentVersionOptions.equals(that.currentVersionOptions) : that.currentVersionOptions != null) return false;
if (this.deadLetterQueue != null ? !this.deadLetterQueue.equals(that.deadLetterQueue) : that.deadLetterQueue != null) return false;
if (this.deadLetterQueueEnabled != null ? !this.deadLetterQueueEnabled.equals(that.deadLetterQueueEnabled) : that.deadLetterQueueEnabled != null) return false;
if (this.deadLetterTopic != null ? !this.deadLetterTopic.equals(that.deadLetterTopic) : that.deadLetterTopic != null) return false;
if (this.environment != null ? !this.environment.equals(that.environment) : that.environment != null) return false;
if (this.environmentEncryption != null ? !this.environmentEncryption.equals(that.environmentEncryption) : that.environmentEncryption != null) return false;
if (this.ephemeralStorageSize != null ? !this.ephemeralStorageSize.equals(that.ephemeralStorageSize) : that.ephemeralStorageSize != null) return false;
if (this.events != null ? !this.events.equals(that.events) : that.events != null) return false;
if (this.filesystem != null ? !this.filesystem.equals(that.filesystem) : that.filesystem != null) return false;
if (this.initialPolicy != null ? !this.initialPolicy.equals(that.initialPolicy) : that.initialPolicy != null) return false;
if (this.insightsVersion != null ? !this.insightsVersion.equals(that.insightsVersion) : that.insightsVersion != null) return false;
if (this.ipv6AllowedForDualStack != null ? !this.ipv6AllowedForDualStack.equals(that.ipv6AllowedForDualStack) : that.ipv6AllowedForDualStack != null) return false;
if (this.loggingFormat != null ? !this.loggingFormat.equals(that.loggingFormat) : that.loggingFormat != null) return false;
if (this.logGroup != null ? !this.logGroup.equals(that.logGroup) : that.logGroup != null) return false;
if (this.logRetention != null ? !this.logRetention.equals(that.logRetention) : that.logRetention != null) return false;
if (this.logRetentionRetryOptions != null ? !this.logRetentionRetryOptions.equals(that.logRetentionRetryOptions) : that.logRetentionRetryOptions != null) return false;
if (this.logRetentionRole != null ? !this.logRetentionRole.equals(that.logRetentionRole) : that.logRetentionRole != null) return false;
if (this.maxEventAge != null ? !this.maxEventAge.equals(that.maxEventAge) : that.maxEventAge != null) return false;
if (this.memorySize != null ? !this.memorySize.equals(that.memorySize) : that.memorySize != null) return false;
if (this.onFailure != null ? !this.onFailure.equals(that.onFailure) : that.onFailure != null) return false;
if (this.onSuccess != null ? !this.onSuccess.equals(that.onSuccess) : that.onSuccess != null) return false;
if (this.paramsAndSecrets != null ? !this.paramsAndSecrets.equals(that.paramsAndSecrets) : that.paramsAndSecrets != null) return false;
if (this.profiling != null ? !this.profiling.equals(that.profiling) : that.profiling != null) return false;
if (this.profilingGroup != null ? !this.profilingGroup.equals(that.profilingGroup) : that.profilingGroup != null) return false;
if (this.recursiveLoop != null ? !this.recursiveLoop.equals(that.recursiveLoop) : that.recursiveLoop != null) return false;
if (this.reservedConcurrentExecutions != null ? !this.reservedConcurrentExecutions.equals(that.reservedConcurrentExecutions) : that.reservedConcurrentExecutions != null) return false;
if (this.retryAttempts != null ? !this.retryAttempts.equals(that.retryAttempts) : that.retryAttempts != null) return false;
if (this.runtimeManagementMode != null ? !this.runtimeManagementMode.equals(that.runtimeManagementMode) : that.runtimeManagementMode != null) return false;
if (this.snapStart != null ? !this.snapStart.equals(that.snapStart) : that.snapStart != null) return false;
if (this.systemLogLevelV2 != null ? !this.systemLogLevelV2.equals(that.systemLogLevelV2) : that.systemLogLevelV2 != null) return false;
return this.timeout != null ? this.timeout.equals(that.timeout) : that.timeout == null;
}
@Override
public final int hashCode() {
int result = this.code.hashCode();
result = 31 * result + (this.adotInstrumentation != null ? this.adotInstrumentation.hashCode() : 0);
result = 31 * result + (this.applicationLogLevelV2 != null ? this.applicationLogLevelV2.hashCode() : 0);
result = 31 * result + (this.architecture != null ? this.architecture.hashCode() : 0);
result = 31 * result + (this.codeSigningConfig != null ? this.codeSigningConfig.hashCode() : 0);
result = 31 * result + (this.currentVersionOptions != null ? this.currentVersionOptions.hashCode() : 0);
result = 31 * result + (this.deadLetterQueue != null ? this.deadLetterQueue.hashCode() : 0);
result = 31 * result + (this.deadLetterQueueEnabled != null ? this.deadLetterQueueEnabled.hashCode() : 0);
result = 31 * result + (this.deadLetterTopic != null ? this.deadLetterTopic.hashCode() : 0);
result = 31 * result + (this.environment != null ? this.environment.hashCode() : 0);
result = 31 * result + (this.environmentEncryption != null ? this.environmentEncryption.hashCode() : 0);
result = 31 * result + (this.ephemeralStorageSize != null ? this.ephemeralStorageSize.hashCode() : 0);
result = 31 * result + (this.events != null ? this.events.hashCode() : 0);
result = 31 * result + (this.filesystem != null ? this.filesystem.hashCode() : 0);
result = 31 * result + (this.initialPolicy != null ? this.initialPolicy.hashCode() : 0);
result = 31 * result + (this.insightsVersion != null ? this.insightsVersion.hashCode() : 0);
result = 31 * result + (this.ipv6AllowedForDualStack != null ? this.ipv6AllowedForDualStack.hashCode() : 0);
result = 31 * result + (this.loggingFormat != null ? this.loggingFormat.hashCode() : 0);
result = 31 * result + (this.logGroup != null ? this.logGroup.hashCode() : 0);
result = 31 * result + (this.logRetention != null ? this.logRetention.hashCode() : 0);
result = 31 * result + (this.logRetentionRetryOptions != null ? this.logRetentionRetryOptions.hashCode() : 0);
result = 31 * result + (this.logRetentionRole != null ? this.logRetentionRole.hashCode() : 0);
result = 31 * result + (this.maxEventAge != null ? this.maxEventAge.hashCode() : 0);
result = 31 * result + (this.memorySize != null ? this.memorySize.hashCode() : 0);
result = 31 * result + (this.onFailure != null ? this.onFailure.hashCode() : 0);
result = 31 * result + (this.onSuccess != null ? this.onSuccess.hashCode() : 0);
result = 31 * result + (this.paramsAndSecrets != null ? this.paramsAndSecrets.hashCode() : 0);
result = 31 * result + (this.profiling != null ? this.profiling.hashCode() : 0);
result = 31 * result + (this.profilingGroup != null ? this.profilingGroup.hashCode() : 0);
result = 31 * result + (this.recursiveLoop != null ? this.recursiveLoop.hashCode() : 0);
result = 31 * result + (this.reservedConcurrentExecutions != null ? this.reservedConcurrentExecutions.hashCode() : 0);
result = 31 * result + (this.retryAttempts != null ? this.retryAttempts.hashCode() : 0);
result = 31 * result + (this.runtimeManagementMode != null ? this.runtimeManagementMode.hashCode() : 0);
result = 31 * result + (this.snapStart != null ? this.snapStart.hashCode() : 0);
result = 31 * result + (this.systemLogLevelV2 != null ? this.systemLogLevelV2.hashCode() : 0);
result = 31 * result + (this.timeout != null ? this.timeout.hashCode() : 0);
return result;
}
}
}