package com.hubspot.singularity; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.Optional; import com.hubspot.singularity.expiring.SingularityExpiringBounce; import com.hubspot.singularity.expiring.SingularityExpiringPause; import com.hubspot.singularity.expiring.SingularityExpiringScale; import com.hubspot.singularity.expiring.SingularityExpiringSkipHealthchecks; public class SingularityRequestParent { private final SingularityRequest request; private final RequestState state; private final Optional<SingularityRequestDeployState> requestDeployState; private final Optional<SingularityDeploy> activeDeploy; private final Optional<SingularityDeploy> pendingDeploy; private final Optional<SingularityPendingDeploy> pendingDeployState; private final Optional<SingularityExpiringBounce> expiringBounce; private final Optional<SingularityExpiringPause> expiringPause; private final Optional<SingularityExpiringScale> expiringScale; private final Optional<SingularityExpiringSkipHealthchecks> expiringSkipHealthchecks; public SingularityRequestParent(SingularityRequest request, RequestState state) { this(request, state, Optional.<SingularityRequestDeployState> absent()); } public SingularityRequestParent(SingularityRequest request, RequestState state, Optional<SingularityRequestDeployState> requestDeployState) { this(request, state, requestDeployState, Optional.<SingularityDeploy> absent(), Optional.<SingularityDeploy> absent(), Optional.<SingularityPendingDeploy> absent(), Optional.<SingularityExpiringBounce> absent(), Optional.<SingularityExpiringPause> absent(), Optional.<SingularityExpiringScale> absent(), Optional.<SingularityExpiringSkipHealthchecks> absent()); } @JsonCreator public SingularityRequestParent(@JsonProperty("request") SingularityRequest request, @JsonProperty("state") RequestState state, @JsonProperty("requestDeployState") Optional<SingularityRequestDeployState> requestDeployState, @JsonProperty("activeDeploy") Optional<SingularityDeploy> activeDeploy, @JsonProperty("pendingDeploy") Optional<SingularityDeploy> pendingDeploy, @JsonProperty("pendingDeployState") Optional<SingularityPendingDeploy> pendingDeployState, @JsonProperty("expiringBounce") Optional<SingularityExpiringBounce> expiringBounce, @JsonProperty("expiringPause") Optional<SingularityExpiringPause> expiringPause, @JsonProperty("expiringScale") Optional<SingularityExpiringScale> expiringScale, @JsonProperty("expiringSkipHealthchecks") Optional<SingularityExpiringSkipHealthchecks> expiringSkipHealthchecks) { this.request = request; this.state = state; this.requestDeployState = requestDeployState; this.activeDeploy = activeDeploy; this.pendingDeploy = pendingDeploy; this.pendingDeployState = pendingDeployState; this.expiringBounce = expiringBounce; this.expiringPause = expiringPause; this.expiringScale = expiringScale; this.expiringSkipHealthchecks = expiringSkipHealthchecks; } public RequestState getState() { return state; } public SingularityRequest getRequest() { return request; } public Optional<SingularityRequestDeployState> getRequestDeployState() { return requestDeployState; } public Optional<SingularityDeploy> getActiveDeploy() { return activeDeploy; } public Optional<SingularityDeploy> getPendingDeploy() { return pendingDeploy; } public Optional<SingularityPendingDeploy> getPendingDeployState() { return pendingDeployState; } public Optional<SingularityExpiringBounce> getExpiringBounce() { return expiringBounce; } public Optional<SingularityExpiringPause> getExpiringPause() { return expiringPause; } public Optional<SingularityExpiringScale> getExpiringScale() { return expiringScale; } public Optional<SingularityExpiringSkipHealthchecks> getExpiringSkipHealthchecks() { return expiringSkipHealthchecks; } @Override public String toString() { return "SingularityRequestParent{" + "request=" + request + ", state=" + state + ", requestDeployState=" + requestDeployState + ", activeDeploy=" + activeDeploy + ", pendingDeploy=" + pendingDeploy + ", pendingDeployState=" + pendingDeployState + ", expiringBounce=" + expiringBounce + ", expiringPause=" + expiringPause + ", expiringScale=" + expiringScale + ", expiringSkipHealthchecks=" + expiringSkipHealthchecks + '}'; } }