text: # coding: utf-8
  
  """
      Isilon SDK
  
      Isilon SDK - Language bindings for the OneFS API  # noqa: E501
  
      OpenAPI spec version: 3
      Contact: sdk@isilon.com
      Generated by: https://github.com/swagger-api/swagger-codegen.git
  """
  
  
  import pprint
  import re  # noqa: F401
  
  import six
  
  
  class FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem(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 = {
          'attribute_exists': 'bool',
          'begins_with': 'bool',
          'case_sensitive': 'bool',
          'field': 'str',
          'operator': 'str',
          'type': 'str',
          'units': 'str',
          'use_relative_time': 'bool',
          'value': 'str'
      }
  
      attribute_map = {
          'attribute_exists': 'attribute_exists',
          'begins_with': 'begins_with',
          'case_sensitive': 'case_sensitive',
          'field': 'field',
          'operator': 'operator',
          'type': 'type',
          'units': 'units',
          'use_relative_time': 'use_relative_time',
          'value': 'value'
      }
  
      def __init__(self, attribute_exists=None, begins_with=None, case_sensitive=None, field=None, operator=None, type=None, units=None, use_relative_time=None, value=None):  # noqa: E501
          """FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem - a model defined in Swagger"""  # noqa: E501
  
          self._attribute_exists = None
          self._begins_with = None
          self._case_sensitive = None
          self._field = None
          self._operator = None
          self._type = None
          self._units = None
          self._use_relative_time = None
          self._value = None
          self.discriminator = None
  
          if attribute_exists is not None:
              self.attribute_exists = attribute_exists
          if begins_with is not None:
              self.begins_with = begins_with
          if case_sensitive is not None:
              self.case_sensitive = case_sensitive
          if field is not None:
              self.field = field
          if operator is not None:
              self.operator = operator
          self.type = type
          if units is not None:
              self.units = units
          if use_relative_time is not None:
              self.use_relative_time = use_relative_time
          if value is not None:
              self.value = value
  
      @property
      def attribute_exists(self):
          """Gets the attribute_exists of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
  
          Indicates whether the existence of an attribute indicates a match (valid only with 'type' = 'custom_attribute')  # noqa: E501
  
          :return: The attribute_exists of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
          :rtype: bool
          """
          return self._attribute_exists
  
      @attribute_exists.setter
      def attribute_exists(self, attribute_exists):
          """Sets the attribute_exists of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.
  
          Indicates whether the existence of an attribute indicates a match (valid only with 'type' = 'custom_attribute')  # noqa: E501
  
          :param attribute_exists: The attribute_exists of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
          :type: bool
          """
  
          self._attribute_exists = attribute_exists
  
      @property
      def begins_with(self):
          """Gets the begins_with of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
  
          True to match files recursively under the given path. (valid only with 'type' = 'path')  # noqa: E501
  
          :return: The begins_with of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
          :rtype: bool
          """
          return self._begins_with
  
      @begins_with.setter
      def begins_with(self, begins_with):
          """Sets the begins_with of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.
  
          True to match files recursively under the given path. (valid only with 'type' = 'path')  # noqa: E501
  
          :param begins_with: The begins_with of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
          :type: bool
          """
  
          self._begins_with = begins_with
  
      @property
      def case_sensitive(self):
          """Gets the case_sensitive of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
  
          True to indicate case sensitivity when comparing file attributes (valid only with 'type' = 'name' or 'type' = 'path')  # noqa: E501
  
          :return: The case_sensitive of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
          :rtype: bool
          """
          return self._case_sensitive
  
      @case_sensitive.setter
      def case_sensitive(self, case_sensitive):
          """Sets the case_sensitive of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.
  
          True to indicate case sensitivity when comparing file attributes (valid only with 'type' = 'name' or 'type' = 'path')  # noqa: E501
  
          :param case_sensitive: The case_sensitive of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
          :type: bool
          """
  
          self._case_sensitive = case_sensitive
  
      @property
      def field(self):
          """Gets the field of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
  
          File attribute field name to be compared in a custom comparison (valid only with 'type' = 'custom_attribute')  # noqa: E501
  
          :return: The field of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
          :rtype: str
          """
          return self._field
  
      @field.setter
      def field(self, field):
          """Sets the field of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.
  
          File attribute field name to be compared in a custom comparison (valid only with 'type' = 'custom_attribute')  # noqa: E501
  
          :param field: The field of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
          :type: str
          """
  
          self._field = field
  
      @property
      def operator(self):
          """Gets the operator of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
  
          The comparison operator to use while comparing an attribute with its value  # noqa: E501
  
          :return: The operator of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
          :rtype: str
          """
          return self._operator
  
      @operator.setter
      def operator(self, operator):
          """Sets the operator of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.
  
          The comparison operator to use while comparing an attribute with its value  # noqa: E501
  
          :param operator: The operator of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
          :type: str
          """
  
          self._operator = operator
  
      @property
      def type(self):
          """Gets the type of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
  
          The file attribute to be compared to a given value  # noqa: E501
  
          :return: The type of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
          :rtype: str
          """
          return self._type
  
      @type.setter
      def type(self, type):
          """Sets the type of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.
  
          The file attribute to be compared to a given value  # noqa: E501
  
          :param type: The type of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
          :type: str
          """
          if type is None:
              raise ValueError("Invalid value for `type`, must not be `None`")  # noqa: E501
          allowed_values = ["name", "path", "link_count", "accessed_time", "birth_time", "changed_time", "metadata_changed_time", "size", "file_type", "custom_attribute"]  # noqa: E501
          if type not in allowed_values:
              raise ValueError(
                  "Invalid value for `type` ({0}), must be one of {1}"  # noqa: E501
                  .format(type, allowed_values)
              )
  
          self._type = type
  
      @property
      def units(self):
          """Gets the units of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
  
          Size unit value. One of 'B','KB','MB','GB','TB','PB','EB' (valid only with 'type' = 'size')  # noqa: E501
  
          :return: The units of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
          :rtype: str
          """
          return self._units
  
      @units.setter
      def units(self, units):
          """Sets the units of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.
  
          Size unit value. One of 'B','KB','MB','GB','TB','PB','EB' (valid only with 'type' = 'size')  # noqa: E501
  
          :param units: The units of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
          :type: str
          """
  
          self._units = units
  
      @property
      def use_relative_time(self):
          """Gets the use_relative_time of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
  
          Whether time units refer to a calendar date and time (e.g., Jun 3, 2009) or a relative duration (e.g., 2 weeks) (valid only with 'type' in {accessed_time, birth_time, changed_time or metadata_changed_time}  # noqa: E501
  
          :return: The use_relative_time of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
          :rtype: bool
          """
          return self._use_relative_time
  
      @use_relative_time.setter
      def use_relative_time(self, use_relative_time):
          """Sets the use_relative_time of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.
  
          Whether time units refer to a calendar date and time (e.g., Jun 3, 2009) or a relative duration (e.g., 2 weeks) (valid only with 'type' in {accessed_time, birth_time, changed_time or metadata_changed_time}  # noqa: E501
  
          :param use_relative_time: The use_relative_time of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
          :type: bool
          """
  
          self._use_relative_time = use_relative_time
  
      @property
      def value(self):
          """Gets the value of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
  
          The value to be compared against a file attribute  # noqa: E501
  
          :return: The value of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
          :rtype: str
          """
          return self._value
  
      @value.setter
      def value(self, value):
          """Sets the value of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.
  
          The value to be compared against a file attribute  # noqa: E501
  
          :param value: The value of this FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem.  # noqa: E501
          :type: str
          """
  
          self._value = value
  
      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, FilepoolPolicyFileMatchingPatternOrCriteriaItemAndCriteriaItem):
              return False
  
          return self.__dict__ == other.__dict__
  
      def __ne__(self, other):
          """Returns true if both objects are not equal"""
          return not self == other
  