# coding=utf-8
# --------------------------------------------------------------------------
# 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 LicenseResponse(Model):
    """LicenseResponse.

    :param validation_key: User's license validation key.
    :type validation_key: str
    :param expiration_date: User's license expiration date.
    :type expiration_date: datetime
    :param licensed_meters: Number of licensed meters for this user.
    :type licensed_meters: int
    :param user_number: The user number.
    :type user_number: str
    :param version: EnergyCAP version on this license.
    :type version: str
    :param notes: Additional notes related to the license.
    :type notes: str
    :param meter_usage:
    :type meter_usage: ~energycap.sdk.models.AccountOrMeterUsage
    :param account_usage:
    :type account_usage: ~energycap.sdk.models.AccountOrMeterUsage
    :param bills_created_last30_days:
    :type bills_created_last30_days: ~energycap.sdk.models.BillUsage
    :param bills_created_last12_months:
    :type bills_created_last12_months: ~energycap.sdk.models.BillUsage
    :param license_features:
    :type license_features: ~energycap.sdk.models.LicenseFeatures
    """

    _attribute_map = {
        'validation_key': {'key': 'validationKey', 'type': 'str'},
        'expiration_date': {'key': 'expirationDate', 'type': 'iso-8601'},
        'licensed_meters': {'key': 'licensedMeters', 'type': 'int'},
        'user_number': {'key': 'userNumber', 'type': 'str'},
        'version': {'key': 'version', 'type': 'str'},
        'notes': {'key': 'notes', 'type': 'str'},
        'meter_usage': {'key': 'meterUsage', 'type': 'AccountOrMeterUsage'},
        'account_usage': {'key': 'accountUsage', 'type': 'AccountOrMeterUsage'},
        'bills_created_last30_days': {'key': 'billsCreatedLast30Days', 'type': 'BillUsage'},
        'bills_created_last12_months': {'key': 'billsCreatedLast12Months', 'type': 'BillUsage'},
        'license_features': {'key': 'licenseFeatures', 'type': 'LicenseFeatures'},
    }

    def __init__(self, validation_key=None, expiration_date=None, licensed_meters=None, user_number=None, version=None, notes=None, meter_usage=None, account_usage=None, bills_created_last30_days=None, bills_created_last12_months=None, license_features=None):
        super(LicenseResponse, self).__init__()
        self.validation_key = validation_key
        self.expiration_date = expiration_date
        self.licensed_meters = licensed_meters
        self.user_number = user_number
        self.version = version
        self.notes = notes
        self.meter_usage = meter_usage
        self.account_usage = account_usage
        self.bills_created_last30_days = bills_created_last30_days
        self.bills_created_last12_months = bills_created_last12_months
        self.license_features = license_features
