# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
#
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------

from msrest.serialization import Model


class Quota(Model):
    """Quota information.

    :param dimension: The name of the dimension associated with the quota.
    :type dimension: str
    :param scope: The scope at which the quota is applied. Possible values
     include: 'Workspace', 'Subscription'
    :type scope: str or ~azure.quantum.models.DimensionScope
    :param provider_id: The unique identifier for the provider.
    :type provider_id: str
    :param utilization: The amount of the usage that has been applied for the
     current period.
    :type utilization: float
    :param holds: The amount of the usage that has been reserved but not
     applied for the current period.
    :type holds: float
    :param limit: The maximum amount of usage allowed for the current period.
    :type limit: float
    :param period: The time period in which the quota's underlying meter is
     accumulated. Based on calendar year. 'None' is used for concurrent quotas.
     Possible values include: 'None', 'Monthly'
    :type period: str or ~azure.quantum.models.MeterPeriod
    """

    _attribute_map = {
        'dimension': {'key': 'dimension', 'type': 'str'},
        'scope': {'key': 'scope', 'type': 'str'},
        'provider_id': {'key': 'providerId', 'type': 'str'},
        'utilization': {'key': 'utilization', 'type': 'float'},
        'holds': {'key': 'holds', 'type': 'float'},
        'limit': {'key': 'limit', 'type': 'float'},
        'period': {'key': 'period', 'type': 'str'},
    }

    def __init__(self, **kwargs):
        super(Quota, self).__init__(**kwargs)
        self.dimension = kwargs.get('dimension', None)
        self.scope = kwargs.get('scope', None)
        self.provider_id = kwargs.get('provider_id', None)
        self.utilization = kwargs.get('utilization', None)
        self.holds = kwargs.get('holds', None)
        self.limit = kwargs.get('limit', None)
        self.period = kwargs.get('period', None)
