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

com.hubspot.singularity.api.SingularityDeployRequest Maven / Gradle / Ivy

The newest version!
package com.hubspot.singularity.api;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Optional;
import com.hubspot.singularity.SingularityDeploy;
import com.hubspot.singularity.SingularityRequest;
import com.wordnik.swagger.annotations.ApiModelProperty;

public class SingularityDeployRequest {

  private final Optional unpauseOnSuccessfulDeploy;
  private final SingularityDeploy deploy;
  private final Optional message;
  private final Optional updatedRequest;

  @JsonCreator
  public SingularityDeployRequest(
      @JsonProperty("deploy") SingularityDeploy deploy,
      @JsonProperty("unpauseOnSuccessfulDeploy") Optional unpauseOnSuccessfulDeploy,
      @JsonProperty("message") Optional message,
      @JsonProperty("updatedRequest") Optional updatedRequest) {
    this.deploy = deploy;
    this.unpauseOnSuccessfulDeploy = unpauseOnSuccessfulDeploy;
    this.message = message;
    this.updatedRequest = updatedRequest;
  }

  public SingularityDeployRequest(SingularityDeploy deploy, Optional unpauseOnSuccessfulDeploy, Optional message) {
    this(deploy, unpauseOnSuccessfulDeploy, message, Optional.absent());
  }

  @ApiModelProperty(required=false, value="If deploy is successful, also unpause the request")
  public Optional getUnpauseOnSuccessfulDeploy() {
    return unpauseOnSuccessfulDeploy;
  }

  @ApiModelProperty(required=true, value="The Singularity deploy object, containing all the required details about the Deploy")
  public SingularityDeploy getDeploy() {
    return deploy;
  }

  @ApiModelProperty(required=false, value="A message to show users about this deploy (metadata)")
  public Optional getMessage() {
    return message;
  }

  @ApiModelProperty(required=false, value="use this request data for this deploy, and update the request on successful deploy")
  public Optional getUpdatedRequest() {
    return updatedRequest;
  }

  @JsonIgnore
  public boolean isUnpauseOnSuccessfulDeploy() {
    return unpauseOnSuccessfulDeploy.or(Boolean.FALSE);
  }

  @Override
  public String toString() {
    return "SingularityDeployRequest [unpauseOnSuccessfulDeploy=" + unpauseOnSuccessfulDeploy + ", deploy=" + deploy + ", message=" + message + ", updatedRequest=" + updatedRequest + "]";
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy