All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.cdklabs.cdk.ecs.codedeploy.EcsDeploymentProps Maven / Gradle / Ivy

There is a newer version: 0.0.348
Show newest version
package io.github.cdklabs.cdk.ecs.codedeploy;

/**
 * (experimental) Construction properties of EcsDeployment.
 */
@javax.annotation.Generated(value = "jsii-pacmak/1.103.1 (build bef2dea)", date = "2024-10-05T18:15:38.175Z")
@software.amazon.jsii.Jsii(module = io.github.cdklabs.cdk.ecs.codedeploy.$Module.class, fqn = "@cdklabs/cdk-ecs-codedeploy.EcsDeploymentProps")
@software.amazon.jsii.Jsii.Proxy(EcsDeploymentProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public interface EcsDeploymentProps extends software.amazon.jsii.JsiiSerializable {

    /**
     * (experimental) The deployment group to target for this deployment.
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
    @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.codedeploy.IEcsDeploymentGroup getDeploymentGroup();

    /**
     * (experimental) The ECS service to target for the deployment.
     * 

* see: https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-resources.html#reference-appspec-file-structure-resources-ecs */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) @org.jetbrains.annotations.NotNull io.github.cdklabs.cdk.ecs.codedeploy.TargetService getTargetService(); /** * (experimental) The configuration for rollback in the event that a deployment fails. *

* Default: : no automatic rollback triggered */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.codedeploy.AutoRollbackConfig getAutoRollback() { return null; } /** * (experimental) The description for the deployment. *

* Default: no description */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) default @org.jetbrains.annotations.Nullable java.lang.String getDescription() { 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 timeout for the deployment. *

* If the timeout is reached, it will trigger a rollback of the stack. *

* Default: 30 minutes */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) default @org.jetbrains.annotations.Nullable software.amazon.awscdk.Duration getTimeout() { return null; } /** * @return a {@link Builder} of {@link EcsDeploymentProps} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) static Builder builder() { return new Builder(); } /** * A builder for {@link EcsDeploymentProps} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public static final class Builder implements software.amazon.jsii.Builder { software.amazon.awscdk.services.codedeploy.IEcsDeploymentGroup deploymentGroup; io.github.cdklabs.cdk.ecs.codedeploy.TargetService targetService; software.amazon.awscdk.services.codedeploy.AutoRollbackConfig autoRollback; java.lang.String description; io.github.cdklabs.cdk.ecs.codedeploy.AppSpecHooks hooks; software.amazon.awscdk.Duration timeout; /** * Sets the value of {@link EcsDeploymentProps#getDeploymentGroup} * @param deploymentGroup The deployment group to target for this deployment. This parameter is required. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder deploymentGroup(software.amazon.awscdk.services.codedeploy.IEcsDeploymentGroup deploymentGroup) { this.deploymentGroup = deploymentGroup; return this; } /** * Sets the value of {@link EcsDeploymentProps#getTargetService} * @param targetService The ECS service to target for the deployment. This parameter is required. * see: https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-resources.html#reference-appspec-file-structure-resources-ecs * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder targetService(io.github.cdklabs.cdk.ecs.codedeploy.TargetService targetService) { this.targetService = targetService; return this; } /** * Sets the value of {@link EcsDeploymentProps#getAutoRollback} * @param autoRollback The configuration for rollback in the event that a deployment fails. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder autoRollback(software.amazon.awscdk.services.codedeploy.AutoRollbackConfig autoRollback) { this.autoRollback = autoRollback; return this; } /** * Sets the value of {@link EcsDeploymentProps#getDescription} * @param description The description for the deployment. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder description(java.lang.String description) { this.description = description; return this; } /** * Sets the value of {@link EcsDeploymentProps#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 EcsDeploymentProps#getTimeout} * @param timeout The timeout for the deployment. * If the timeout is reached, it will trigger a rollback of the stack. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder timeout(software.amazon.awscdk.Duration timeout) { this.timeout = timeout; return this; } /** * Builds the configured instance. * @return a new instance of {@link EcsDeploymentProps} * @throws NullPointerException if any required attribute was not provided */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) @Override public EcsDeploymentProps build() { return new Jsii$Proxy(this); } } /** * An implementation for {@link EcsDeploymentProps} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) @software.amazon.jsii.Internal final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements EcsDeploymentProps { private final software.amazon.awscdk.services.codedeploy.IEcsDeploymentGroup deploymentGroup; private final io.github.cdklabs.cdk.ecs.codedeploy.TargetService targetService; private final software.amazon.awscdk.services.codedeploy.AutoRollbackConfig autoRollback; private final java.lang.String description; private final io.github.cdklabs.cdk.ecs.codedeploy.AppSpecHooks hooks; private final software.amazon.awscdk.Duration timeout; /** * Constructor that initializes the object based on values retrieved from the JsiiObject. * @param objRef Reference to the JSII managed object. */ protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) { super(objRef); this.deploymentGroup = software.amazon.jsii.Kernel.get(this, "deploymentGroup", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.codedeploy.IEcsDeploymentGroup.class)); this.targetService = software.amazon.jsii.Kernel.get(this, "targetService", software.amazon.jsii.NativeType.forClass(io.github.cdklabs.cdk.ecs.codedeploy.TargetService.class)); this.autoRollback = software.amazon.jsii.Kernel.get(this, "autoRollback", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.codedeploy.AutoRollbackConfig.class)); this.description = software.amazon.jsii.Kernel.get(this, "description", software.amazon.jsii.NativeType.forClass(java.lang.String.class)); this.hooks = software.amazon.jsii.Kernel.get(this, "hooks", software.amazon.jsii.NativeType.forClass(io.github.cdklabs.cdk.ecs.codedeploy.AppSpecHooks.class)); this.timeout = software.amazon.jsii.Kernel.get(this, "timeout", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.Duration.class)); } /** * Constructor that initializes the object based on literal property values passed by the {@link Builder}. */ protected Jsii$Proxy(final Builder builder) { super(software.amazon.jsii.JsiiObject.InitializationMode.JSII); this.deploymentGroup = java.util.Objects.requireNonNull(builder.deploymentGroup, "deploymentGroup is required"); this.targetService = java.util.Objects.requireNonNull(builder.targetService, "targetService is required"); this.autoRollback = builder.autoRollback; this.description = builder.description; this.hooks = builder.hooks; this.timeout = builder.timeout; } @Override public final software.amazon.awscdk.services.codedeploy.IEcsDeploymentGroup getDeploymentGroup() { return this.deploymentGroup; } @Override public final io.github.cdklabs.cdk.ecs.codedeploy.TargetService getTargetService() { return this.targetService; } @Override public final software.amazon.awscdk.services.codedeploy.AutoRollbackConfig getAutoRollback() { return this.autoRollback; } @Override public final java.lang.String getDescription() { return this.description; } @Override public final io.github.cdklabs.cdk.ecs.codedeploy.AppSpecHooks getHooks() { return this.hooks; } @Override public final software.amazon.awscdk.Duration getTimeout() { return this.timeout; } @Override @software.amazon.jsii.Internal public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() { final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE; final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode(); data.set("deploymentGroup", om.valueToTree(this.getDeploymentGroup())); data.set("targetService", om.valueToTree(this.getTargetService())); if (this.getAutoRollback() != null) { data.set("autoRollback", om.valueToTree(this.getAutoRollback())); } if (this.getDescription() != null) { data.set("description", om.valueToTree(this.getDescription())); } if (this.getHooks() != null) { data.set("hooks", om.valueToTree(this.getHooks())); } if (this.getTimeout() != null) { data.set("timeout", om.valueToTree(this.getTimeout())); } final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode(); struct.set("fqn", om.valueToTree("@cdklabs/cdk-ecs-codedeploy.EcsDeploymentProps")); 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; EcsDeploymentProps.Jsii$Proxy that = (EcsDeploymentProps.Jsii$Proxy) o; if (!deploymentGroup.equals(that.deploymentGroup)) return false; if (!targetService.equals(that.targetService)) return false; if (this.autoRollback != null ? !this.autoRollback.equals(that.autoRollback) : that.autoRollback != null) return false; if (this.description != null ? !this.description.equals(that.description) : that.description != null) return false; if (this.hooks != null ? !this.hooks.equals(that.hooks) : that.hooks != null) return false; return this.timeout != null ? this.timeout.equals(that.timeout) : that.timeout == null; } @Override public final int hashCode() { int result = this.deploymentGroup.hashCode(); result = 31 * result + (this.targetService.hashCode()); result = 31 * result + (this.autoRollback != null ? this.autoRollback.hashCode() : 0); result = 31 * result + (this.description != null ? this.description.hashCode() : 0); result = 31 * result + (this.hooks != null ? this.hooks.hashCode() : 0); result = 31 * result + (this.timeout != null ? this.timeout.hashCode() : 0); return result; } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy