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

package com.azure.resourcemanager.scvmm.models;

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

/** Cloud Capacity model. */
@Fluent
public final class CloudCapacity {
    /*
     * CPUCount specifies the maximum number of CPUs that can be allocated in
     * the cloud.
     */
    @JsonProperty(value = "cpuCount")
    private Long cpuCount;

    /*
     * MemoryMB specifies a memory usage limit in megabytes.
     */
    @JsonProperty(value = "memoryMB")
    private Long memoryMB;

    /*
     * VMCount gives the max number of VMs that can be deployed in the cloud.
     */
    @JsonProperty(value = "vmCount")
    private Long vmCount;

    /**
     * Get the cpuCount property: CPUCount specifies the maximum number of CPUs that can be allocated in the cloud.
     *
     * @return the cpuCount value.
     */
    public Long cpuCount() {
        return this.cpuCount;
    }

    /**
     * Set the cpuCount property: CPUCount specifies the maximum number of CPUs that can be allocated in the cloud.
     *
     * @param cpuCount the cpuCount value to set.
     * @return the CloudCapacity object itself.
     */
    public CloudCapacity withCpuCount(Long cpuCount) {
        this.cpuCount = cpuCount;
        return this;
    }

    /**
     * Get the memoryMB property: MemoryMB specifies a memory usage limit in megabytes.
     *
     * @return the memoryMB value.
     */
    public Long memoryMB() {
        return this.memoryMB;
    }

    /**
     * Set the memoryMB property: MemoryMB specifies a memory usage limit in megabytes.
     *
     * @param memoryMB the memoryMB value to set.
     * @return the CloudCapacity object itself.
     */
    public CloudCapacity withMemoryMB(Long memoryMB) {
        this.memoryMB = memoryMB;
        return this;
    }

    /**
     * Get the vmCount property: VMCount gives the max number of VMs that can be deployed in the cloud.
     *
     * @return the vmCount value.
     */
    public Long vmCount() {
        return this.vmCount;
    }

    /**
     * Set the vmCount property: VMCount gives the max number of VMs that can be deployed in the cloud.
     *
     * @param vmCount the vmCount value to set.
     * @return the CloudCapacity object itself.
     */
    public CloudCapacity withVmCount(Long vmCount) {
        this.vmCount = vmCount;
        return this;
    }

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