text: # 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 IosDetailsV2(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 = {
          'model': 'str',
          'model_identifier': 'str',
          'model_number': 'str',
          'supervised': 'bool',
          'battery_level': 'int',
          'last_backup_timestamp': 'datetime',
          'capacity_mb': 'int',
          'available_mb': 'int',
          'percentage_used': 'int',
          'shared': 'bool',
          'device_locator_service_enabled': 'bool',
          'do_not_disturb_enabled': 'bool',
          'cloud_backup_enabled': 'bool',
          'last_cloud_backup_timestamp': 'datetime',
          'location_services_enabled': 'bool',
          'i_tunes_store_account_active': 'bool',
          'ble_capable': 'bool',
          'computer': 'IosDetailsV2Computer',
          'purchasing': 'PurchasingV2',
          'security': 'SecurityV2',
          'network': 'NetworkV2',
          'applications': 'list[IosDetailsApplications]',
          'certificates': 'list[IosDetailsV2Certificates]',
          'ebooks': 'list[IosDetailsEbooks]',
          'configuration_profiles': 'list[ConfigurationProfile]',
          'provisioning_profiles': 'list[ProvisioningProfile]',
          'attachments': 'list[IosDetailsV2Attachments]'
      }
  
      attribute_map = {
          'model': 'model',
          'model_identifier': 'modelIdentifier',
          'model_number': 'modelNumber',
          'supervised': 'supervised',
          'battery_level': 'batteryLevel',
          'last_backup_timestamp': 'lastBackupTimestamp',
          'capacity_mb': 'capacityMb',
          'available_mb': 'availableMb',
          'percentage_used': 'percentageUsed',
          'shared': 'shared',
          'device_locator_service_enabled': 'deviceLocatorServiceEnabled',
          'do_not_disturb_enabled': 'doNotDisturbEnabled',
          'cloud_backup_enabled': 'cloudBackupEnabled',
          'last_cloud_backup_timestamp': 'lastCloudBackupTimestamp',
          'location_services_enabled': 'locationServicesEnabled',
          'i_tunes_store_account_active': 'iTunesStoreAccountActive',
          'ble_capable': 'bleCapable',
          'computer': 'computer',
          'purchasing': 'purchasing',
          'security': 'security',
          'network': 'network',
          'applications': 'applications',
          'certificates': 'certificates',
          'ebooks': 'ebooks',
          'configuration_profiles': 'configurationProfiles',
          'provisioning_profiles': 'provisioningProfiles',
          'attachments': 'attachments'
      }
  
      def __init__(self, model=None, model_identifier=None, model_number=None, supervised=None, battery_level=None, last_backup_timestamp=None, capacity_mb=None, available_mb=None, percentage_used=None, shared=None, device_locator_service_enabled=None, do_not_disturb_enabled=None, cloud_backup_enabled=None, last_cloud_backup_timestamp=None, location_services_enabled=None, i_tunes_store_account_active=None, ble_capable=None, computer=None, purchasing=None, security=None, network=None, applications=None, certificates=None, ebooks=None, configuration_profiles=None, provisioning_profiles=None, attachments=None, local_vars_configuration=None):  # noqa: E501
          """IosDetailsV2 - 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._model = None
          self._model_identifier = None
          self._model_number = None
          self._supervised = None
          self._battery_level = None
          self._last_backup_timestamp = None
          self._capacity_mb = None
          self._available_mb = None
          self._percentage_used = None
          self._shared = None
          self._device_locator_service_enabled = None
          self._do_not_disturb_enabled = None
          self._cloud_backup_enabled = None
          self._last_cloud_backup_timestamp = None
          self._location_services_enabled = None
          self._i_tunes_store_account_active = None
          self._ble_capable = None
          self._computer = None
          self._purchasing = None
          self._security = None
          self._network = None
          self._applications = None
          self._certificates = None
          self._ebooks = None
          self._configuration_profiles = None
          self._provisioning_profiles = None
          self._attachments = None
          self.discriminator = None
  
          if model is not None:
              self.model = model
          if model_identifier is not None:
              self.model_identifier = model_identifier
          if model_number is not None:
              self.model_number = model_number
          if supervised is not None:
              self.supervised = supervised
          if battery_level is not None:
              self.battery_level = battery_level
          if last_backup_timestamp is not None:
              self.last_backup_timestamp = last_backup_timestamp
          if capacity_mb is not None:
              self.capacity_mb = capacity_mb
          if available_mb is not None:
              self.available_mb = available_mb
          if percentage_used is not None:
              self.percentage_used = percentage_used
          if shared is not None:
              self.shared = shared
          if device_locator_service_enabled is not None:
              self.device_locator_service_enabled = device_locator_service_enabled
          if do_not_disturb_enabled is not None:
              self.do_not_disturb_enabled = do_not_disturb_enabled
          if cloud_backup_enabled is not None:
              self.cloud_backup_enabled = cloud_backup_enabled
          if last_cloud_backup_timestamp is not None:
              self.last_cloud_backup_timestamp = last_cloud_backup_timestamp
          if location_services_enabled is not None:
              self.location_services_enabled = location_services_enabled
          if i_tunes_store_account_active is not None:
              self.i_tunes_store_account_active = i_tunes_store_account_active
          if ble_capable is not None:
              self.ble_capable = ble_capable
          if computer is not None:
              self.computer = computer
          if purchasing is not None:
              self.purchasing = purchasing
          if security is not None:
              self.security = security
          if network is not None:
              self.network = network
          if applications is not None:
              self.applications = applications
          if certificates is not None:
              self.certificates = certificates
          if ebooks is not None:
              self.ebooks = ebooks
          if configuration_profiles is not None:
              self.configuration_profiles = configuration_profiles
          if provisioning_profiles is not None:
              self.provisioning_profiles = provisioning_profiles
          if attachments is not None:
              self.attachments = attachments
  
      @property
      def model(self):
          """Gets the model of this IosDetailsV2.  # noqa: E501
  
  
          :return: The model of this IosDetailsV2.  # noqa: E501
          :rtype: str
          """
          return self._model
  
      @model.setter
      def model(self, model):
          """Sets the model of this IosDetailsV2.
  
  
          :param model: The model of this IosDetailsV2.  # noqa: E501
          :type model: str
          """
  
          self._model = model
  
      @property
      def model_identifier(self):
          """Gets the model_identifier of this IosDetailsV2.  # noqa: E501
  
  
          :return: The model_identifier of this IosDetailsV2.  # noqa: E501
          :rtype: str
          """
          return self._model_identifier
  
      @model_identifier.setter
      def model_identifier(self, model_identifier):
          """Sets the model_identifier of this IosDetailsV2.
  
  
          :param model_identifier: The model_identifier of this IosDetailsV2.  # noqa: E501
          :type model_identifier: str
          """
  
          self._model_identifier = model_identifier
  
      @property
      def model_number(self):
          """Gets the model_number of this IosDetailsV2.  # noqa: E501
  
  
          :return: The model_number of this IosDetailsV2.  # noqa: E501
          :rtype: str
          """
          return self._model_number
  
      @model_number.setter
      def model_number(self, model_number):
          """Sets the model_number of this IosDetailsV2.
  
  
          :param model_number: The model_number of this IosDetailsV2.  # noqa: E501
          :type model_number: str
          """
  
          self._model_number = model_number
  
      @property
      def supervised(self):
          """Gets the supervised of this IosDetailsV2.  # noqa: E501
  
  
          :return: The supervised of this IosDetailsV2.  # noqa: E501
          :rtype: bool
          """
          return self._supervised
  
      @supervised.setter
      def supervised(self, supervised):
          """Sets the supervised of this IosDetailsV2.
  
  
          :param supervised: The supervised of this IosDetailsV2.  # noqa: E501
          :type supervised: bool
          """
  
          self._supervised = supervised
  
      @property
      def battery_level(self):
          """Gets the battery_level of this IosDetailsV2.  # noqa: E501
  
  
          :return: The battery_level of this IosDetailsV2.  # noqa: E501
          :rtype: int
          """
          return self._battery_level
  
      @battery_level.setter
      def battery_level(self, battery_level):
          """Sets the battery_level of this IosDetailsV2.
  
  
          :param battery_level: The battery_level of this IosDetailsV2.  # noqa: E501
          :type battery_level: int
          """
  
          self._battery_level = battery_level
  
      @property
      def last_backup_timestamp(self):
          """Gets the last_backup_timestamp of this IosDetailsV2.  # noqa: E501
  
  
          :return: The last_backup_timestamp of this IosDetailsV2.  # noqa: E501
          :rtype: datetime
          """
          return self._last_backup_timestamp
  
      @last_backup_timestamp.setter
      def last_backup_timestamp(self, last_backup_timestamp):
          """Sets the last_backup_timestamp of this IosDetailsV2.
  
  
          :param last_backup_timestamp: The last_backup_timestamp of this IosDetailsV2.  # noqa: E501
          :type last_backup_timestamp: datetime
          """
  
          self._last_backup_timestamp = last_backup_timestamp
  
      @property
      def capacity_mb(self):
          """Gets the capacity_mb of this IosDetailsV2.  # noqa: E501
  
  
          :return: The capacity_mb of this IosDetailsV2.  # noqa: E501
          :rtype: int
          """
          return self._capacity_mb
  
      @capacity_mb.setter
      def capacity_mb(self, capacity_mb):
          """Sets the capacity_mb of this IosDetailsV2.
  
  
          :param capacity_mb: The capacity_mb of this IosDetailsV2.  # noqa: E501
          :type capacity_mb: int
          """
  
          self._capacity_mb = capacity_mb
  
      @property
      def available_mb(self):
          """Gets the available_mb of this IosDetailsV2.  # noqa: E501
  
  
          :return: The available_mb of this IosDetailsV2.  # noqa: E501
          :rtype: int
          """
          return self._available_mb
  
      @available_mb.setter
      def available_mb(self, available_mb):
          """Sets the available_mb of this IosDetailsV2.
  
  
          :param available_mb: The available_mb of this IosDetailsV2.  # noqa: E501
          :type available_mb: int
          """
  
          self._available_mb = available_mb
  
      @property
      def percentage_used(self):
          """Gets the percentage_used of this IosDetailsV2.  # noqa: E501
  
  
          :return: The percentage_used of this IosDetailsV2.  # noqa: E501
          :rtype: int
          """
          return self._percentage_used
  
      @percentage_used.setter
      def percentage_used(self, percentage_used):
          """Sets the percentage_used of this IosDetailsV2.
  
  
          :param percentage_used: The percentage_used of this IosDetailsV2.  # noqa: E501
          :type percentage_used: int
          """
  
          self._percentage_used = percentage_used
  
      @property
      def shared(self):
          """Gets the shared of this IosDetailsV2.  # noqa: E501
  
  
          :return: The shared of this IosDetailsV2.  # noqa: E501
          :rtype: bool
          """
          return self._shared
  
      @shared.setter
      def shared(self, shared):
          """Sets the shared of this IosDetailsV2.
  
  
          :param shared: The shared of this IosDetailsV2.  # noqa: E501
          :type shared: bool
          """
  
          self._shared = shared
  
      @property
      def device_locator_service_enabled(self):
          """Gets the device_locator_service_enabled of this IosDetailsV2.  # noqa: E501
  
  
          :return: The device_locator_service_enabled of this IosDetailsV2.  # noqa: E501
          :rtype: bool
          """
          return self._device_locator_service_enabled
  
      @device_locator_service_enabled.setter
      def device_locator_service_enabled(self, device_locator_service_enabled):
          """Sets the device_locator_service_enabled of this IosDetailsV2.
  
  
          :param device_locator_service_enabled: The device_locator_service_enabled of this IosDetailsV2.  # noqa: E501
          :type device_locator_service_enabled: bool
          """
  
          self._device_locator_service_enabled = device_locator_service_enabled
  
      @property
      def do_not_disturb_enabled(self):
          """Gets the do_not_disturb_enabled of this IosDetailsV2.  # noqa: E501
  
  
          :return: The do_not_disturb_enabled of this IosDetailsV2.  # noqa: E501
          :rtype: bool
          """
          return self._do_not_disturb_enabled
  
      @do_not_disturb_enabled.setter
      def do_not_disturb_enabled(self, do_not_disturb_enabled):
          """Sets the do_not_disturb_enabled of this IosDetailsV2.
  
  
          :param do_not_disturb_enabled: The do_not_disturb_enabled of this IosDetailsV2.  # noqa: E501
          :type do_not_disturb_enabled: bool
          """
  
          self._do_not_disturb_enabled = do_not_disturb_enabled
  
      @property
      def cloud_backup_enabled(self):
          """Gets the cloud_backup_enabled of this IosDetailsV2.  # noqa: E501
  
  
          :return: The cloud_backup_enabled of this IosDetailsV2.  # noqa: E501
          :rtype: bool
          """
          return self._cloud_backup_enabled
  
      @cloud_backup_enabled.setter
      def cloud_backup_enabled(self, cloud_backup_enabled):
          """Sets the cloud_backup_enabled of this IosDetailsV2.
  
  
          :param cloud_backup_enabled: The cloud_backup_enabled of this IosDetailsV2.  # noqa: E501
          :type cloud_backup_enabled: bool
          """
  
          self._cloud_backup_enabled = cloud_backup_enabled
  
      @property
      def last_cloud_backup_timestamp(self):
          """Gets the last_cloud_backup_timestamp of this IosDetailsV2.  # noqa: E501
  
  
          :return: The last_cloud_backup_timestamp of this IosDetailsV2.  # noqa: E501
          :rtype: datetime
          """
          return self._last_cloud_backup_timestamp
  
      @last_cloud_backup_timestamp.setter
      def last_cloud_backup_timestamp(self, last_cloud_backup_timestamp):
          """Sets the last_cloud_backup_timestamp of this IosDetailsV2.
  
  
          :param last_cloud_backup_timestamp: The last_cloud_backup_timestamp of this IosDetailsV2.  # noqa: E501
          :type last_cloud_backup_timestamp: datetime
          """
  
          self._last_cloud_backup_timestamp = last_cloud_backup_timestamp
  
      @property
      def location_services_enabled(self):
          """Gets the location_services_enabled of this IosDetailsV2.  # noqa: E501
  
  
          :return: The location_services_enabled of this IosDetailsV2.  # noqa: E501
          :rtype: bool
          """
          return self._location_services_enabled
  
      @location_services_enabled.setter
      def location_services_enabled(self, location_services_enabled):
          """Sets the location_services_enabled of this IosDetailsV2.
  
  
          :param location_services_enabled: The location_services_enabled of this IosDetailsV2.  # noqa: E501
          :type location_services_enabled: bool
          """
  
          self._location_services_enabled = location_services_enabled
  
      @property
      def i_tunes_store_account_active(self):
          """Gets the i_tunes_store_account_active of this IosDetailsV2.  # noqa: E501
  
  
          :return: The i_tunes_store_account_active of this IosDetailsV2.  # noqa: E501
          :rtype: bool
          """
          return self._i_tunes_store_account_active
  
      @i_tunes_store_account_active.setter
      def i_tunes_store_account_active(self, i_tunes_store_account_active):
          """Sets the i_tunes_store_account_active of this IosDetailsV2.
  
  
          :param i_tunes_store_account_active: The i_tunes_store_account_active of this IosDetailsV2.  # noqa: E501
          :type i_tunes_store_account_active: bool
          """
  
          self._i_tunes_store_account_active = i_tunes_store_account_active
  
      @property
      def ble_capable(self):
          """Gets the ble_capable of this IosDetailsV2.  # noqa: E501
  
  
          :return: The ble_capable of this IosDetailsV2.  # noqa: E501
          :rtype: bool
          """
          return self._ble_capable
  
      @ble_capable.setter
      def ble_capable(self, ble_capable):
          """Sets the ble_capable of this IosDetailsV2.
  
  
          :param ble_capable: The ble_capable of this IosDetailsV2.  # noqa: E501
          :type ble_capable: bool
          """
  
          self._ble_capable = ble_capable
  
      @property
      def computer(self):
          """Gets the computer of this IosDetailsV2.  # noqa: E501
  
  
          :return: The computer of this IosDetailsV2.  # noqa: E501
          :rtype: IosDetailsV2Computer
          """
          return self._computer
  
      @computer.setter
      def computer(self, computer):
          """Sets the computer of this IosDetailsV2.
  
  
          :param computer: The computer of this IosDetailsV2.  # noqa: E501
          :type computer: IosDetailsV2Computer
          """
  
          self._computer = computer
  
      @property
      def purchasing(self):
          """Gets the purchasing of this IosDetailsV2.  # noqa: E501
  
  
          :return: The purchasing of this IosDetailsV2.  # noqa: E501
          :rtype: PurchasingV2
          """
          return self._purchasing
  
      @purchasing.setter
      def purchasing(self, purchasing):
          """Sets the purchasing of this IosDetailsV2.
  
  
          :param purchasing: The purchasing of this IosDetailsV2.  # noqa: E501
          :type purchasing: PurchasingV2
          """
  
          self._purchasing = purchasing
  
      @property
      def security(self):
          """Gets the security of this IosDetailsV2.  # noqa: E501
  
  
          :return: The security of this IosDetailsV2.  # noqa: E501
          :rtype: SecurityV2
          """
          return self._security
  
      @security.setter
      def security(self, security):
          """Sets the security of this IosDetailsV2.
  
  
          :param security: The security of this IosDetailsV2.  # noqa: E501
          :type security: SecurityV2
          """
  
          self._security = security
  
      @property
      def network(self):
          """Gets the network of this IosDetailsV2.  # noqa: E501
  
  
          :return: The network of this IosDetailsV2.  # noqa: E501
          :rtype: NetworkV2
          """
          return self._network
  
      @network.setter
      def network(self, network):
          """Sets the network of this IosDetailsV2.
  
  
          :param network: The network of this IosDetailsV2.  # noqa: E501
          :type network: NetworkV2
          """
  
          self._network = network
  
      @property
      def applications(self):
          """Gets the applications of this IosDetailsV2.  # noqa: E501
  
  
          :return: The applications of this IosDetailsV2.  # noqa: E501
          :rtype: list[IosDetailsApplications]
          """
          return self._applications
  
      @applications.setter
      def applications(self, applications):
          """Sets the applications of this IosDetailsV2.
  
  
          :param applications: The applications of this IosDetailsV2.  # noqa: E501
          :type applications: list[IosDetailsApplications]
          """
  
          self._applications = applications
  
      @property
      def certificates(self):
          """Gets the certificates of this IosDetailsV2.  # noqa: E501
  
  
          :return: The certificates of this IosDetailsV2.  # noqa: E501
          :rtype: list[IosDetailsV2Certificates]
          """
          return self._certificates
  
      @certificates.setter
      def certificates(self, certificates):
          """Sets the certificates of this IosDetailsV2.
  
  
          :param certificates: The certificates of this IosDetailsV2.  # noqa: E501
          :type certificates: list[IosDetailsV2Certificates]
          """
  
          self._certificates = certificates
  
      @property
      def ebooks(self):
          """Gets the ebooks of this IosDetailsV2.  # noqa: E501
  
  
          :return: The ebooks of this IosDetailsV2.  # noqa: E501
          :rtype: list[IosDetailsEbooks]
          """
          return self._ebooks
  
      @ebooks.setter
      def ebooks(self, ebooks):
          """Sets the ebooks of this IosDetailsV2.
  
  
          :param ebooks: The ebooks of this IosDetailsV2.  # noqa: E501
          :type ebooks: list[IosDetailsEbooks]
          """
  
          self._ebooks = ebooks
  
      @property
      def configuration_profiles(self):
          """Gets the configuration_profiles of this IosDetailsV2.  # noqa: E501
  
  
          :return: The configuration_profiles of this IosDetailsV2.  # noqa: E501
          :rtype: list[ConfigurationProfile]
          """
          return self._configuration_profiles
  
      @configuration_profiles.setter
      def configuration_profiles(self, configuration_profiles):
          """Sets the configuration_profiles of this IosDetailsV2.
  
  
          :param configuration_profiles: The configuration_profiles of this IosDetailsV2.  # noqa: E501
          :type configuration_profiles: list[ConfigurationProfile]
          """
  
          self._configuration_profiles = configuration_profiles
  
      @property
      def provisioning_profiles(self):
          """Gets the provisioning_profiles of this IosDetailsV2.  # noqa: E501
  
  
          :return: The provisioning_profiles of this IosDetailsV2.  # noqa: E501
          :rtype: list[ProvisioningProfile]
          """
          return self._provisioning_profiles
  
      @provisioning_profiles.setter
      def provisioning_profiles(self, provisioning_profiles):
          """Sets the provisioning_profiles of this IosDetailsV2.
  
  
          :param provisioning_profiles: The provisioning_profiles of this IosDetailsV2.  # noqa: E501
          :type provisioning_profiles: list[ProvisioningProfile]
          """
  
          self._provisioning_profiles = provisioning_profiles
  
      @property
      def attachments(self):
          """Gets the attachments of this IosDetailsV2.  # noqa: E501
  
  
          :return: The attachments of this IosDetailsV2.  # noqa: E501
          :rtype: list[IosDetailsV2Attachments]
          """
          return self._attachments
  
      @attachments.setter
      def attachments(self, attachments):
          """Sets the attachments of this IosDetailsV2.
  
  
          :param attachments: The attachments of this IosDetailsV2.  # noqa: E501
          :type attachments: list[IosDetailsV2Attachments]
          """
  
          self._attachments = attachments
  
      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, IosDetailsV2):
              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, IosDetailsV2):
              return True
  
          return self.to_dict() != other.to_dict()
  