# Drive API . permissions

## Instance Methods

Creates a permission for a file.

Deletes a permission.

Gets a permission by ID.

Lists a file's permissions.

Updates a permission with patch semantics.

### Method Details

`create(fileId, body, sendNotificationEmail=None, transferOwnership=None, emailMessage=None)`

    Creates a permission for a file.

    Args:
      fileId: string, The ID of the file. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
      "domain": "A String", # The domain to which this permission refers.
      "displayName": "A String", # A displayable name for users, groups or domains.
      "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
      "kind": "drive#permission", # This is always drive#permission.
      "emailAddress": "A String", # The email address of the user or group to which this permission refers.
      "photoLink": "A String", # A link to the user's profile photo, if available.
      "role": "A String", # The role granted by this permission. Valid values are:
          # - owner
          # - writer
          # - commenter
          # - reader
      "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
      "type": "A String", # The type of the grantee. Valid values are:
          # - user
          # - group
          # - domain
          # - anyone
      "id": "A String", # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId.
    }

      sendNotificationEmail: boolean, Whether to send a notification email when sharing to users or groups. This defaults to true for users and groups, and is not allowed for other requests. It must not be disabled for ownership transfers.
      transferOwnership: boolean, Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side effect.
      emailMessage: string, A custom message to include in the notification email.

    Returns:
      An object of the form:

        { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
        "domain": "A String", # The domain to which this permission refers.
        "displayName": "A String", # A displayable name for users, groups or domains.
        "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
        "kind": "drive#permission", # This is always drive#permission.
        "emailAddress": "A String", # The email address of the user or group to which this permission refers.
        "photoLink": "A String", # A link to the user's profile photo, if available.
        "role": "A String", # The role granted by this permission. Valid values are:
            # - owner
            # - writer
            # - commenter
            # - reader
        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
        "type": "A String", # The type of the grantee. Valid values are:
            # - user
            # - group
            # - domain
            # - anyone
        "id": "A String", # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId.
      }

`delete(fileId, permissionId)`

    Deletes a permission.

    Args:
      fileId: string, The ID of the file. (required)
      permissionId: string, The ID of the permission. (required)

`get(fileId, permissionId)`

    Gets a permission by ID.

    Args:
      fileId: string, The ID of the file. (required)
      permissionId: string, The ID of the permission. (required)

    Returns:
      An object of the form:

        { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
        "domain": "A String", # The domain to which this permission refers.
        "displayName": "A String", # A displayable name for users, groups or domains.
        "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
        "kind": "drive#permission", # This is always drive#permission.
        "emailAddress": "A String", # The email address of the user or group to which this permission refers.
        "photoLink": "A String", # A link to the user's profile photo, if available.
        "role": "A String", # The role granted by this permission. Valid values are:
            # - owner
            # - writer
            # - commenter
            # - reader
        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
        "type": "A String", # The type of the grantee. Valid values are:
            # - user
            # - group
            # - domain
            # - anyone
        "id": "A String", # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId.
      }

`list(fileId)`

    Lists a file's permissions.

    Args:
      fileId: string, The ID of the file. (required)

    Returns:
      An object of the form:

        { # A list of permissions for a file.
        "kind": "drive#permissionList", # This is always drive#permissionList.
        "permissions": [ # The full list of permissions.
          { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
            "domain": "A String", # The domain to which this permission refers.
            "displayName": "A String", # A displayable name for users, groups or domains.
            "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
            "kind": "drive#permission", # This is always drive#permission.
            "emailAddress": "A String", # The email address of the user or group to which this permission refers.
            "photoLink": "A String", # A link to the user's profile photo, if available.
            "role": "A String", # The role granted by this permission. Valid values are:
                # - owner
                # - writer
                # - commenter
                # - reader
            "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
            "type": "A String", # The type of the grantee. Valid values are:
                # - user
                # - group
                # - domain
                # - anyone
            "id": "A String", # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId.
          },
        ],
      }

`update(fileId, permissionId, body, removeExpiration=None, transferOwnership=None)`

    Updates a permission with patch semantics.

    Args:
      fileId: string, The ID of the file. (required)
      permissionId: string, The ID of the permission. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
      "domain": "A String", # The domain to which this permission refers.
      "displayName": "A String", # A displayable name for users, groups or domains.
      "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
      "kind": "drive#permission", # This is always drive#permission.
      "emailAddress": "A String", # The email address of the user or group to which this permission refers.
      "photoLink": "A String", # A link to the user's profile photo, if available.
      "role": "A String", # The role granted by this permission. Valid values are:
          # - owner
          # - writer
          # - commenter
          # - reader
      "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
      "type": "A String", # The type of the grantee. Valid values are:
          # - user
          # - group
          # - domain
          # - anyone
      "id": "A String", # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId.
    }

      removeExpiration: boolean, Whether to remove the expiration date.
      transferOwnership: boolean, Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side effect.

    Returns:
      An object of the form:

        { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
        "domain": "A String", # The domain to which this permission refers.
        "displayName": "A String", # A displayable name for users, groups or domains.
        "allowFileDiscovery": True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
        "kind": "drive#permission", # This is always drive#permission.
        "emailAddress": "A String", # The email address of the user or group to which this permission refers.
        "photoLink": "A String", # A link to the user's profile photo, if available.
        "role": "A String", # The role granted by this permission. Valid values are:
            # - owner
            # - writer
            # - commenter
            # - reader
        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
        "type": "A String", # The type of the grantee. Valid values are:
            # - user
            # - group
            # - domain
            # - anyone
        "id": "A String", # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId.
      }