software.amazon.awscdk.services.lambda.SingletonFunctionProps Maven / Gradle / Ivy
Show all versions of lambda Show documentation
package software.amazon.awscdk.services.lambda;
/**
* Properties for a newly created singleton Lambda.
*
* Example:
*
*
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import software.amazon.awscdk.services.codeguruprofiler.*;
* import software.amazon.awscdk.services.ec2.*;
* import software.amazon.awscdk.services.iam.*;
* import software.amazon.awscdk.services.kms.*;
* import software.amazon.awscdk.services.lambda.*;
* import software.amazon.awscdk.services.logs.*;
* import software.amazon.awscdk.services.sns.*;
* import software.amazon.awscdk.services.sqs.*;
* import software.amazon.awscdk.core.*;
* Architecture architecture;
* Code code;
* CodeSigningConfig codeSigningConfig;
* IDestination destination;
* IEventSource eventSource;
* FileSystem fileSystem;
* Key key;
* LambdaInsightsVersion lambdaInsightsVersion;
* LayerVersion layerVersion;
* PolicyStatement policyStatement;
* ProfilingGroup profilingGroup;
* Queue queue;
* Role role;
* Runtime runtime;
* SecurityGroup securityGroup;
* Size size;
* Subnet subnet;
* SubnetFilter subnetFilter;
* Topic topic;
* Vpc vpc;
* SingletonFunctionProps singletonFunctionProps = SingletonFunctionProps.builder()
* .code(code)
* .handler("handler")
* .runtime(runtime)
* .uuid("uuid")
* // the properties below are optional
* .allowAllOutbound(false)
* .allowPublicSubnet(false)
* .architecture(architecture)
* .architectures(List.of(architecture))
* .codeSigningConfig(codeSigningConfig)
* .currentVersionOptions(VersionOptions.builder()
* .codeSha256("codeSha256")
* .description("description")
* .maxEventAge(Duration.minutes(30))
* .onFailure(destination)
* .onSuccess(destination)
* .provisionedConcurrentExecutions(123)
* .removalPolicy(RemovalPolicy.DESTROY)
* .retryAttempts(123)
* .build())
* .deadLetterQueue(queue)
* .deadLetterQueueEnabled(false)
* .deadLetterTopic(topic)
* .description("description")
* .environment(Map.of(
* "environmentKey", "environment"))
* .environmentEncryption(key)
* .ephemeralStorageSize(size)
* .events(List.of(eventSource))
* .filesystem(fileSystem)
* .functionName("functionName")
* .initialPolicy(List.of(policyStatement))
* .insightsVersion(lambdaInsightsVersion)
* .lambdaPurpose("lambdaPurpose")
* .layers(List.of(layerVersion))
* .logRetention(RetentionDays.ONE_DAY)
* .logRetentionRetryOptions(LogRetentionRetryOptions.builder()
* .base(Duration.minutes(30))
* .maxRetries(123)
* .build())
* .logRetentionRole(role)
* .maxEventAge(Duration.minutes(30))
* .memorySize(123)
* .onFailure(destination)
* .onSuccess(destination)
* .profiling(false)
* .profilingGroup(profilingGroup)
* .reservedConcurrentExecutions(123)
* .retryAttempts(123)
* .role(role)
* .securityGroup(securityGroup)
* .securityGroups(List.of(securityGroup))
* .timeout(Duration.minutes(30))
* .tracing(Tracing.ACTIVE)
* .vpc(vpc)
* .vpcSubnets(SubnetSelection.builder()
* .availabilityZones(List.of("availabilityZones"))
* .onePerAz(false)
* .subnetFilters(List.of(subnetFilter))
* .subnetGroupName("subnetGroupName")
* .subnetName("subnetName")
* .subnets(List.of(subnet))
* .subnetType(SubnetType.ISOLATED)
* .build())
* .build();
*
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.74.0 (build 6d08790)", date = "2023-03-22T19:35:44.233Z")
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.lambda.$Module.class, fqn = "@aws-cdk/aws-lambda.SingletonFunctionProps")
@software.amazon.jsii.Jsii.Proxy(SingletonFunctionProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public interface SingletonFunctionProps extends software.amazon.jsii.JsiiSerializable, software.amazon.awscdk.services.lambda.FunctionProps {
/**
* A unique identifier to identify this lambda.
*
* The identifier should be unique across all custom resource providers.
* We recommend generating a UUID per provider.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@org.jetbrains.annotations.NotNull java.lang.String getUuid();
/**
* A descriptive name for the purpose of this Lambda.
*
* If the Lambda does not have a physical name, this string will be
* reflected its generated name. The combination of lambdaPurpose
* and uuid must be unique.
*
* Default: SingletonLambda
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getLambdaPurpose() {
return null;
}
/**
* @return a {@link Builder} of {@link SingletonFunctionProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link SingletonFunctionProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.String uuid;
java.lang.String lambdaPurpose;
software.amazon.awscdk.services.lambda.Code code;
java.lang.String handler;
software.amazon.awscdk.services.lambda.Runtime runtime;
java.lang.Boolean allowAllOutbound;
java.lang.Boolean allowPublicSubnet;
software.amazon.awscdk.services.lambda.Architecture architecture;
java.util.List architectures;
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.lang.String description;
java.util.Map environment;
software.amazon.awscdk.services.kms.IKey environmentEncryption;
software.amazon.awscdk.core.Size ephemeralStorageSize;
java.util.List events;
software.amazon.awscdk.services.lambda.FileSystem filesystem;
java.lang.String functionName;
java.util.List initialPolicy;
software.amazon.awscdk.services.lambda.LambdaInsightsVersion insightsVersion;
java.util.List layers;
software.amazon.awscdk.services.logs.RetentionDays logRetention;
software.amazon.awscdk.services.lambda.LogRetentionRetryOptions logRetentionRetryOptions;
software.amazon.awscdk.services.iam.IRole logRetentionRole;
java.lang.Number memorySize;
java.lang.Boolean profiling;
software.amazon.awscdk.services.codeguruprofiler.IProfilingGroup profilingGroup;
java.lang.Number reservedConcurrentExecutions;
software.amazon.awscdk.services.iam.IRole role;
software.amazon.awscdk.services.ec2.ISecurityGroup securityGroup;
java.util.List securityGroups;
software.amazon.awscdk.core.Duration timeout;
software.amazon.awscdk.services.lambda.Tracing tracing;
software.amazon.awscdk.services.ec2.IVpc vpc;
software.amazon.awscdk.services.ec2.SubnetSelection vpcSubnets;
software.amazon.awscdk.core.Duration maxEventAge;
software.amazon.awscdk.services.lambda.IDestination onFailure;
software.amazon.awscdk.services.lambda.IDestination onSuccess;
java.lang.Number retryAttempts;
/**
* Sets the value of {@link SingletonFunctionProps#getUuid}
* @param uuid A unique identifier to identify this lambda. This parameter is required.
* The identifier should be unique across all custom resource providers.
* We recommend generating a UUID per provider.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder uuid(java.lang.String uuid) {
this.uuid = uuid;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#getLambdaPurpose}
* @param lambdaPurpose A descriptive name for the purpose of this Lambda.
* If the Lambda does not have a physical name, this string will be
* reflected its generated name. The combination of lambdaPurpose
* and uuid must be unique.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder lambdaPurpose(java.lang.String lambdaPurpose) {
this.lambdaPurpose = lambdaPurpose;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#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.Code code) {
this.code = code;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#getHandler}
* @param handler The name of the method within your code that Lambda calls to execute your function. This parameter is required.
* The format includes the file name. It can also include
* namespaces and other qualifiers, depending on the runtime.
* For more information, see https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-features.html#gettingstarted-features-programmingmodel.
*
* Use Handler.FROM_IMAGE
when defining a function from a Docker image.
*
* NOTE: If you specify your source code as inline text by specifying the
* ZipFile property within the Code property, specify index.function_name as
* the handler.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder handler(java.lang.String handler) {
this.handler = handler;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#getRuntime}
* @param runtime The runtime environment for the Lambda function that you are uploading. This parameter is required.
* For valid values, see the Runtime property in the AWS Lambda Developer
* Guide.
*
* Use Runtime.FROM_IMAGE
when when defining a function from a Docker image.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder runtime(software.amazon.awscdk.services.lambda.Runtime runtime) {
this.runtime = runtime;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#getAllowAllOutbound}
* @param allowAllOutbound 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.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder allowAllOutbound(java.lang.Boolean allowAllOutbound) {
this.allowAllOutbound = allowAllOutbound;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#getAllowPublicSubnet}
* @param allowPublicSubnet 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.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder allowPublicSubnet(java.lang.Boolean allowPublicSubnet) {
this.allowPublicSubnet = allowPublicSubnet;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#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 SingletonFunctionProps#getArchitectures}
* @param architectures DEPRECATED.
* @return {@code this}
* @deprecated use `architecture`
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
@SuppressWarnings("unchecked")
public Builder architectures(java.util.List extends software.amazon.awscdk.services.lambda.Architecture> architectures) {
this.architectures = (java.util.List)architectures;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#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 SingletonFunctionProps#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 SingletonFunctionProps#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 SingletonFunctionProps#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 SingletonFunctionProps#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 SingletonFunctionProps#getDescription}
* @param description A description of the function.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder description(java.lang.String description) {
this.description = description;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#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 SingletonFunctionProps#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 SingletonFunctionProps#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.core.Size ephemeralStorageSize) {
this.ephemeralStorageSize = ephemeralStorageSize;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#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 SingletonFunctionProps#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 SingletonFunctionProps#getFunctionName}
* @param functionName A name for the function.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder functionName(java.lang.String functionName) {
this.functionName = functionName;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#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 SingletonFunctionProps#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 SingletonFunctionProps#getLayers}
* @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.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@SuppressWarnings("unchecked")
public Builder layers(java.util.List extends software.amazon.awscdk.services.lambda.ILayerVersion> layers) {
this.layers = (java.util.List)layers;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#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
.
* @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 SingletonFunctionProps#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.
* @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 SingletonFunctionProps#getLogRetentionRole}
* @param logRetentionRole The IAM role for the Lambda function associated with the custom resource that sets the retention policy.
* @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 SingletonFunctionProps#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 SingletonFunctionProps#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 SingletonFunctionProps#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 SingletonFunctionProps#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 SingletonFunctionProps#getRole}
* @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".
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder role(software.amazon.awscdk.services.iam.IRole role) {
this.role = role;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#getSecurityGroup}
* @param securityGroup What security group to associate with the Lambda's network interfaces. This property is being deprecated, consider using securityGroups instead.
* Only used if 'vpc' is supplied.
*
* Use securityGroups property instead.
* Function constructor will throw an error if both are specified.
* @return {@code this}
* @deprecated - This property is deprecated, use securityGroups instead
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder securityGroup(software.amazon.awscdk.services.ec2.ISecurityGroup securityGroup) {
this.securityGroup = securityGroup;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#getSecurityGroups}
* @param securityGroups The list of security groups to associate with the Lambda's network interfaces.
* Only used if 'vpc' is supplied.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@SuppressWarnings("unchecked")
public Builder securityGroups(java.util.List extends software.amazon.awscdk.services.ec2.ISecurityGroup> securityGroups) {
this.securityGroups = (java.util.List)securityGroups;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#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.core.Duration timeout) {
this.timeout = timeout;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#getTracing}
* @param tracing Enable AWS X-Ray Tracing for Lambda Function.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder tracing(software.amazon.awscdk.services.lambda.Tracing tracing) {
this.tracing = tracing;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#getVpc}
* @param vpc VPC network to place Lambda network interfaces.
* Specify this if the Lambda function needs to access resources in a VPC.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder vpc(software.amazon.awscdk.services.ec2.IVpc vpc) {
this.vpc = vpc;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#getVpcSubnets}
* @param vpcSubnets Where to place the network interfaces within the VPC.
* Only used if 'vpc' is supplied. Note: internet access for Lambdas
* requires a NAT gateway, so picking Public subnets is not allowed.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder vpcSubnets(software.amazon.awscdk.services.ec2.SubnetSelection vpcSubnets) {
this.vpcSubnets = vpcSubnets;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#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.core.Duration maxEventAge) {
this.maxEventAge = maxEventAge;
return this;
}
/**
* Sets the value of {@link SingletonFunctionProps#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 SingletonFunctionProps#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 SingletonFunctionProps#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;
}
/**
* Builds the configured instance.
* @return a new instance of {@link SingletonFunctionProps}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public SingletonFunctionProps build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link SingletonFunctionProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements SingletonFunctionProps {
private final java.lang.String uuid;
private final java.lang.String lambdaPurpose;
private final software.amazon.awscdk.services.lambda.Code code;
private final java.lang.String handler;
private final software.amazon.awscdk.services.lambda.Runtime runtime;
private final java.lang.Boolean allowAllOutbound;
private final java.lang.Boolean allowPublicSubnet;
private final software.amazon.awscdk.services.lambda.Architecture architecture;
private final java.util.List architectures;
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.lang.String description;
private final java.util.Map environment;
private final software.amazon.awscdk.services.kms.IKey environmentEncryption;
private final software.amazon.awscdk.core.Size ephemeralStorageSize;
private final java.util.List events;
private final software.amazon.awscdk.services.lambda.FileSystem filesystem;
private final java.lang.String functionName;
private final java.util.List initialPolicy;
private final software.amazon.awscdk.services.lambda.LambdaInsightsVersion insightsVersion;
private final java.util.List layers;
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 java.lang.Number memorySize;
private final java.lang.Boolean profiling;
private final software.amazon.awscdk.services.codeguruprofiler.IProfilingGroup profilingGroup;
private final java.lang.Number reservedConcurrentExecutions;
private final software.amazon.awscdk.services.iam.IRole role;
private final software.amazon.awscdk.services.ec2.ISecurityGroup securityGroup;
private final java.util.List securityGroups;
private final software.amazon.awscdk.core.Duration timeout;
private final software.amazon.awscdk.services.lambda.Tracing tracing;
private final software.amazon.awscdk.services.ec2.IVpc vpc;
private final software.amazon.awscdk.services.ec2.SubnetSelection vpcSubnets;
private final software.amazon.awscdk.core.Duration maxEventAge;
private final software.amazon.awscdk.services.lambda.IDestination onFailure;
private final software.amazon.awscdk.services.lambda.IDestination onSuccess;
private final java.lang.Number retryAttempts;
/**
* 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.uuid = software.amazon.jsii.Kernel.get(this, "uuid", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.lambdaPurpose = software.amazon.jsii.Kernel.get(this, "lambdaPurpose", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.code = software.amazon.jsii.Kernel.get(this, "code", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.Code.class));
this.handler = software.amazon.jsii.Kernel.get(this, "handler", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.runtime = software.amazon.jsii.Kernel.get(this, "runtime", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.Runtime.class));
this.allowAllOutbound = software.amazon.jsii.Kernel.get(this, "allowAllOutbound", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.allowPublicSubnet = software.amazon.jsii.Kernel.get(this, "allowPublicSubnet", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.architecture = software.amazon.jsii.Kernel.get(this, "architecture", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.Architecture.class));
this.architectures = software.amazon.jsii.Kernel.get(this, "architectures", software.amazon.jsii.NativeType.listOf(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.description = software.amazon.jsii.Kernel.get(this, "description", software.amazon.jsii.NativeType.forClass(java.lang.String.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.core.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.functionName = software.amazon.jsii.Kernel.get(this, "functionName", software.amazon.jsii.NativeType.forClass(java.lang.String.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.layers = software.amazon.jsii.Kernel.get(this, "layers", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.ILayerVersion.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.memorySize = software.amazon.jsii.Kernel.get(this, "memorySize", software.amazon.jsii.NativeType.forClass(java.lang.Number.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.reservedConcurrentExecutions = software.amazon.jsii.Kernel.get(this, "reservedConcurrentExecutions", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.role = software.amazon.jsii.Kernel.get(this, "role", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.iam.IRole.class));
this.securityGroup = software.amazon.jsii.Kernel.get(this, "securityGroup", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ec2.ISecurityGroup.class));
this.securityGroups = software.amazon.jsii.Kernel.get(this, "securityGroups", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ec2.ISecurityGroup.class)));
this.timeout = software.amazon.jsii.Kernel.get(this, "timeout", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.core.Duration.class));
this.tracing = software.amazon.jsii.Kernel.get(this, "tracing", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.Tracing.class));
this.vpc = software.amazon.jsii.Kernel.get(this, "vpc", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ec2.IVpc.class));
this.vpcSubnets = software.amazon.jsii.Kernel.get(this, "vpcSubnets", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ec2.SubnetSelection.class));
this.maxEventAge = software.amazon.jsii.Kernel.get(this, "maxEventAge", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.core.Duration.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.retryAttempts = software.amazon.jsii.Kernel.get(this, "retryAttempts", software.amazon.jsii.NativeType.forClass(java.lang.Number.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.uuid = java.util.Objects.requireNonNull(builder.uuid, "uuid is required");
this.lambdaPurpose = builder.lambdaPurpose;
this.code = java.util.Objects.requireNonNull(builder.code, "code is required");
this.handler = java.util.Objects.requireNonNull(builder.handler, "handler is required");
this.runtime = java.util.Objects.requireNonNull(builder.runtime, "runtime is required");
this.allowAllOutbound = builder.allowAllOutbound;
this.allowPublicSubnet = builder.allowPublicSubnet;
this.architecture = builder.architecture;
this.architectures = (java.util.List)builder.architectures;
this.codeSigningConfig = builder.codeSigningConfig;
this.currentVersionOptions = builder.currentVersionOptions;
this.deadLetterQueue = builder.deadLetterQueue;
this.deadLetterQueueEnabled = builder.deadLetterQueueEnabled;
this.deadLetterTopic = builder.deadLetterTopic;
this.description = builder.description;
this.environment = builder.environment;
this.environmentEncryption = builder.environmentEncryption;
this.ephemeralStorageSize = builder.ephemeralStorageSize;
this.events = (java.util.List)builder.events;
this.filesystem = builder.filesystem;
this.functionName = builder.functionName;
this.initialPolicy = (java.util.List)builder.initialPolicy;
this.insightsVersion = builder.insightsVersion;
this.layers = (java.util.List)builder.layers;
this.logRetention = builder.logRetention;
this.logRetentionRetryOptions = builder.logRetentionRetryOptions;
this.logRetentionRole = builder.logRetentionRole;
this.memorySize = builder.memorySize;
this.profiling = builder.profiling;
this.profilingGroup = builder.profilingGroup;
this.reservedConcurrentExecutions = builder.reservedConcurrentExecutions;
this.role = builder.role;
this.securityGroup = builder.securityGroup;
this.securityGroups = (java.util.List)builder.securityGroups;
this.timeout = builder.timeout;
this.tracing = builder.tracing;
this.vpc = builder.vpc;
this.vpcSubnets = builder.vpcSubnets;
this.maxEventAge = builder.maxEventAge;
this.onFailure = builder.onFailure;
this.onSuccess = builder.onSuccess;
this.retryAttempts = builder.retryAttempts;
}
@Override
public final java.lang.String getUuid() {
return this.uuid;
}
@Override
public final java.lang.String getLambdaPurpose() {
return this.lambdaPurpose;
}
@Override
public final software.amazon.awscdk.services.lambda.Code getCode() {
return this.code;
}
@Override
public final java.lang.String getHandler() {
return this.handler;
}
@Override
public final software.amazon.awscdk.services.lambda.Runtime getRuntime() {
return this.runtime;
}
@Override
public final java.lang.Boolean getAllowAllOutbound() {
return this.allowAllOutbound;
}
@Override
public final java.lang.Boolean getAllowPublicSubnet() {
return this.allowPublicSubnet;
}
@Override
public final software.amazon.awscdk.services.lambda.Architecture getArchitecture() {
return this.architecture;
}
@Override
public final java.util.List getArchitectures() {
return this.architectures;
}
@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.lang.String getDescription() {
return this.description;
}
@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.core.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.lang.String getFunctionName() {
return this.functionName;
}
@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.util.List getLayers() {
return this.layers;
}
@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 java.lang.Number getMemorySize() {
return this.memorySize;
}
@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 java.lang.Number getReservedConcurrentExecutions() {
return this.reservedConcurrentExecutions;
}
@Override
public final software.amazon.awscdk.services.iam.IRole getRole() {
return this.role;
}
@Override
public final software.amazon.awscdk.services.ec2.ISecurityGroup getSecurityGroup() {
return this.securityGroup;
}
@Override
public final java.util.List getSecurityGroups() {
return this.securityGroups;
}
@Override
public final software.amazon.awscdk.core.Duration getTimeout() {
return this.timeout;
}
@Override
public final software.amazon.awscdk.services.lambda.Tracing getTracing() {
return this.tracing;
}
@Override
public final software.amazon.awscdk.services.ec2.IVpc getVpc() {
return this.vpc;
}
@Override
public final software.amazon.awscdk.services.ec2.SubnetSelection getVpcSubnets() {
return this.vpcSubnets;
}
@Override
public final software.amazon.awscdk.core.Duration getMaxEventAge() {
return this.maxEventAge;
}
@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 java.lang.Number getRetryAttempts() {
return this.retryAttempts;
}
@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("uuid", om.valueToTree(this.getUuid()));
if (this.getLambdaPurpose() != null) {
data.set("lambdaPurpose", om.valueToTree(this.getLambdaPurpose()));
}
data.set("code", om.valueToTree(this.getCode()));
data.set("handler", om.valueToTree(this.getHandler()));
data.set("runtime", om.valueToTree(this.getRuntime()));
if (this.getAllowAllOutbound() != null) {
data.set("allowAllOutbound", om.valueToTree(this.getAllowAllOutbound()));
}
if (this.getAllowPublicSubnet() != null) {
data.set("allowPublicSubnet", om.valueToTree(this.getAllowPublicSubnet()));
}
if (this.getArchitecture() != null) {
data.set("architecture", om.valueToTree(this.getArchitecture()));
}
if (this.getArchitectures() != null) {
data.set("architectures", om.valueToTree(this.getArchitectures()));
}
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.getDescription() != null) {
data.set("description", om.valueToTree(this.getDescription()));
}
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.getFunctionName() != null) {
data.set("functionName", om.valueToTree(this.getFunctionName()));
}
if (this.getInitialPolicy() != null) {
data.set("initialPolicy", om.valueToTree(this.getInitialPolicy()));
}
if (this.getInsightsVersion() != null) {
data.set("insightsVersion", om.valueToTree(this.getInsightsVersion()));
}
if (this.getLayers() != null) {
data.set("layers", om.valueToTree(this.getLayers()));
}
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.getMemorySize() != null) {
data.set("memorySize", om.valueToTree(this.getMemorySize()));
}
if (this.getProfiling() != null) {
data.set("profiling", om.valueToTree(this.getProfiling()));
}
if (this.getProfilingGroup() != null) {
data.set("profilingGroup", om.valueToTree(this.getProfilingGroup()));
}
if (this.getReservedConcurrentExecutions() != null) {
data.set("reservedConcurrentExecutions", om.valueToTree(this.getReservedConcurrentExecutions()));
}
if (this.getRole() != null) {
data.set("role", om.valueToTree(this.getRole()));
}
if (this.getSecurityGroup() != null) {
data.set("securityGroup", om.valueToTree(this.getSecurityGroup()));
}
if (this.getSecurityGroups() != null) {
data.set("securityGroups", om.valueToTree(this.getSecurityGroups()));
}
if (this.getTimeout() != null) {
data.set("timeout", om.valueToTree(this.getTimeout()));
}
if (this.getTracing() != null) {
data.set("tracing", om.valueToTree(this.getTracing()));
}
if (this.getVpc() != null) {
data.set("vpc", om.valueToTree(this.getVpc()));
}
if (this.getVpcSubnets() != null) {
data.set("vpcSubnets", om.valueToTree(this.getVpcSubnets()));
}
if (this.getMaxEventAge() != null) {
data.set("maxEventAge", om.valueToTree(this.getMaxEventAge()));
}
if (this.getOnFailure() != null) {
data.set("onFailure", om.valueToTree(this.getOnFailure()));
}
if (this.getOnSuccess() != null) {
data.set("onSuccess", om.valueToTree(this.getOnSuccess()));
}
if (this.getRetryAttempts() != null) {
data.set("retryAttempts", om.valueToTree(this.getRetryAttempts()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-lambda.SingletonFunctionProps"));
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;
SingletonFunctionProps.Jsii$Proxy that = (SingletonFunctionProps.Jsii$Proxy) o;
if (!uuid.equals(that.uuid)) return false;
if (this.lambdaPurpose != null ? !this.lambdaPurpose.equals(that.lambdaPurpose) : that.lambdaPurpose != null) return false;
if (!code.equals(that.code)) return false;
if (!handler.equals(that.handler)) return false;
if (!runtime.equals(that.runtime)) return false;
if (this.allowAllOutbound != null ? !this.allowAllOutbound.equals(that.allowAllOutbound) : that.allowAllOutbound != null) return false;
if (this.allowPublicSubnet != null ? !this.allowPublicSubnet.equals(that.allowPublicSubnet) : that.allowPublicSubnet != null) return false;
if (this.architecture != null ? !this.architecture.equals(that.architecture) : that.architecture != null) return false;
if (this.architectures != null ? !this.architectures.equals(that.architectures) : that.architectures != 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.description != null ? !this.description.equals(that.description) : that.description != 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.functionName != null ? !this.functionName.equals(that.functionName) : that.functionName != 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.layers != null ? !this.layers.equals(that.layers) : that.layers != 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.memorySize != null ? !this.memorySize.equals(that.memorySize) : that.memorySize != 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.reservedConcurrentExecutions != null ? !this.reservedConcurrentExecutions.equals(that.reservedConcurrentExecutions) : that.reservedConcurrentExecutions != null) return false;
if (this.role != null ? !this.role.equals(that.role) : that.role != null) return false;
if (this.securityGroup != null ? !this.securityGroup.equals(that.securityGroup) : that.securityGroup != null) return false;
if (this.securityGroups != null ? !this.securityGroups.equals(that.securityGroups) : that.securityGroups != null) return false;
if (this.timeout != null ? !this.timeout.equals(that.timeout) : that.timeout != null) return false;
if (this.tracing != null ? !this.tracing.equals(that.tracing) : that.tracing != null) return false;
if (this.vpc != null ? !this.vpc.equals(that.vpc) : that.vpc != null) return false;
if (this.vpcSubnets != null ? !this.vpcSubnets.equals(that.vpcSubnets) : that.vpcSubnets != null) return false;
if (this.maxEventAge != null ? !this.maxEventAge.equals(that.maxEventAge) : that.maxEventAge != 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;
return this.retryAttempts != null ? this.retryAttempts.equals(that.retryAttempts) : that.retryAttempts == null;
}
@Override
public final int hashCode() {
int result = this.uuid.hashCode();
result = 31 * result + (this.lambdaPurpose != null ? this.lambdaPurpose.hashCode() : 0);
result = 31 * result + (this.code.hashCode());
result = 31 * result + (this.handler.hashCode());
result = 31 * result + (this.runtime.hashCode());
result = 31 * result + (this.allowAllOutbound != null ? this.allowAllOutbound.hashCode() : 0);
result = 31 * result + (this.allowPublicSubnet != null ? this.allowPublicSubnet.hashCode() : 0);
result = 31 * result + (this.architecture != null ? this.architecture.hashCode() : 0);
result = 31 * result + (this.architectures != null ? this.architectures.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.description != null ? this.description.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.functionName != null ? this.functionName.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.layers != null ? this.layers.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.memorySize != null ? this.memorySize.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.reservedConcurrentExecutions != null ? this.reservedConcurrentExecutions.hashCode() : 0);
result = 31 * result + (this.role != null ? this.role.hashCode() : 0);
result = 31 * result + (this.securityGroup != null ? this.securityGroup.hashCode() : 0);
result = 31 * result + (this.securityGroups != null ? this.securityGroups.hashCode() : 0);
result = 31 * result + (this.timeout != null ? this.timeout.hashCode() : 0);
result = 31 * result + (this.tracing != null ? this.tracing.hashCode() : 0);
result = 31 * result + (this.vpc != null ? this.vpc.hashCode() : 0);
result = 31 * result + (this.vpcSubnets != null ? this.vpcSubnets.hashCode() : 0);
result = 31 * result + (this.maxEventAge != null ? this.maxEventAge.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.retryAttempts != null ? this.retryAttempts.hashCode() : 0);
return result;
}
}
}