text: # coding: utf-8
  
  """
      Isilon SDK
  
      Isilon SDK - Language bindings for the OneFS API  # noqa: E501
  
      OpenAPI spec version: 6
      Contact: sdk@isilon.com
      Generated by: https://github.com/swagger-api/swagger-codegen.git
  """
  
  
  import pprint
  import re  # noqa: F401
  
  import six
  
  
  class FtpSettingsExtended(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 = {
          'accept_timeout': 'int',
          'allow_anon_access': 'bool',
          'allow_anon_upload': 'bool',
          'allow_dirlists': 'bool',
          'allow_downloads': 'bool',
          'allow_local_access': 'bool',
          'allow_writes': 'bool',
          'always_chdir_homedir': 'bool',
          'anon_chown_username': 'str',
          'anon_password_list': 'list[str]',
          'anon_root_path': 'str',
          'anon_umask': 'int',
          'ascii_mode': 'str',
          'chroot_exception_list': 'list[str]',
          'chroot_local_mode': 'str',
          'connect_timeout': 'int',
          'data_timeout': 'int',
          'denied_user_list': 'list[str]',
          'dirlist_localtime': 'bool',
          'dirlist_names': 'str',
          'file_create_perm': 'int',
          'limit_anon_passwords': 'bool',
          'local_root_path': 'str',
          'local_umask': 'int',
          'server_to_server': 'bool',
          'service': 'bool',
          'session_support': 'bool',
          'session_timeout': 'int',
          'user_config_dir': 'str'
      }
  
      attribute_map = {
          'accept_timeout': 'accept_timeout',
          'allow_anon_access': 'allow_anon_access',
          'allow_anon_upload': 'allow_anon_upload',
          'allow_dirlists': 'allow_dirlists',
          'allow_downloads': 'allow_downloads',
          'allow_local_access': 'allow_local_access',
          'allow_writes': 'allow_writes',
          'always_chdir_homedir': 'always_chdir_homedir',
          'anon_chown_username': 'anon_chown_username',
          'anon_password_list': 'anon_password_list',
          'anon_root_path': 'anon_root_path',
          'anon_umask': 'anon_umask',
          'ascii_mode': 'ascii_mode',
          'chroot_exception_list': 'chroot_exception_list',
          'chroot_local_mode': 'chroot_local_mode',
          'connect_timeout': 'connect_timeout',
          'data_timeout': 'data_timeout',
          'denied_user_list': 'denied_user_list',
          'dirlist_localtime': 'dirlist_localtime',
          'dirlist_names': 'dirlist_names',
          'file_create_perm': 'file_create_perm',
          'limit_anon_passwords': 'limit_anon_passwords',
          'local_root_path': 'local_root_path',
          'local_umask': 'local_umask',
          'server_to_server': 'server_to_server',
          'service': 'service',
          'session_support': 'session_support',
          'session_timeout': 'session_timeout',
          'user_config_dir': 'user_config_dir'
      }
  
      def __init__(self, accept_timeout=None, allow_anon_access=None, allow_anon_upload=None, allow_dirlists=None, allow_downloads=None, allow_local_access=None, allow_writes=None, always_chdir_homedir=None, anon_chown_username=None, anon_password_list=None, anon_root_path=None, anon_umask=None, ascii_mode=None, chroot_exception_list=None, chroot_local_mode=None, connect_timeout=None, data_timeout=None, denied_user_list=None, dirlist_localtime=None, dirlist_names=None, file_create_perm=None, limit_anon_passwords=None, local_root_path=None, local_umask=None, server_to_server=None, service=None, session_support=None, session_timeout=None, user_config_dir=None):  # noqa: E501
          """FtpSettingsExtended - a model defined in Swagger"""  # noqa: E501
  
          self._accept_timeout = None
          self._allow_anon_access = None
          self._allow_anon_upload = None
          self._allow_dirlists = None
          self._allow_downloads = None
          self._allow_local_access = None
          self._allow_writes = None
          self._always_chdir_homedir = None
          self._anon_chown_username = None
          self._anon_password_list = None
          self._anon_root_path = None
          self._anon_umask = None
          self._ascii_mode = None
          self._chroot_exception_list = None
          self._chroot_local_mode = None
          self._connect_timeout = None
          self._data_timeout = None
          self._denied_user_list = None
          self._dirlist_localtime = None
          self._dirlist_names = None
          self._file_create_perm = None
          self._limit_anon_passwords = None
          self._local_root_path = None
          self._local_umask = None
          self._server_to_server = None
          self._service = None
          self._session_support = None
          self._session_timeout = None
          self._user_config_dir = None
          self.discriminator = None
  
          if accept_timeout is not None:
              self.accept_timeout = accept_timeout
          if allow_anon_access is not None:
              self.allow_anon_access = allow_anon_access
          if allow_anon_upload is not None:
              self.allow_anon_upload = allow_anon_upload
          if allow_dirlists is not None:
              self.allow_dirlists = allow_dirlists
          if allow_downloads is not None:
              self.allow_downloads = allow_downloads
          if allow_local_access is not None:
              self.allow_local_access = allow_local_access
          if allow_writes is not None:
              self.allow_writes = allow_writes
          if always_chdir_homedir is not None:
              self.always_chdir_homedir = always_chdir_homedir
          if anon_chown_username is not None:
              self.anon_chown_username = anon_chown_username
          if anon_password_list is not None:
              self.anon_password_list = anon_password_list
          if anon_root_path is not None:
              self.anon_root_path = anon_root_path
          if anon_umask is not None:
              self.anon_umask = anon_umask
          if ascii_mode is not None:
              self.ascii_mode = ascii_mode
          if chroot_exception_list is not None:
              self.chroot_exception_list = chroot_exception_list
          if chroot_local_mode is not None:
              self.chroot_local_mode = chroot_local_mode
          if connect_timeout is not None:
              self.connect_timeout = connect_timeout
          if data_timeout is not None:
              self.data_timeout = data_timeout
          if denied_user_list is not None:
              self.denied_user_list = denied_user_list
          if dirlist_localtime is not None:
              self.dirlist_localtime = dirlist_localtime
          if dirlist_names is not None:
              self.dirlist_names = dirlist_names
          if file_create_perm is not None:
              self.file_create_perm = file_create_perm
          if limit_anon_passwords is not None:
              self.limit_anon_passwords = limit_anon_passwords
          if local_root_path is not None:
              self.local_root_path = local_root_path
          if local_umask is not None:
              self.local_umask = local_umask
          if server_to_server is not None:
              self.server_to_server = server_to_server
          if service is not None:
              self.service = service
          if session_support is not None:
              self.session_support = session_support
          if session_timeout is not None:
              self.session_timeout = session_timeout
          if user_config_dir is not None:
              self.user_config_dir = user_config_dir
  
      @property
      def accept_timeout(self):
          """Gets the accept_timeout of this FtpSettingsExtended.  # noqa: E501
  
          The timeout, in seconds, for a remote client to establish a PASV style data connection.  # noqa: E501
  
          :return: The accept_timeout of this FtpSettingsExtended.  # noqa: E501
          :rtype: int
          """
          return self._accept_timeout
  
      @accept_timeout.setter
      def accept_timeout(self, accept_timeout):
          """Sets the accept_timeout of this FtpSettingsExtended.
  
          The timeout, in seconds, for a remote client to establish a PASV style data connection.  # noqa: E501
  
          :param accept_timeout: The accept_timeout of this FtpSettingsExtended.  # noqa: E501
          :type: int
          """
          if accept_timeout is not None and accept_timeout > 600:  # noqa: E501
              raise ValueError("Invalid value for `accept_timeout`, must be a value less than or equal to `600`")  # noqa: E501
          if accept_timeout is not None and accept_timeout < 30:  # noqa: E501
              raise ValueError("Invalid value for `accept_timeout`, must be a value greater than or equal to `30`")  # noqa: E501
  
          self._accept_timeout = accept_timeout
  
      @property
      def allow_anon_access(self):
          """Gets the allow_anon_access of this FtpSettingsExtended.  # noqa: E501
  
          Controls whether anonymous logins are permitted or not.  # noqa: E501
  
          :return: The allow_anon_access of this FtpSettingsExtended.  # noqa: E501
          :rtype: bool
          """
          return self._allow_anon_access
  
      @allow_anon_access.setter
      def allow_anon_access(self, allow_anon_access):
          """Sets the allow_anon_access of this FtpSettingsExtended.
  
          Controls whether anonymous logins are permitted or not.  # noqa: E501
  
          :param allow_anon_access: The allow_anon_access of this FtpSettingsExtended.  # noqa: E501
          :type: bool
          """
  
          self._allow_anon_access = allow_anon_access
  
      @property
      def allow_anon_upload(self):
          """Gets the allow_anon_upload of this FtpSettingsExtended.  # noqa: E501
  
          Controls whether anonymous users will be permitted to upload files.  # noqa: E501
  
          :return: The allow_anon_upload of this FtpSettingsExtended.  # noqa: E501
          :rtype: bool
          """
          return self._allow_anon_upload
  
      @allow_anon_upload.setter
      def allow_anon_upload(self, allow_anon_upload):
          """Sets the allow_anon_upload of this FtpSettingsExtended.
  
          Controls whether anonymous users will be permitted to upload files.  # noqa: E501
  
          :param allow_anon_upload: The allow_anon_upload of this FtpSettingsExtended.  # noqa: E501
          :type: bool
          """
  
          self._allow_anon_upload = allow_anon_upload
  
      @property
      def allow_dirlists(self):
          """Gets the allow_dirlists of this FtpSettingsExtended.  # noqa: E501
  
          If set to false, all directory list commands will return a permission denied error.  # noqa: E501
  
          :return: The allow_dirlists of this FtpSettingsExtended.  # noqa: E501
          :rtype: bool
          """
          return self._allow_dirlists
  
      @allow_dirlists.setter
      def allow_dirlists(self, allow_dirlists):
          """Sets the allow_dirlists of this FtpSettingsExtended.
  
          If set to false, all directory list commands will return a permission denied error.  # noqa: E501
  
          :param allow_dirlists: The allow_dirlists of this FtpSettingsExtended.  # noqa: E501
          :type: bool
          """
  
          self._allow_dirlists = allow_dirlists
  
      @property
      def allow_downloads(self):
          """Gets the allow_downloads of this FtpSettingsExtended.  # noqa: E501
  
          If set to false, all downloads requests will return a permission denied error.  # noqa: E501
  
          :return: The allow_downloads of this FtpSettingsExtended.  # noqa: E501
          :rtype: bool
          """
          return self._allow_downloads
  
      @allow_downloads.setter
      def allow_downloads(self, allow_downloads):
          """Sets the allow_downloads of this FtpSettingsExtended.
  
          If set to false, all downloads requests will return a permission denied error.  # noqa: E501
  
          :param allow_downloads: The allow_downloads of this FtpSettingsExtended.  # noqa: E501
          :type: bool
          """
  
          self._allow_downloads = allow_downloads
  
      @property
      def allow_local_access(self):
          """Gets the allow_local_access of this FtpSettingsExtended.  # noqa: E501
  
          Controls whether local logins are permitted or not.  # noqa: E501
  
          :return: The allow_local_access of this FtpSettingsExtended.  # noqa: E501
          :rtype: bool
          """
          return self._allow_local_access
  
      @allow_local_access.setter
      def allow_local_access(self, allow_local_access):
          """Sets the allow_local_access of this FtpSettingsExtended.
  
          Controls whether local logins are permitted or not.  # noqa: E501
  
          :param allow_local_access: The allow_local_access of this FtpSettingsExtended.  # noqa: E501
          :type: bool
          """
  
          self._allow_local_access = allow_local_access
  
      @property
      def allow_writes(self):
          """Gets the allow_writes of this FtpSettingsExtended.  # noqa: E501
  
          This controls whether any FTP commands which change the filesystem are allowed or not.  # noqa: E501
  
          :return: The allow_writes of this FtpSettingsExtended.  # noqa: E501
          :rtype: bool
          """
          return self._allow_writes
  
      @allow_writes.setter
      def allow_writes(self, allow_writes):
          """Sets the allow_writes of this FtpSettingsExtended.
  
          This controls whether any FTP commands which change the filesystem are allowed or not.  # noqa: E501
  
          :param allow_writes: The allow_writes of this FtpSettingsExtended.  # noqa: E501
          :type: bool
          """
  
          self._allow_writes = allow_writes
  
      @property
      def always_chdir_homedir(self):
          """Gets the always_chdir_homedir of this FtpSettingsExtended.  # noqa: E501
  
          This controls whether FTP will always initially change directories to the home directory of the user, regardless of whether it is chroot-ing.  # noqa: E501
  
          :return: The always_chdir_homedir of this FtpSettingsExtended.  # noqa: E501
          :rtype: bool
          """
          return self._always_chdir_homedir
  
      @always_chdir_homedir.setter
      def always_chdir_homedir(self, always_chdir_homedir):
          """Sets the always_chdir_homedir of this FtpSettingsExtended.
  
          This controls whether FTP will always initially change directories to the home directory of the user, regardless of whether it is chroot-ing.  # noqa: E501
  
          :param always_chdir_homedir: The always_chdir_homedir of this FtpSettingsExtended.  # noqa: E501
          :type: bool
          """
  
          self._always_chdir_homedir = always_chdir_homedir
  
      @property
      def anon_chown_username(self):
          """Gets the anon_chown_username of this FtpSettingsExtended.  # noqa: E501
  
          This is the name of the user who is given ownership of anonymously uploaded files.  # noqa: E501
  
          :return: The anon_chown_username of this FtpSettingsExtended.  # noqa: E501
          :rtype: str
          """
          return self._anon_chown_username
  
      @anon_chown_username.setter
      def anon_chown_username(self, anon_chown_username):
          """Sets the anon_chown_username of this FtpSettingsExtended.
  
          This is the name of the user who is given ownership of anonymously uploaded files.  # noqa: E501
  
          :param anon_chown_username: The anon_chown_username of this FtpSettingsExtended.  # noqa: E501
          :type: str
          """
  
          self._anon_chown_username = anon_chown_username
  
      @property
      def anon_password_list(self):
          """Gets the anon_password_list of this FtpSettingsExtended.  # noqa: E501
  
          A list of passwords for anonymous users.  # noqa: E501
  
          :return: The anon_password_list of this FtpSettingsExtended.  # noqa: E501
          :rtype: list[str]
          """
          return self._anon_password_list
  
      @anon_password_list.setter
      def anon_password_list(self, anon_password_list):
          """Sets the anon_password_list of this FtpSettingsExtended.
  
          A list of passwords for anonymous users.  # noqa: E501
  
          :param anon_password_list: The anon_password_list of this FtpSettingsExtended.  # noqa: E501
          :type: list[str]
          """
  
          self._anon_password_list = anon_password_list
  
      @property
      def anon_root_path(self):
          """Gets the anon_root_path of this FtpSettingsExtended.  # noqa: E501
  
          This option represents a directory in /ifs which vsftpd will try to change into after an anonymous login.  # noqa: E501
  
          :return: The anon_root_path of this FtpSettingsExtended.  # noqa: E501
          :rtype: str
          """
          return self._anon_root_path
  
      @anon_root_path.setter
      def anon_root_path(self, anon_root_path):
          """Sets the anon_root_path of this FtpSettingsExtended.
  
          This option represents a directory in /ifs which vsftpd will try to change into after an anonymous login.  # noqa: E501
  
          :param anon_root_path: The anon_root_path of this FtpSettingsExtended.  # noqa: E501
          :type: str
          """
  
          self._anon_root_path = anon_root_path
  
      @property
      def anon_umask(self):
          """Gets the anon_umask of this FtpSettingsExtended.  # noqa: E501
  
          The value that the umask for file creation is set to for anonymous users.  # noqa: E501
  
          :return: The anon_umask of this FtpSettingsExtended.  # noqa: E501
          :rtype: int
          """
          return self._anon_umask
  
      @anon_umask.setter
      def anon_umask(self, anon_umask):
          """Sets the anon_umask of this FtpSettingsExtended.
  
          The value that the umask for file creation is set to for anonymous users.  # noqa: E501
  
          :param anon_umask: The anon_umask of this FtpSettingsExtended.  # noqa: E501
          :type: int
          """
          if anon_umask is not None and anon_umask > 511:  # noqa: E501
              raise ValueError("Invalid value for `anon_umask`, must be a value less than or equal to `511`")  # noqa: E501
          if anon_umask is not None and anon_umask < 0:  # noqa: E501
              raise ValueError("Invalid value for `anon_umask`, must be a value greater than or equal to `0`")  # noqa: E501
  
          self._anon_umask = anon_umask
  
      @property
      def ascii_mode(self):
          """Gets the ascii_mode of this FtpSettingsExtended.  # noqa: E501
  
          Controls whether ascii mode data transfers are honored for various types of requests.  # noqa: E501
  
          :return: The ascii_mode of this FtpSettingsExtended.  # noqa: E501
          :rtype: str
          """
          return self._ascii_mode
  
      @ascii_mode.setter
      def ascii_mode(self, ascii_mode):
          """Sets the ascii_mode of this FtpSettingsExtended.
  
          Controls whether ascii mode data transfers are honored for various types of requests.  # noqa: E501
  
          :param ascii_mode: The ascii_mode of this FtpSettingsExtended.  # noqa: E501
          :type: str
          """
  
          self._ascii_mode = ascii_mode
  
      @property
      def chroot_exception_list(self):
          """Gets the chroot_exception_list of this FtpSettingsExtended.  # noqa: E501
  
          A list of users that are not chrooted when logging in.  # noqa: E501
  
          :return: The chroot_exception_list of this FtpSettingsExtended.  # noqa: E501
          :rtype: list[str]
          """
          return self._chroot_exception_list
  
      @chroot_exception_list.setter
      def chroot_exception_list(self, chroot_exception_list):
          """Sets the chroot_exception_list of this FtpSettingsExtended.
  
          A list of users that are not chrooted when logging in.  # noqa: E501
  
          :param chroot_exception_list: The chroot_exception_list of this FtpSettingsExtended.  # noqa: E501
          :type: list[str]
          """
  
          self._chroot_exception_list = chroot_exception_list
  
      @property
      def chroot_local_mode(self):
          """Gets the chroot_local_mode of this FtpSettingsExtended.  # noqa: E501
  
          If set to 'all', all local users will be (by default) placed in a chroot() jail in their home directory after login. If set to 'all-with-exceptions', all local users except those listed in the chroot exception list (isi ftp chroot-exception-list) will be placed in a chroot() jail in their home directory after login. If set to 'none', no local users will be chrooted by default. If set to 'none-with-exceptions', only the local users listed in the chroot exception list (isi ftp chroot-exception-list) will be place in a chroot() jail in their home directory after login.  # noqa: E501
  
          :return: The chroot_local_mode of this FtpSettingsExtended.  # noqa: E501
          :rtype: str
          """
          return self._chroot_local_mode
  
      @chroot_local_mode.setter
      def chroot_local_mode(self, chroot_local_mode):
          """Sets the chroot_local_mode of this FtpSettingsExtended.
  
          If set to 'all', all local users will be (by default) placed in a chroot() jail in their home directory after login. If set to 'all-with-exceptions', all local users except those listed in the chroot exception list (isi ftp chroot-exception-list) will be placed in a chroot() jail in their home directory after login. If set to 'none', no local users will be chrooted by default. If set to 'none-with-exceptions', only the local users listed in the chroot exception list (isi ftp chroot-exception-list) will be place in a chroot() jail in their home directory after login.  # noqa: E501
  
          :param chroot_local_mode: The chroot_local_mode of this FtpSettingsExtended.  # noqa: E501
          :type: str
          """
  
          self._chroot_local_mode = chroot_local_mode
  
      @property
      def connect_timeout(self):
          """Gets the connect_timeout of this FtpSettingsExtended.  # noqa: E501
  
          The timeout, in seconds, for a remote client to respond to our PORT style data connection.  # noqa: E501
  
          :return: The connect_timeout of this FtpSettingsExtended.  # noqa: E501
          :rtype: int
          """
          return self._connect_timeout
  
      @connect_timeout.setter
      def connect_timeout(self, connect_timeout):
          """Sets the connect_timeout of this FtpSettingsExtended.
  
          The timeout, in seconds, for a remote client to respond to our PORT style data connection.  # noqa: E501
  
          :param connect_timeout: The connect_timeout of this FtpSettingsExtended.  # noqa: E501
          :type: int
          """
          if connect_timeout is not None and connect_timeout > 600:  # noqa: E501
              raise ValueError("Invalid value for `connect_timeout`, must be a value less than or equal to `600`")  # noqa: E501
          if connect_timeout is not None and connect_timeout < 30:  # noqa: E501
              raise ValueError("Invalid value for `connect_timeout`, must be a value greater than or equal to `30`")  # noqa: E501
  
          self._connect_timeout = connect_timeout
  
      @property
      def data_timeout(self):
          """Gets the data_timeout of this FtpSettingsExtended.  # noqa: E501
  
          The timeout, in seconds, which is roughly the maximum time we permit data transfers to stall for with no progress. If the timeout triggers, the remote client is kicked off.  # noqa: E501
  
          :return: The data_timeout of this FtpSettingsExtended.  # noqa: E501
          :rtype: int
          """
          return self._data_timeout
  
      @data_timeout.setter
      def data_timeout(self, data_timeout):
          """Sets the data_timeout of this FtpSettingsExtended.
  
          The timeout, in seconds, which is roughly the maximum time we permit data transfers to stall for with no progress. If the timeout triggers, the remote client is kicked off.  # noqa: E501
  
          :param data_timeout: The data_timeout of this FtpSettingsExtended.  # noqa: E501
          :type: int
          """
          if data_timeout is not None and data_timeout > 600:  # noqa: E501
              raise ValueError("Invalid value for `data_timeout`, must be a value less than or equal to `600`")  # noqa: E501
          if data_timeout is not None and data_timeout < 30:  # noqa: E501
              raise ValueError("Invalid value for `data_timeout`, must be a value greater than or equal to `30`")  # noqa: E501
  
          self._data_timeout = data_timeout
  
      @property
      def denied_user_list(self):
          """Gets the denied_user_list of this FtpSettingsExtended.  # noqa: E501
  
          A list of uses that will be denied access.  # noqa: E501
  
          :return: The denied_user_list of this FtpSettingsExtended.  # noqa: E501
          :rtype: list[str]
          """
          return self._denied_user_list
  
      @denied_user_list.setter
      def denied_user_list(self, denied_user_list):
          """Sets the denied_user_list of this FtpSettingsExtended.
  
          A list of uses that will be denied access.  # noqa: E501
  
          :param denied_user_list: The denied_user_list of this FtpSettingsExtended.  # noqa: E501
          :type: list[str]
          """
  
          self._denied_user_list = denied_user_list
  
      @property
      def dirlist_localtime(self):
          """Gets the dirlist_localtime of this FtpSettingsExtended.  # noqa: E501
  
          If enabled, display directory listings with the time in your local time zone. The default is to display GMT. The times returned by the MDTM FTP command are also affected by this option.  # noqa: E501
  
          :return: The dirlist_localtime of this FtpSettingsExtended.  # noqa: E501
          :rtype: bool
          """
          return self._dirlist_localtime
  
      @dirlist_localtime.setter
      def dirlist_localtime(self, dirlist_localtime):
          """Sets the dirlist_localtime of this FtpSettingsExtended.
  
          If enabled, display directory listings with the time in your local time zone. The default is to display GMT. The times returned by the MDTM FTP command are also affected by this option.  # noqa: E501
  
          :param dirlist_localtime: The dirlist_localtime of this FtpSettingsExtended.  # noqa: E501
          :type: bool
          """
  
          self._dirlist_localtime = dirlist_localtime
  
      @property
      def dirlist_names(self):
          """Gets the dirlist_names of this FtpSettingsExtended.  # noqa: E501
  
          When set to 'hide',  all user and group information in directory listings will be displayed as 'ftp'. When set to 'textual', textual names are shown in the user and group fields of directory listings. When set to 'numeric', numeric IDs are show in the user and group fields of directory listings.  # noqa: E501
  
          :return: The dirlist_names of this FtpSettingsExtended.  # noqa: E501
          :rtype: str
          """
          return self._dirlist_names
  
      @dirlist_names.setter
      def dirlist_names(self, dirlist_names):
          """Sets the dirlist_names of this FtpSettingsExtended.
  
          When set to 'hide',  all user and group information in directory listings will be displayed as 'ftp'. When set to 'textual', textual names are shown in the user and group fields of directory listings. When set to 'numeric', numeric IDs are show in the user and group fields of directory listings.  # noqa: E501
  
          :param dirlist_names: The dirlist_names of this FtpSettingsExtended.  # noqa: E501
          :type: str
          """
  
          self._dirlist_names = dirlist_names
  
      @property
      def file_create_perm(self):
          """Gets the file_create_perm of this FtpSettingsExtended.  # noqa: E501
  
          The permissions with which uploaded files are created. Umasks are applied on top of this value.  # noqa: E501
  
          :return: The file_create_perm of this FtpSettingsExtended.  # noqa: E501
          :rtype: int
          """
          return self._file_create_perm
  
      @file_create_perm.setter
      def file_create_perm(self, file_create_perm):
          """Sets the file_create_perm of this FtpSettingsExtended.
  
          The permissions with which uploaded files are created. Umasks are applied on top of this value.  # noqa: E501
  
          :param file_create_perm: The file_create_perm of this FtpSettingsExtended.  # noqa: E501
          :type: int
          """
          if file_create_perm is not None and file_create_perm > 511:  # noqa: E501
              raise ValueError("Invalid value for `file_create_perm`, must be a value less than or equal to `511`")  # noqa: E501
          if file_create_perm is not None and file_create_perm < 0:  # noqa: E501
              raise ValueError("Invalid value for `file_create_perm`, must be a value greater than or equal to `0`")  # noqa: E501
  
          self._file_create_perm = file_create_perm
  
      @property
      def limit_anon_passwords(self):
          """Gets the limit_anon_passwords of this FtpSettingsExtended.  # noqa: E501
  
          This field determines whether the anon_password_list is used.  # noqa: E501
  
          :return: The limit_anon_passwords of this FtpSettingsExtended.  # noqa: E501
          :rtype: bool
          """
          return self._limit_anon_passwords
  
      @limit_anon_passwords.setter
      def limit_anon_passwords(self, limit_anon_passwords):
          """Sets the limit_anon_passwords of this FtpSettingsExtended.
  
          This field determines whether the anon_password_list is used.  # noqa: E501
  
          :param limit_anon_passwords: The limit_anon_passwords of this FtpSettingsExtended.  # noqa: E501
          :type: bool
          """
  
          self._limit_anon_passwords = limit_anon_passwords
  
      @property
      def local_root_path(self):
          """Gets the local_root_path of this FtpSettingsExtended.  # noqa: E501
  
          This option represents a directory in /ifs which vsftpd will try to change into after a local login.  # noqa: E501
  
          :return: The local_root_path of this FtpSettingsExtended.  # noqa: E501
          :rtype: str
          """
          return self._local_root_path
  
      @local_root_path.setter
      def local_root_path(self, local_root_path):
          """Sets the local_root_path of this FtpSettingsExtended.
  
          This option represents a directory in /ifs which vsftpd will try to change into after a local login.  # noqa: E501
  
          :param local_root_path: The local_root_path of this FtpSettingsExtended.  # noqa: E501
          :type: str
          """
  
          self._local_root_path = local_root_path
  
      @property
      def local_umask(self):
          """Gets the local_umask of this FtpSettingsExtended.  # noqa: E501
  
          The value that the umask for file creation is set to for local users.  # noqa: E501
  
          :return: The local_umask of this FtpSettingsExtended.  # noqa: E501
          :rtype: int
          """
          return self._local_umask
  
      @local_umask.setter
      def local_umask(self, local_umask):
          """Sets the local_umask of this FtpSettingsExtended.
  
          The value that the umask for file creation is set to for local users.  # noqa: E501
  
          :param local_umask: The local_umask of this FtpSettingsExtended.  # noqa: E501
          :type: int
          """
          if local_umask is not None and local_umask > 511:  # noqa: E501
              raise ValueError("Invalid value for `local_umask`, must be a value less than or equal to `511`")  # noqa: E501
          if local_umask is not None and local_umask < 0:  # noqa: E501
              raise ValueError("Invalid value for `local_umask`, must be a value greater than or equal to `0`")  # noqa: E501
  
          self._local_umask = local_umask
  
      @property
      def server_to_server(self):
          """Gets the server_to_server of this FtpSettingsExtended.  # noqa: E501
  
          If enabled, allow server-to-server (FXP) transfers.  # noqa: E501
  
          :return: The server_to_server of this FtpSettingsExtended.  # noqa: E501
          :rtype: bool
          """
          return self._server_to_server
  
      @server_to_server.setter
      def server_to_server(self, server_to_server):
          """Sets the server_to_server of this FtpSettingsExtended.
  
          If enabled, allow server-to-server (FXP) transfers.  # noqa: E501
  
          :param server_to_server: The server_to_server of this FtpSettingsExtended.  # noqa: E501
          :type: bool
          """
  
          self._server_to_server = server_to_server
  
      @property
      def service(self):
          """Gets the service of this FtpSettingsExtended.  # noqa: E501
  
          This field controls whether the FTP daemon is running.  # noqa: E501
  
          :return: The service of this FtpSettingsExtended.  # noqa: E501
          :rtype: bool
          """
          return self._service
  
      @service.setter
      def service(self, service):
          """Sets the service of this FtpSettingsExtended.
  
          This field controls whether the FTP daemon is running.  # noqa: E501
  
          :param service: The service of this FtpSettingsExtended.  # noqa: E501
          :type: bool
          """
  
          self._service = service
  
      @property
      def session_support(self):
          """Gets the session_support of this FtpSettingsExtended.  # noqa: E501
  
          If enabled, maintain login sessions for each user through Pluggable Authentication Modules (PAM). Disabling this option prevents the ability to do automatic home directory creation if that functionality were otherwise available.  # noqa: E501
  
          :return: The session_support of this FtpSettingsExtended.  # noqa: E501
          :rtype: bool
          """
          return self._session_support
  
      @session_support.setter
      def session_support(self, session_support):
          """Sets the session_support of this FtpSettingsExtended.
  
          If enabled, maintain login sessions for each user through Pluggable Authentication Modules (PAM). Disabling this option prevents the ability to do automatic home directory creation if that functionality were otherwise available.  # noqa: E501
  
          :param session_support: The session_support of this FtpSettingsExtended.  # noqa: E501
          :type: bool
          """
  
          self._session_support = session_support
  
      @property
      def session_timeout(self):
          """Gets the session_timeout of this FtpSettingsExtended.  # noqa: E501
  
          The timeout, in seconds, which is roughly the maximum time we permit data transfers to stall for with no progress. If the timeout triggers, the remote client is kicked off.  # noqa: E501
  
          :return: The session_timeout of this FtpSettingsExtended.  # noqa: E501
          :rtype: int
          """
          return self._session_timeout
  
      @session_timeout.setter
      def session_timeout(self, session_timeout):
          """Sets the session_timeout of this FtpSettingsExtended.
  
          The timeout, in seconds, which is roughly the maximum time we permit data transfers to stall for with no progress. If the timeout triggers, the remote client is kicked off.  # noqa: E501
  
          :param session_timeout: The session_timeout of this FtpSettingsExtended.  # noqa: E501
          :type: int
          """
          if session_timeout is not None and session_timeout > 600:  # noqa: E501
              raise ValueError("Invalid value for `session_timeout`, must be a value less than or equal to `600`")  # noqa: E501
          if session_timeout is not None and session_timeout < 30:  # noqa: E501
              raise ValueError("Invalid value for `session_timeout`, must be a value greater than or equal to `30`")  # noqa: E501
  
          self._session_timeout = session_timeout
  
      @property
      def user_config_dir(self):
          """Gets the user_config_dir of this FtpSettingsExtended.  # noqa: E501
  
          Specifies the directory where per-user config overrides can be found.  # noqa: E501
  
          :return: The user_config_dir of this FtpSettingsExtended.  # noqa: E501
          :rtype: str
          """
          return self._user_config_dir
  
      @user_config_dir.setter
      def user_config_dir(self, user_config_dir):
          """Sets the user_config_dir of this FtpSettingsExtended.
  
          Specifies the directory where per-user config overrides can be found.  # noqa: E501
  
          :param user_config_dir: The user_config_dir of this FtpSettingsExtended.  # noqa: E501
          :type: str
          """
  
          self._user_config_dir = user_config_dir
  
      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, FtpSettingsExtended):
              return False
  
          return self.__dict__ == other.__dict__
  
      def __ne__(self, other):
          """Returns true if both objects are not equal"""
          return not self == other
  