# Google Play EMM API . entitlements

## Instance Methods

Removes an entitlement to an app for a user.

Retrieves details of an entitlement.

Lists 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.

    Args:
      enterpriseId: string, The ID of the enterprise. (required)
      userId: string, The ID of the user. (required)
      entitlementId: string, The ID of the entitlement (a product ID), 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 (a product ID), e.g. "app:com.google.android.gm". (required)

    Returns:
      An object of the form:

        { # The presence of an Entitlements resource indicates that a user has the right to use a particular app. Entitlements are user specific, not device specific. This allows a user with an entitlement to an app to install the app on all their devices. It's also possible for a user to hold an entitlement to an app without installing the app on any device.
            #
            # The API can be used to create an entitlement. As an option, you can also use the API to trigger the installation of an app on all a user's managed devices at the same time the entitlement is created.
            #
            # If the app is free, creating the entitlement also creates a group license for that app. For paid apps, creating the entitlement consumes one license, and that license remains consumed until the entitlement is removed. If the enterprise hasn't purchased enough licenses, then no entitlement is created and the installation fails. An entitlement is also not created for an app if the app requires permissions that the enterprise hasn't accepted.
            #
            # If an entitlement is deleted, the app may be uninstalled from a user's device. As a best practice, uninstall the app by calling  Installs.delete() before deleting the entitlement.
            #
            # Entitlements for apps that a user pays for on an unmanaged profile have "userPurchase" as the entitlement reason. These 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. For example, "free" for free apps. This property 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. For example, "app:com.google.android.gm".
        }

`list(enterpriseId, userId)`

    Lists 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 presence of an Entitlements resource indicates that a user has the right to use a particular app. Entitlements are user specific, not device specific. This allows a user with an entitlement to an app to install the app on all their devices. It's also possible for a user to hold an entitlement to an app without installing the app on any device.
                #
                # The API can be used to create an entitlement. As an option, you can also use the API to trigger the installation of an app on all a user's managed devices at the same time the entitlement is created.
                #
                # If the app is free, creating the entitlement also creates a group license for that app. For paid apps, creating the entitlement consumes one license, and that license remains consumed until the entitlement is removed. If the enterprise hasn't purchased enough licenses, then no entitlement is created and the installation fails. An entitlement is also not created for an app if the app requires permissions that the enterprise hasn't accepted.
                #
                # If an entitlement is deleted, the app may be uninstalled from a user's device. As a best practice, uninstall the app by calling  Installs.delete() before deleting the entitlement.
                #
                # Entitlements for apps that a user pays for on an unmanaged profile have "userPurchase" as the entitlement reason. These 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. For example, "free" for free apps. This property 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. For example, "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 (a product ID), e.g. "app:com.google.android.gm". (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # The presence of an Entitlements resource indicates that a user has the right to use a particular app. Entitlements are user specific, not device specific. This allows a user with an entitlement to an app to install the app on all their devices. It's also possible for a user to hold an entitlement to an app without installing the app on any device.
          #
          # The API can be used to create an entitlement. As an option, you can also use the API to trigger the installation of an app on all a user's managed devices at the same time the entitlement is created.
          #
          # If the app is free, creating the entitlement also creates a group license for that app. For paid apps, creating the entitlement consumes one license, and that license remains consumed until the entitlement is removed. If the enterprise hasn't purchased enough licenses, then no entitlement is created and the installation fails. An entitlement is also not created for an app if the app requires permissions that the enterprise hasn't accepted.
          #
          # If an entitlement is deleted, the app may be uninstalled from a user's device. As a best practice, uninstall the app by calling  Installs.delete() before deleting the entitlement.
          #
          # Entitlements for apps that a user pays for on an unmanaged profile have "userPurchase" as the entitlement reason. These 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. For example, "free" for free apps. This property 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. For example, "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 presence of an Entitlements resource indicates that a user has the right to use a particular app. Entitlements are user specific, not device specific. This allows a user with an entitlement to an app to install the app on all their devices. It's also possible for a user to hold an entitlement to an app without installing the app on any device.
            #
            # The API can be used to create an entitlement. As an option, you can also use the API to trigger the installation of an app on all a user's managed devices at the same time the entitlement is created.
            #
            # If the app is free, creating the entitlement also creates a group license for that app. For paid apps, creating the entitlement consumes one license, and that license remains consumed until the entitlement is removed. If the enterprise hasn't purchased enough licenses, then no entitlement is created and the installation fails. An entitlement is also not created for an app if the app requires permissions that the enterprise hasn't accepted.
            #
            # If an entitlement is deleted, the app may be uninstalled from a user's device. As a best practice, uninstall the app by calling  Installs.delete() before deleting the entitlement.
            #
            # Entitlements for apps that a user pays for on an unmanaged profile have "userPurchase" as the entitlement reason. These 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. For example, "free" for free apps. This property 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. For example, "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 (a product ID), e.g. "app:com.google.android.gm". (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # The presence of an Entitlements resource indicates that a user has the right to use a particular app. Entitlements are user specific, not device specific. This allows a user with an entitlement to an app to install the app on all their devices. It's also possible for a user to hold an entitlement to an app without installing the app on any device.
          #
          # The API can be used to create an entitlement. As an option, you can also use the API to trigger the installation of an app on all a user's managed devices at the same time the entitlement is created.
          #
          # If the app is free, creating the entitlement also creates a group license for that app. For paid apps, creating the entitlement consumes one license, and that license remains consumed until the entitlement is removed. If the enterprise hasn't purchased enough licenses, then no entitlement is created and the installation fails. An entitlement is also not created for an app if the app requires permissions that the enterprise hasn't accepted.
          #
          # If an entitlement is deleted, the app may be uninstalled from a user's device. As a best practice, uninstall the app by calling  Installs.delete() before deleting the entitlement.
          #
          # Entitlements for apps that a user pays for on an unmanaged profile have "userPurchase" as the entitlement reason. These 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. For example, "free" for free apps. This property 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. For example, "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 presence of an Entitlements resource indicates that a user has the right to use a particular app. Entitlements are user specific, not device specific. This allows a user with an entitlement to an app to install the app on all their devices. It's also possible for a user to hold an entitlement to an app without installing the app on any device.
            #
            # The API can be used to create an entitlement. As an option, you can also use the API to trigger the installation of an app on all a user's managed devices at the same time the entitlement is created.
            #
            # If the app is free, creating the entitlement also creates a group license for that app. For paid apps, creating the entitlement consumes one license, and that license remains consumed until the entitlement is removed. If the enterprise hasn't purchased enough licenses, then no entitlement is created and the installation fails. An entitlement is also not created for an app if the app requires permissions that the enterprise hasn't accepted.
            #
            # If an entitlement is deleted, the app may be uninstalled from a user's device. As a best practice, uninstall the app by calling  Installs.delete() before deleting the entitlement.
            #
            # Entitlements for apps that a user pays for on an unmanaged profile have "userPurchase" as the entitlement reason. These 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. For example, "free" for free apps. This property 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. For example, "app:com.google.android.gm".
        }