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

package com.azure.resourcemanager.databoxedge.models;

import com.azure.resourcemanager.databoxedge.fluent.models.ResourceTypeSkuInner;
import java.util.List;

/** An immutable client-side representation of ResourceTypeSku. */
public interface ResourceTypeSku {
    /**
     * Gets the resourceType property: The type of the resource.
     *
     * @return the resourceType value.
     */
    String resourceType();

    /**
     * Gets the name property: The Sku name.
     *
     * @return the name value.
     */
    SkuName name();

    /**
     * Gets the kind property: The Sku kind.
     *
     * @return the kind value.
     */
    String kind();

    /**
     * Gets the tier property: The Sku tier.
     *
     * @return the tier value.
     */
    SkuTier tier();

    /**
     * Gets the family property: The Sku family.
     *
     * @return the family value.
     */
    String family();

    /**
     * Gets the locations property: Availability of the SKU for the region.
     *
     * @return the locations value.
     */
    List<String> locations();

    /**
     * Gets the apiVersions property: The API versions in which SKU is available.
     *
     * @return the apiVersions value.
     */
    List<String> apiVersions();

    /**
     * Gets the locationInfo property: Availability of the SKU for the location/zone.
     *
     * @return the locationInfo value.
     */
    List<SkuLocationInfo> locationInfo();

    /**
     * Gets the costs property: The pricing info of the Sku.
     *
     * @return the costs value.
     */
    List<SkuCost> costs();

    /**
     * Gets the restrictions property: Restrictions of the SKU availability.
     *
     * @return the restrictions value.
     */
    List<SkuRestriction> restrictions();

    /**
     * Gets the inner com.azure.resourcemanager.databoxedge.fluent.models.ResourceTypeSkuInner object.
     *
     * @return the inner object.
     */
    ResourceTypeSkuInner innerModel();
}
