# coding: utf-8

"""
    Speechmatics Management API

    Speechmatics offer a secure Management REST API that enables you to programatically control the lifecycle of the appliance, including stopping and rebooting the appliance, restarting services, licensing the appliance and controlling the available resources.  # noqa: E501

    OpenAPI spec version: 1.0
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

import six


class ManagementLicenseStatus(object):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """

    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'status': 'str',
        'product': 'str',
        'computer_id': 'str',
        'license_code': 'str',
        'activation_type': 'str',
        'licensed': 'bool',
        'license_type': 'str',
        'connected': 'bool',
        'transcription_minutes_allowed': 'str',
        'subscription_expiry': 'str',
        'message': 'str',
        'customer_id': 'int',
        'transcription_secs_allowed': 'int',
        'transcription_secs_allocated': 'int'
    }

    attribute_map = {
        'status': 'status',
        'product': 'product',
        'computer_id': 'computer_id',
        'license_code': 'license_code',
        'activation_type': 'activation_type',
        'licensed': 'licensed',
        'license_type': 'license_type',
        'connected': 'connected',
        'transcription_minutes_allowed': 'transcription_minutes_allowed',
        'subscription_expiry': 'subscription_expiry',
        'message': 'message',
        'customer_id': 'customer_id',
        'transcription_secs_allowed': 'transcription_secs_allowed',
        'transcription_secs_allocated': 'transcription_secs_allocated'
    }

    def __init__(self, status=None, product=None, computer_id=None, license_code=None, activation_type=None, licensed=None, license_type=None, connected=None, transcription_minutes_allowed=None, subscription_expiry=None, message=None, customer_id=None, transcription_secs_allowed=None, transcription_secs_allocated=None):  # noqa: E501
        """ManagementLicenseStatus - a model defined in Swagger"""  # noqa: E501

        self._status = None
        self._product = None
        self._computer_id = None
        self._license_code = None
        self._activation_type = None
        self._licensed = None
        self._license_type = None
        self._connected = None
        self._transcription_minutes_allowed = None
        self._subscription_expiry = None
        self._message = None
        self._customer_id = None
        self._transcription_secs_allowed = None
        self._transcription_secs_allocated = None
        self.discriminator = None

        if status is not None:
            self.status = status
        if product is not None:
            self.product = product
        if computer_id is not None:
            self.computer_id = computer_id
        if license_code is not None:
            self.license_code = license_code
        if activation_type is not None:
            self.activation_type = activation_type
        if licensed is not None:
            self.licensed = licensed
        if license_type is not None:
            self.license_type = license_type
        if connected is not None:
            self.connected = connected
        if transcription_minutes_allowed is not None:
            self.transcription_minutes_allowed = transcription_minutes_allowed
        if subscription_expiry is not None:
            self.subscription_expiry = subscription_expiry
        if message is not None:
            self.message = message
        if customer_id is not None:
            self.customer_id = customer_id
        if transcription_secs_allowed is not None:
            self.transcription_secs_allowed = transcription_secs_allowed
        if transcription_secs_allocated is not None:
            self.transcription_secs_allocated = transcription_secs_allocated

    @property
    def status(self):
        """Gets the status of this ManagementLicenseStatus.  # noqa: E501


        :return: The status of this ManagementLicenseStatus.  # noqa: E501
        :rtype: str
        """
        return self._status

    @status.setter
    def status(self, status):
        """Sets the status of this ManagementLicenseStatus.


        :param status: The status of this ManagementLicenseStatus.  # noqa: E501
        :type: str
        """

        self._status = status

    @property
    def product(self):
        """Gets the product of this ManagementLicenseStatus.  # noqa: E501


        :return: The product of this ManagementLicenseStatus.  # noqa: E501
        :rtype: str
        """
        return self._product

    @product.setter
    def product(self, product):
        """Sets the product of this ManagementLicenseStatus.


        :param product: The product of this ManagementLicenseStatus.  # noqa: E501
        :type: str
        """

        self._product = product

    @property
    def computer_id(self):
        """Gets the computer_id of this ManagementLicenseStatus.  # noqa: E501


        :return: The computer_id of this ManagementLicenseStatus.  # noqa: E501
        :rtype: str
        """
        return self._computer_id

    @computer_id.setter
    def computer_id(self, computer_id):
        """Sets the computer_id of this ManagementLicenseStatus.


        :param computer_id: The computer_id of this ManagementLicenseStatus.  # noqa: E501
        :type: str
        """

        self._computer_id = computer_id

    @property
    def license_code(self):
        """Gets the license_code of this ManagementLicenseStatus.  # noqa: E501


        :return: The license_code of this ManagementLicenseStatus.  # noqa: E501
        :rtype: str
        """
        return self._license_code

    @license_code.setter
    def license_code(self, license_code):
        """Sets the license_code of this ManagementLicenseStatus.


        :param license_code: The license_code of this ManagementLicenseStatus.  # noqa: E501
        :type: str
        """

        self._license_code = license_code

    @property
    def activation_type(self):
        """Gets the activation_type of this ManagementLicenseStatus.  # noqa: E501


        :return: The activation_type of this ManagementLicenseStatus.  # noqa: E501
        :rtype: str
        """
        return self._activation_type

    @activation_type.setter
    def activation_type(self, activation_type):
        """Sets the activation_type of this ManagementLicenseStatus.


        :param activation_type: The activation_type of this ManagementLicenseStatus.  # noqa: E501
        :type: str
        """

        self._activation_type = activation_type

    @property
    def licensed(self):
        """Gets the licensed of this ManagementLicenseStatus.  # noqa: E501


        :return: The licensed of this ManagementLicenseStatus.  # noqa: E501
        :rtype: bool
        """
        return self._licensed

    @licensed.setter
    def licensed(self, licensed):
        """Sets the licensed of this ManagementLicenseStatus.


        :param licensed: The licensed of this ManagementLicenseStatus.  # noqa: E501
        :type: bool
        """

        self._licensed = licensed

    @property
    def license_type(self):
        """Gets the license_type of this ManagementLicenseStatus.  # noqa: E501


        :return: The license_type of this ManagementLicenseStatus.  # noqa: E501
        :rtype: str
        """
        return self._license_type

    @license_type.setter
    def license_type(self, license_type):
        """Sets the license_type of this ManagementLicenseStatus.


        :param license_type: The license_type of this ManagementLicenseStatus.  # noqa: E501
        :type: str
        """

        self._license_type = license_type

    @property
    def connected(self):
        """Gets the connected of this ManagementLicenseStatus.  # noqa: E501


        :return: The connected of this ManagementLicenseStatus.  # noqa: E501
        :rtype: bool
        """
        return self._connected

    @connected.setter
    def connected(self, connected):
        """Sets the connected of this ManagementLicenseStatus.


        :param connected: The connected of this ManagementLicenseStatus.  # noqa: E501
        :type: bool
        """

        self._connected = connected

    @property
    def transcription_minutes_allowed(self):
        """Gets the transcription_minutes_allowed of this ManagementLicenseStatus.  # noqa: E501


        :return: The transcription_minutes_allowed of this ManagementLicenseStatus.  # noqa: E501
        :rtype: str
        """
        return self._transcription_minutes_allowed

    @transcription_minutes_allowed.setter
    def transcription_minutes_allowed(self, transcription_minutes_allowed):
        """Sets the transcription_minutes_allowed of this ManagementLicenseStatus.


        :param transcription_minutes_allowed: The transcription_minutes_allowed of this ManagementLicenseStatus.  # noqa: E501
        :type: str
        """

        self._transcription_minutes_allowed = transcription_minutes_allowed

    @property
    def subscription_expiry(self):
        """Gets the subscription_expiry of this ManagementLicenseStatus.  # noqa: E501


        :return: The subscription_expiry of this ManagementLicenseStatus.  # noqa: E501
        :rtype: str
        """
        return self._subscription_expiry

    @subscription_expiry.setter
    def subscription_expiry(self, subscription_expiry):
        """Sets the subscription_expiry of this ManagementLicenseStatus.


        :param subscription_expiry: The subscription_expiry of this ManagementLicenseStatus.  # noqa: E501
        :type: str
        """

        self._subscription_expiry = subscription_expiry

    @property
    def message(self):
        """Gets the message of this ManagementLicenseStatus.  # noqa: E501


        :return: The message of this ManagementLicenseStatus.  # noqa: E501
        :rtype: str
        """
        return self._message

    @message.setter
    def message(self, message):
        """Sets the message of this ManagementLicenseStatus.


        :param message: The message of this ManagementLicenseStatus.  # noqa: E501
        :type: str
        """

        self._message = message

    @property
    def customer_id(self):
        """Gets the customer_id of this ManagementLicenseStatus.  # noqa: E501


        :return: The customer_id of this ManagementLicenseStatus.  # noqa: E501
        :rtype: int
        """
        return self._customer_id

    @customer_id.setter
    def customer_id(self, customer_id):
        """Sets the customer_id of this ManagementLicenseStatus.


        :param customer_id: The customer_id of this ManagementLicenseStatus.  # noqa: E501
        :type: int
        """

        self._customer_id = customer_id

    @property
    def transcription_secs_allowed(self):
        """Gets the transcription_secs_allowed of this ManagementLicenseStatus.  # noqa: E501


        :return: The transcription_secs_allowed of this ManagementLicenseStatus.  # noqa: E501
        :rtype: int
        """
        return self._transcription_secs_allowed

    @transcription_secs_allowed.setter
    def transcription_secs_allowed(self, transcription_secs_allowed):
        """Sets the transcription_secs_allowed of this ManagementLicenseStatus.


        :param transcription_secs_allowed: The transcription_secs_allowed of this ManagementLicenseStatus.  # noqa: E501
        :type: int
        """

        self._transcription_secs_allowed = transcription_secs_allowed

    @property
    def transcription_secs_allocated(self):
        """Gets the transcription_secs_allocated of this ManagementLicenseStatus.  # noqa: E501


        :return: The transcription_secs_allocated of this ManagementLicenseStatus.  # noqa: E501
        :rtype: int
        """
        return self._transcription_secs_allocated

    @transcription_secs_allocated.setter
    def transcription_secs_allocated(self, transcription_secs_allocated):
        """Sets the transcription_secs_allocated of this ManagementLicenseStatus.


        :param transcription_secs_allocated: The transcription_secs_allocated of this ManagementLicenseStatus.  # noqa: E501
        :type: int
        """

        self._transcription_secs_allocated = transcription_secs_allocated

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in six.iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, ManagementLicenseStatus):
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        return not self == other
