package com.hubspot.singularity;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Optional;
import com.hubspot.mesos.Resources;
public class SingularityPendingRequest {
public enum PendingType {
IMMEDIATE, ONEOFF, BOUNCE, NEW_DEPLOY, NEXT_DEPLOY_STEP, UNPAUSED, RETRY, UPDATED_REQUEST, DECOMISSIONED_SLAVE_OR_RACK, TASK_DONE, STARTUP, CANCEL_BOUNCE, TASK_BOUNCE, DEPLOY_CANCELLED, DEPLOY_FAILED;
}
private final String requestId;
private final String deployId;
private final long timestamp;
private final PendingType pendingType;
private final Optional<String> user;
private final Optional<List<String>> cmdLineArgsList;
private final Optional<String> runId;
private final Optional<Boolean> skipHealthchecks;
private final Optional<String> message;
private final Optional<String> actionId;
private final Optional<Resources> resources;
public SingularityPendingRequest(String requestId, String deployId, long timestamp, Optional<String> user, PendingType pendingType, Optional<Boolean> skipHealthchecks, Optional<String> message) {
this(requestId, deployId, timestamp, user, pendingType, Optional.<List<String>> absent(), Optional.<String> absent(), skipHealthchecks, message, Optional.<String> absent(), Optional.<Resources>absent());
}
public SingularityPendingRequest(String requestId, String deployId, long timestamp, Optional<String> user, PendingType pendingType, Optional<List<String>> cmdLineArgsList,
Optional<String> runId, Optional<Boolean> skipHealthchecks, Optional<String> message, Optional<String> actionId) {
this(requestId, deployId, timestamp, user, pendingType, cmdLineArgsList, runId, skipHealthchecks, message, actionId, Optional.<Resources>absent());
}
@JsonCreator
public SingularityPendingRequest(@JsonProperty("requestId") String requestId, @JsonProperty("deployId") String deployId, @JsonProperty("timestamp") long timestamp,
@JsonProperty("user") Optional<String> user, @JsonProperty("pendingType") PendingType pendingType, @JsonProperty("cmdLineArgsList") Optional<List<String>> cmdLineArgsList,
@JsonProperty("runId") Optional<String> runId, @JsonProperty("skipHealthchecks") Optional<Boolean> skipHealthchecks, @JsonProperty("message") Optional<String> message,
@JsonProperty("actionId") Optional<String> actionId, @JsonProperty("resources") Optional<Resources> resources) {
this.requestId = requestId;
this.deployId = deployId;
this.timestamp = timestamp;
this.user = user;
this.cmdLineArgsList = cmdLineArgsList;
this.pendingType = pendingType;
this.runId = runId;
this.skipHealthchecks = skipHealthchecks;
this.message = message;
this.actionId = actionId;
this.resources = resources;
}
public Optional<String> getActionId() {
return actionId;
}
public Optional<String> getRunId() {
return runId;
}
public long getTimestamp() {
return timestamp;
}
public String getDeployId() {
return deployId;
}
public Optional<String> getUser() {
return user;
}
public String getRequestId() {
return requestId;
}
public PendingType getPendingType() {
return pendingType;
}
public Optional<List<String>> getCmdLineArgsList() {
return cmdLineArgsList;
}
public Optional<Boolean> getSkipHealthchecks() {
return skipHealthchecks;
}
public Optional<String> getMessage() {
return message;
}
public Optional<Resources> getResources() {
return resources;
}
@Override
public String toString() {
return "SingularityPendingRequest{" +
"requestId='" + requestId + '\'' +
", deployId='" + deployId + '\'' +
", timestamp=" + timestamp +
", pendingType=" + pendingType +
", user=" + user +
", cmdLineArgsList=" + cmdLineArgsList +
", runId=" + runId +
", skipHealthchecks=" + skipHealthchecks +
", message=" + message +
", actionId=" + actionId +
", resources=" + resources +
'}';
}
}