# coding: utf-8

"""
    1Password Connect

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)  # noqa: E501

    The version of the OpenAPI document: 0.2.1
    Generated by: https://openapi-generator.tech
"""
from onepasswordconnectsdk.models.item import Item

class OPItem(Item):
    """NOTE: This class is auto generated by OpenAPI Generator.
    Ref: https://openapi-generator.tech

    Do not edit the class manually.
    """

    """
    Attributes:
      openapi_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.
    """
    openapi_types = {
        'id': 'str',
        'title': 'str',
        'vault': 'OPItemVault',
        'category': 'str',
        'urls': 'list[OPItemUrls]',
        'favorite': 'bool',
        'tags': 'list[str]',
        'version': 'int',
        'trashed': 'bool',
        'created_at': 'datetime',
        'updated_at': 'datetime',
        'last_edited_by': 'str',
        'sections': 'list[OPSection]',
        'fields': 'list[OPField]'
    }
    
    categories = {
        "LOGIN": '001', 
        "PASSWORD": '005',
        "SERVER": '110', 
        "DATABASE": '102',
        "CREDIT_CARD": '002',
        "MEMBERSHIP": '105',
        "PASSPORT": '106',
        "SOFTWARE_LICENSE": '100',
        "OUTDOOR_LICENSE": '104', 
        "SECURE_NOTE": '003',
        "WIRELESS_ROUTER": '109',
        "BANK_ACCOUNT": '101',
        "DRIVER_LICENSE": '103',
        "IDENTITY": '004',
        "REWARD_PROGRAM": '107',
        "DOCUMENT": '006',
        "EMAIL_ACCOUNT": '111',
        "SOCIAL_SECURITY_NUMBER": '108',
        "API_CREDENTIAL": '112',
        "MEDICAL_RECORD": '113',
        "CUSTOM": '000'
    }

    attribute_map = {
        'id': 'uuid',
        'title': 'title',
        'vault': 'vaultUuid',
        'category': 'templateUuid',
        'urls': 'URLs',
        'favorite': 'faveIndex',
        'tags': 'tags',
        'version': 'itemVersion',
        'trashed': 'trashed',
        'created_at': 'createdAt',
        'updated_at': 'updatedAt',
        'last_edited_by': 'changerUuid',
        'sections': 'sections',
        'fields': 'fields'
    }
    
#     def __init__(self, id=None, title=None, vault=None, category=None, urls=None, favorite=False, tags=None, version=None, trashed=False, created_at=None, updated_at=None, last_edited_by=None, sections=None, fields=None):  # noqa: E501
#         self._category = None
# 
#         if category is not None:
#             self.category = category
#         super().__init__(id, title, vault, category, urls, favorite, tags, version, trashed, created_at, updated_at, last_edited_by, sections, fields)
        
    @property
    def category(self):
#         return super().category()
        """Gets the category of this Item.  # noqa: E501
 
 
        :return: The category of this Item.  # noqa: E501
        :rtype: str
        """
        return self._category

    @category.setter
    def category(self, category):
        """Sets the category of this Item.


        :param category: The category of this Item.  # noqa: E501
        :type: str
        """
        allowed_values = ["LOGIN", "PASSWORD", "SERVER", "DATABASE", "CREDIT_CARD", "MEMBERSHIP", "PASSPORT", "SOFTWARE_LICENSE", "OUTDOOR_LICENSE", "SECURE_NOTE", "WIRELESS_ROUTER", "BANK_ACCOUNT", "DRIVER_LICENSE", "IDENTITY", "REWARD_PROGRAM", "DOCUMENT", "EMAIL_ACCOUNT", "SOCIAL_SECURITY_NUMBER", "API_CREDENTIAL", "MEDICAL_RECORD", "CUSTOM"]  # noqa: E501
        if category not in allowed_values:  # noqa: E501
            raise ValueError(
                "Invalid value for `category` ({0}), must be one of {1}"  # noqa: E501
                .format(category, allowed_values)
            )

        self._category = category
