package com.sequenceiq.cloudbreak.api.model;
import java.util.ArrayList;
import java.util.List;
import javax.validation.Valid;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.sequenceiq.cloudbreak.doc.ModelDescriptions;
import com.sequenceiq.cloudbreak.doc.ModelDescriptions.StackModelDescription;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ApiModel
@JsonIgnoreProperties(ignoreUnknown = true)
public class StackResponse extends StackBase {
@ApiModelProperty(StackModelDescription.STACK_ID)
private Long id;
@ApiModelProperty(ModelDescriptions.OWNER)
private String owner;
@ApiModelProperty(ModelDescriptions.ACCOUNT)
private String account;
@ApiModelProperty(ModelDescriptions.PUBLIC_IN_ACCOUNT)
private boolean publicInAccount;
@ApiModelProperty(StackModelDescription.STACK_STATUS)
private Status status;
private ClusterResponse cluster;
@ApiModelProperty(StackModelDescription.STATUS_REASON)
private String statusReason;
@ApiModelProperty(StackModelDescription.CREDENTIAL)
private CredentialResponse credential;
@ApiModelProperty(StackModelDescription.NETWORK)
private NetworkResponse network;
@Valid
@ApiModelProperty
private List<InstanceGroupResponse> instanceGroups = new ArrayList<>();
@ApiModelProperty(StackModelDescription.FAILURE_POLICY)
private FailurePolicyResponse failurePolicy;
@ApiModelProperty(StackModelDescription.ORCHESTRATOR)
private OrchestratorResponse orchestrator;
@ApiModelProperty(StackModelDescription.STACK_TEMPLATE)
private String stackTemplate;
@ApiModelProperty(StackModelDescription.CREATED)
private Long created;
@ApiModelProperty(StackModelDescription.GATEWAY_PORT)
private Integer gatewayPort;
@ApiModelProperty(StackModelDescription.IMAGE)
private ImageJson image;
@ApiModelProperty(StackModelDescription.CLOUDBREAK_DETAILS)
private CloudbreakDetailsJson cloudbreakDetails;
@ApiModelProperty(StackModelDescription.S3_ACCESS_ROLE_ARN)
private String s3AccessRoleArn;
@ApiModelProperty(StackModelDescription.FLEX_SUBSCRIPTION)
private FlexSubscriptionResponse flexSubscription;
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public ClusterResponse getCluster() {
return cluster;
}
public void setCluster(ClusterResponse cluster) {
this.cluster = cluster;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public List<InstanceGroupResponse> getInstanceGroups() {
return instanceGroups;
}
public void setInstanceGroups(List<InstanceGroupResponse> instanceGroups) {
this.instanceGroups = instanceGroups;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
@JsonProperty("public")
public boolean isPublicInAccount() {
return publicInAccount;
}
public void setPublicInAccount(boolean publicInAccount) {
this.publicInAccount = publicInAccount;
}
public Status getStatus() {
return status;
}
public void setStatus(Status status) {
this.status = status;
}
public String getStatusReason() {
return statusReason;
}
public void setStatusReason(String statusReason) {
this.statusReason = statusReason;
}
public OrchestratorResponse getOrchestrator() {
return orchestrator;
}
public void setOrchestrator(OrchestratorResponse orchestrator) {
this.orchestrator = orchestrator;
}
public Long getCreated() {
return created;
}
public void setCreated(Long created) {
this.created = created;
}
public Integer getGatewayPort() {
return gatewayPort;
}
public void setGatewayPort(Integer gatewayPort) {
this.gatewayPort = gatewayPort;
}
public ImageJson getImage() {
return image;
}
public void setImage(ImageJson image) {
this.image = image;
}
public CloudbreakDetailsJson getCloudbreakDetails() {
return cloudbreakDetails;
}
public void setCloudbreakDetails(CloudbreakDetailsJson cloudbreakDetails) {
this.cloudbreakDetails = cloudbreakDetails;
}
public FailurePolicyResponse getFailurePolicy() {
return failurePolicy;
}
public void setFailurePolicy(FailurePolicyResponse failurePolicy) {
this.failurePolicy = failurePolicy;
}
public String getStackTemplate() {
return stackTemplate;
}
public void setStackTemplate(String stackTemplate) {
this.stackTemplate = stackTemplate;
}
public String getS3AccessRoleArn() {
return s3AccessRoleArn;
}
public void setS3AccessRoleArn(String s3AccessRoleArn) {
this.s3AccessRoleArn = s3AccessRoleArn;
}
public CredentialResponse getCredential() {
return credential;
}
public void setCredential(CredentialResponse credential) {
this.credential = credential;
}
public NetworkResponse getNetwork() {
return network;
}
public void setNetwork(NetworkResponse network) {
this.network = network;
}
public FlexSubscriptionResponse getFlexSubscription() {
return flexSubscription;
}
public void setFlexSubscription(FlexSubscriptionResponse flexSubscription) {
this.flexSubscription = flexSubscription;
}
}