/*
 * Swaggy Jenkins
 * Jenkins API clients generated from Swagger / Open API specification
 *
 * The version of the OpenAPI document: 1.1.2-pre.0
 * Contact: blah@cliffano.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

package org.openapitools.model;

import java.util.Objects;
import java.util.Arrays;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.openapitools.model.PipelineImpllinks;
import com.fasterxml.jackson.annotation.*;

import javax.validation.constraints.*;
import javax.validation.Valid;
import io.micronaut.core.annotation.*;
import javax.annotation.Generated;

/**
 * PipelineImpl
 */
@JsonPropertyOrder({
  PipelineImpl.JSON_PROPERTY_PROPERTY_CLASS,
  PipelineImpl.JSON_PROPERTY_DISPLAY_NAME,
  PipelineImpl.JSON_PROPERTY_ESTIMATED_DURATION_IN_MILLIS,
  PipelineImpl.JSON_PROPERTY_FULL_NAME,
  PipelineImpl.JSON_PROPERTY_LATEST_RUN,
  PipelineImpl.JSON_PROPERTY_NAME,
  PipelineImpl.JSON_PROPERTY_ORGANIZATION,
  PipelineImpl.JSON_PROPERTY_WEATHER_SCORE,
  PipelineImpl.JSON_PROPERTY_LINKS
})
@JsonTypeName("PipelineImpl")
@Generated(value="org.openapitools.codegen.languages.JavaMicronautServerCodegen", date="2022-02-13T02:16:43.247289Z[Etc/UTC]")
@Introspected
public class PipelineImpl {
    public static final String JSON_PROPERTY_PROPERTY_CLASS = "_class";
    private String propertyClass;

    public static final String JSON_PROPERTY_DISPLAY_NAME = "displayName";
    private String displayName;

    public static final String JSON_PROPERTY_ESTIMATED_DURATION_IN_MILLIS = "estimatedDurationInMillis";
    private Integer estimatedDurationInMillis;

    public static final String JSON_PROPERTY_FULL_NAME = "fullName";
    private String fullName;

    public static final String JSON_PROPERTY_LATEST_RUN = "latestRun";
    private String latestRun;

    public static final String JSON_PROPERTY_NAME = "name";
    private String name;

    public static final String JSON_PROPERTY_ORGANIZATION = "organization";
    private String organization;

    public static final String JSON_PROPERTY_WEATHER_SCORE = "weatherScore";
    private Integer weatherScore;

    public static final String JSON_PROPERTY_LINKS = "_links";
    private PipelineImpllinks links;

    public PipelineImpl() {
    }

    public PipelineImpl propertyClass(String propertyClass) {
        this.propertyClass = propertyClass;
        return this;
    }

    /**
     * Get propertyClass
     * @return propertyClass
     **/
    @Nullable
    @ApiModelProperty(value = "")
    @JsonProperty(JSON_PROPERTY_PROPERTY_CLASS)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
       public String getPropertyClass() {
        return propertyClass;
    }

    @JsonProperty(JSON_PROPERTY_PROPERTY_CLASS)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
       public void setPropertyClass(String propertyClass) {
        this.propertyClass = propertyClass;
    }

    public PipelineImpl displayName(String displayName) {
        this.displayName = displayName;
        return this;
    }

    /**
     * Get displayName
     * @return displayName
     **/
    @Nullable
    @ApiModelProperty(value = "")
    @JsonProperty(JSON_PROPERTY_DISPLAY_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
       public String getDisplayName() {
        return displayName;
    }

    @JsonProperty(JSON_PROPERTY_DISPLAY_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
       public void setDisplayName(String displayName) {
        this.displayName = displayName;
    }

    public PipelineImpl estimatedDurationInMillis(Integer estimatedDurationInMillis) {
        this.estimatedDurationInMillis = estimatedDurationInMillis;
        return this;
    }

    /**
     * Get estimatedDurationInMillis
     * @return estimatedDurationInMillis
     **/
    @Nullable
    @ApiModelProperty(value = "")
    @JsonProperty(JSON_PROPERTY_ESTIMATED_DURATION_IN_MILLIS)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
       public Integer getEstimatedDurationInMillis() {
        return estimatedDurationInMillis;
    }

    @JsonProperty(JSON_PROPERTY_ESTIMATED_DURATION_IN_MILLIS)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
       public void setEstimatedDurationInMillis(Integer estimatedDurationInMillis) {
        this.estimatedDurationInMillis = estimatedDurationInMillis;
    }

    public PipelineImpl fullName(String fullName) {
        this.fullName = fullName;
        return this;
    }

    /**
     * Get fullName
     * @return fullName
     **/
    @Nullable
    @ApiModelProperty(value = "")
    @JsonProperty(JSON_PROPERTY_FULL_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
       public String getFullName() {
        return fullName;
    }

    @JsonProperty(JSON_PROPERTY_FULL_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
       public void setFullName(String fullName) {
        this.fullName = fullName;
    }

    public PipelineImpl latestRun(String latestRun) {
        this.latestRun = latestRun;
        return this;
    }

    /**
     * Get latestRun
     * @return latestRun
     **/
    @Nullable
    @ApiModelProperty(value = "")
    @JsonProperty(JSON_PROPERTY_LATEST_RUN)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
       public String getLatestRun() {
        return latestRun;
    }

    @JsonProperty(JSON_PROPERTY_LATEST_RUN)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
       public void setLatestRun(String latestRun) {
        this.latestRun = latestRun;
    }

    public PipelineImpl name(String name) {
        this.name = name;
        return this;
    }

    /**
     * Get name
     * @return name
     **/
    @Nullable
    @ApiModelProperty(value = "")
    @JsonProperty(JSON_PROPERTY_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
       public String getName() {
        return name;
    }

    @JsonProperty(JSON_PROPERTY_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
       public void setName(String name) {
        this.name = name;
    }

    public PipelineImpl organization(String organization) {
        this.organization = organization;
        return this;
    }

    /**
     * Get organization
     * @return organization
     **/
    @Nullable
    @ApiModelProperty(value = "")
    @JsonProperty(JSON_PROPERTY_ORGANIZATION)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
       public String getOrganization() {
        return organization;
    }

    @JsonProperty(JSON_PROPERTY_ORGANIZATION)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
       public void setOrganization(String organization) {
        this.organization = organization;
    }

    public PipelineImpl weatherScore(Integer weatherScore) {
        this.weatherScore = weatherScore;
        return this;
    }

    /**
     * Get weatherScore
     * @return weatherScore
     **/
    @Nullable
    @ApiModelProperty(value = "")
    @JsonProperty(JSON_PROPERTY_WEATHER_SCORE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
       public Integer getWeatherScore() {
        return weatherScore;
    }

    @JsonProperty(JSON_PROPERTY_WEATHER_SCORE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
       public void setWeatherScore(Integer weatherScore) {
        this.weatherScore = weatherScore;
    }

    public PipelineImpl links(PipelineImpllinks links) {
        this.links = links;
        return this;
    }

    /**
     * Get links
     * @return links
     **/
    @Valid
    @Nullable
    @ApiModelProperty(value = "")
    @JsonProperty(JSON_PROPERTY_LINKS)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
       public PipelineImpllinks getLinks() {
        return links;
    }

    @JsonProperty(JSON_PROPERTY_LINKS)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
       public void setLinks(PipelineImpllinks links) {
        this.links = links;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        PipelineImpl pipelineImpl = (PipelineImpl) o;
        return Objects.equals(this.propertyClass, pipelineImpl.propertyClass) &&
            Objects.equals(this.displayName, pipelineImpl.displayName) &&
            Objects.equals(this.estimatedDurationInMillis, pipelineImpl.estimatedDurationInMillis) &&
            Objects.equals(this.fullName, pipelineImpl.fullName) &&
            Objects.equals(this.latestRun, pipelineImpl.latestRun) &&
            Objects.equals(this.name, pipelineImpl.name) &&
            Objects.equals(this.organization, pipelineImpl.organization) &&
            Objects.equals(this.weatherScore, pipelineImpl.weatherScore) &&
            Objects.equals(this.links, pipelineImpl.links);
    }

    @Override
    public int hashCode() {
        return Objects.hash(propertyClass, displayName, estimatedDurationInMillis, fullName, latestRun, name, organization, weatherScore, links);
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("class PipelineImpl {\n");
        sb.append("    propertyClass: ").append(toIndentedString(propertyClass)).append("\n");
        sb.append("    displayName: ").append(toIndentedString(displayName)).append("\n");
        sb.append("    estimatedDurationInMillis: ").append(toIndentedString(estimatedDurationInMillis)).append("\n");
        sb.append("    fullName: ").append(toIndentedString(fullName)).append("\n");
        sb.append("    latestRun: ").append(toIndentedString(latestRun)).append("\n");
        sb.append("    name: ").append(toIndentedString(name)).append("\n");
        sb.append("    organization: ").append(toIndentedString(organization)).append("\n");
        sb.append("    weatherScore: ").append(toIndentedString(weatherScore)).append("\n");
        sb.append("    links: ").append(toIndentedString(links)).append("\n");
        sb.append("}");
        return sb.toString();
    }

    /**
     * Convert the given object to string with each line indented by 4 spaces
     * (except the first line).
     */
    private String toIndentedString(Object o) {
        if (o == null) {
            return "null";
        }
        return o.toString().replace("\n", "\n    ");
    }

}
