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

package com.azure.resourcemanager.connectedvmware.models;

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

/** Summarization of patches available for installation on the machine by classification. */
@Immutable
public final class AvailablePatchCountByClassification {
    /*
     * Number of security patches available for installation.
     */
    @JsonProperty(value = "security", access = JsonProperty.Access.WRITE_ONLY)
    private Integer security;

    /*
     * Number of critical patches available for installation.
     */
    @JsonProperty(value = "critical", access = JsonProperty.Access.WRITE_ONLY)
    private Integer critical;

    /*
     * Number of definition patches available for installation.
     */
    @JsonProperty(value = "definition", access = JsonProperty.Access.WRITE_ONLY)
    private Integer definition;

    /*
     * Number of update Rollup patches available for installation.
     */
    @JsonProperty(value = "updateRollup", access = JsonProperty.Access.WRITE_ONLY)
    private Integer updateRollup;

    /*
     * Number of feature pack patches available for installation.
     */
    @JsonProperty(value = "featurePack", access = JsonProperty.Access.WRITE_ONLY)
    private Integer featurePack;

    /*
     * Number of service pack patches available for installation.
     */
    @JsonProperty(value = "servicePack", access = JsonProperty.Access.WRITE_ONLY)
    private Integer servicePack;

    /*
     * Number of tools patches available for installation.
     */
    @JsonProperty(value = "tools", access = JsonProperty.Access.WRITE_ONLY)
    private Integer tools;

    /*
     * Number of updates category patches available for installation.
     */
    @JsonProperty(value = "updates", access = JsonProperty.Access.WRITE_ONLY)
    private Integer updates;

    /*
     * Number of other patches available for installation.
     */
    @JsonProperty(value = "other", access = JsonProperty.Access.WRITE_ONLY)
    private Integer other;

    /**
     * Get the security property: Number of security patches available for installation.
     *
     * @return the security value.
     */
    public Integer security() {
        return this.security;
    }

    /**
     * Get the critical property: Number of critical patches available for installation.
     *
     * @return the critical value.
     */
    public Integer critical() {
        return this.critical;
    }

    /**
     * Get the definition property: Number of definition patches available for installation.
     *
     * @return the definition value.
     */
    public Integer definition() {
        return this.definition;
    }

    /**
     * Get the updateRollup property: Number of update Rollup patches available for installation.
     *
     * @return the updateRollup value.
     */
    public Integer updateRollup() {
        return this.updateRollup;
    }

    /**
     * Get the featurePack property: Number of feature pack patches available for installation.
     *
     * @return the featurePack value.
     */
    public Integer featurePack() {
        return this.featurePack;
    }

    /**
     * Get the servicePack property: Number of service pack patches available for installation.
     *
     * @return the servicePack value.
     */
    public Integer servicePack() {
        return this.servicePack;
    }

    /**
     * Get the tools property: Number of tools patches available for installation.
     *
     * @return the tools value.
     */
    public Integer tools() {
        return this.tools;
    }

    /**
     * Get the updates property: Number of updates category patches available for installation.
     *
     * @return the updates value.
     */
    public Integer updates() {
        return this.updates;
    }

    /**
     * Get the other property: Number of other patches available for installation.
     *
     * @return the other value.
     */
    public Integer other() {
        return this.other;
    }

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