code: def share(self, value, perm_type, role, notify=True, email_message=None, with_link=False):
          
          self.client.insert_permission(
              self.id,
              value=value,
              perm_type=perm_type,
              role=role,
              notify=notify,
              email_message=email_message,
              with_link=with_link
          )
docs: Share the spreadsheet with other accounts.
  
          :param value: user or group e-mail address, domain name
                        or None for 'default' type.
          :type value: str, None
          :param perm_type: The account type.
                 Allowed values are: ``user``, ``group``, ``domain``,
                 ``anyone``.
          :type perm_type: str
          :param role: The primary role for this user.
                 Allowed values are: ``owner``, ``writer``, ``reader``.
          :type role: str
          :param notify: (optional) Whether to send an email to the target user/domain.
          :type notify: str
          :param email_message: (optional) The email to be sent if notify=True
          :type email_message: str
  
          :param with_link: (optional) Whether the link is required for this permission
          :type with_link: bool
  
          Example::
  
              # Give Otto a write permission on this spreadsheet
              sh.share('otto@example.com', perm_type='user', role='writer')
  
              # Transfer ownership to Otto
              sh.share('otto@example.com', perm_type='user', role='owner')