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

software.amazon.awssdk.services.opsworks.model.Deployment Maven / Gradle / Ivy

Go to download

The AWS Java SDK for AWS OpsWorks module holds the client classes that are used for communicating with AWS OpsWorks Service

There is a newer version: 2.28.4
Show newest version
/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */

package software.amazon.awssdk.services.opsworks.model;

import java.beans.Transient;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.ListTrait;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructList;
import software.amazon.awssdk.core.util.SdkAutoConstructList;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;

/**
 * 

* Describes a deployment of a stack or app. *

*/ @Generated("software.amazon.awssdk:codegen") public final class Deployment implements SdkPojo, Serializable, ToCopyableBuilder { private static final SdkField DEPLOYMENT_ID_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("DeploymentId").getter(getter(Deployment::deploymentId)).setter(setter(Builder::deploymentId)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DeploymentId").build()).build(); private static final SdkField STACK_ID_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("StackId").getter(getter(Deployment::stackId)).setter(setter(Builder::stackId)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("StackId").build()).build(); private static final SdkField APP_ID_FIELD = SdkField. builder(MarshallingType.STRING).memberName("AppId") .getter(getter(Deployment::appId)).setter(setter(Builder::appId)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AppId").build()).build(); private static final SdkField CREATED_AT_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("CreatedAt").getter(getter(Deployment::createdAt)).setter(setter(Builder::createdAt)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("CreatedAt").build()).build(); private static final SdkField COMPLETED_AT_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("CompletedAt").getter(getter(Deployment::completedAt)).setter(setter(Builder::completedAt)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("CompletedAt").build()).build(); private static final SdkField DURATION_FIELD = SdkField. builder(MarshallingType.INTEGER) .memberName("Duration").getter(getter(Deployment::duration)).setter(setter(Builder::duration)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Duration").build()).build(); private static final SdkField IAM_USER_ARN_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("IamUserArn").getter(getter(Deployment::iamUserArn)).setter(setter(Builder::iamUserArn)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("IamUserArn").build()).build(); private static final SdkField COMMENT_FIELD = SdkField. builder(MarshallingType.STRING).memberName("Comment") .getter(getter(Deployment::comment)).setter(setter(Builder::comment)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Comment").build()).build(); private static final SdkField COMMAND_FIELD = SdkField . builder(MarshallingType.SDK_POJO).memberName("Command").getter(getter(Deployment::command)) .setter(setter(Builder::command)).constructor(DeploymentCommand::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Command").build()).build(); private static final SdkField STATUS_FIELD = SdkField. builder(MarshallingType.STRING).memberName("Status") .getter(getter(Deployment::status)).setter(setter(Builder::status)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Status").build()).build(); private static final SdkField CUSTOM_JSON_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("CustomJson").getter(getter(Deployment::customJson)).setter(setter(Builder::customJson)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("CustomJson").build()).build(); private static final SdkField> INSTANCE_IDS_FIELD = SdkField .> builder(MarshallingType.LIST) .memberName("InstanceIds") .getter(getter(Deployment::instanceIds)) .setter(setter(Builder::instanceIds)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("InstanceIds").build(), ListTrait .builder() .memberLocationName(null) .memberFieldInfo( SdkField. builder(MarshallingType.STRING) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD) .locationName("member").build()).build()).build()).build(); private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(DEPLOYMENT_ID_FIELD, STACK_ID_FIELD, APP_ID_FIELD, CREATED_AT_FIELD, COMPLETED_AT_FIELD, DURATION_FIELD, IAM_USER_ARN_FIELD, COMMENT_FIELD, COMMAND_FIELD, STATUS_FIELD, CUSTOM_JSON_FIELD, INSTANCE_IDS_FIELD)); private static final long serialVersionUID = 1L; private final String deploymentId; private final String stackId; private final String appId; private final String createdAt; private final String completedAt; private final Integer duration; private final String iamUserArn; private final String comment; private final DeploymentCommand command; private final String status; private final String customJson; private final List instanceIds; private Deployment(BuilderImpl builder) { this.deploymentId = builder.deploymentId; this.stackId = builder.stackId; this.appId = builder.appId; this.createdAt = builder.createdAt; this.completedAt = builder.completedAt; this.duration = builder.duration; this.iamUserArn = builder.iamUserArn; this.comment = builder.comment; this.command = builder.command; this.status = builder.status; this.customJson = builder.customJson; this.instanceIds = builder.instanceIds; } /** *

* The deployment ID. *

* * @return The deployment ID. */ public final String deploymentId() { return deploymentId; } /** *

* The stack ID. *

* * @return The stack ID. */ public final String stackId() { return stackId; } /** *

* The app ID. *

* * @return The app ID. */ public final String appId() { return appId; } /** *

* Date when the deployment was created. *

* * @return Date when the deployment was created. */ public final String createdAt() { return createdAt; } /** *

* Date when the deployment completed. *

* * @return Date when the deployment completed. */ public final String completedAt() { return completedAt; } /** *

* The deployment duration. *

* * @return The deployment duration. */ public final Integer duration() { return duration; } /** *

* The user's IAM ARN. *

* * @return The user's IAM ARN. */ public final String iamUserArn() { return iamUserArn; } /** *

* A user-defined comment. *

* * @return A user-defined comment. */ public final String comment() { return comment; } /** *

* Used to specify a stack or deployment command. *

* * @return Used to specify a stack or deployment command. */ public final DeploymentCommand command() { return command; } /** *

* The deployment status: *

*
    *
  • *

    * running *

    *
  • *
  • *

    * successful *

    *
  • *
  • *

    * failed *

    *
  • *
* * @return The deployment status:

*
    *
  • *

    * running *

    *
  • *
  • *

    * successful *

    *
  • *
  • *

    * failed *

    *
  • */ public final String status() { return status; } /** *

    * A string that contains user-defined custom JSON. It can be used to override the corresponding default stack * configuration attribute values for stack or to pass data to recipes. The string should be in the following * format: *

    *

    * "{\"key1\": \"value1\", \"key2\": \"value2\",...}" *

    *

    * For more information on custom JSON, see Use Custom JSON to Modify * the Stack Configuration Attributes. *

    * * @return A string that contains user-defined custom JSON. It can be used to override the corresponding default * stack configuration attribute values for stack or to pass data to recipes. The string should be in the * following format:

    *

    * "{\"key1\": \"value1\", \"key2\": \"value2\",...}" *

    *

    * For more information on custom JSON, see Use Custom JSON to * Modify the Stack Configuration Attributes. */ public final String customJson() { return customJson; } /** * For responses, this returns true if the service returned a value for the InstanceIds property. This DOES NOT * check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). * This is useful because the SDK will never return a null collection or map, but you may need to differentiate * between the service returning nothing (or null) and the service returning an empty collection or map. For * requests, this returns true if a value for the property was specified in the request builder, and false if a * value was not specified. */ public final boolean hasInstanceIds() { return instanceIds != null && !(instanceIds instanceof SdkAutoConstructList); } /** *

    * The IDs of the target instances. *

    *

    * Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

    *

    * This method will never return null. If you would like to know whether the service returned this field (so that * you can differentiate between null and empty), you can use the {@link #hasInstanceIds} method. *

    * * @return The IDs of the target instances. */ public final List instanceIds() { return instanceIds; } @Override public Builder toBuilder() { return new BuilderImpl(this); } public static Builder builder() { return new BuilderImpl(); } public static Class serializableBuilderClass() { return BuilderImpl.class; } @Override public final int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + Objects.hashCode(deploymentId()); hashCode = 31 * hashCode + Objects.hashCode(stackId()); hashCode = 31 * hashCode + Objects.hashCode(appId()); hashCode = 31 * hashCode + Objects.hashCode(createdAt()); hashCode = 31 * hashCode + Objects.hashCode(completedAt()); hashCode = 31 * hashCode + Objects.hashCode(duration()); hashCode = 31 * hashCode + Objects.hashCode(iamUserArn()); hashCode = 31 * hashCode + Objects.hashCode(comment()); hashCode = 31 * hashCode + Objects.hashCode(command()); hashCode = 31 * hashCode + Objects.hashCode(status()); hashCode = 31 * hashCode + Objects.hashCode(customJson()); hashCode = 31 * hashCode + Objects.hashCode(hasInstanceIds() ? instanceIds() : null); return hashCode; } @Override public final boolean equals(Object obj) { return equalsBySdkFields(obj); } @Override public final boolean equalsBySdkFields(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof Deployment)) { return false; } Deployment other = (Deployment) obj; return Objects.equals(deploymentId(), other.deploymentId()) && Objects.equals(stackId(), other.stackId()) && Objects.equals(appId(), other.appId()) && Objects.equals(createdAt(), other.createdAt()) && Objects.equals(completedAt(), other.completedAt()) && Objects.equals(duration(), other.duration()) && Objects.equals(iamUserArn(), other.iamUserArn()) && Objects.equals(comment(), other.comment()) && Objects.equals(command(), other.command()) && Objects.equals(status(), other.status()) && Objects.equals(customJson(), other.customJson()) && hasInstanceIds() == other.hasInstanceIds() && Objects.equals(instanceIds(), other.instanceIds()); } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. */ @Override public final String toString() { return ToString.builder("Deployment").add("DeploymentId", deploymentId()).add("StackId", stackId()).add("AppId", appId()) .add("CreatedAt", createdAt()).add("CompletedAt", completedAt()).add("Duration", duration()) .add("IamUserArn", iamUserArn()).add("Comment", comment()).add("Command", command()).add("Status", status()) .add("CustomJson", customJson()).add("InstanceIds", hasInstanceIds() ? instanceIds() : null).build(); } public final Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "DeploymentId": return Optional.ofNullable(clazz.cast(deploymentId())); case "StackId": return Optional.ofNullable(clazz.cast(stackId())); case "AppId": return Optional.ofNullable(clazz.cast(appId())); case "CreatedAt": return Optional.ofNullable(clazz.cast(createdAt())); case "CompletedAt": return Optional.ofNullable(clazz.cast(completedAt())); case "Duration": return Optional.ofNullable(clazz.cast(duration())); case "IamUserArn": return Optional.ofNullable(clazz.cast(iamUserArn())); case "Comment": return Optional.ofNullable(clazz.cast(comment())); case "Command": return Optional.ofNullable(clazz.cast(command())); case "Status": return Optional.ofNullable(clazz.cast(status())); case "CustomJson": return Optional.ofNullable(clazz.cast(customJson())); case "InstanceIds": return Optional.ofNullable(clazz.cast(instanceIds())); default: return Optional.empty(); } } @Override public final List> sdkFields() { return SDK_FIELDS; } private static Function getter(Function g) { return obj -> g.apply((Deployment) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends SdkPojo, CopyableBuilder { /** *

    * The deployment ID. *

    * * @param deploymentId * The deployment ID. * @return Returns a reference to this object so that method calls can be chained together. */ Builder deploymentId(String deploymentId); /** *

    * The stack ID. *

    * * @param stackId * The stack ID. * @return Returns a reference to this object so that method calls can be chained together. */ Builder stackId(String stackId); /** *

    * The app ID. *

    * * @param appId * The app ID. * @return Returns a reference to this object so that method calls can be chained together. */ Builder appId(String appId); /** *

    * Date when the deployment was created. *

    * * @param createdAt * Date when the deployment was created. * @return Returns a reference to this object so that method calls can be chained together. */ Builder createdAt(String createdAt); /** *

    * Date when the deployment completed. *

    * * @param completedAt * Date when the deployment completed. * @return Returns a reference to this object so that method calls can be chained together. */ Builder completedAt(String completedAt); /** *

    * The deployment duration. *

    * * @param duration * The deployment duration. * @return Returns a reference to this object so that method calls can be chained together. */ Builder duration(Integer duration); /** *

    * The user's IAM ARN. *

    * * @param iamUserArn * The user's IAM ARN. * @return Returns a reference to this object so that method calls can be chained together. */ Builder iamUserArn(String iamUserArn); /** *

    * A user-defined comment. *

    * * @param comment * A user-defined comment. * @return Returns a reference to this object so that method calls can be chained together. */ Builder comment(String comment); /** *

    * Used to specify a stack or deployment command. *

    * * @param command * Used to specify a stack or deployment command. * @return Returns a reference to this object so that method calls can be chained together. */ Builder command(DeploymentCommand command); /** *

    * Used to specify a stack or deployment command. *

    * This is a convenience that creates an instance of the {@link DeploymentCommand.Builder} avoiding the need to * create one manually via {@link DeploymentCommand#builder()}. * * When the {@link Consumer} completes, {@link DeploymentCommand.Builder#build()} is called immediately and its * result is passed to {@link #command(DeploymentCommand)}. * * @param command * a consumer that will call methods on {@link DeploymentCommand.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #command(DeploymentCommand) */ default Builder command(Consumer command) { return command(DeploymentCommand.builder().applyMutation(command).build()); } /** *

    * The deployment status: *

    *
      *
    • *

      * running *

      *
    • *
    • *

      * successful *

      *
    • *
    • *

      * failed *

      *
    • *
    * * @param status * The deployment status:

    *
      *
    • *

      * running *

      *
    • *
    • *

      * successful *

      *
    • *
    • *

      * failed *

      *
    • * @return Returns a reference to this object so that method calls can be chained together. */ Builder status(String status); /** *

      * A string that contains user-defined custom JSON. It can be used to override the corresponding default stack * configuration attribute values for stack or to pass data to recipes. The string should be in the following * format: *

      *

      * "{\"key1\": \"value1\", \"key2\": \"value2\",...}" *

      *

      * For more information on custom JSON, see Use Custom JSON to * Modify the Stack Configuration Attributes. *

      * * @param customJson * A string that contains user-defined custom JSON. It can be used to override the corresponding default * stack configuration attribute values for stack or to pass data to recipes. The string should be in the * following format:

      *

      * "{\"key1\": \"value1\", \"key2\": \"value2\",...}" *

      *

      * For more information on custom JSON, see Use Custom JSON * to Modify the Stack Configuration Attributes. * @return Returns a reference to this object so that method calls can be chained together. */ Builder customJson(String customJson); /** *

      * The IDs of the target instances. *

      * * @param instanceIds * The IDs of the target instances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder instanceIds(Collection instanceIds); /** *

      * The IDs of the target instances. *

      * * @param instanceIds * The IDs of the target instances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder instanceIds(String... instanceIds); } static final class BuilderImpl implements Builder { private String deploymentId; private String stackId; private String appId; private String createdAt; private String completedAt; private Integer duration; private String iamUserArn; private String comment; private DeploymentCommand command; private String status; private String customJson; private List instanceIds = DefaultSdkAutoConstructList.getInstance(); private BuilderImpl() { } private BuilderImpl(Deployment model) { deploymentId(model.deploymentId); stackId(model.stackId); appId(model.appId); createdAt(model.createdAt); completedAt(model.completedAt); duration(model.duration); iamUserArn(model.iamUserArn); comment(model.comment); command(model.command); status(model.status); customJson(model.customJson); instanceIds(model.instanceIds); } public final String getDeploymentId() { return deploymentId; } public final void setDeploymentId(String deploymentId) { this.deploymentId = deploymentId; } @Override @Transient public final Builder deploymentId(String deploymentId) { this.deploymentId = deploymentId; return this; } public final String getStackId() { return stackId; } public final void setStackId(String stackId) { this.stackId = stackId; } @Override @Transient public final Builder stackId(String stackId) { this.stackId = stackId; return this; } public final String getAppId() { return appId; } public final void setAppId(String appId) { this.appId = appId; } @Override @Transient public final Builder appId(String appId) { this.appId = appId; return this; } public final String getCreatedAt() { return createdAt; } public final void setCreatedAt(String createdAt) { this.createdAt = createdAt; } @Override @Transient public final Builder createdAt(String createdAt) { this.createdAt = createdAt; return this; } public final String getCompletedAt() { return completedAt; } public final void setCompletedAt(String completedAt) { this.completedAt = completedAt; } @Override @Transient public final Builder completedAt(String completedAt) { this.completedAt = completedAt; return this; } public final Integer getDuration() { return duration; } public final void setDuration(Integer duration) { this.duration = duration; } @Override @Transient public final Builder duration(Integer duration) { this.duration = duration; return this; } public final String getIamUserArn() { return iamUserArn; } public final void setIamUserArn(String iamUserArn) { this.iamUserArn = iamUserArn; } @Override @Transient public final Builder iamUserArn(String iamUserArn) { this.iamUserArn = iamUserArn; return this; } public final String getComment() { return comment; } public final void setComment(String comment) { this.comment = comment; } @Override @Transient public final Builder comment(String comment) { this.comment = comment; return this; } public final DeploymentCommand.Builder getCommand() { return command != null ? command.toBuilder() : null; } public final void setCommand(DeploymentCommand.BuilderImpl command) { this.command = command != null ? command.build() : null; } @Override @Transient public final Builder command(DeploymentCommand command) { this.command = command; return this; } public final String getStatus() { return status; } public final void setStatus(String status) { this.status = status; } @Override @Transient public final Builder status(String status) { this.status = status; return this; } public final String getCustomJson() { return customJson; } public final void setCustomJson(String customJson) { this.customJson = customJson; } @Override @Transient public final Builder customJson(String customJson) { this.customJson = customJson; return this; } public final Collection getInstanceIds() { if (instanceIds instanceof SdkAutoConstructList) { return null; } return instanceIds; } public final void setInstanceIds(Collection instanceIds) { this.instanceIds = StringsCopier.copy(instanceIds); } @Override @Transient public final Builder instanceIds(Collection instanceIds) { this.instanceIds = StringsCopier.copy(instanceIds); return this; } @Override @Transient @SafeVarargs public final Builder instanceIds(String... instanceIds) { instanceIds(Arrays.asList(instanceIds)); return this; } @Override public Deployment build() { return new Deployment(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy