io.github.cdklabs.cdk.ecs.codedeploy.ApplicationLoadBalancedCodeDeployedFargateServiceProps Maven / Gradle / Ivy
Show all versions of cdk-ecs-codedeploy Show documentation
package io.github.cdklabs.cdk.ecs.codedeploy;
/**
* (experimental) The properties for the ApplicationLoadBalancedCodeDeployedFargateService service.
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.103.1 (build bef2dea)", date = "2024-09-13T18:16:05.251Z")
@software.amazon.jsii.Jsii(module = io.github.cdklabs.cdk.ecs.codedeploy.$Module.class, fqn = "@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateServiceProps")
@software.amazon.jsii.Jsii.Proxy(ApplicationLoadBalancedCodeDeployedFargateServiceProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public interface ApplicationLoadBalancedCodeDeployedFargateServiceProps extends software.amazon.jsii.JsiiSerializable, software.amazon.awscdk.services.ecs.patterns.ApplicationLoadBalancedFargateServiceProps {
/**
* (experimental) The bucket to use for access logs from the Application Load Balancer.
*
* Default: - a new S3 bucket will be created
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.s3.IBucket getAccessLogBucket() {
return null;
}
/**
* (experimental) The prefix to use for access logs from the Application Load Balancer.
*
* Default: - none
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.String getAccessLogPrefix() {
return null;
}
/**
* (experimental) The frequency for running the api canaries.
*
* Default: - 5 minutes
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.Duration getApiCanarySchedule() {
return null;
}
/**
* (experimental) The number of threads to run concurrently for the synthetic test.
*
* Default: - 20
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.Number getApiCanaryThreadCount() {
return null;
}
/**
* (experimental) The threshold for how long a api canary can take to run.
*
* Default: - no alarm is created for test duration
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.Duration getApiCanaryTimeout() {
return null;
}
/**
* (experimental) The steps to run in the canary.
*
* Default: - no synthetic test will be created
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.util.List getApiTestSteps() {
return null;
}
/**
* (experimental) The physical, human-readable name of the CodeDeploy Application.
*
* Default: an auto-generated name will be used
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.String getApplicationName() {
return null;
}
/**
* (experimental) The deployment configuration to use for the deployment group.
*
* Default: - EcsDeploymentConfig.ALL_AT_ONCE
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.codedeploy.IEcsDeploymentConfig getDeploymentConfig() {
return null;
}
/**
* (experimental) The physical, human-readable name of the CodeDeploy Deployment Group.
*
* Default: An auto-generated name will be used.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.String getDeploymentGroupName() {
return null;
}
/**
* (experimental) The timeout for a CodeDeploy deployment.
*
* Default: - 60 minutes
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.Duration getDeploymentTimeout() {
return null;
}
/**
* (experimental) The amount of time for ELB to wait before changing the state of a deregistering target from 'draining' to 'unused'.
*
* Default: - 300 seconds
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.Duration getDeregistrationDelay() {
return null;
}
/**
* (experimental) Optional lifecycle hooks.
*
* Default: - no lifecycle hooks
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable io.github.cdklabs.cdk.ecs.codedeploy.AppSpecHooks getHooks() {
return null;
}
/**
* (experimental) The threshold for response time alarm.
*
* Default: - no alarm will be created
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.Duration getResponseTimeAlarmThreshold() {
return null;
}
/**
* (experimental) The healthcheck to configure on the Application Load Balancer target groups.
*
* Default: - no health check is configured
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.elasticloadbalancingv2.HealthCheck getTargetHealthCheck() {
return null;
}
/**
* (experimental) The time to wait before terminating the original (blue) task set.
*
* Default: - 10 minutes
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.Duration getTerminationWaitTime() {
return null;
}
/**
* (experimental) The port to use for test traffic on the listener.
*
* Default: - listenerPort + 1
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.Number getTestPort() {
return null;
}
/**
* @return a {@link Builder} of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public static final class Builder implements software.amazon.jsii.Builder {
software.amazon.awscdk.services.s3.IBucket accessLogBucket;
java.lang.String accessLogPrefix;
software.amazon.awscdk.Duration apiCanarySchedule;
java.lang.Number apiCanaryThreadCount;
software.amazon.awscdk.Duration apiCanaryTimeout;
java.util.List apiTestSteps;
java.lang.String applicationName;
software.amazon.awscdk.services.codedeploy.IEcsDeploymentConfig deploymentConfig;
java.lang.String deploymentGroupName;
software.amazon.awscdk.Duration deploymentTimeout;
software.amazon.awscdk.Duration deregistrationDelay;
io.github.cdklabs.cdk.ecs.codedeploy.AppSpecHooks hooks;
software.amazon.awscdk.Duration responseTimeAlarmThreshold;
software.amazon.awscdk.services.elasticloadbalancingv2.HealthCheck targetHealthCheck;
software.amazon.awscdk.Duration terminationWaitTime;
java.lang.Number testPort;
java.lang.Boolean assignPublicIp;
software.amazon.awscdk.services.ecs.HealthCheck healthCheck;
java.util.List securityGroups;
software.amazon.awscdk.services.ec2.SubnetSelection taskSubnets;
java.util.List capacityProviderStrategies;
software.amazon.awscdk.services.certificatemanager.ICertificate certificate;
software.amazon.awscdk.services.ecs.DeploymentCircuitBreaker circuitBreaker;
software.amazon.awscdk.services.ecs.CloudMapOptions cloudMapOptions;
software.amazon.awscdk.services.ecs.ICluster cluster;
software.amazon.awscdk.services.ecs.DeploymentController deploymentController;
java.lang.Number desiredCount;
java.lang.String domainName;
software.amazon.awscdk.services.route53.IHostedZone domainZone;
java.lang.Boolean enableEcsManagedTags;
java.lang.Boolean enableExecuteCommand;
software.amazon.awscdk.Duration healthCheckGracePeriod;
software.amazon.awscdk.Duration idleTimeout;
java.lang.Number listenerPort;
software.amazon.awscdk.services.elasticloadbalancingv2.IApplicationLoadBalancer loadBalancer;
java.lang.String loadBalancerName;
java.lang.Number maxHealthyPercent;
java.lang.Number minHealthyPercent;
java.lang.Boolean openListener;
software.amazon.awscdk.services.ecs.PropagatedTagSource propagateTags;
software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationProtocol protocol;
software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationProtocolVersion protocolVersion;
java.lang.Boolean publicLoadBalancer;
software.amazon.awscdk.services.ecs.patterns.ApplicationLoadBalancedServiceRecordType recordType;
java.lang.Boolean redirectHttp;
java.lang.String serviceName;
software.amazon.awscdk.services.elasticloadbalancingv2.SslPolicy sslPolicy;
software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationProtocol targetProtocol;
software.amazon.awscdk.services.ecs.patterns.ApplicationLoadBalancedTaskImageOptions taskImageOptions;
software.amazon.awscdk.services.ec2.IVpc vpc;
java.lang.Number cpu;
java.lang.Number ephemeralStorageGiB;
java.lang.Number memoryLimitMiB;
software.amazon.awscdk.services.ecs.FargatePlatformVersion platformVersion;
software.amazon.awscdk.services.ecs.RuntimePlatform runtimePlatform;
software.amazon.awscdk.services.ecs.FargateTaskDefinition taskDefinition;
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getAccessLogBucket}
* @param accessLogBucket The bucket to use for access logs from the Application Load Balancer.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder accessLogBucket(software.amazon.awscdk.services.s3.IBucket accessLogBucket) {
this.accessLogBucket = accessLogBucket;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getAccessLogPrefix}
* @param accessLogPrefix The prefix to use for access logs from the Application Load Balancer.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder accessLogPrefix(java.lang.String accessLogPrefix) {
this.accessLogPrefix = accessLogPrefix;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getApiCanarySchedule}
* @param apiCanarySchedule The frequency for running the api canaries.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder apiCanarySchedule(software.amazon.awscdk.Duration apiCanarySchedule) {
this.apiCanarySchedule = apiCanarySchedule;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getApiCanaryThreadCount}
* @param apiCanaryThreadCount The number of threads to run concurrently for the synthetic test.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder apiCanaryThreadCount(java.lang.Number apiCanaryThreadCount) {
this.apiCanaryThreadCount = apiCanaryThreadCount;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getApiCanaryTimeout}
* @param apiCanaryTimeout The threshold for how long a api canary can take to run.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder apiCanaryTimeout(software.amazon.awscdk.Duration apiCanaryTimeout) {
this.apiCanaryTimeout = apiCanaryTimeout;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getApiTestSteps}
* @param apiTestSteps The steps to run in the canary.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@SuppressWarnings("unchecked")
public Builder apiTestSteps(java.util.List extends io.github.cdklabs.cdk.ecs.codedeploy.ApiTestStep> apiTestSteps) {
this.apiTestSteps = (java.util.List)apiTestSteps;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getApplicationName}
* @param applicationName The physical, human-readable name of the CodeDeploy Application.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder applicationName(java.lang.String applicationName) {
this.applicationName = applicationName;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getDeploymentConfig}
* @param deploymentConfig The deployment configuration to use for the deployment group.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder deploymentConfig(software.amazon.awscdk.services.codedeploy.IEcsDeploymentConfig deploymentConfig) {
this.deploymentConfig = deploymentConfig;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getDeploymentGroupName}
* @param deploymentGroupName The physical, human-readable name of the CodeDeploy Deployment Group.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder deploymentGroupName(java.lang.String deploymentGroupName) {
this.deploymentGroupName = deploymentGroupName;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getDeploymentTimeout}
* @param deploymentTimeout The timeout for a CodeDeploy deployment.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder deploymentTimeout(software.amazon.awscdk.Duration deploymentTimeout) {
this.deploymentTimeout = deploymentTimeout;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getDeregistrationDelay}
* @param deregistrationDelay The amount of time for ELB to wait before changing the state of a deregistering target from 'draining' to 'unused'.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder deregistrationDelay(software.amazon.awscdk.Duration deregistrationDelay) {
this.deregistrationDelay = deregistrationDelay;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getHooks}
* @param hooks Optional lifecycle hooks.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder hooks(io.github.cdklabs.cdk.ecs.codedeploy.AppSpecHooks hooks) {
this.hooks = hooks;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getResponseTimeAlarmThreshold}
* @param responseTimeAlarmThreshold The threshold for response time alarm.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder responseTimeAlarmThreshold(software.amazon.awscdk.Duration responseTimeAlarmThreshold) {
this.responseTimeAlarmThreshold = responseTimeAlarmThreshold;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getTargetHealthCheck}
* @param targetHealthCheck The healthcheck to configure on the Application Load Balancer target groups.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder targetHealthCheck(software.amazon.awscdk.services.elasticloadbalancingv2.HealthCheck targetHealthCheck) {
this.targetHealthCheck = targetHealthCheck;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getTerminationWaitTime}
* @param terminationWaitTime The time to wait before terminating the original (blue) task set.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder terminationWaitTime(software.amazon.awscdk.Duration terminationWaitTime) {
this.terminationWaitTime = terminationWaitTime;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getTestPort}
* @param testPort The port to use for test traffic on the listener.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder testPort(java.lang.Number testPort) {
this.testPort = testPort;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getAssignPublicIp}
* @param assignPublicIp Determines whether the service will be assigned a public IP address.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder assignPublicIp(java.lang.Boolean assignPublicIp) {
this.assignPublicIp = assignPublicIp;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getHealthCheck}
* @param healthCheck The health check command and associated configuration parameters for the container.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder healthCheck(software.amazon.awscdk.services.ecs.HealthCheck healthCheck) {
this.healthCheck = healthCheck;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getSecurityGroups}
* @param securityGroups The security groups to associate with the service.
* If you do not specify a security group, a new security group is created.
* @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 ApplicationLoadBalancedCodeDeployedFargateServiceProps#getTaskSubnets}
* @param taskSubnets The subnets to associate with the service.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder taskSubnets(software.amazon.awscdk.services.ec2.SubnetSelection taskSubnets) {
this.taskSubnets = taskSubnets;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getCapacityProviderStrategies}
* @param capacityProviderStrategies A list of Capacity Provider strategies used to place a service.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@SuppressWarnings("unchecked")
public Builder capacityProviderStrategies(java.util.List extends software.amazon.awscdk.services.ecs.CapacityProviderStrategy> capacityProviderStrategies) {
this.capacityProviderStrategies = (java.util.List)capacityProviderStrategies;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getCertificate}
* @param certificate Certificate Manager certificate to associate with the load balancer.
* Setting this option will set the load balancer protocol to HTTPS.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder certificate(software.amazon.awscdk.services.certificatemanager.ICertificate certificate) {
this.certificate = certificate;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getCircuitBreaker}
* @param circuitBreaker Whether to enable the deployment circuit breaker.
* If this property is defined, circuit breaker will be implicitly
* enabled.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder circuitBreaker(software.amazon.awscdk.services.ecs.DeploymentCircuitBreaker circuitBreaker) {
this.circuitBreaker = circuitBreaker;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getCloudMapOptions}
* @param cloudMapOptions The options for configuring an Amazon ECS service to use service discovery.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder cloudMapOptions(software.amazon.awscdk.services.ecs.CloudMapOptions cloudMapOptions) {
this.cloudMapOptions = cloudMapOptions;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getCluster}
* @param cluster The name of the cluster that hosts the service.
* If a cluster is specified, the vpc construct should be omitted. Alternatively, you can omit both cluster and vpc.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder cluster(software.amazon.awscdk.services.ecs.ICluster cluster) {
this.cluster = cluster;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getDeploymentController}
* @param deploymentController Specifies which deployment controller to use for the service.
* For more information, see
* Amazon ECS Deployment Types
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder deploymentController(software.amazon.awscdk.services.ecs.DeploymentController deploymentController) {
this.deploymentController = deploymentController;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getDesiredCount}
* @param desiredCount The desired number of instantiations of the task definition to keep running on the service.
* The minimum value is 1
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder desiredCount(java.lang.Number desiredCount) {
this.desiredCount = desiredCount;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getDomainName}
* @param domainName The domain name for the service, e.g. "api.example.com.".
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder domainName(java.lang.String domainName) {
this.domainName = domainName;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getDomainZone}
* @param domainZone The Route53 hosted zone for the domain, e.g. "example.com.".
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder domainZone(software.amazon.awscdk.services.route53.IHostedZone domainZone) {
this.domainZone = domainZone;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getEnableEcsManagedTags}
* @param enableEcsManagedTags Specifies whether to enable Amazon ECS managed tags for the tasks within the service.
* For more information, see
* Tagging Your Amazon ECS Resources
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder enableEcsManagedTags(java.lang.Boolean enableEcsManagedTags) {
this.enableEcsManagedTags = enableEcsManagedTags;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getEnableExecuteCommand}
* @param enableExecuteCommand Whether ECS Exec should be enabled.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder enableExecuteCommand(java.lang.Boolean enableExecuteCommand) {
this.enableExecuteCommand = enableExecuteCommand;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getHealthCheckGracePeriod}
* @param healthCheckGracePeriod The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder healthCheckGracePeriod(software.amazon.awscdk.Duration healthCheckGracePeriod) {
this.healthCheckGracePeriod = healthCheckGracePeriod;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getIdleTimeout}
* @param idleTimeout The load balancer idle timeout, in seconds.
* Can be between 1 and 4000 seconds
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder idleTimeout(software.amazon.awscdk.Duration idleTimeout) {
this.idleTimeout = idleTimeout;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getListenerPort}
* @param listenerPort Listener port of the application load balancer that will serve traffic to the service.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder listenerPort(java.lang.Number listenerPort) {
this.listenerPort = listenerPort;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getLoadBalancer}
* @param loadBalancer The application load balancer that will serve traffic to the service.
* The VPC attribute of a load balancer must be specified for it to be used
* to create a new service with this pattern.
*
* [disable-awslint:ref-via-interface]
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder loadBalancer(software.amazon.awscdk.services.elasticloadbalancingv2.IApplicationLoadBalancer loadBalancer) {
this.loadBalancer = loadBalancer;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getLoadBalancerName}
* @param loadBalancerName Name of the load balancer.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder loadBalancerName(java.lang.String loadBalancerName) {
this.loadBalancerName = loadBalancerName;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getMaxHealthyPercent}
* @param maxHealthyPercent The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder maxHealthyPercent(java.lang.Number maxHealthyPercent) {
this.maxHealthyPercent = maxHealthyPercent;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getMinHealthyPercent}
* @param minHealthyPercent The minimum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that must continue to run and remain healthy during a deployment.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder minHealthyPercent(java.lang.Number minHealthyPercent) {
this.minHealthyPercent = minHealthyPercent;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getOpenListener}
* @param openListener Determines whether or not the Security Group for the Load Balancer's Listener will be open to all traffic by default.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder openListener(java.lang.Boolean openListener) {
this.openListener = openListener;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getPropagateTags}
* @param propagateTags Specifies whether to propagate the tags from the task definition or the service to the tasks in the service.
* Tags can only be propagated to the tasks within the service during service creation.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder propagateTags(software.amazon.awscdk.services.ecs.PropagatedTagSource propagateTags) {
this.propagateTags = propagateTags;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getProtocol}
* @param protocol The protocol for connections from clients to the load balancer.
* The load balancer port is determined from the protocol (port 80 for
* HTTP, port 443 for HTTPS). If HTTPS, either a certificate or domain
* name and domain zone must also be specified.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder protocol(software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationProtocol protocol) {
this.protocol = protocol;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getProtocolVersion}
* @param protocolVersion The protocol version to use.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder protocolVersion(software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationProtocolVersion protocolVersion) {
this.protocolVersion = protocolVersion;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getPublicLoadBalancer}
* @param publicLoadBalancer Determines whether the Load Balancer will be internet-facing.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder publicLoadBalancer(java.lang.Boolean publicLoadBalancer) {
this.publicLoadBalancer = publicLoadBalancer;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getRecordType}
* @param recordType Specifies whether the Route53 record should be a CNAME, an A record using the Alias feature or no record at all.
* This is useful if you need to work with DNS systems that do not support alias records.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder recordType(software.amazon.awscdk.services.ecs.patterns.ApplicationLoadBalancedServiceRecordType recordType) {
this.recordType = recordType;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getRedirectHttp}
* @param redirectHttp Specifies whether the load balancer should redirect traffic on port 80 to port 443 to support HTTP->HTTPS redirects This is only valid if the protocol of the ALB is HTTPS.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder redirectHttp(java.lang.Boolean redirectHttp) {
this.redirectHttp = redirectHttp;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getServiceName}
* @param serviceName The name of the service.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder serviceName(java.lang.String serviceName) {
this.serviceName = serviceName;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getSslPolicy}
* @param sslPolicy The security policy that defines which ciphers and protocols are supported by the ALB Listener.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder sslPolicy(software.amazon.awscdk.services.elasticloadbalancingv2.SslPolicy sslPolicy) {
this.sslPolicy = sslPolicy;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getTargetProtocol}
* @param targetProtocol The protocol for connections from the load balancer to the ECS tasks.
* The default target port is determined from the protocol (port 80 for
* HTTP, port 443 for HTTPS).
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder targetProtocol(software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationProtocol targetProtocol) {
this.targetProtocol = targetProtocol;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getTaskImageOptions}
* @param taskImageOptions The properties required to create a new task definition.
* TaskDefinition or TaskImageOptions must be specified, but not both.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder taskImageOptions(software.amazon.awscdk.services.ecs.patterns.ApplicationLoadBalancedTaskImageOptions taskImageOptions) {
this.taskImageOptions = taskImageOptions;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getVpc}
* @param vpc The VPC where the container instances will be launched or the elastic network interfaces (ENIs) will be deployed.
* If a vpc is specified, the cluster construct should be omitted. Alternatively, you can omit both vpc and cluster.
* @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 ApplicationLoadBalancedCodeDeployedFargateServiceProps#getCpu}
* @param cpu The number of cpu units used by the task.
* Valid values, which determines your range of valid values for the memory parameter:
*
* 256 (.25 vCPU) - Available memory values: 0.5GB, 1GB, 2GB
*
* 512 (.5 vCPU) - Available memory values: 1GB, 2GB, 3GB, 4GB
*
* 1024 (1 vCPU) - Available memory values: 2GB, 3GB, 4GB, 5GB, 6GB, 7GB, 8GB
*
* 2048 (2 vCPU) - Available memory values: Between 4GB and 16GB in 1GB increments
*
* 4096 (4 vCPU) - Available memory values: Between 8GB and 30GB in 1GB increments
*
* 8192 (8 vCPU) - Available memory values: Between 16GB and 60GB in 4GB increments
*
* 16384 (16 vCPU) - Available memory values: Between 32GB and 120GB in 8GB increments
*
* This default is set in the underlying FargateTaskDefinition construct.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder cpu(java.lang.Number cpu) {
this.cpu = cpu;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getEphemeralStorageGiB}
* @param ephemeralStorageGiB The amount (in GiB) of ephemeral storage to be allocated to the task.
* The minimum supported value is 21
GiB and the maximum supported value is 200
GiB.
*
* Only supported in Fargate platform version 1.4.0 or later.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder ephemeralStorageGiB(java.lang.Number ephemeralStorageGiB) {
this.ephemeralStorageGiB = ephemeralStorageGiB;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getMemoryLimitMiB}
* @param memoryLimitMiB The amount (in MiB) of memory used by the task.
* This field is required and you must use one of the following values, which determines your range of valid values
* for the cpu parameter:
*
* 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)
*
* 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)
*
* 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
*
* Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)
*
* Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)
*
* Between 16384 (16 GB) and 61440 (60 GB) in increments of 4096 (4 GB) - Available cpu values: 8192 (8 vCPU)
*
* Between 32768 (32 GB) and 122880 (120 GB) in increments of 8192 (8 GB) - Available cpu values: 16384 (16 vCPU)
*
* This default is set in the underlying FargateTaskDefinition construct.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder memoryLimitMiB(java.lang.Number memoryLimitMiB) {
this.memoryLimitMiB = memoryLimitMiB;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getPlatformVersion}
* @param platformVersion The platform version on which to run your service.
* If one is not specified, the LATEST platform version is used by default. For more information, see
* AWS Fargate Platform Versions
* in the Amazon Elastic Container Service Developer Guide.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder platformVersion(software.amazon.awscdk.services.ecs.FargatePlatformVersion platformVersion) {
this.platformVersion = platformVersion;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getRuntimePlatform}
* @param runtimePlatform The runtime platform of the task definition.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder runtimePlatform(software.amazon.awscdk.services.ecs.RuntimePlatform runtimePlatform) {
this.runtimePlatform = runtimePlatform;
return this;
}
/**
* Sets the value of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps#getTaskDefinition}
* @param taskDefinition The task definition to use for tasks in the service. TaskDefinition or TaskImageOptions must be specified, but not both.
* [disable-awslint:ref-via-interface]
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder taskDefinition(software.amazon.awscdk.services.ecs.FargateTaskDefinition taskDefinition) {
this.taskDefinition = taskDefinition;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@Override
public ApplicationLoadBalancedCodeDeployedFargateServiceProps build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link ApplicationLoadBalancedCodeDeployedFargateServiceProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements ApplicationLoadBalancedCodeDeployedFargateServiceProps {
private final software.amazon.awscdk.services.s3.IBucket accessLogBucket;
private final java.lang.String accessLogPrefix;
private final software.amazon.awscdk.Duration apiCanarySchedule;
private final java.lang.Number apiCanaryThreadCount;
private final software.amazon.awscdk.Duration apiCanaryTimeout;
private final java.util.List apiTestSteps;
private final java.lang.String applicationName;
private final software.amazon.awscdk.services.codedeploy.IEcsDeploymentConfig deploymentConfig;
private final java.lang.String deploymentGroupName;
private final software.amazon.awscdk.Duration deploymentTimeout;
private final software.amazon.awscdk.Duration deregistrationDelay;
private final io.github.cdklabs.cdk.ecs.codedeploy.AppSpecHooks hooks;
private final software.amazon.awscdk.Duration responseTimeAlarmThreshold;
private final software.amazon.awscdk.services.elasticloadbalancingv2.HealthCheck targetHealthCheck;
private final software.amazon.awscdk.Duration terminationWaitTime;
private final java.lang.Number testPort;
private final java.lang.Boolean assignPublicIp;
private final software.amazon.awscdk.services.ecs.HealthCheck healthCheck;
private final java.util.List securityGroups;
private final software.amazon.awscdk.services.ec2.SubnetSelection taskSubnets;
private final java.util.List capacityProviderStrategies;
private final software.amazon.awscdk.services.certificatemanager.ICertificate certificate;
private final software.amazon.awscdk.services.ecs.DeploymentCircuitBreaker circuitBreaker;
private final software.amazon.awscdk.services.ecs.CloudMapOptions cloudMapOptions;
private final software.amazon.awscdk.services.ecs.ICluster cluster;
private final software.amazon.awscdk.services.ecs.DeploymentController deploymentController;
private final java.lang.Number desiredCount;
private final java.lang.String domainName;
private final software.amazon.awscdk.services.route53.IHostedZone domainZone;
private final java.lang.Boolean enableEcsManagedTags;
private final java.lang.Boolean enableExecuteCommand;
private final software.amazon.awscdk.Duration healthCheckGracePeriod;
private final software.amazon.awscdk.Duration idleTimeout;
private final java.lang.Number listenerPort;
private final software.amazon.awscdk.services.elasticloadbalancingv2.IApplicationLoadBalancer loadBalancer;
private final java.lang.String loadBalancerName;
private final java.lang.Number maxHealthyPercent;
private final java.lang.Number minHealthyPercent;
private final java.lang.Boolean openListener;
private final software.amazon.awscdk.services.ecs.PropagatedTagSource propagateTags;
private final software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationProtocol protocol;
private final software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationProtocolVersion protocolVersion;
private final java.lang.Boolean publicLoadBalancer;
private final software.amazon.awscdk.services.ecs.patterns.ApplicationLoadBalancedServiceRecordType recordType;
private final java.lang.Boolean redirectHttp;
private final java.lang.String serviceName;
private final software.amazon.awscdk.services.elasticloadbalancingv2.SslPolicy sslPolicy;
private final software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationProtocol targetProtocol;
private final software.amazon.awscdk.services.ecs.patterns.ApplicationLoadBalancedTaskImageOptions taskImageOptions;
private final software.amazon.awscdk.services.ec2.IVpc vpc;
private final java.lang.Number cpu;
private final java.lang.Number ephemeralStorageGiB;
private final java.lang.Number memoryLimitMiB;
private final software.amazon.awscdk.services.ecs.FargatePlatformVersion platformVersion;
private final software.amazon.awscdk.services.ecs.RuntimePlatform runtimePlatform;
private final software.amazon.awscdk.services.ecs.FargateTaskDefinition taskDefinition;
/**
* 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.accessLogBucket = software.amazon.jsii.Kernel.get(this, "accessLogBucket", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.s3.IBucket.class));
this.accessLogPrefix = software.amazon.jsii.Kernel.get(this, "accessLogPrefix", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.apiCanarySchedule = software.amazon.jsii.Kernel.get(this, "apiCanarySchedule", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.Duration.class));
this.apiCanaryThreadCount = software.amazon.jsii.Kernel.get(this, "apiCanaryThreadCount", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.apiCanaryTimeout = software.amazon.jsii.Kernel.get(this, "apiCanaryTimeout", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.Duration.class));
this.apiTestSteps = software.amazon.jsii.Kernel.get(this, "apiTestSteps", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(io.github.cdklabs.cdk.ecs.codedeploy.ApiTestStep.class)));
this.applicationName = software.amazon.jsii.Kernel.get(this, "applicationName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.deploymentConfig = software.amazon.jsii.Kernel.get(this, "deploymentConfig", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.codedeploy.IEcsDeploymentConfig.class));
this.deploymentGroupName = software.amazon.jsii.Kernel.get(this, "deploymentGroupName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.deploymentTimeout = software.amazon.jsii.Kernel.get(this, "deploymentTimeout", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.Duration.class));
this.deregistrationDelay = software.amazon.jsii.Kernel.get(this, "deregistrationDelay", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.Duration.class));
this.hooks = software.amazon.jsii.Kernel.get(this, "hooks", software.amazon.jsii.NativeType.forClass(io.github.cdklabs.cdk.ecs.codedeploy.AppSpecHooks.class));
this.responseTimeAlarmThreshold = software.amazon.jsii.Kernel.get(this, "responseTimeAlarmThreshold", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.Duration.class));
this.targetHealthCheck = software.amazon.jsii.Kernel.get(this, "targetHealthCheck", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.elasticloadbalancingv2.HealthCheck.class));
this.terminationWaitTime = software.amazon.jsii.Kernel.get(this, "terminationWaitTime", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.Duration.class));
this.testPort = software.amazon.jsii.Kernel.get(this, "testPort", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.assignPublicIp = software.amazon.jsii.Kernel.get(this, "assignPublicIp", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.healthCheck = software.amazon.jsii.Kernel.get(this, "healthCheck", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ecs.HealthCheck.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.taskSubnets = software.amazon.jsii.Kernel.get(this, "taskSubnets", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ec2.SubnetSelection.class));
this.capacityProviderStrategies = software.amazon.jsii.Kernel.get(this, "capacityProviderStrategies", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ecs.CapacityProviderStrategy.class)));
this.certificate = software.amazon.jsii.Kernel.get(this, "certificate", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.certificatemanager.ICertificate.class));
this.circuitBreaker = software.amazon.jsii.Kernel.get(this, "circuitBreaker", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ecs.DeploymentCircuitBreaker.class));
this.cloudMapOptions = software.amazon.jsii.Kernel.get(this, "cloudMapOptions", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ecs.CloudMapOptions.class));
this.cluster = software.amazon.jsii.Kernel.get(this, "cluster", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ecs.ICluster.class));
this.deploymentController = software.amazon.jsii.Kernel.get(this, "deploymentController", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ecs.DeploymentController.class));
this.desiredCount = software.amazon.jsii.Kernel.get(this, "desiredCount", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.domainName = software.amazon.jsii.Kernel.get(this, "domainName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.domainZone = software.amazon.jsii.Kernel.get(this, "domainZone", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.route53.IHostedZone.class));
this.enableEcsManagedTags = software.amazon.jsii.Kernel.get(this, "enableECSManagedTags", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.enableExecuteCommand = software.amazon.jsii.Kernel.get(this, "enableExecuteCommand", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.healthCheckGracePeriod = software.amazon.jsii.Kernel.get(this, "healthCheckGracePeriod", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.Duration.class));
this.idleTimeout = software.amazon.jsii.Kernel.get(this, "idleTimeout", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.Duration.class));
this.listenerPort = software.amazon.jsii.Kernel.get(this, "listenerPort", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.loadBalancer = software.amazon.jsii.Kernel.get(this, "loadBalancer", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.elasticloadbalancingv2.IApplicationLoadBalancer.class));
this.loadBalancerName = software.amazon.jsii.Kernel.get(this, "loadBalancerName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.maxHealthyPercent = software.amazon.jsii.Kernel.get(this, "maxHealthyPercent", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.minHealthyPercent = software.amazon.jsii.Kernel.get(this, "minHealthyPercent", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.openListener = software.amazon.jsii.Kernel.get(this, "openListener", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.propagateTags = software.amazon.jsii.Kernel.get(this, "propagateTags", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ecs.PropagatedTagSource.class));
this.protocol = software.amazon.jsii.Kernel.get(this, "protocol", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationProtocol.class));
this.protocolVersion = software.amazon.jsii.Kernel.get(this, "protocolVersion", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationProtocolVersion.class));
this.publicLoadBalancer = software.amazon.jsii.Kernel.get(this, "publicLoadBalancer", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.recordType = software.amazon.jsii.Kernel.get(this, "recordType", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ecs.patterns.ApplicationLoadBalancedServiceRecordType.class));
this.redirectHttp = software.amazon.jsii.Kernel.get(this, "redirectHTTP", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.serviceName = software.amazon.jsii.Kernel.get(this, "serviceName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.sslPolicy = software.amazon.jsii.Kernel.get(this, "sslPolicy", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.elasticloadbalancingv2.SslPolicy.class));
this.targetProtocol = software.amazon.jsii.Kernel.get(this, "targetProtocol", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationProtocol.class));
this.taskImageOptions = software.amazon.jsii.Kernel.get(this, "taskImageOptions", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ecs.patterns.ApplicationLoadBalancedTaskImageOptions.class));
this.vpc = software.amazon.jsii.Kernel.get(this, "vpc", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ec2.IVpc.class));
this.cpu = software.amazon.jsii.Kernel.get(this, "cpu", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.ephemeralStorageGiB = software.amazon.jsii.Kernel.get(this, "ephemeralStorageGiB", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.memoryLimitMiB = software.amazon.jsii.Kernel.get(this, "memoryLimitMiB", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.platformVersion = software.amazon.jsii.Kernel.get(this, "platformVersion", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ecs.FargatePlatformVersion.class));
this.runtimePlatform = software.amazon.jsii.Kernel.get(this, "runtimePlatform", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ecs.RuntimePlatform.class));
this.taskDefinition = software.amazon.jsii.Kernel.get(this, "taskDefinition", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ecs.FargateTaskDefinition.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.accessLogBucket = builder.accessLogBucket;
this.accessLogPrefix = builder.accessLogPrefix;
this.apiCanarySchedule = builder.apiCanarySchedule;
this.apiCanaryThreadCount = builder.apiCanaryThreadCount;
this.apiCanaryTimeout = builder.apiCanaryTimeout;
this.apiTestSteps = (java.util.List)builder.apiTestSteps;
this.applicationName = builder.applicationName;
this.deploymentConfig = builder.deploymentConfig;
this.deploymentGroupName = builder.deploymentGroupName;
this.deploymentTimeout = builder.deploymentTimeout;
this.deregistrationDelay = builder.deregistrationDelay;
this.hooks = builder.hooks;
this.responseTimeAlarmThreshold = builder.responseTimeAlarmThreshold;
this.targetHealthCheck = builder.targetHealthCheck;
this.terminationWaitTime = builder.terminationWaitTime;
this.testPort = builder.testPort;
this.assignPublicIp = builder.assignPublicIp;
this.healthCheck = builder.healthCheck;
this.securityGroups = (java.util.List)builder.securityGroups;
this.taskSubnets = builder.taskSubnets;
this.capacityProviderStrategies = (java.util.List)builder.capacityProviderStrategies;
this.certificate = builder.certificate;
this.circuitBreaker = builder.circuitBreaker;
this.cloudMapOptions = builder.cloudMapOptions;
this.cluster = builder.cluster;
this.deploymentController = builder.deploymentController;
this.desiredCount = builder.desiredCount;
this.domainName = builder.domainName;
this.domainZone = builder.domainZone;
this.enableEcsManagedTags = builder.enableEcsManagedTags;
this.enableExecuteCommand = builder.enableExecuteCommand;
this.healthCheckGracePeriod = builder.healthCheckGracePeriod;
this.idleTimeout = builder.idleTimeout;
this.listenerPort = builder.listenerPort;
this.loadBalancer = builder.loadBalancer;
this.loadBalancerName = builder.loadBalancerName;
this.maxHealthyPercent = builder.maxHealthyPercent;
this.minHealthyPercent = builder.minHealthyPercent;
this.openListener = builder.openListener;
this.propagateTags = builder.propagateTags;
this.protocol = builder.protocol;
this.protocolVersion = builder.protocolVersion;
this.publicLoadBalancer = builder.publicLoadBalancer;
this.recordType = builder.recordType;
this.redirectHttp = builder.redirectHttp;
this.serviceName = builder.serviceName;
this.sslPolicy = builder.sslPolicy;
this.targetProtocol = builder.targetProtocol;
this.taskImageOptions = builder.taskImageOptions;
this.vpc = builder.vpc;
this.cpu = builder.cpu;
this.ephemeralStorageGiB = builder.ephemeralStorageGiB;
this.memoryLimitMiB = builder.memoryLimitMiB;
this.platformVersion = builder.platformVersion;
this.runtimePlatform = builder.runtimePlatform;
this.taskDefinition = builder.taskDefinition;
}
@Override
public final software.amazon.awscdk.services.s3.IBucket getAccessLogBucket() {
return this.accessLogBucket;
}
@Override
public final java.lang.String getAccessLogPrefix() {
return this.accessLogPrefix;
}
@Override
public final software.amazon.awscdk.Duration getApiCanarySchedule() {
return this.apiCanarySchedule;
}
@Override
public final java.lang.Number getApiCanaryThreadCount() {
return this.apiCanaryThreadCount;
}
@Override
public final software.amazon.awscdk.Duration getApiCanaryTimeout() {
return this.apiCanaryTimeout;
}
@Override
public final java.util.List getApiTestSteps() {
return this.apiTestSteps;
}
@Override
public final java.lang.String getApplicationName() {
return this.applicationName;
}
@Override
public final software.amazon.awscdk.services.codedeploy.IEcsDeploymentConfig getDeploymentConfig() {
return this.deploymentConfig;
}
@Override
public final java.lang.String getDeploymentGroupName() {
return this.deploymentGroupName;
}
@Override
public final software.amazon.awscdk.Duration getDeploymentTimeout() {
return this.deploymentTimeout;
}
@Override
public final software.amazon.awscdk.Duration getDeregistrationDelay() {
return this.deregistrationDelay;
}
@Override
public final io.github.cdklabs.cdk.ecs.codedeploy.AppSpecHooks getHooks() {
return this.hooks;
}
@Override
public final software.amazon.awscdk.Duration getResponseTimeAlarmThreshold() {
return this.responseTimeAlarmThreshold;
}
@Override
public final software.amazon.awscdk.services.elasticloadbalancingv2.HealthCheck getTargetHealthCheck() {
return this.targetHealthCheck;
}
@Override
public final software.amazon.awscdk.Duration getTerminationWaitTime() {
return this.terminationWaitTime;
}
@Override
public final java.lang.Number getTestPort() {
return this.testPort;
}
@Override
public final java.lang.Boolean getAssignPublicIp() {
return this.assignPublicIp;
}
@Override
public final software.amazon.awscdk.services.ecs.HealthCheck getHealthCheck() {
return this.healthCheck;
}
@Override
public final java.util.List getSecurityGroups() {
return this.securityGroups;
}
@Override
public final software.amazon.awscdk.services.ec2.SubnetSelection getTaskSubnets() {
return this.taskSubnets;
}
@Override
public final java.util.List getCapacityProviderStrategies() {
return this.capacityProviderStrategies;
}
@Override
public final software.amazon.awscdk.services.certificatemanager.ICertificate getCertificate() {
return this.certificate;
}
@Override
public final software.amazon.awscdk.services.ecs.DeploymentCircuitBreaker getCircuitBreaker() {
return this.circuitBreaker;
}
@Override
public final software.amazon.awscdk.services.ecs.CloudMapOptions getCloudMapOptions() {
return this.cloudMapOptions;
}
@Override
public final software.amazon.awscdk.services.ecs.ICluster getCluster() {
return this.cluster;
}
@Override
public final software.amazon.awscdk.services.ecs.DeploymentController getDeploymentController() {
return this.deploymentController;
}
@Override
public final java.lang.Number getDesiredCount() {
return this.desiredCount;
}
@Override
public final java.lang.String getDomainName() {
return this.domainName;
}
@Override
public final software.amazon.awscdk.services.route53.IHostedZone getDomainZone() {
return this.domainZone;
}
@Override
public final java.lang.Boolean getEnableECSManagedTags() {
return this.enableEcsManagedTags;
}
@Override
public final java.lang.Boolean getEnableExecuteCommand() {
return this.enableExecuteCommand;
}
@Override
public final software.amazon.awscdk.Duration getHealthCheckGracePeriod() {
return this.healthCheckGracePeriod;
}
@Override
public final software.amazon.awscdk.Duration getIdleTimeout() {
return this.idleTimeout;
}
@Override
public final java.lang.Number getListenerPort() {
return this.listenerPort;
}
@Override
public final software.amazon.awscdk.services.elasticloadbalancingv2.IApplicationLoadBalancer getLoadBalancer() {
return this.loadBalancer;
}
@Override
public final java.lang.String getLoadBalancerName() {
return this.loadBalancerName;
}
@Override
public final java.lang.Number getMaxHealthyPercent() {
return this.maxHealthyPercent;
}
@Override
public final java.lang.Number getMinHealthyPercent() {
return this.minHealthyPercent;
}
@Override
public final java.lang.Boolean getOpenListener() {
return this.openListener;
}
@Override
public final software.amazon.awscdk.services.ecs.PropagatedTagSource getPropagateTags() {
return this.propagateTags;
}
@Override
public final software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationProtocol getProtocol() {
return this.protocol;
}
@Override
public final software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationProtocolVersion getProtocolVersion() {
return this.protocolVersion;
}
@Override
public final java.lang.Boolean getPublicLoadBalancer() {
return this.publicLoadBalancer;
}
@Override
public final software.amazon.awscdk.services.ecs.patterns.ApplicationLoadBalancedServiceRecordType getRecordType() {
return this.recordType;
}
@Override
public final java.lang.Boolean getRedirectHTTP() {
return this.redirectHttp;
}
@Override
public final java.lang.String getServiceName() {
return this.serviceName;
}
@Override
public final software.amazon.awscdk.services.elasticloadbalancingv2.SslPolicy getSslPolicy() {
return this.sslPolicy;
}
@Override
public final software.amazon.awscdk.services.elasticloadbalancingv2.ApplicationProtocol getTargetProtocol() {
return this.targetProtocol;
}
@Override
public final software.amazon.awscdk.services.ecs.patterns.ApplicationLoadBalancedTaskImageOptions getTaskImageOptions() {
return this.taskImageOptions;
}
@Override
public final software.amazon.awscdk.services.ec2.IVpc getVpc() {
return this.vpc;
}
@Override
public final java.lang.Number getCpu() {
return this.cpu;
}
@Override
public final java.lang.Number getEphemeralStorageGiB() {
return this.ephemeralStorageGiB;
}
@Override
public final java.lang.Number getMemoryLimitMiB() {
return this.memoryLimitMiB;
}
@Override
public final software.amazon.awscdk.services.ecs.FargatePlatformVersion getPlatformVersion() {
return this.platformVersion;
}
@Override
public final software.amazon.awscdk.services.ecs.RuntimePlatform getRuntimePlatform() {
return this.runtimePlatform;
}
@Override
public final software.amazon.awscdk.services.ecs.FargateTaskDefinition getTaskDefinition() {
return this.taskDefinition;
}
@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();
if (this.getAccessLogBucket() != null) {
data.set("accessLogBucket", om.valueToTree(this.getAccessLogBucket()));
}
if (this.getAccessLogPrefix() != null) {
data.set("accessLogPrefix", om.valueToTree(this.getAccessLogPrefix()));
}
if (this.getApiCanarySchedule() != null) {
data.set("apiCanarySchedule", om.valueToTree(this.getApiCanarySchedule()));
}
if (this.getApiCanaryThreadCount() != null) {
data.set("apiCanaryThreadCount", om.valueToTree(this.getApiCanaryThreadCount()));
}
if (this.getApiCanaryTimeout() != null) {
data.set("apiCanaryTimeout", om.valueToTree(this.getApiCanaryTimeout()));
}
if (this.getApiTestSteps() != null) {
data.set("apiTestSteps", om.valueToTree(this.getApiTestSteps()));
}
if (this.getApplicationName() != null) {
data.set("applicationName", om.valueToTree(this.getApplicationName()));
}
if (this.getDeploymentConfig() != null) {
data.set("deploymentConfig", om.valueToTree(this.getDeploymentConfig()));
}
if (this.getDeploymentGroupName() != null) {
data.set("deploymentGroupName", om.valueToTree(this.getDeploymentGroupName()));
}
if (this.getDeploymentTimeout() != null) {
data.set("deploymentTimeout", om.valueToTree(this.getDeploymentTimeout()));
}
if (this.getDeregistrationDelay() != null) {
data.set("deregistrationDelay", om.valueToTree(this.getDeregistrationDelay()));
}
if (this.getHooks() != null) {
data.set("hooks", om.valueToTree(this.getHooks()));
}
if (this.getResponseTimeAlarmThreshold() != null) {
data.set("responseTimeAlarmThreshold", om.valueToTree(this.getResponseTimeAlarmThreshold()));
}
if (this.getTargetHealthCheck() != null) {
data.set("targetHealthCheck", om.valueToTree(this.getTargetHealthCheck()));
}
if (this.getTerminationWaitTime() != null) {
data.set("terminationWaitTime", om.valueToTree(this.getTerminationWaitTime()));
}
if (this.getTestPort() != null) {
data.set("testPort", om.valueToTree(this.getTestPort()));
}
if (this.getAssignPublicIp() != null) {
data.set("assignPublicIp", om.valueToTree(this.getAssignPublicIp()));
}
if (this.getHealthCheck() != null) {
data.set("healthCheck", om.valueToTree(this.getHealthCheck()));
}
if (this.getSecurityGroups() != null) {
data.set("securityGroups", om.valueToTree(this.getSecurityGroups()));
}
if (this.getTaskSubnets() != null) {
data.set("taskSubnets", om.valueToTree(this.getTaskSubnets()));
}
if (this.getCapacityProviderStrategies() != null) {
data.set("capacityProviderStrategies", om.valueToTree(this.getCapacityProviderStrategies()));
}
if (this.getCertificate() != null) {
data.set("certificate", om.valueToTree(this.getCertificate()));
}
if (this.getCircuitBreaker() != null) {
data.set("circuitBreaker", om.valueToTree(this.getCircuitBreaker()));
}
if (this.getCloudMapOptions() != null) {
data.set("cloudMapOptions", om.valueToTree(this.getCloudMapOptions()));
}
if (this.getCluster() != null) {
data.set("cluster", om.valueToTree(this.getCluster()));
}
if (this.getDeploymentController() != null) {
data.set("deploymentController", om.valueToTree(this.getDeploymentController()));
}
if (this.getDesiredCount() != null) {
data.set("desiredCount", om.valueToTree(this.getDesiredCount()));
}
if (this.getDomainName() != null) {
data.set("domainName", om.valueToTree(this.getDomainName()));
}
if (this.getDomainZone() != null) {
data.set("domainZone", om.valueToTree(this.getDomainZone()));
}
if (this.getEnableECSManagedTags() != null) {
data.set("enableECSManagedTags", om.valueToTree(this.getEnableECSManagedTags()));
}
if (this.getEnableExecuteCommand() != null) {
data.set("enableExecuteCommand", om.valueToTree(this.getEnableExecuteCommand()));
}
if (this.getHealthCheckGracePeriod() != null) {
data.set("healthCheckGracePeriod", om.valueToTree(this.getHealthCheckGracePeriod()));
}
if (this.getIdleTimeout() != null) {
data.set("idleTimeout", om.valueToTree(this.getIdleTimeout()));
}
if (this.getListenerPort() != null) {
data.set("listenerPort", om.valueToTree(this.getListenerPort()));
}
if (this.getLoadBalancer() != null) {
data.set("loadBalancer", om.valueToTree(this.getLoadBalancer()));
}
if (this.getLoadBalancerName() != null) {
data.set("loadBalancerName", om.valueToTree(this.getLoadBalancerName()));
}
if (this.getMaxHealthyPercent() != null) {
data.set("maxHealthyPercent", om.valueToTree(this.getMaxHealthyPercent()));
}
if (this.getMinHealthyPercent() != null) {
data.set("minHealthyPercent", om.valueToTree(this.getMinHealthyPercent()));
}
if (this.getOpenListener() != null) {
data.set("openListener", om.valueToTree(this.getOpenListener()));
}
if (this.getPropagateTags() != null) {
data.set("propagateTags", om.valueToTree(this.getPropagateTags()));
}
if (this.getProtocol() != null) {
data.set("protocol", om.valueToTree(this.getProtocol()));
}
if (this.getProtocolVersion() != null) {
data.set("protocolVersion", om.valueToTree(this.getProtocolVersion()));
}
if (this.getPublicLoadBalancer() != null) {
data.set("publicLoadBalancer", om.valueToTree(this.getPublicLoadBalancer()));
}
if (this.getRecordType() != null) {
data.set("recordType", om.valueToTree(this.getRecordType()));
}
if (this.getRedirectHTTP() != null) {
data.set("redirectHTTP", om.valueToTree(this.getRedirectHTTP()));
}
if (this.getServiceName() != null) {
data.set("serviceName", om.valueToTree(this.getServiceName()));
}
if (this.getSslPolicy() != null) {
data.set("sslPolicy", om.valueToTree(this.getSslPolicy()));
}
if (this.getTargetProtocol() != null) {
data.set("targetProtocol", om.valueToTree(this.getTargetProtocol()));
}
if (this.getTaskImageOptions() != null) {
data.set("taskImageOptions", om.valueToTree(this.getTaskImageOptions()));
}
if (this.getVpc() != null) {
data.set("vpc", om.valueToTree(this.getVpc()));
}
if (this.getCpu() != null) {
data.set("cpu", om.valueToTree(this.getCpu()));
}
if (this.getEphemeralStorageGiB() != null) {
data.set("ephemeralStorageGiB", om.valueToTree(this.getEphemeralStorageGiB()));
}
if (this.getMemoryLimitMiB() != null) {
data.set("memoryLimitMiB", om.valueToTree(this.getMemoryLimitMiB()));
}
if (this.getPlatformVersion() != null) {
data.set("platformVersion", om.valueToTree(this.getPlatformVersion()));
}
if (this.getRuntimePlatform() != null) {
data.set("runtimePlatform", om.valueToTree(this.getRuntimePlatform()));
}
if (this.getTaskDefinition() != null) {
data.set("taskDefinition", om.valueToTree(this.getTaskDefinition()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@cdklabs/cdk-ecs-codedeploy.ApplicationLoadBalancedCodeDeployedFargateServiceProps"));
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;
ApplicationLoadBalancedCodeDeployedFargateServiceProps.Jsii$Proxy that = (ApplicationLoadBalancedCodeDeployedFargateServiceProps.Jsii$Proxy) o;
if (this.accessLogBucket != null ? !this.accessLogBucket.equals(that.accessLogBucket) : that.accessLogBucket != null) return false;
if (this.accessLogPrefix != null ? !this.accessLogPrefix.equals(that.accessLogPrefix) : that.accessLogPrefix != null) return false;
if (this.apiCanarySchedule != null ? !this.apiCanarySchedule.equals(that.apiCanarySchedule) : that.apiCanarySchedule != null) return false;
if (this.apiCanaryThreadCount != null ? !this.apiCanaryThreadCount.equals(that.apiCanaryThreadCount) : that.apiCanaryThreadCount != null) return false;
if (this.apiCanaryTimeout != null ? !this.apiCanaryTimeout.equals(that.apiCanaryTimeout) : that.apiCanaryTimeout != null) return false;
if (this.apiTestSteps != null ? !this.apiTestSteps.equals(that.apiTestSteps) : that.apiTestSteps != null) return false;
if (this.applicationName != null ? !this.applicationName.equals(that.applicationName) : that.applicationName != null) return false;
if (this.deploymentConfig != null ? !this.deploymentConfig.equals(that.deploymentConfig) : that.deploymentConfig != null) return false;
if (this.deploymentGroupName != null ? !this.deploymentGroupName.equals(that.deploymentGroupName) : that.deploymentGroupName != null) return false;
if (this.deploymentTimeout != null ? !this.deploymentTimeout.equals(that.deploymentTimeout) : that.deploymentTimeout != null) return false;
if (this.deregistrationDelay != null ? !this.deregistrationDelay.equals(that.deregistrationDelay) : that.deregistrationDelay != null) return false;
if (this.hooks != null ? !this.hooks.equals(that.hooks) : that.hooks != null) return false;
if (this.responseTimeAlarmThreshold != null ? !this.responseTimeAlarmThreshold.equals(that.responseTimeAlarmThreshold) : that.responseTimeAlarmThreshold != null) return false;
if (this.targetHealthCheck != null ? !this.targetHealthCheck.equals(that.targetHealthCheck) : that.targetHealthCheck != null) return false;
if (this.terminationWaitTime != null ? !this.terminationWaitTime.equals(that.terminationWaitTime) : that.terminationWaitTime != null) return false;
if (this.testPort != null ? !this.testPort.equals(that.testPort) : that.testPort != null) return false;
if (this.assignPublicIp != null ? !this.assignPublicIp.equals(that.assignPublicIp) : that.assignPublicIp != null) return false;
if (this.healthCheck != null ? !this.healthCheck.equals(that.healthCheck) : that.healthCheck != null) return false;
if (this.securityGroups != null ? !this.securityGroups.equals(that.securityGroups) : that.securityGroups != null) return false;
if (this.taskSubnets != null ? !this.taskSubnets.equals(that.taskSubnets) : that.taskSubnets != null) return false;
if (this.capacityProviderStrategies != null ? !this.capacityProviderStrategies.equals(that.capacityProviderStrategies) : that.capacityProviderStrategies != null) return false;
if (this.certificate != null ? !this.certificate.equals(that.certificate) : that.certificate != null) return false;
if (this.circuitBreaker != null ? !this.circuitBreaker.equals(that.circuitBreaker) : that.circuitBreaker != null) return false;
if (this.cloudMapOptions != null ? !this.cloudMapOptions.equals(that.cloudMapOptions) : that.cloudMapOptions != null) return false;
if (this.cluster != null ? !this.cluster.equals(that.cluster) : that.cluster != null) return false;
if (this.deploymentController != null ? !this.deploymentController.equals(that.deploymentController) : that.deploymentController != null) return false;
if (this.desiredCount != null ? !this.desiredCount.equals(that.desiredCount) : that.desiredCount != null) return false;
if (this.domainName != null ? !this.domainName.equals(that.domainName) : that.domainName != null) return false;
if (this.domainZone != null ? !this.domainZone.equals(that.domainZone) : that.domainZone != null) return false;
if (this.enableEcsManagedTags != null ? !this.enableEcsManagedTags.equals(that.enableEcsManagedTags) : that.enableEcsManagedTags != null) return false;
if (this.enableExecuteCommand != null ? !this.enableExecuteCommand.equals(that.enableExecuteCommand) : that.enableExecuteCommand != null) return false;
if (this.healthCheckGracePeriod != null ? !this.healthCheckGracePeriod.equals(that.healthCheckGracePeriod) : that.healthCheckGracePeriod != null) return false;
if (this.idleTimeout != null ? !this.idleTimeout.equals(that.idleTimeout) : that.idleTimeout != null) return false;
if (this.listenerPort != null ? !this.listenerPort.equals(that.listenerPort) : that.listenerPort != null) return false;
if (this.loadBalancer != null ? !this.loadBalancer.equals(that.loadBalancer) : that.loadBalancer != null) return false;
if (this.loadBalancerName != null ? !this.loadBalancerName.equals(that.loadBalancerName) : that.loadBalancerName != null) return false;
if (this.maxHealthyPercent != null ? !this.maxHealthyPercent.equals(that.maxHealthyPercent) : that.maxHealthyPercent != null) return false;
if (this.minHealthyPercent != null ? !this.minHealthyPercent.equals(that.minHealthyPercent) : that.minHealthyPercent != null) return false;
if (this.openListener != null ? !this.openListener.equals(that.openListener) : that.openListener != null) return false;
if (this.propagateTags != null ? !this.propagateTags.equals(that.propagateTags) : that.propagateTags != null) return false;
if (this.protocol != null ? !this.protocol.equals(that.protocol) : that.protocol != null) return false;
if (this.protocolVersion != null ? !this.protocolVersion.equals(that.protocolVersion) : that.protocolVersion != null) return false;
if (this.publicLoadBalancer != null ? !this.publicLoadBalancer.equals(that.publicLoadBalancer) : that.publicLoadBalancer != null) return false;
if (this.recordType != null ? !this.recordType.equals(that.recordType) : that.recordType != null) return false;
if (this.redirectHttp != null ? !this.redirectHttp.equals(that.redirectHttp) : that.redirectHttp != null) return false;
if (this.serviceName != null ? !this.serviceName.equals(that.serviceName) : that.serviceName != null) return false;
if (this.sslPolicy != null ? !this.sslPolicy.equals(that.sslPolicy) : that.sslPolicy != null) return false;
if (this.targetProtocol != null ? !this.targetProtocol.equals(that.targetProtocol) : that.targetProtocol != null) return false;
if (this.taskImageOptions != null ? !this.taskImageOptions.equals(that.taskImageOptions) : that.taskImageOptions != null) return false;
if (this.vpc != null ? !this.vpc.equals(that.vpc) : that.vpc != null) return false;
if (this.cpu != null ? !this.cpu.equals(that.cpu) : that.cpu != null) return false;
if (this.ephemeralStorageGiB != null ? !this.ephemeralStorageGiB.equals(that.ephemeralStorageGiB) : that.ephemeralStorageGiB != null) return false;
if (this.memoryLimitMiB != null ? !this.memoryLimitMiB.equals(that.memoryLimitMiB) : that.memoryLimitMiB != null) return false;
if (this.platformVersion != null ? !this.platformVersion.equals(that.platformVersion) : that.platformVersion != null) return false;
if (this.runtimePlatform != null ? !this.runtimePlatform.equals(that.runtimePlatform) : that.runtimePlatform != null) return false;
return this.taskDefinition != null ? this.taskDefinition.equals(that.taskDefinition) : that.taskDefinition == null;
}
@Override
public final int hashCode() {
int result = this.accessLogBucket != null ? this.accessLogBucket.hashCode() : 0;
result = 31 * result + (this.accessLogPrefix != null ? this.accessLogPrefix.hashCode() : 0);
result = 31 * result + (this.apiCanarySchedule != null ? this.apiCanarySchedule.hashCode() : 0);
result = 31 * result + (this.apiCanaryThreadCount != null ? this.apiCanaryThreadCount.hashCode() : 0);
result = 31 * result + (this.apiCanaryTimeout != null ? this.apiCanaryTimeout.hashCode() : 0);
result = 31 * result + (this.apiTestSteps != null ? this.apiTestSteps.hashCode() : 0);
result = 31 * result + (this.applicationName != null ? this.applicationName.hashCode() : 0);
result = 31 * result + (this.deploymentConfig != null ? this.deploymentConfig.hashCode() : 0);
result = 31 * result + (this.deploymentGroupName != null ? this.deploymentGroupName.hashCode() : 0);
result = 31 * result + (this.deploymentTimeout != null ? this.deploymentTimeout.hashCode() : 0);
result = 31 * result + (this.deregistrationDelay != null ? this.deregistrationDelay.hashCode() : 0);
result = 31 * result + (this.hooks != null ? this.hooks.hashCode() : 0);
result = 31 * result + (this.responseTimeAlarmThreshold != null ? this.responseTimeAlarmThreshold.hashCode() : 0);
result = 31 * result + (this.targetHealthCheck != null ? this.targetHealthCheck.hashCode() : 0);
result = 31 * result + (this.terminationWaitTime != null ? this.terminationWaitTime.hashCode() : 0);
result = 31 * result + (this.testPort != null ? this.testPort.hashCode() : 0);
result = 31 * result + (this.assignPublicIp != null ? this.assignPublicIp.hashCode() : 0);
result = 31 * result + (this.healthCheck != null ? this.healthCheck.hashCode() : 0);
result = 31 * result + (this.securityGroups != null ? this.securityGroups.hashCode() : 0);
result = 31 * result + (this.taskSubnets != null ? this.taskSubnets.hashCode() : 0);
result = 31 * result + (this.capacityProviderStrategies != null ? this.capacityProviderStrategies.hashCode() : 0);
result = 31 * result + (this.certificate != null ? this.certificate.hashCode() : 0);
result = 31 * result + (this.circuitBreaker != null ? this.circuitBreaker.hashCode() : 0);
result = 31 * result + (this.cloudMapOptions != null ? this.cloudMapOptions.hashCode() : 0);
result = 31 * result + (this.cluster != null ? this.cluster.hashCode() : 0);
result = 31 * result + (this.deploymentController != null ? this.deploymentController.hashCode() : 0);
result = 31 * result + (this.desiredCount != null ? this.desiredCount.hashCode() : 0);
result = 31 * result + (this.domainName != null ? this.domainName.hashCode() : 0);
result = 31 * result + (this.domainZone != null ? this.domainZone.hashCode() : 0);
result = 31 * result + (this.enableEcsManagedTags != null ? this.enableEcsManagedTags.hashCode() : 0);
result = 31 * result + (this.enableExecuteCommand != null ? this.enableExecuteCommand.hashCode() : 0);
result = 31 * result + (this.healthCheckGracePeriod != null ? this.healthCheckGracePeriod.hashCode() : 0);
result = 31 * result + (this.idleTimeout != null ? this.idleTimeout.hashCode() : 0);
result = 31 * result + (this.listenerPort != null ? this.listenerPort.hashCode() : 0);
result = 31 * result + (this.loadBalancer != null ? this.loadBalancer.hashCode() : 0);
result = 31 * result + (this.loadBalancerName != null ? this.loadBalancerName.hashCode() : 0);
result = 31 * result + (this.maxHealthyPercent != null ? this.maxHealthyPercent.hashCode() : 0);
result = 31 * result + (this.minHealthyPercent != null ? this.minHealthyPercent.hashCode() : 0);
result = 31 * result + (this.openListener != null ? this.openListener.hashCode() : 0);
result = 31 * result + (this.propagateTags != null ? this.propagateTags.hashCode() : 0);
result = 31 * result + (this.protocol != null ? this.protocol.hashCode() : 0);
result = 31 * result + (this.protocolVersion != null ? this.protocolVersion.hashCode() : 0);
result = 31 * result + (this.publicLoadBalancer != null ? this.publicLoadBalancer.hashCode() : 0);
result = 31 * result + (this.recordType != null ? this.recordType.hashCode() : 0);
result = 31 * result + (this.redirectHttp != null ? this.redirectHttp.hashCode() : 0);
result = 31 * result + (this.serviceName != null ? this.serviceName.hashCode() : 0);
result = 31 * result + (this.sslPolicy != null ? this.sslPolicy.hashCode() : 0);
result = 31 * result + (this.targetProtocol != null ? this.targetProtocol.hashCode() : 0);
result = 31 * result + (this.taskImageOptions != null ? this.taskImageOptions.hashCode() : 0);
result = 31 * result + (this.vpc != null ? this.vpc.hashCode() : 0);
result = 31 * result + (this.cpu != null ? this.cpu.hashCode() : 0);
result = 31 * result + (this.ephemeralStorageGiB != null ? this.ephemeralStorageGiB.hashCode() : 0);
result = 31 * result + (this.memoryLimitMiB != null ? this.memoryLimitMiB.hashCode() : 0);
result = 31 * result + (this.platformVersion != null ? this.platformVersion.hashCode() : 0);
result = 31 * result + (this.runtimePlatform != null ? this.runtimePlatform.hashCode() : 0);
result = 31 * result + (this.taskDefinition != null ? this.taskDefinition.hashCode() : 0);
return result;
}
}
}