# Google Play EMM API . entitlements

## Instance Methods

Removes an entitlement to an app for a user and uninstalls it.

Retrieves details of an entitlement.

List of all entitlements for the specified user. Only the ID is set.

Adds or updates an entitlement to an app for a user. This method supports patch semantics.

Adds or updates an entitlement to an app for a user.

### Method Details

`delete(enterpriseId, userId, entitlementId)`

    Removes an entitlement to an app for a user and uninstalls it.

    Args:
      enterpriseId: string, The ID of the enterprise. (required)
      userId: string, The ID of the user. (required)
      entitlementId: string, The ID of the entitlement, e.g. "app:com.google.android.gm". (required)

`get(enterpriseId, userId, entitlementId)`

    Retrieves details of an entitlement.

    Args:
      enterpriseId: string, The ID of the enterprise. (required)
      userId: string, The ID of the user. (required)
      entitlementId: string, The ID of the entitlement, e.g. "app:com.google.android.gm". (required)

    Returns:
      An object of the form:

        { # The existence of an entitlement resource means that a user has the right to use a particular app on any of their devices. This might be because the app is free or because they have been allocated a license to the app from a group license purchased by the enterprise.
            #
            # It should always be true that a user has an app installed on one of their devices only if they have an entitlement to it. So if an entitlement is deleted, the app will be uninstalled from all devices. Similarly if the user installs an app (and is permitted to do so), or the MDM triggers an install of the app, an entitlement to that app is automatically created. If this is impossible - e.g. the enterprise has not purchased sufficient licenses - then installation fails.
            #
            # Note that entitlements are always user specific, not device specific; a user may have an entitlement even though they have not installed the app anywhere. Once they have an entitlement they can install the app on multiple devices.
            #
            # The API can be used to create an entitlement. If the app is a free app, a group license for that app is created. If it's a paid app, creating the entitlement consumes one license; it remains consumed until the entitlement is removed. Optionally an installation of the app on all the user's managed devices can be triggered at the time the entitlement is created. An entitlement cannot be created for an app if the app requires permissions that the enterprise has not yet accepted.
            #
            # Entitlements for paid apps that are due to purchases by the user on a non-managed profile will have "userPurchase" as entitlement reason; those entitlements cannot be removed via the API.
          "kind": "androidenterprise#entitlement", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlement".
          "reason": "A String", # The reason for the entitlement, e.g. "free" for free apps. This is temporary, it will be replaced by the acquisition kind field of group licenses.
          "productId": "A String", # The ID of the product that the entitlement is for, e.g. "app:com.google.android.gm".
        }

`list(enterpriseId, userId)`

    List of all entitlements for the specified user. Only the ID is set.

    Args:
      enterpriseId: string, The ID of the enterprise. (required)
      userId: string, The ID of the user. (required)

    Returns:
      An object of the form:

        { # The entitlement resources for the user.
        "kind": "androidenterprise#entitlementsListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlementsListResponse".
        "entitlement": [ # An entitlement of a user to a product (e.g. an app). For example, a free app that they have installed, or a paid app that they have been allocated a license to.
          { # The existence of an entitlement resource means that a user has the right to use a particular app on any of their devices. This might be because the app is free or because they have been allocated a license to the app from a group license purchased by the enterprise.
                #
                # It should always be true that a user has an app installed on one of their devices only if they have an entitlement to it. So if an entitlement is deleted, the app will be uninstalled from all devices. Similarly if the user installs an app (and is permitted to do so), or the MDM triggers an install of the app, an entitlement to that app is automatically created. If this is impossible - e.g. the enterprise has not purchased sufficient licenses - then installation fails.
                #
                # Note that entitlements are always user specific, not device specific; a user may have an entitlement even though they have not installed the app anywhere. Once they have an entitlement they can install the app on multiple devices.
                #
                # The API can be used to create an entitlement. If the app is a free app, a group license for that app is created. If it's a paid app, creating the entitlement consumes one license; it remains consumed until the entitlement is removed. Optionally an installation of the app on all the user's managed devices can be triggered at the time the entitlement is created. An entitlement cannot be created for an app if the app requires permissions that the enterprise has not yet accepted.
                #
                # Entitlements for paid apps that are due to purchases by the user on a non-managed profile will have "userPurchase" as entitlement reason; those entitlements cannot be removed via the API.
              "kind": "androidenterprise#entitlement", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlement".
              "reason": "A String", # The reason for the entitlement, e.g. "free" for free apps. This is temporary, it will be replaced by the acquisition kind field of group licenses.
              "productId": "A String", # The ID of the product that the entitlement is for, e.g. "app:com.google.android.gm".
            },
        ],
      }

`patch(enterpriseId, userId, entitlementId, body, install=None)`

    Adds or updates an entitlement to an app for a user. This method supports patch semantics.

    Args:
      enterpriseId: string, The ID of the enterprise. (required)
      userId: string, The ID of the user. (required)
      entitlementId: string, The ID of the entitlement, e.g. "app:com.google.android.gm". (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # The existence of an entitlement resource means that a user has the right to use a particular app on any of their devices. This might be because the app is free or because they have been allocated a license to the app from a group license purchased by the enterprise.
          #
          # It should always be true that a user has an app installed on one of their devices only if they have an entitlement to it. So if an entitlement is deleted, the app will be uninstalled from all devices. Similarly if the user installs an app (and is permitted to do so), or the MDM triggers an install of the app, an entitlement to that app is automatically created. If this is impossible - e.g. the enterprise has not purchased sufficient licenses - then installation fails.
          #
          # Note that entitlements are always user specific, not device specific; a user may have an entitlement even though they have not installed the app anywhere. Once they have an entitlement they can install the app on multiple devices.
          #
          # The API can be used to create an entitlement. If the app is a free app, a group license for that app is created. If it's a paid app, creating the entitlement consumes one license; it remains consumed until the entitlement is removed. Optionally an installation of the app on all the user's managed devices can be triggered at the time the entitlement is created. An entitlement cannot be created for an app if the app requires permissions that the enterprise has not yet accepted.
          #
          # Entitlements for paid apps that are due to purchases by the user on a non-managed profile will have "userPurchase" as entitlement reason; those entitlements cannot be removed via the API.
        "kind": "androidenterprise#entitlement", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlement".
        "reason": "A String", # The reason for the entitlement, e.g. "free" for free apps. This is temporary, it will be replaced by the acquisition kind field of group licenses.
        "productId": "A String", # The ID of the product that the entitlement is for, e.g. "app:com.google.android.gm".
      }

      install: boolean, Set to true to also install the product on all the user's devices where possible. Failure to install on one or more devices will not prevent this operation from returning successfully, as long as the entitlement was successfully assigned to the user.

    Returns:
      An object of the form:

        { # The existence of an entitlement resource means that a user has the right to use a particular app on any of their devices. This might be because the app is free or because they have been allocated a license to the app from a group license purchased by the enterprise.
            #
            # It should always be true that a user has an app installed on one of their devices only if they have an entitlement to it. So if an entitlement is deleted, the app will be uninstalled from all devices. Similarly if the user installs an app (and is permitted to do so), or the MDM triggers an install of the app, an entitlement to that app is automatically created. If this is impossible - e.g. the enterprise has not purchased sufficient licenses - then installation fails.
            #
            # Note that entitlements are always user specific, not device specific; a user may have an entitlement even though they have not installed the app anywhere. Once they have an entitlement they can install the app on multiple devices.
            #
            # The API can be used to create an entitlement. If the app is a free app, a group license for that app is created. If it's a paid app, creating the entitlement consumes one license; it remains consumed until the entitlement is removed. Optionally an installation of the app on all the user's managed devices can be triggered at the time the entitlement is created. An entitlement cannot be created for an app if the app requires permissions that the enterprise has not yet accepted.
            #
            # Entitlements for paid apps that are due to purchases by the user on a non-managed profile will have "userPurchase" as entitlement reason; those entitlements cannot be removed via the API.
          "kind": "androidenterprise#entitlement", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlement".
          "reason": "A String", # The reason for the entitlement, e.g. "free" for free apps. This is temporary, it will be replaced by the acquisition kind field of group licenses.
          "productId": "A String", # The ID of the product that the entitlement is for, e.g. "app:com.google.android.gm".
        }

`update(enterpriseId, userId, entitlementId, body, install=None)`

    Adds or updates an entitlement to an app for a user.

    Args:
      enterpriseId: string, The ID of the enterprise. (required)
      userId: string, The ID of the user. (required)
      entitlementId: string, The ID of the entitlement, e.g. "app:com.google.android.gm". (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # The existence of an entitlement resource means that a user has the right to use a particular app on any of their devices. This might be because the app is free or because they have been allocated a license to the app from a group license purchased by the enterprise.
          #
          # It should always be true that a user has an app installed on one of their devices only if they have an entitlement to it. So if an entitlement is deleted, the app will be uninstalled from all devices. Similarly if the user installs an app (and is permitted to do so), or the MDM triggers an install of the app, an entitlement to that app is automatically created. If this is impossible - e.g. the enterprise has not purchased sufficient licenses - then installation fails.
          #
          # Note that entitlements are always user specific, not device specific; a user may have an entitlement even though they have not installed the app anywhere. Once they have an entitlement they can install the app on multiple devices.
          #
          # The API can be used to create an entitlement. If the app is a free app, a group license for that app is created. If it's a paid app, creating the entitlement consumes one license; it remains consumed until the entitlement is removed. Optionally an installation of the app on all the user's managed devices can be triggered at the time the entitlement is created. An entitlement cannot be created for an app if the app requires permissions that the enterprise has not yet accepted.
          #
          # Entitlements for paid apps that are due to purchases by the user on a non-managed profile will have "userPurchase" as entitlement reason; those entitlements cannot be removed via the API.
        "kind": "androidenterprise#entitlement", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlement".
        "reason": "A String", # The reason for the entitlement, e.g. "free" for free apps. This is temporary, it will be replaced by the acquisition kind field of group licenses.
        "productId": "A String", # The ID of the product that the entitlement is for, e.g. "app:com.google.android.gm".
      }

      install: boolean, Set to true to also install the product on all the user's devices where possible. Failure to install on one or more devices will not prevent this operation from returning successfully, as long as the entitlement was successfully assigned to the user.

    Returns:
      An object of the form:

        { # The existence of an entitlement resource means that a user has the right to use a particular app on any of their devices. This might be because the app is free or because they have been allocated a license to the app from a group license purchased by the enterprise.
            #
            # It should always be true that a user has an app installed on one of their devices only if they have an entitlement to it. So if an entitlement is deleted, the app will be uninstalled from all devices. Similarly if the user installs an app (and is permitted to do so), or the MDM triggers an install of the app, an entitlement to that app is automatically created. If this is impossible - e.g. the enterprise has not purchased sufficient licenses - then installation fails.
            #
            # Note that entitlements are always user specific, not device specific; a user may have an entitlement even though they have not installed the app anywhere. Once they have an entitlement they can install the app on multiple devices.
            #
            # The API can be used to create an entitlement. If the app is a free app, a group license for that app is created. If it's a paid app, creating the entitlement consumes one license; it remains consumed until the entitlement is removed. Optionally an installation of the app on all the user's managed devices can be triggered at the time the entitlement is created. An entitlement cannot be created for an app if the app requires permissions that the enterprise has not yet accepted.
            #
            # Entitlements for paid apps that are due to purchases by the user on a non-managed profile will have "userPurchase" as entitlement reason; those entitlements cannot be removed via the API.
          "kind": "androidenterprise#entitlement", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlement".
          "reason": "A String", # The reason for the entitlement, e.g. "free" for free apps. This is temporary, it will be replaced by the acquisition kind field of group licenses.
          "productId": "A String", # The ID of the product that the entitlement is for, e.g. "app:com.google.android.gm".
        }