# Google Play EMM API . products

## Instance Methods

Approves the specified product (and the relevant app permissions, if any).

Generates a URL that can be used to display an iframe to view the product's permissions (if any) and approve the product. This URL can be used to approve the product for a limited time (currently 1 hour) using the Products.approve call.

Retrieves details of a product for display to an enterprise admin.

Retrieves the schema defining app restrictions configurable for this product. All products have a schema, but this may be empty if no app restrictions are defined.

Retrieves the Android app permissions required by this app.

Updates the set of Android app permissions for this app that have been accepted by the enterprise.

### Method Details

`approve(enterpriseId, productId, body)`

    Approves the specified product (and the relevant app permissions, if any).

    Args:
      enterpriseId: string, The ID of the enterprise. (required)
      productId: string, The ID of the product. (required)
      body: object, The request body. (required)
        The object takes the form of:

    {
        "approvalUrlInfo": { # Information on an approval URL.
          "kind": "androidenterprise#approvalUrlInfo", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#approvalUrlInfo".
          "approvalUrl": "A String", # A URL that displays a product's permissions and that can also be used to approve the product with the Products.approve call.
        },
      }

`generateApprovalUrl(enterpriseId, productId, languageCode=None)`

    Generates a URL that can be used to display an iframe to view the product's permissions (if any) and approve the product. This URL can be used to approve the product for a limited time (currently 1 hour) using the Products.approve call.

    Args:
      enterpriseId: string, The ID of the enterprise. (required)
      productId: string, The ID of the product. (required)
      languageCode: string, The language code that will be used for permission names and descriptions in the returned iframe.

    Returns:
      An object of the form:

        {
        "url": "A String", # A iframe-able URL that displays a product's permissions (if any). This URL can be used to approve the product only once and for a limited time (1 hour), using the Products.approve call. If the product is not currently approved and has no permissions, this URL will point to an empty page. If the product is currently approved and all of its permissions (if any) are also approved, this field will not be populated.
      }

`get(enterpriseId, productId, language=None)`

    Retrieves details of a product for display to an enterprise admin.

    Args:
      enterpriseId: string, The ID of the enterprise. (required)
      productId: string, The ID of the product, e.g. "app:com.google.android.gm". (required)
      language: string, The BCP47 tag for the user's preferred language (e.g. "en-US", "de").

    Returns:
      An object of the form:

        { # A product represents an app in the Google Play Store that is available to at least some users in the enterprise. (Some apps are restricted to a single enterprise, and no information about them is made available outside that enterprise.)
          #
          # The information provided for each product (localized name, icon, link to the full Google Play details page) is intended to allow a basic representation of the product within an MDM user interface.
        "kind": "androidenterprise#product", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#product".
        "distributionChannel": "A String", # How and to whom the package is made available.
        "title": "A String", # The name of the product.
        "workDetailsUrl": "A String", # A link to the Google Play for Work details page for the product, for use by an Enterprise administrator.
        "appVersion": [ # List of app versions available for this product. The returned list contains only public versions. E.g. alpha, beta or canary versions will not be included.
          { # App version represents a single APK version.
            "versionCode": 42, # Unique increasing identifier for the apk version.
            "versionString": "A String", # The string used in the Play Store by the app developer to identify a version of an app. The string is not necessarily unique or localized (e.g. "1.4").
          },
        ],
        "iconUrl": "A String", # A link to an image that can be used as an icon for the product.
        "authorName": "A String", # The name of the author of the product (e.g. the app developer).
        "requiresContainerApp": True or False, # Whether this app can only be installed on devices using the Android for Work container app.
        "detailsUrl": "A String", # A link to the (consumer) Google Play details page for the product.
        "productId": "A String", # A string of the form "app:
            # " - e.g. "app:com.google.android.gm" represents the GMail app.
      }

`getAppRestrictionsSchema(enterpriseId, productId, language=None)`

    Retrieves the schema defining app restrictions configurable for this product. All products have a schema, but this may be empty if no app restrictions are defined.

    Args:
      enterpriseId: string, The ID of the enterprise. (required)
      productId: string, The ID of the product. (required)
      language: string, The BCP47 tag for the user's preferred language (e.g. "en-US", "de").

    Returns:
      An object of the form:

        { # Represents the list of app restrictions available to be pre-configured for the product.
        "restrictions": [ # The set of restrictions that make up this schema.
          { # A restriction in the App Restriction Schema represents a piece of configuration that may be pre-applied.
            "restrictionType": "A String", # The type of the restriction.
            "title": "A String", # The name of the restriction.
            "defaultValue": { # A typed value for the restriction. # The default value of the restriction.
              "valueBool": True or False, # The boolean value - this will only be present if type is bool.
              "valueString": "A String", # The string value - this will be present for types string, choice and hidden.
              "type": "A String", # The type of the value being provided.
              "valueMultiselect": [ # The list of string values - this will only be present if type is multiselect.
                "A String",
              ],
              "valueInteger": 42, # The integer value - this will only be present if type is integer.
            },
            "entryValue": [ # For choice or multiselect restrictions, the list of possible entries' machine-readable values.
              "A String",
            ],
            "key": "A String", # The unique key that the product uses to identify the restriction, e.g. "com.google.android.gm.fieldname".
            "entry": [ # For choice or multiselect restrictions, the list of possible entries' human-readable names.
              "A String",
            ],
            "description": "A String", # A longer description of the restriction, giving more detail of what it affects.
          },
        ],
      }

`getPermissions(enterpriseId, productId)`

    Retrieves the Android app permissions required by this app.

    Args:
      enterpriseId: string, The ID of the enterprise. (required)
      productId: string, The ID of the product. (required)

    Returns:
      An object of the form:

        { # Information about the permissions required by a specific app and whether they have been accepted by the enterprise.
          "kind": "androidenterprise#productPermissions", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#productPermissions".
          "productId": "A String", # The ID of the app that the permissions relate to, e.g. "app:com.google.android.gm".
          "permission": [ # The permissions required by the app.
            { # A product permissions resource represents the set of permissions required by a specific app and whether or not they have been accepted by an enterprise admin.
                #
                # The API can be used to read the set of permissions, and also to update the set to indicate that permissions have been accepted.
              "permissionId": "A String", # An opaque string uniquely identifying the permission.
              "state": "A String", # Whether the permission has been accepted or not.
            },
          ],
        }

`updatePermissions(enterpriseId, productId, body)`

    Updates the set of Android app permissions for this app that have been accepted by the enterprise.

    Args:
      enterpriseId: string, The ID of the enterprise. (required)
      productId: string, The ID of the product. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # Information about the permissions required by a specific app and whether they have been accepted by the enterprise.
        "kind": "androidenterprise#productPermissions", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#productPermissions".
        "productId": "A String", # The ID of the app that the permissions relate to, e.g. "app:com.google.android.gm".
        "permission": [ # The permissions required by the app.
          { # A product permissions resource represents the set of permissions required by a specific app and whether or not they have been accepted by an enterprise admin.
              #
              # The API can be used to read the set of permissions, and also to update the set to indicate that permissions have been accepted.
            "permissionId": "A String", # An opaque string uniquely identifying the permission.
            "state": "A String", # Whether the permission has been accepted or not.
          },
        ],
      }

    Returns:
      An object of the form:

        { # Information about the permissions required by a specific app and whether they have been accepted by the enterprise.
          "kind": "androidenterprise#productPermissions", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#productPermissions".
          "productId": "A String", # The ID of the app that the permissions relate to, e.g. "app:com.google.android.gm".
          "permission": [ # The permissions required by the app.
            { # A product permissions resource represents the set of permissions required by a specific app and whether or not they have been accepted by an enterprise admin.
                #
                # The API can be used to read the set of permissions, and also to update the set to indicate that permissions have been accepted.
              "permissionId": "A String", # An opaque string uniquely identifying the permission.
              "state": "A String", # Whether the permission has been accepted or not.
            },
          ],
        }