text: # coding: utf-8
  
  """
      Cisco Intersight OpenAPI specification.
  
      The Cisco Intersight OpenAPI specification.
  
      OpenAPI spec version: 1.0.9-1461
      
      Generated by: https://github.com/swagger-api/swagger-codegen.git
  """
  
  
  from pprint import pformat
  from six import iteritems
  import re
  
  
  class NiaapiApicCcoPost(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 = {
          'account_moid': 'str',
          'create_time': 'datetime',
          'domain_group_moid': 'str',
          'mod_time': 'datetime',
          'moid': 'str',
          'object_type': 'str',
          'owners': 'list[str]',
          'shared_scope': 'str',
          'tags': 'list[MoTag]',
          'version_context': 'MoVersionContext',
          'ancestors': 'list[MoBaseMoRef]',
          'parent': 'MoBaseMoRef',
          'permission_resources': 'list[MoBaseMoRef]',
          'post_date': 'datetime',
          'post_detail': 'NiaapiNewReleaseDetail',
          'post_type': 'str',
          'postid': 'str',
          'revision': 'str'
      }
  
      attribute_map = {
          'account_moid': 'AccountMoid',
          'create_time': 'CreateTime',
          'domain_group_moid': 'DomainGroupMoid',
          'mod_time': 'ModTime',
          'moid': 'Moid',
          'object_type': 'ObjectType',
          'owners': 'Owners',
          'shared_scope': 'SharedScope',
          'tags': 'Tags',
          'version_context': 'VersionContext',
          'ancestors': 'Ancestors',
          'parent': 'Parent',
          'permission_resources': 'PermissionResources',
          'post_date': 'PostDate',
          'post_detail': 'PostDetail',
          'post_type': 'PostType',
          'postid': 'Postid',
          'revision': 'Revision'
      }
  
      def __init__(self, account_moid=None, create_time=None, domain_group_moid=None, mod_time=None, moid=None, object_type=None, owners=None, shared_scope=None, tags=None, version_context=None, ancestors=None, parent=None, permission_resources=None, post_date=None, post_detail=None, post_type=None, postid=None, revision=None):
          """
          NiaapiApicCcoPost - a model defined in Swagger
          """
  
          self._account_moid = None
          self._create_time = None
          self._domain_group_moid = None
          self._mod_time = None
          self._moid = None
          self._object_type = None
          self._owners = None
          self._shared_scope = None
          self._tags = None
          self._version_context = None
          self._ancestors = None
          self._parent = None
          self._permission_resources = None
          self._post_date = None
          self._post_detail = None
          self._post_type = None
          self._postid = None
          self._revision = None
  
          if account_moid is not None:
            self.account_moid = account_moid
          if create_time is not None:
            self.create_time = create_time
          if domain_group_moid is not None:
            self.domain_group_moid = domain_group_moid
          if mod_time is not None:
            self.mod_time = mod_time
          if moid is not None:
            self.moid = moid
          if object_type is not None:
            self.object_type = object_type
          if owners is not None:
            self.owners = owners
          if shared_scope is not None:
            self.shared_scope = shared_scope
          if tags is not None:
            self.tags = tags
          if version_context is not None:
            self.version_context = version_context
          if ancestors is not None:
            self.ancestors = ancestors
          if parent is not None:
            self.parent = parent
          if permission_resources is not None:
            self.permission_resources = permission_resources
          if post_date is not None:
            self.post_date = post_date
          if post_detail is not None:
            self.post_detail = post_detail
          if post_type is not None:
            self.post_type = post_type
          if postid is not None:
            self.postid = postid
          if revision is not None:
            self.revision = revision
  
      @property
      def account_moid(self):
          """
          Gets the account_moid of this NiaapiApicCcoPost.
          The Account ID for this managed object.
  
          :return: The account_moid of this NiaapiApicCcoPost.
          :rtype: str
          """
          return self._account_moid
  
      @account_moid.setter
      def account_moid(self, account_moid):
          """
          Sets the account_moid of this NiaapiApicCcoPost.
          The Account ID for this managed object.
  
          :param account_moid: The account_moid of this NiaapiApicCcoPost.
          :type: str
          """
  
          self._account_moid = account_moid
  
      @property
      def create_time(self):
          """
          Gets the create_time of this NiaapiApicCcoPost.
          The time when this managed object was created.
  
          :return: The create_time of this NiaapiApicCcoPost.
          :rtype: datetime
          """
          return self._create_time
  
      @create_time.setter
      def create_time(self, create_time):
          """
          Sets the create_time of this NiaapiApicCcoPost.
          The time when this managed object was created.
  
          :param create_time: The create_time of this NiaapiApicCcoPost.
          :type: datetime
          """
  
          self._create_time = create_time
  
      @property
      def domain_group_moid(self):
          """
          Gets the domain_group_moid of this NiaapiApicCcoPost.
          The DomainGroup ID for this managed object.
  
          :return: The domain_group_moid of this NiaapiApicCcoPost.
          :rtype: str
          """
          return self._domain_group_moid
  
      @domain_group_moid.setter
      def domain_group_moid(self, domain_group_moid):
          """
          Sets the domain_group_moid of this NiaapiApicCcoPost.
          The DomainGroup ID for this managed object.
  
          :param domain_group_moid: The domain_group_moid of this NiaapiApicCcoPost.
          :type: str
          """
  
          self._domain_group_moid = domain_group_moid
  
      @property
      def mod_time(self):
          """
          Gets the mod_time of this NiaapiApicCcoPost.
          The time when this managed object was last modified.
  
          :return: The mod_time of this NiaapiApicCcoPost.
          :rtype: datetime
          """
          return self._mod_time
  
      @mod_time.setter
      def mod_time(self, mod_time):
          """
          Sets the mod_time of this NiaapiApicCcoPost.
          The time when this managed object was last modified.
  
          :param mod_time: The mod_time of this NiaapiApicCcoPost.
          :type: datetime
          """
  
          self._mod_time = mod_time
  
      @property
      def moid(self):
          """
          Gets the moid of this NiaapiApicCcoPost.
          The unique identifier of this Managed Object instance.
  
          :return: The moid of this NiaapiApicCcoPost.
          :rtype: str
          """
          return self._moid
  
      @moid.setter
      def moid(self, moid):
          """
          Sets the moid of this NiaapiApicCcoPost.
          The unique identifier of this Managed Object instance.
  
          :param moid: The moid of this NiaapiApicCcoPost.
          :type: str
          """
  
          self._moid = moid
  
      @property
      def object_type(self):
          """
          Gets the object_type of this NiaapiApicCcoPost.
          The fully-qualified type of this managed object, i.e. the class name. This property is optional. The ObjectType is implied from the URL path. If specified, the value of objectType must match the class name specified in the URL path.
  
          :return: The object_type of this NiaapiApicCcoPost.
          :rtype: str
          """
          return self._object_type
  
      @object_type.setter
      def object_type(self, object_type):
          """
          Sets the object_type of this NiaapiApicCcoPost.
          The fully-qualified type of this managed object, i.e. the class name. This property is optional. The ObjectType is implied from the URL path. If specified, the value of objectType must match the class name specified in the URL path.
  
          :param object_type: The object_type of this NiaapiApicCcoPost.
          :type: str
          """
  
          self._object_type = object_type
  
      @property
      def owners(self):
          """
          Gets the owners of this NiaapiApicCcoPost.
          The array of owners which represent effective ownership of this object.
  
          :return: The owners of this NiaapiApicCcoPost.
          :rtype: list[str]
          """
          return self._owners
  
      @owners.setter
      def owners(self, owners):
          """
          Sets the owners of this NiaapiApicCcoPost.
          The array of owners which represent effective ownership of this object.
  
          :param owners: The owners of this NiaapiApicCcoPost.
          :type: list[str]
          """
  
          self._owners = owners
  
      @property
      def shared_scope(self):
          """
          Gets the shared_scope of this NiaapiApicCcoPost.
          Intersight provides pre-built workflows, tasks and policies to end users through global catalogs. Objects that are made available through global catalogs are said to have a 'shared' ownership. Shared objects are either made globally available to all end users or restricted to end users based on their license entitlement. Users can use this property to differentiate the scope (global or a specific license tier) to which a shared MO belongs.
  
          :return: The shared_scope of this NiaapiApicCcoPost.
          :rtype: str
          """
          return self._shared_scope
  
      @shared_scope.setter
      def shared_scope(self, shared_scope):
          """
          Sets the shared_scope of this NiaapiApicCcoPost.
          Intersight provides pre-built workflows, tasks and policies to end users through global catalogs. Objects that are made available through global catalogs are said to have a 'shared' ownership. Shared objects are either made globally available to all end users or restricted to end users based on their license entitlement. Users can use this property to differentiate the scope (global or a specific license tier) to which a shared MO belongs.
  
          :param shared_scope: The shared_scope of this NiaapiApicCcoPost.
          :type: str
          """
  
          self._shared_scope = shared_scope
  
      @property
      def tags(self):
          """
          Gets the tags of this NiaapiApicCcoPost.
          The array of tags, which allow to add key, value meta-data to managed objects.
  
          :return: The tags of this NiaapiApicCcoPost.
          :rtype: list[MoTag]
          """
          return self._tags
  
      @tags.setter
      def tags(self, tags):
          """
          Sets the tags of this NiaapiApicCcoPost.
          The array of tags, which allow to add key, value meta-data to managed objects.
  
          :param tags: The tags of this NiaapiApicCcoPost.
          :type: list[MoTag]
          """
  
          self._tags = tags
  
      @property
      def version_context(self):
          """
          Gets the version_context of this NiaapiApicCcoPost.
          The versioning info for this managed object.
  
          :return: The version_context of this NiaapiApicCcoPost.
          :rtype: MoVersionContext
          """
          return self._version_context
  
      @version_context.setter
      def version_context(self, version_context):
          """
          Sets the version_context of this NiaapiApicCcoPost.
          The versioning info for this managed object.
  
          :param version_context: The version_context of this NiaapiApicCcoPost.
          :type: MoVersionContext
          """
  
          self._version_context = version_context
  
      @property
      def ancestors(self):
          """
          Gets the ancestors of this NiaapiApicCcoPost.
          The array containing the MO references of the ancestors in the object containment hierarchy.
  
          :return: The ancestors of this NiaapiApicCcoPost.
          :rtype: list[MoBaseMoRef]
          """
          return self._ancestors
  
      @ancestors.setter
      def ancestors(self, ancestors):
          """
          Sets the ancestors of this NiaapiApicCcoPost.
          The array containing the MO references of the ancestors in the object containment hierarchy.
  
          :param ancestors: The ancestors of this NiaapiApicCcoPost.
          :type: list[MoBaseMoRef]
          """
  
          self._ancestors = ancestors
  
      @property
      def parent(self):
          """
          Gets the parent of this NiaapiApicCcoPost.
          The direct ancestor of this managed object in the containment hierarchy.
  
          :return: The parent of this NiaapiApicCcoPost.
          :rtype: MoBaseMoRef
          """
          return self._parent
  
      @parent.setter
      def parent(self, parent):
          """
          Sets the parent of this NiaapiApicCcoPost.
          The direct ancestor of this managed object in the containment hierarchy.
  
          :param parent: The parent of this NiaapiApicCcoPost.
          :type: MoBaseMoRef
          """
  
          self._parent = parent
  
      @property
      def permission_resources(self):
          """
          Gets the permission_resources of this NiaapiApicCcoPost.
          A slice of all permission resources (organizations) associated with this object. Permission ties resources and its associated roles/privileges. These resources which can be specified in a permission is PermissionResource. Currently only organizations can be specified in permission. All logical and physical resources part of an organization will have organization in PermissionResources field. If DeviceRegistration contains another DeviceRegistration and if parent is in org1 and child is part of org2, then child objects will have PermissionResources as org1 and org2. Parent Objects will have PermissionResources as org1. All profiles/policies created with in an organization will have the organization as PermissionResources.
  
          :return: The permission_resources of this NiaapiApicCcoPost.
          :rtype: list[MoBaseMoRef]
          """
          return self._permission_resources
  
      @permission_resources.setter
      def permission_resources(self, permission_resources):
          """
          Sets the permission_resources of this NiaapiApicCcoPost.
          A slice of all permission resources (organizations) associated with this object. Permission ties resources and its associated roles/privileges. These resources which can be specified in a permission is PermissionResource. Currently only organizations can be specified in permission. All logical and physical resources part of an organization will have organization in PermissionResources field. If DeviceRegistration contains another DeviceRegistration and if parent is in org1 and child is part of org2, then child objects will have PermissionResources as org1 and org2. Parent Objects will have PermissionResources as org1. All profiles/policies created with in an organization will have the organization as PermissionResources.
  
          :param permission_resources: The permission_resources of this NiaapiApicCcoPost.
          :type: list[MoBaseMoRef]
          """
  
          self._permission_resources = permission_resources
  
      @property
      def post_date(self):
          """
          Gets the post_date of this NiaapiApicCcoPost.
          The date when this new release notice is posted.
  
          :return: The post_date of this NiaapiApicCcoPost.
          :rtype: datetime
          """
          return self._post_date
  
      @post_date.setter
      def post_date(self, post_date):
          """
          Sets the post_date of this NiaapiApicCcoPost.
          The date when this new release notice is posted.
  
          :param post_date: The post_date of this NiaapiApicCcoPost.
          :type: datetime
          """
  
          self._post_date = post_date
  
      @property
      def post_detail(self):
          """
          Gets the post_detail of this NiaapiApicCcoPost.
          Detail of this post including the content and the date it was posted.
  
          :return: The post_detail of this NiaapiApicCcoPost.
          :rtype: NiaapiNewReleaseDetail
          """
          return self._post_detail
  
      @post_detail.setter
      def post_detail(self, post_detail):
          """
          Sets the post_detail of this NiaapiApicCcoPost.
          Detail of this post including the content and the date it was posted.
  
          :param post_detail: The post_detail of this NiaapiApicCcoPost.
          :type: NiaapiNewReleaseDetail
          """
  
          self._post_detail = post_detail
  
      @property
      def post_type(self):
          """
          Gets the post_type of this NiaapiApicCcoPost.
          The document type of this post.
  
          :return: The post_type of this NiaapiApicCcoPost.
          :rtype: str
          """
          return self._post_type
  
      @post_type.setter
      def post_type(self, post_type):
          """
          Sets the post_type of this NiaapiApicCcoPost.
          The document type of this post.
  
          :param post_type: The post_type of this NiaapiApicCcoPost.
          :type: str
          """
  
          self._post_type = post_type
  
      @property
      def postid(self):
          """
          Gets the postid of this NiaapiApicCcoPost.
          Identificator of this inbox post.
  
          :return: The postid of this NiaapiApicCcoPost.
          :rtype: str
          """
          return self._postid
  
      @postid.setter
      def postid(self, postid):
          """
          Sets the postid of this NiaapiApicCcoPost.
          Identificator of this inbox post.
  
          :param postid: The postid of this NiaapiApicCcoPost.
          :type: str
          """
  
          self._postid = postid
  
      @property
      def revision(self):
          """
          Gets the revision of this NiaapiApicCcoPost.
          Revision number of this notice.
  
          :return: The revision of this NiaapiApicCcoPost.
          :rtype: str
          """
          return self._revision
  
      @revision.setter
      def revision(self, revision):
          """
          Sets the revision of this NiaapiApicCcoPost.
          Revision number of this notice.
  
          :param revision: The revision of this NiaapiApicCcoPost.
          :type: str
          """
  
          self._revision = revision
  
      def to_dict(self):
          """
          Returns the model properties as a dict
          """
          result = {}
  
          for attr, _ in 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 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, NiaapiApicCcoPost):
              return False
  
          return self.__dict__ == other.__dict__
  
      def __ne__(self, other):
          """
          Returns true if both objects are not equal
          """
          return not self == other
  