# coding: utf-8

"""
    Jamf Pro API

    ## Overview This is a sample Jamf Pro server which allows for usage without any authentication. The Jamf Pro environment which supports the Try it Out functionality does not run the current beta version of Jamf Pro, thus any newly added endpoints will result in an error and should be used soley for documentation purposes.   # noqa: E501

    The version of the OpenAPI document: 10.25.0
    Generated by: https://openapi-generator.tech
"""


import pprint
import re  # noqa: F401

import six

from jamf.configuration import Configuration


class CacheSettings(object):
    """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',
        'name': 'str',
        'cache_type': 'str',
        'time_to_live_seconds': 'int',
        'time_to_idle_seconds': 'int',
        'ehcache_max_bytes_local_heap': 'str',
        'cache_unique_id': 'str',
        'elasticache': 'bool',
        'memcached_endpoints': 'list[MemcachedEndpoints]'
    }

    attribute_map = {
        'id': 'id',
        'name': 'name',
        'cache_type': 'cacheType',
        'time_to_live_seconds': 'timeToLiveSeconds',
        'time_to_idle_seconds': 'timeToIdleSeconds',
        'ehcache_max_bytes_local_heap': 'ehcacheMaxBytesLocalHeap',
        'cache_unique_id': 'cacheUniqueId',
        'elasticache': 'elasticache',
        'memcached_endpoints': 'memcachedEndpoints'
    }

    def __init__(self, id='0', name='cache configuration', cache_type=None, time_to_live_seconds=None, time_to_idle_seconds=None, ehcache_max_bytes_local_heap='null', cache_unique_id=None, elasticache=False, memcached_endpoints=None, local_vars_configuration=None):  # noqa: E501
        """CacheSettings - a model defined in OpenAPI"""  # noqa: E501
        if local_vars_configuration is None:
            local_vars_configuration = Configuration()
        self.local_vars_configuration = local_vars_configuration

        self._id = None
        self._name = None
        self._cache_type = None
        self._time_to_live_seconds = None
        self._time_to_idle_seconds = None
        self._ehcache_max_bytes_local_heap = None
        self._cache_unique_id = None
        self._elasticache = None
        self._memcached_endpoints = None
        self.discriminator = None

        if id is not None:
            self.id = id
        if name is not None:
            self.name = name
        self.cache_type = cache_type
        self.time_to_live_seconds = time_to_live_seconds
        if time_to_idle_seconds is not None:
            self.time_to_idle_seconds = time_to_idle_seconds
        if ehcache_max_bytes_local_heap is not None:
            self.ehcache_max_bytes_local_heap = ehcache_max_bytes_local_heap
        self.cache_unique_id = cache_unique_id
        if elasticache is not None:
            self.elasticache = elasticache
        self.memcached_endpoints = memcached_endpoints

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


        :return: The id of this CacheSettings.  # noqa: E501
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id):
        """Sets the id of this CacheSettings.


        :param id: The id of this CacheSettings.  # noqa: E501
        :type id: str
        """

        self._id = id

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


        :return: The name of this CacheSettings.  # noqa: E501
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this CacheSettings.


        :param name: The name of this CacheSettings.  # noqa: E501
        :type name: str
        """

        self._name = name

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


        :return: The cache_type of this CacheSettings.  # noqa: E501
        :rtype: str
        """
        return self._cache_type

    @cache_type.setter
    def cache_type(self, cache_type):
        """Sets the cache_type of this CacheSettings.


        :param cache_type: The cache_type of this CacheSettings.  # noqa: E501
        :type cache_type: str
        """
        if self.local_vars_configuration.client_side_validation and cache_type is None:  # noqa: E501
            raise ValueError("Invalid value for `cache_type`, must not be `None`")  # noqa: E501

        self._cache_type = cache_type

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


        :return: The time_to_live_seconds of this CacheSettings.  # noqa: E501
        :rtype: int
        """
        return self._time_to_live_seconds

    @time_to_live_seconds.setter
    def time_to_live_seconds(self, time_to_live_seconds):
        """Sets the time_to_live_seconds of this CacheSettings.


        :param time_to_live_seconds: The time_to_live_seconds of this CacheSettings.  # noqa: E501
        :type time_to_live_seconds: int
        """
        if self.local_vars_configuration.client_side_validation and time_to_live_seconds is None:  # noqa: E501
            raise ValueError("Invalid value for `time_to_live_seconds`, must not be `None`")  # noqa: E501

        self._time_to_live_seconds = time_to_live_seconds

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


        :return: The time_to_idle_seconds of this CacheSettings.  # noqa: E501
        :rtype: int
        """
        return self._time_to_idle_seconds

    @time_to_idle_seconds.setter
    def time_to_idle_seconds(self, time_to_idle_seconds):
        """Sets the time_to_idle_seconds of this CacheSettings.


        :param time_to_idle_seconds: The time_to_idle_seconds of this CacheSettings.  # noqa: E501
        :type time_to_idle_seconds: int
        """

        self._time_to_idle_seconds = time_to_idle_seconds

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


        :return: The ehcache_max_bytes_local_heap of this CacheSettings.  # noqa: E501
        :rtype: str
        """
        return self._ehcache_max_bytes_local_heap

    @ehcache_max_bytes_local_heap.setter
    def ehcache_max_bytes_local_heap(self, ehcache_max_bytes_local_heap):
        """Sets the ehcache_max_bytes_local_heap of this CacheSettings.


        :param ehcache_max_bytes_local_heap: The ehcache_max_bytes_local_heap of this CacheSettings.  # noqa: E501
        :type ehcache_max_bytes_local_heap: str
        """

        self._ehcache_max_bytes_local_heap = ehcache_max_bytes_local_heap

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

        The default is for Jamf Pro to generate a UUID, so we can only give an example instead.  # noqa: E501

        :return: The cache_unique_id of this CacheSettings.  # noqa: E501
        :rtype: str
        """
        return self._cache_unique_id

    @cache_unique_id.setter
    def cache_unique_id(self, cache_unique_id):
        """Sets the cache_unique_id of this CacheSettings.

        The default is for Jamf Pro to generate a UUID, so we can only give an example instead.  # noqa: E501

        :param cache_unique_id: The cache_unique_id of this CacheSettings.  # noqa: E501
        :type cache_unique_id: str
        """
        if self.local_vars_configuration.client_side_validation and cache_unique_id is None:  # noqa: E501
            raise ValueError("Invalid value for `cache_unique_id`, must not be `None`")  # noqa: E501

        self._cache_unique_id = cache_unique_id

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


        :return: The elasticache of this CacheSettings.  # noqa: E501
        :rtype: bool
        """
        return self._elasticache

    @elasticache.setter
    def elasticache(self, elasticache):
        """Sets the elasticache of this CacheSettings.


        :param elasticache: The elasticache of this CacheSettings.  # noqa: E501
        :type elasticache: bool
        """

        self._elasticache = elasticache

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


        :return: The memcached_endpoints of this CacheSettings.  # noqa: E501
        :rtype: list[MemcachedEndpoints]
        """
        return self._memcached_endpoints

    @memcached_endpoints.setter
    def memcached_endpoints(self, memcached_endpoints):
        """Sets the memcached_endpoints of this CacheSettings.


        :param memcached_endpoints: The memcached_endpoints of this CacheSettings.  # noqa: E501
        :type memcached_endpoints: list[MemcachedEndpoints]
        """
        if self.local_vars_configuration.client_side_validation and memcached_endpoints is None:  # noqa: E501
            raise ValueError("Invalid value for `memcached_endpoints`, must not be `None`")  # noqa: E501

        self._memcached_endpoints = memcached_endpoints

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

        for attr, _ in six.iteritems(self.openapi_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, CacheSettings):
            return False

        return self.to_dict() == other.to_dict()

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

        return self.to_dict() != other.to_dict()

# coding: utf-8

"""
    Jamf Pro API

    ## Overview This is a sample Jamf Pro server which allows for usage without any authentication. The Jamf Pro environment which supports the Try it Out functionality does not run the current beta version of Jamf Pro, thus any newly added endpoints will result in an error and should be used soley for documentation purposes.   # noqa: E501

    The version of the OpenAPI document: 10.25.0
    Generated by: https://openapi-generator.tech
"""


import pprint
import re  # noqa: F401

import six

from jamf.configuration import Configuration


class CacheSettings(object):
    """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',
        'name': 'str',
        'cache_type': 'str',
        'time_to_live_seconds': 'int',
        'time_to_idle_seconds': 'int',
        'ehcache_max_bytes_local_heap': 'str',
        'cache_unique_id': 'str',
        'elasticache': 'bool',
        'memcached_endpoints': 'list[MemcachedEndpoints]'
    }

    attribute_map = {
        'id': 'id',
        'name': 'name',
        'cache_type': 'cacheType',
        'time_to_live_seconds': 'timeToLiveSeconds',
        'time_to_idle_seconds': 'timeToIdleSeconds',
        'ehcache_max_bytes_local_heap': 'ehcacheMaxBytesLocalHeap',
        'cache_unique_id': 'cacheUniqueId',
        'elasticache': 'elasticache',
        'memcached_endpoints': 'memcachedEndpoints'
    }

    def __init__(self, id='0', name='cache configuration', cache_type=None, time_to_live_seconds=None, time_to_idle_seconds=None, ehcache_max_bytes_local_heap='null', cache_unique_id=None, elasticache=False, memcached_endpoints=None, local_vars_configuration=None):  # noqa: E501
        """CacheSettings - a model defined in OpenAPI"""  # noqa: E501
        if local_vars_configuration is None:
            local_vars_configuration = Configuration()
        self.local_vars_configuration = local_vars_configuration

        self._id = None
        self._name = None
        self._cache_type = None
        self._time_to_live_seconds = None
        self._time_to_idle_seconds = None
        self._ehcache_max_bytes_local_heap = None
        self._cache_unique_id = None
        self._elasticache = None
        self._memcached_endpoints = None
        self.discriminator = None

        if id is not None:
            self.id = id
        if name is not None:
            self.name = name
        self.cache_type = cache_type
        self.time_to_live_seconds = time_to_live_seconds
        if time_to_idle_seconds is not None:
            self.time_to_idle_seconds = time_to_idle_seconds
        if ehcache_max_bytes_local_heap is not None:
            self.ehcache_max_bytes_local_heap = ehcache_max_bytes_local_heap
        self.cache_unique_id = cache_unique_id
        if elasticache is not None:
            self.elasticache = elasticache
        self.memcached_endpoints = memcached_endpoints

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


        :return: The id of this CacheSettings.  # noqa: E501
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id):
        """Sets the id of this CacheSettings.


        :param id: The id of this CacheSettings.  # noqa: E501
        :type id: str
        """

        self._id = id

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


        :return: The name of this CacheSettings.  # noqa: E501
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this CacheSettings.


        :param name: The name of this CacheSettings.  # noqa: E501
        :type name: str
        """

        self._name = name

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


        :return: The cache_type of this CacheSettings.  # noqa: E501
        :rtype: str
        """
        return self._cache_type

    @cache_type.setter
    def cache_type(self, cache_type):
        """Sets the cache_type of this CacheSettings.


        :param cache_type: The cache_type of this CacheSettings.  # noqa: E501
        :type cache_type: str
        """
        if self.local_vars_configuration.client_side_validation and cache_type is None:  # noqa: E501
            raise ValueError("Invalid value for `cache_type`, must not be `None`")  # noqa: E501

        self._cache_type = cache_type

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


        :return: The time_to_live_seconds of this CacheSettings.  # noqa: E501
        :rtype: int
        """
        return self._time_to_live_seconds

    @time_to_live_seconds.setter
    def time_to_live_seconds(self, time_to_live_seconds):
        """Sets the time_to_live_seconds of this CacheSettings.


        :param time_to_live_seconds: The time_to_live_seconds of this CacheSettings.  # noqa: E501
        :type time_to_live_seconds: int
        """
        if self.local_vars_configuration.client_side_validation and time_to_live_seconds is None:  # noqa: E501
            raise ValueError("Invalid value for `time_to_live_seconds`, must not be `None`")  # noqa: E501

        self._time_to_live_seconds = time_to_live_seconds

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


        :return: The time_to_idle_seconds of this CacheSettings.  # noqa: E501
        :rtype: int
        """
        return self._time_to_idle_seconds

    @time_to_idle_seconds.setter
    def time_to_idle_seconds(self, time_to_idle_seconds):
        """Sets the time_to_idle_seconds of this CacheSettings.


        :param time_to_idle_seconds: The time_to_idle_seconds of this CacheSettings.  # noqa: E501
        :type time_to_idle_seconds: int
        """

        self._time_to_idle_seconds = time_to_idle_seconds

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


        :return: The ehcache_max_bytes_local_heap of this CacheSettings.  # noqa: E501
        :rtype: str
        """
        return self._ehcache_max_bytes_local_heap

    @ehcache_max_bytes_local_heap.setter
    def ehcache_max_bytes_local_heap(self, ehcache_max_bytes_local_heap):
        """Sets the ehcache_max_bytes_local_heap of this CacheSettings.


        :param ehcache_max_bytes_local_heap: The ehcache_max_bytes_local_heap of this CacheSettings.  # noqa: E501
        :type ehcache_max_bytes_local_heap: str
        """

        self._ehcache_max_bytes_local_heap = ehcache_max_bytes_local_heap

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

        The default is for Jamf Pro to generate a UUID, so we can only give an example instead.  # noqa: E501

        :return: The cache_unique_id of this CacheSettings.  # noqa: E501
        :rtype: str
        """
        return self._cache_unique_id

    @cache_unique_id.setter
    def cache_unique_id(self, cache_unique_id):
        """Sets the cache_unique_id of this CacheSettings.

        The default is for Jamf Pro to generate a UUID, so we can only give an example instead.  # noqa: E501

        :param cache_unique_id: The cache_unique_id of this CacheSettings.  # noqa: E501
        :type cache_unique_id: str
        """
        if self.local_vars_configuration.client_side_validation and cache_unique_id is None:  # noqa: E501
            raise ValueError("Invalid value for `cache_unique_id`, must not be `None`")  # noqa: E501

        self._cache_unique_id = cache_unique_id

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


        :return: The elasticache of this CacheSettings.  # noqa: E501
        :rtype: bool
        """
        return self._elasticache

    @elasticache.setter
    def elasticache(self, elasticache):
        """Sets the elasticache of this CacheSettings.


        :param elasticache: The elasticache of this CacheSettings.  # noqa: E501
        :type elasticache: bool
        """

        self._elasticache = elasticache

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


        :return: The memcached_endpoints of this CacheSettings.  # noqa: E501
        :rtype: list[MemcachedEndpoints]
        """
        return self._memcached_endpoints

    @memcached_endpoints.setter
    def memcached_endpoints(self, memcached_endpoints):
        """Sets the memcached_endpoints of this CacheSettings.


        :param memcached_endpoints: The memcached_endpoints of this CacheSettings.  # noqa: E501
        :type memcached_endpoints: list[MemcachedEndpoints]
        """
        if self.local_vars_configuration.client_side_validation and memcached_endpoints is None:  # noqa: E501
            raise ValueError("Invalid value for `memcached_endpoints`, must not be `None`")  # noqa: E501

        self._memcached_endpoints = memcached_endpoints

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

        for attr, _ in six.iteritems(self.openapi_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, CacheSettings):
            return False

        return self.to_dict() == other.to_dict()

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

        return self.to_dict() != other.to_dict()

# coding: utf-8 Jamf Pro API      ## Overview This is a sample Jamf Pro server which allows for usage without any authentication. The Jamf Pro environment which supports the Try it Out functionality does not run the current beta version of Jamf Pro, thus any newly added endpoints will result in an error and should be used soley for documentation purposes.   # noqa: E501      The version of the OpenAPI document: 10.25.0     Generated by: https://openapi-generator.tech # noqa: F401 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. # noqa: E501 CacheSettings - a model defined in OpenAPI # noqa: E501 Gets the id of this CacheSettings.  # noqa: E501           :return: The id of this CacheSettings.  # noqa: E501         :rtype: str Sets the id of this CacheSettings.           :param id: The id of this CacheSettings.  # noqa: E501         :type id: str Gets the name of this CacheSettings.  # noqa: E501           :return: The name of this CacheSettings.  # noqa: E501         :rtype: str Sets the name of this CacheSettings.           :param name: The name of this CacheSettings.  # noqa: E501         :type name: str Gets the cache_type of this CacheSettings.  # noqa: E501           :return: The cache_type of this CacheSettings.  # noqa: E501         :rtype: str Sets the cache_type of this CacheSettings.           :param cache_type: The cache_type of this CacheSettings.  # noqa: E501         :type cache_type: str # noqa: E501 # noqa: E501 Gets the time_to_live_seconds of this CacheSettings.  # noqa: E501           :return: The time_to_live_seconds of this CacheSettings.  # noqa: E501         :rtype: int Sets the time_to_live_seconds of this CacheSettings.           :param time_to_live_seconds: The time_to_live_seconds of this CacheSettings.  # noqa: E501         :type time_to_live_seconds: int # noqa: E501 # noqa: E501 Gets the time_to_idle_seconds of this CacheSettings.  # noqa: E501           :return: The time_to_idle_seconds of this CacheSettings.  # noqa: E501         :rtype: int Sets the time_to_idle_seconds of this CacheSettings.           :param time_to_idle_seconds: The time_to_idle_seconds of this CacheSettings.  # noqa: E501         :type time_to_idle_seconds: int Gets the ehcache_max_bytes_local_heap of this CacheSettings.  # noqa: E501           :return: The ehcache_max_bytes_local_heap of this CacheSettings.  # noqa: E501         :rtype: str Sets the ehcache_max_bytes_local_heap of this CacheSettings.           :param ehcache_max_bytes_local_heap: The ehcache_max_bytes_local_heap of this CacheSettings.  # noqa: E501         :type ehcache_max_bytes_local_heap: str Gets the cache_unique_id of this CacheSettings.  # noqa: E501          The default is for Jamf Pro to generate a UUID, so we can only give an example instead.  # noqa: E501          :return: The cache_unique_id of this CacheSettings.  # noqa: E501         :rtype: str Sets the cache_unique_id of this CacheSettings.          The default is for Jamf Pro to generate a UUID, so we can only give an example instead.  # noqa: E501          :param cache_unique_id: The cache_unique_id of this CacheSettings.  # noqa: E501         :type cache_unique_id: str # noqa: E501 # noqa: E501 Gets the elasticache of this CacheSettings.  # noqa: E501           :return: The elasticache of this CacheSettings.  # noqa: E501         :rtype: bool Sets the elasticache of this CacheSettings.           :param elasticache: The elasticache of this CacheSettings.  # noqa: E501         :type elasticache: bool Gets the memcached_endpoints of this CacheSettings.  # noqa: E501           :return: The memcached_endpoints of this CacheSettings.  # noqa: E501         :rtype: list[MemcachedEndpoints] Sets the memcached_endpoints of this CacheSettings.           :param memcached_endpoints: The memcached_endpoints of this CacheSettings.  # noqa: E501         :type memcached_endpoints: list[MemcachedEndpoints] # noqa: E501 # noqa: E501 Returns the model properties as a dict Returns the string representation of the model For `print` and `pprint` Returns true if both objects are equal Returns true if both objects are not equal