# coding: utf-8

"""
    Datový konektor Domino pro eSMLOUVY

    Toto je datový konektor umožňující datovou výměnu mezi obchodní logikou aplikace eSMLOUVY a datovým serverem HCL Domino.  Ovládá se pomocí REST API   # noqa: E501

    OpenAPI spec version: 1.1.0
    Contact: info@sysnet.cz
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

import pprint
import re  # noqa: F401

import six

class DocumentAcl(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 = {
        'system_authors': 'list[str]',
        'system_readers': 'list[str]',
        'or_readers': 'list[str]',
        'ou_readers': 'list[str]',
        'ou_dep_authors': 'list[str]',
        'ou_dep_readers': 'list[str]',
        'responsible_authors': 'list[str]',
        'deputy_creator_name': 'str',
        'general_authors': 'list[str]',
        'unauthorized_readers': 'list[str]',
        'ou_names': 'list[str]',
        'operation_commander_names': 'list[str]',
        'operation_commander_assistant_names': 'list[str]',
        'or_names': 'list[str]',
        'budgeter_names': 'list[str]',
        'assistant_budgeter_names': 'list[str]',
        'ovz_manager_authors': 'list[str]',
        'or_ph_readers': 'list[str]',
        'ovz_names': 'list[str]',
        'consultant_author': 'str'
    }

    attribute_map = {
        'system_authors': 'system_authors',
        'system_readers': 'system_readers',
        'or_readers': 'or_readers',
        'ou_readers': 'ou_readers',
        'ou_dep_authors': 'ou_dep_authors',
        'ou_dep_readers': 'ou_dep_readers',
        'responsible_authors': 'responsible_authors',
        'deputy_creator_name': 'deputy_creator_name',
        'general_authors': 'general_authors',
        'unauthorized_readers': 'unauthorized_readers',
        'ou_names': 'ou_names',
        'operation_commander_names': 'operation_commander_names',
        'operation_commander_assistant_names': 'operation_commander_assistant_names',
        'or_names': 'or_names',
        'budgeter_names': 'budgeter_names',
        'assistant_budgeter_names': 'assistant_budgeter_names',
        'ovz_manager_authors': 'ovz_manager_authors',
        'or_ph_readers': 'or_ph_readers',
        'ovz_names': 'ovz_names',
        'consultant_author': 'consultant_author'
    }

    def __init__(self, system_authors=None, system_readers=None, or_readers=None, ou_readers=None, ou_dep_authors=None, ou_dep_readers=None, responsible_authors=None, deputy_creator_name=None, general_authors=None, unauthorized_readers=None, ou_names=None, operation_commander_names=None, operation_commander_assistant_names=None, or_names=None, budgeter_names=None, assistant_budgeter_names=None, ovz_manager_authors=None, or_ph_readers=None, ovz_names=None, consultant_author=None):  # noqa: E501
        """DocumentAcl - a model defined in Swagger"""  # noqa: E501
        self._system_authors = None
        self._system_readers = None
        self._or_readers = None
        self._ou_readers = None
        self._ou_dep_authors = None
        self._ou_dep_readers = None
        self._responsible_authors = None
        self._deputy_creator_name = None
        self._general_authors = None
        self._unauthorized_readers = None
        self._ou_names = None
        self._operation_commander_names = None
        self._operation_commander_assistant_names = None
        self._or_names = None
        self._budgeter_names = None
        self._assistant_budgeter_names = None
        self._ovz_manager_authors = None
        self._or_ph_readers = None
        self._ovz_names = None
        self._consultant_author = None
        self.discriminator = None
        if system_authors is not None:
            self.system_authors = system_authors
        if system_readers is not None:
            self.system_readers = system_readers
        if or_readers is not None:
            self.or_readers = or_readers
        if ou_readers is not None:
            self.ou_readers = ou_readers
        if ou_dep_authors is not None:
            self.ou_dep_authors = ou_dep_authors
        if ou_dep_readers is not None:
            self.ou_dep_readers = ou_dep_readers
        if responsible_authors is not None:
            self.responsible_authors = responsible_authors
        if deputy_creator_name is not None:
            self.deputy_creator_name = deputy_creator_name
        if general_authors is not None:
            self.general_authors = general_authors
        if unauthorized_readers is not None:
            self.unauthorized_readers = unauthorized_readers
        if ou_names is not None:
            self.ou_names = ou_names
        if operation_commander_names is not None:
            self.operation_commander_names = operation_commander_names
        if operation_commander_assistant_names is not None:
            self.operation_commander_assistant_names = operation_commander_assistant_names
        if or_names is not None:
            self.or_names = or_names
        if budgeter_names is not None:
            self.budgeter_names = budgeter_names
        if assistant_budgeter_names is not None:
            self.assistant_budgeter_names = assistant_budgeter_names
        if ovz_manager_authors is not None:
            self.ovz_manager_authors = ovz_manager_authors
        if or_ph_readers is not None:
            self.or_ph_readers = or_ph_readers
        if ovz_names is not None:
            self.ovz_names = ovz_names
        if consultant_author is not None:
            self.consultant_author = consultant_author

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

        SystemAuthors  - seznam osob oprávněných VŽDY zasahovat do spisu  # noqa: E501

        :return: The system_authors of this DocumentAcl.  # noqa: E501
        :rtype: list[str]
        """
        return self._system_authors

    @system_authors.setter
    def system_authors(self, system_authors):
        """Sets the system_authors of this DocumentAcl.

        SystemAuthors  - seznam osob oprávněných VŽDY zasahovat do spisu  # noqa: E501

        :param system_authors: The system_authors of this DocumentAcl.  # noqa: E501
        :type: list[str]
        """

        self._system_authors = system_authors

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

        SystemReaders  # noqa: E501

        :return: The system_readers of this DocumentAcl.  # noqa: E501
        :rtype: list[str]
        """
        return self._system_readers

    @system_readers.setter
    def system_readers(self, system_readers):
        """Sets the system_readers of this DocumentAcl.

        SystemReaders  # noqa: E501

        :param system_readers: The system_readers of this DocumentAcl.  # noqa: E501
        :type: list[str]
        """

        self._system_readers = system_readers

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

        OR_Readers  # noqa: E501

        :return: The or_readers of this DocumentAcl.  # noqa: E501
        :rtype: list[str]
        """
        return self._or_readers

    @or_readers.setter
    def or_readers(self, or_readers):
        """Sets the or_readers of this DocumentAcl.

        OR_Readers  # noqa: E501

        :param or_readers: The or_readers of this DocumentAcl.  # noqa: E501
        :type: list[str]
        """

        self._or_readers = or_readers

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

        OU_Readers  # noqa: E501

        :return: The ou_readers of this DocumentAcl.  # noqa: E501
        :rtype: list[str]
        """
        return self._ou_readers

    @ou_readers.setter
    def ou_readers(self, ou_readers):
        """Sets the ou_readers of this DocumentAcl.

        OU_Readers  # noqa: E501

        :param ou_readers: The ou_readers of this DocumentAcl.  # noqa: E501
        :type: list[str]
        """

        self._ou_readers = ou_readers

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

        OU_dep_Authors  # noqa: E501

        :return: The ou_dep_authors of this DocumentAcl.  # noqa: E501
        :rtype: list[str]
        """
        return self._ou_dep_authors

    @ou_dep_authors.setter
    def ou_dep_authors(self, ou_dep_authors):
        """Sets the ou_dep_authors of this DocumentAcl.

        OU_dep_Authors  # noqa: E501

        :param ou_dep_authors: The ou_dep_authors of this DocumentAcl.  # noqa: E501
        :type: list[str]
        """

        self._ou_dep_authors = ou_dep_authors

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

        OU_dep_Readers  # noqa: E501

        :return: The ou_dep_readers of this DocumentAcl.  # noqa: E501
        :rtype: list[str]
        """
        return self._ou_dep_readers

    @ou_dep_readers.setter
    def ou_dep_readers(self, ou_dep_readers):
        """Sets the ou_dep_readers of this DocumentAcl.

        OU_dep_Readers  # noqa: E501

        :param ou_dep_readers: The ou_dep_readers of this DocumentAcl.  # noqa: E501
        :type: list[str]
        """

        self._ou_dep_readers = ou_dep_readers

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

        responsible_Authors  # noqa: E501

        :return: The responsible_authors of this DocumentAcl.  # noqa: E501
        :rtype: list[str]
        """
        return self._responsible_authors

    @responsible_authors.setter
    def responsible_authors(self, responsible_authors):
        """Sets the responsible_authors of this DocumentAcl.

        responsible_Authors  # noqa: E501

        :param responsible_authors: The responsible_authors of this DocumentAcl.  # noqa: E501
        :type: list[str]
        """

        self._responsible_authors = responsible_authors

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

        deputy_creator  # noqa: E501

        :return: The deputy_creator_name of this DocumentAcl.  # noqa: E501
        :rtype: str
        """
        return self._deputy_creator_name

    @deputy_creator_name.setter
    def deputy_creator_name(self, deputy_creator_name):
        """Sets the deputy_creator_name of this DocumentAcl.

        deputy_creator  # noqa: E501

        :param deputy_creator_name: The deputy_creator_name of this DocumentAcl.  # noqa: E501
        :type: str
        """

        self._deputy_creator_name = deputy_creator_name

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

        Autori  -  seznam osob oprávněných upravovat záznam, mění se podle stavu (jednotlivé útvary resp. lidé v nich by tedy měly mít v ACL Author)|   # noqa: E501

        :return: The general_authors of this DocumentAcl.  # noqa: E501
        :rtype: list[str]
        """
        return self._general_authors

    @general_authors.setter
    def general_authors(self, general_authors):
        """Sets the general_authors of this DocumentAcl.

        Autori  -  seznam osob oprávněných upravovat záznam, mění se podle stavu (jednotlivé útvary resp. lidé v nich by tedy měly mít v ACL Author)|   # noqa: E501

        :param general_authors: The general_authors of this DocumentAcl.  # noqa: E501
        :type: list[str]
        """

        self._general_authors = general_authors

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

        Viditelne_Neauth  Readers pro neautorizovane polozky  # noqa: E501

        :return: The unauthorized_readers of this DocumentAcl.  # noqa: E501
        :rtype: list[str]
        """
        return self._unauthorized_readers

    @unauthorized_readers.setter
    def unauthorized_readers(self, unauthorized_readers):
        """Sets the unauthorized_readers of this DocumentAcl.

        Viditelne_Neauth  Readers pro neautorizovane polozky  # noqa: E501

        :param unauthorized_readers: The unauthorized_readers of this DocumentAcl.  # noqa: E501
        :type: list[str]
        """

        self._unauthorized_readers = unauthorized_readers

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

        ou -  (jména)  odborný útvar  # noqa: E501

        :return: The ou_names of this DocumentAcl.  # noqa: E501
        :rtype: list[str]
        """
        return self._ou_names

    @ou_names.setter
    def ou_names(self, ou_names):
        """Sets the ou_names of this DocumentAcl.

        ou -  (jména)  odborný útvar  # noqa: E501

        :param ou_names: The ou_names of this DocumentAcl.  # noqa: E501
        :type: list[str]
        """

        self._ou_names = ou_names

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

        prikazce -  (jména)    příkazce operace  # noqa: E501

        :return: The operation_commander_names of this DocumentAcl.  # noqa: E501
        :rtype: list[str]
        """
        return self._operation_commander_names

    @operation_commander_names.setter
    def operation_commander_names(self, operation_commander_names):
        """Sets the operation_commander_names of this DocumentAcl.

        prikazce -  (jména)    příkazce operace  # noqa: E501

        :param operation_commander_names: The operation_commander_names of this DocumentAcl.  # noqa: E501
        :type: list[str]
        """

        self._operation_commander_names = operation_commander_names

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

        asistent_prikazce (jmena) - asistent příkazce operace   # noqa: E501

        :return: The operation_commander_assistant_names of this DocumentAcl.  # noqa: E501
        :rtype: list[str]
        """
        return self._operation_commander_assistant_names

    @operation_commander_assistant_names.setter
    def operation_commander_assistant_names(self, operation_commander_assistant_names):
        """Sets the operation_commander_assistant_names of this DocumentAcl.

        asistent_prikazce (jmena) - asistent příkazce operace   # noqa: E501

        :param operation_commander_assistant_names: The operation_commander_assistant_names of this DocumentAcl.  # noqa: E501
        :type: list[str]
        """

        self._operation_commander_assistant_names = operation_commander_assistant_names

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

        or -  (jména)  odbor rozpočtu  # noqa: E501

        :return: The or_names of this DocumentAcl.  # noqa: E501
        :rtype: list[str]
        """
        return self._or_names

    @or_names.setter
    def or_names(self, or_names):
        """Sets the or_names of this DocumentAcl.

        or -  (jména)  odbor rozpočtu  # noqa: E501

        :param or_names: The or_names of this DocumentAcl.  # noqa: E501
        :type: list[str]
        """

        self._or_names = or_names

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

        orr -  (jména)  odbor rozpočtu - rozpočtář  # noqa: E501

        :return: The budgeter_names of this DocumentAcl.  # noqa: E501
        :rtype: list[str]
        """
        return self._budgeter_names

    @budgeter_names.setter
    def budgeter_names(self, budgeter_names):
        """Sets the budgeter_names of this DocumentAcl.

        orr -  (jména)  odbor rozpočtu - rozpočtář  # noqa: E501

        :param budgeter_names: The budgeter_names of this DocumentAcl.  # noqa: E501
        :type: list[str]
        """

        self._budgeter_names = budgeter_names

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

        orr_help -  (jména)  odbor rozpočtu - pomocný rozpočtář  # noqa: E501

        :return: The assistant_budgeter_names of this DocumentAcl.  # noqa: E501
        :rtype: list[str]
        """
        return self._assistant_budgeter_names

    @assistant_budgeter_names.setter
    def assistant_budgeter_names(self, assistant_budgeter_names):
        """Sets the assistant_budgeter_names of this DocumentAcl.

        orr_help -  (jména)  odbor rozpočtu - pomocný rozpočtář  # noqa: E501

        :param assistant_budgeter_names: The assistant_budgeter_names of this DocumentAcl.  # noqa: E501
        :type: list[str]
        """

        self._assistant_budgeter_names = assistant_budgeter_names

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

        ovz_manager - OVZ- Manager  # noqa: E501

        :return: The ovz_manager_authors of this DocumentAcl.  # noqa: E501
        :rtype: list[str]
        """
        return self._ovz_manager_authors

    @ovz_manager_authors.setter
    def ovz_manager_authors(self, ovz_manager_authors):
        """Sets the ovz_manager_authors of this DocumentAcl.

        ovz_manager - OVZ- Manager  # noqa: E501

        :param ovz_manager_authors: The ovz_manager_authors of this DocumentAcl.  # noqa: E501
        :type: list[str]
        """

        self._ovz_manager_authors = ovz_manager_authors

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

        or_ph - OVZ - právník  # noqa: E501

        :return: The or_ph_readers of this DocumentAcl.  # noqa: E501
        :rtype: list[str]
        """
        return self._or_ph_readers

    @or_ph_readers.setter
    def or_ph_readers(self, or_ph_readers):
        """Sets the or_ph_readers of this DocumentAcl.

        or_ph - OVZ - právník  # noqa: E501

        :param or_ph_readers: The or_ph_readers of this DocumentAcl.  # noqa: E501
        :type: list[str]
        """

        self._or_ph_readers = or_ph_readers

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

        ovz -  (jména)  odbor veřejných zakázek:  - vybere se v akci Zaslat Odboru veřejných zakázek   # noqa: E501

        :return: The ovz_names of this DocumentAcl.  # noqa: E501
        :rtype: list[str]
        """
        return self._ovz_names

    @ovz_names.setter
    def ovz_names(self, ovz_names):
        """Sets the ovz_names of this DocumentAcl.

        ovz -  (jména)  odbor veřejných zakázek:  - vybere se v akci Zaslat Odboru veřejných zakázek   # noqa: E501

        :param ovz_names: The ovz_names of this DocumentAcl.  # noqa: E501
        :type: list[str]
        """

        self._ovz_names = ovz_names

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

        consultant -  (authors)  poradce NM-ŘSFL  # noqa: E501

        :return: The consultant_author of this DocumentAcl.  # noqa: E501
        :rtype: str
        """
        return self._consultant_author

    @consultant_author.setter
    def consultant_author(self, consultant_author):
        """Sets the consultant_author of this DocumentAcl.

        consultant -  (authors)  poradce NM-ŘSFL  # noqa: E501

        :param consultant_author: The consultant_author of this DocumentAcl.  # noqa: E501
        :type: str
        """

        self._consultant_author = consultant_author

    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
        if issubclass(DocumentAcl, dict):
            for key, value in self.items():
                result[key] = 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, DocumentAcl):
            return False

        return self.__dict__ == other.__dict__

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