// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.

package com.azure.resourcemanager.elastic.fluent.models;

import com.azure.core.annotation.Immutable;
import com.azure.resourcemanager.elastic.models.ElasticDeploymentStatus;
import com.azure.resourcemanager.elastic.models.MarketplaceSaaSInfo;
import com.fasterxml.jackson.annotation.JsonProperty;

/** The properties of deployment in Elastic cloud corresponding to the Elastic monitor resource. */
@Immutable
public final class DeploymentInfoResponseInner {
    /*
     * The Elastic deployment status.
     */
    @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
    private ElasticDeploymentStatus status;

    /*
     * Version of the elasticsearch in Elastic cloud deployment.
     */
    @JsonProperty(value = "version", access = JsonProperty.Access.WRITE_ONLY)
    private String version;

    /*
     * RAM capacity of the elasticsearch in Elastic cloud deployment.
     */
    @JsonProperty(value = "memoryCapacity", access = JsonProperty.Access.WRITE_ONLY)
    private String memoryCapacity;

    /*
     * Disk capacity of the elasticsearch in Elastic cloud deployment.
     */
    @JsonProperty(value = "diskCapacity", access = JsonProperty.Access.WRITE_ONLY)
    private String diskCapacity;

    /*
     * Deployment URL of the elasticsearch in Elastic cloud deployment.
     */
    @JsonProperty(value = "deploymentUrl", access = JsonProperty.Access.WRITE_ONLY)
    private String deploymentUrl;

    /*
     * Marketplace SaaS Info of the resource.
     */
    @JsonProperty(value = "marketplaceSaasInfo", access = JsonProperty.Access.WRITE_ONLY)
    private MarketplaceSaaSInfo marketplaceSaasInfo;

    /** Creates an instance of DeploymentInfoResponseInner class. */
    public DeploymentInfoResponseInner() {
    }

    /**
     * Get the status property: The Elastic deployment status.
     *
     * @return the status value.
     */
    public ElasticDeploymentStatus status() {
        return this.status;
    }

    /**
     * Get the version property: Version of the elasticsearch in Elastic cloud deployment.
     *
     * @return the version value.
     */
    public String version() {
        return this.version;
    }

    /**
     * Get the memoryCapacity property: RAM capacity of the elasticsearch in Elastic cloud deployment.
     *
     * @return the memoryCapacity value.
     */
    public String memoryCapacity() {
        return this.memoryCapacity;
    }

    /**
     * Get the diskCapacity property: Disk capacity of the elasticsearch in Elastic cloud deployment.
     *
     * @return the diskCapacity value.
     */
    public String diskCapacity() {
        return this.diskCapacity;
    }

    /**
     * Get the deploymentUrl property: Deployment URL of the elasticsearch in Elastic cloud deployment.
     *
     * @return the deploymentUrl value.
     */
    public String deploymentUrl() {
        return this.deploymentUrl;
    }

    /**
     * Get the marketplaceSaasInfo property: Marketplace SaaS Info of the resource.
     *
     * @return the marketplaceSaasInfo value.
     */
    public MarketplaceSaaSInfo marketplaceSaasInfo() {
        return this.marketplaceSaasInfo;
    }

    /**
     * Validates the instance.
     *
     * @throws IllegalArgumentException thrown if the instance is not valid.
     */
    public void validate() {
        if (marketplaceSaasInfo() != null) {
            marketplaceSaasInfo().validate();
        }
    }
}
