# 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 Provider(Model):
    """Information about a Provider. A Provider is an entity that offers Targets
    to run Azure Quantum Jobs.

    :param provider_id: Unique id of this provider.
    :type provider_id: str
    :param provider_sku: The sku associated with pricing information for this
     provider.
    :type provider_sku: str
    :param instance_uri: A Uri identifying the specific instance of this
     provider.
    :type instance_uri: str
    :param application_name: The provider's marketplace application display
     name.
    :type application_name: str
    :param provisioning_state: Provisioning status field. Possible values
     include: 'Succeeded', 'Launching', 'Updating', 'Deleting', 'Deleted',
     'Failed'
    :type provisioning_state: str or ~azure.quantum.models.Status
    :param resource_usage_id: Id to track resource usage for the provider.
    :type resource_usage_id: str
    """

    _attribute_map = {
        'provider_id': {'key': 'providerId', 'type': 'str'},
        'provider_sku': {'key': 'providerSku', 'type': 'str'},
        'instance_uri': {'key': 'instanceUri', 'type': 'str'},
        'application_name': {'key': 'applicationName', 'type': 'str'},
        'provisioning_state': {'key': 'provisioningState', 'type': 'str'},
        'resource_usage_id': {'key': 'resourceUsageId', 'type': 'str'},
    }

    def __init__(self, **kwargs):
        super(Provider, self).__init__(**kwargs)
        self.provider_id = kwargs.get('provider_id', None)
        self.provider_sku = kwargs.get('provider_sku', None)
        self.instance_uri = kwargs.get('instance_uri', None)
        self.application_name = kwargs.get('application_name', None)
        self.provisioning_state = kwargs.get('provisioning_state', None)
        self.resource_usage_id = kwargs.get('resource_usage_id', None)
