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

package com.azure.resourcemanager.cognitiveservices.models;

import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;

/** Properties of Cognitive Services account deployment model. */
@Fluent
public final class DeploymentScaleSettings {
    /*
     * Deployment scale type.
     */
    @JsonProperty(value = "scaleType")
    private DeploymentScaleType scaleType;

    /*
     * Deployment capacity.
     */
    @JsonProperty(value = "capacity")
    private Integer capacity;

    /*
     * Deployment active capacity. This value might be different from `capacity` if customer recently updated
     * `capacity`.
     */
    @JsonProperty(value = "activeCapacity", access = JsonProperty.Access.WRITE_ONLY)
    private Integer activeCapacity;

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

    /**
     * Get the scaleType property: Deployment scale type.
     *
     * @return the scaleType value.
     */
    public DeploymentScaleType scaleType() {
        return this.scaleType;
    }

    /**
     * Set the scaleType property: Deployment scale type.
     *
     * @param scaleType the scaleType value to set.
     * @return the DeploymentScaleSettings object itself.
     */
    public DeploymentScaleSettings withScaleType(DeploymentScaleType scaleType) {
        this.scaleType = scaleType;
        return this;
    }

    /**
     * Get the capacity property: Deployment capacity.
     *
     * @return the capacity value.
     */
    public Integer capacity() {
        return this.capacity;
    }

    /**
     * Set the capacity property: Deployment capacity.
     *
     * @param capacity the capacity value to set.
     * @return the DeploymentScaleSettings object itself.
     */
    public DeploymentScaleSettings withCapacity(Integer capacity) {
        this.capacity = capacity;
        return this;
    }

    /**
     * Get the activeCapacity property: Deployment active capacity. This value might be different from `capacity` if
     * customer recently updated `capacity`.
     *
     * @return the activeCapacity value.
     */
    public Integer activeCapacity() {
        return this.activeCapacity;
    }

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