text: """
  *****
  Teams
  *****
  """
  
  
  from synapseclient.core.models.dict_object import DictObject
  
  
  class UserProfile(DictObject):
      """
      Information about a Synapse user.  In practice the constructor is not called directly by the client.
  
      :param ownerId: A foreign key to the ID of the 'principal' object for the user.
      :param uri: The Uniform Resource Identifier (URI) for this entity.
      :param etag: Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates.
       Since the E-Tag changes every time an entity is updated it is used to detect when a client's current representation
       of an entity is out-of-date.
      :param firstName: This person's given name (forename)
      :param lastName: This person's family name (surname)
      :param emails: The list of user email addresses registered to this user.
      :param userName: A name chosen by the user that uniquely identifies them.
      :param summary: A summary description about this person
      :param position: This person's current position title
      :param location: This person's location
      :param industry: "The industry/discipline that this person is associated with
      :param company: This person's current affiliation
      :param profilePicureFileHandleId: The File Handle ID of the user's profile picture.
      :param url: A link to more information about this person
      :param notificationSettings: An object of type :py:class:`org.sagebionetworks.repo.model.message.Settings`
       containing the user's preferences regarding when email notifications should be sent
      """
      def __init__(self, **kwargs):
          super(UserProfile, self).__init__(kwargs)
  
  
  class UserGroupHeader(DictObject):
      """
      Select metadata about a Synapse principal.  In practice the constructor is not called directly by the client.
  
      :param ownerId: A foreign key to the ID of the 'principal' object for the user.
      :param firstName: First Name
      :param lastName: Last Name
      :param userName: A name chosen by the user that uniquely identifies them.
      :param email:   User's current email address
      :param isIndividual: True if this is a user, false if it is a group
      """
      def __init__(self, **kwargs):
          super(UserGroupHeader, self).__init__(kwargs)
  
  
  class Team(DictObject):
      """
      Represents a `Synapse Team <http://docs.synapse.org/rest/org/sagebionetworks/repo/model/Team.html>`_.
      User definable fields are:
  
      :param icon:          fileHandleId for icon image of the Team
      :param description:   A short description of this Team.
      :param name:          The name of the Team.
      :param canPublicJoin: true for teams which members can join without an invitation or approval
      """
      def __init__(self, **kwargs):
          super(Team, self).__init__(kwargs)
  
      @classmethod
      def getURI(cls, id):
          return '/team/%s' % id
  
      def postURI(self):
          return '/team'
  
      def putURI(self):
          return '/team'
  
      def deleteURI(self):
          return '/team/%s' % self.id
  
      def getACLURI(self):
          return '/team/%s/acl' % self.id
  
      def putACLURI(self):
          return '/team/acl'
  
  
  class TeamMember(DictObject):
      """
      Contains information about a user's membership in a Team.  In practice the constructor is not called directly by
       the client.
  
      :param teamId:  the ID of the team
      :param member:  An object of type :py:class:`org.sagebionetworks.repo.model.UserGroupHeader` describing the member
      :param isAdmin: Whether the given member is an administrator of the team
  
     """
      def __init__(self, **kwargs):
          if 'member' in kwargs:
              kwargs['member'] = UserGroupHeader(**kwargs['member'])
          super(TeamMember, self).__init__(kwargs)
  