# Google Play EMM API . enterprises

## Instance Methods

Acknowledges notifications that were received from Enterprises.PullNotificationSet to prevent subsequent calls from returning the same notifications.

Close httplib2 connections.

Completes the signup flow, by specifying the Completion token and Enterprise token. This request must not be called multiple times for a given Enterprise Token.

Returns a unique token to access an embeddable UI. To generate a web UI, pass the generated token into the managed Google Play javascript API. Each token may only be used to start one UI session. See the JavaScript API documentation for further information.

Enrolls an enterprise with the calling EMM.

Generates an enterprise upgrade URL to upgrade an existing managed Google Play Accounts enterprise to a managed Google domain. See the guide to upgrading an enterprise for more details.

Generates a sign-up URL.

Retrieves the name and domain of an enterprise.

Returns a service account and credentials. The service account can be bound to the enterprise by calling setAccount. The service account is unique to this enterprise and EMM, and will be deleted if the enterprise is unbound. The credentials contain private key data and are not stored server-side. This method can only be called after calling Enterprises.Enroll or Enterprises.CompleteSignup, and before Enterprises.SetAccount; at other times it will return an error. Subsequent calls after the first will generate a new, unique set of credentials, and invalidate the previously generated credentials. Once the service account is bound to the enterprise, it can be managed using the serviceAccountKeys resource. *Note:* After you create a key, you might need to wait for 60 seconds or more before you perform another operation with the key. If you try to perform an operation with the key immediately after you create the key, and you receive an error, you can retry the request with exponential backoff .

Returns the store layout for the enterprise. If the store layout has not been set, returns "basic" as the store layout type and no homepage.

Looks up an enterprise by domain name. This is only supported for enterprises created via the Google-initiated creation flow. Lookup of the id is not needed for enterprises created via the EMM-initiated flow since the EMM learns the enterprise ID in the callback specified in the Enterprises.generateSignupUrl call.

Pulls and returns a notification set for the enterprises associated with the service account authenticated for the request. The notification set may be empty if no notification are pending. A notification set returned needs to be acknowledged within 20 seconds by calling Enterprises.AcknowledgeNotificationSet, unless the notification set is empty. Notifications that are not acknowledged within the 20 seconds will eventually be included again in the response to another PullNotificationSet request, and those that are never acknowledged will ultimately be deleted according to the Google Cloud Platform Pub/Sub system policy. Multiple requests might be performed concurrently to retrieve notifications, in which case the pending notifications (if any) will be split among each caller, if any are pending. If no notifications are present, an empty notification list is returned. Subsequent requests may return more notifications once they become available.

Sends a test notification to validate the EMM integration with the Google Cloud Pub/Sub service for this enterprise.

Sets the account that will be used to authenticate to the API as the enterprise.

Sets the store layout for the enterprise. By default, storeLayoutType is set to "basic" and the basic store layout is enabled. The basic layout only contains apps approved by the admin, and that have been added to the available product set for a user (using the setAvailableProductSet call). Apps on the page are sorted in order of their product ID value. If you create a custom store layout (by setting storeLayoutType = "custom" and setting a homepage), the basic store layout is disabled.

Unenrolls an enterprise from the calling EMM.

### Method Details

`acknowledgeNotificationSet(notificationSetId=None, x__xgafv=None)`

    Acknowledges notifications that were received from Enterprises.PullNotificationSet to prevent subsequent calls from returning the same notifications.

    Args:
      notificationSetId: string, The notification set ID as returned by Enterprises.PullNotificationSet. This must be provided.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

`close()`

    Close httplib2 connections.

`completeSignup(completionToken=None, enterpriseToken=None, x__xgafv=None)`

    Completes the signup flow, by specifying the Completion token and Enterprise token. This request must not be called multiple times for a given Enterprise Token.

    Args:
      completionToken: string, The Completion token initially returned by GenerateSignupUrl.
      enterpriseToken: string, The Enterprise token appended to the Callback URL.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # An Enterprises resource represents the binding between an EMM and a specific organization. That binding can be instantiated in one of two different ways using this API as follows: - For Google managed domain customers, the process involves using Enterprises.enroll and Enterprises.setAccount (in conjunction with artifacts obtained from the Admin console and the Google API Console) and submitted to the EMM through a more-or-less manual process. - For managed Google Play Accounts customers, the process involves using Enterprises.generateSignupUrl and Enterprises.completeSignup in conjunction with the managed Google Play sign-up UI (Google-provided mechanism) to create the binding without manual steps. As an EMM, you can support either or both approaches in your EMM console. See Create an Enterprise for details.
      "administrator": [ # Admins of the enterprise. This is only supported for enterprises created via the EMM-initiated flow.
        { # This represents an enterprise admin who can manage the enterprise in the managed Google Play store.
          "email": "A String", # The admin's email address.
        },
      ],
      "enterpriseType": "A String", # The type of the enterprise.
      "googleAuthenticationSettings": { # Contains settings for Google-provided user authentication. # Output only. Settings for Google-provided user authentication.
        "dedicatedDevicesAllowed": "A String", # Whether dedicated devices are allowed.
        "googleAuthenticationRequired": "A String", # Whether Google authentication is required.
      },
      "id": "A String", # The unique ID for the enterprise.
      "managedGoogleDomainType": "A String", # The type of managed Google domain
      "name": "A String", # The name of the enterprise, for example, "Example, Inc".
      "primaryDomain": "A String", # The enterprise's primary domain, such as "example.com".
    }

`createWebToken(enterpriseId, body=None, x__xgafv=None)`

    Returns a unique token to access an embeddable UI. To generate a web UI, pass the generated token into the managed Google Play javascript API. Each token may only be used to start one UI session. See the JavaScript API documentation for further information.

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

    { # Specification for a token used to generate iframes. The token specifies what data the admin is allowed to modify and the URI the iframe is allowed to communiate with.
      "managedConfigurations": { # Options for displaying the Managed Configuration page.
        "enabled": True or False, # Whether the Managed Configuration page is displayed. Default is true.
      },
      "parent": "A String", # The URI of the parent frame hosting the iframe. To prevent XSS, the iframe may not be hosted at other URIs. This URI must be https. Use whitespaces to separate multiple parent URIs.
      "permission": [ # Deprecated. Use PlaySearch.approveApps.
        "A String",
      ],
      "playSearch": { # Options for displaying the managed Play Search apps page.
        "approveApps": True or False, # Allow access to the iframe in approve mode. Default is false.
        "enabled": True or False, # Whether the managed Play Search apps page is displayed. Default is true.
      },
      "privateApps": { # Options for displaying the Private Apps page.
        "enabled": True or False, # Whether the Private Apps page is displayed. Default is true.
      },
      "storeBuilder": { # Options for displaying the Organize apps page.
        "enabled": True or False, # Whether the Organize apps page is displayed. Default is true.
      },
      "webApps": { # Options for displaying the Web Apps page.
        "enabled": True or False, # Whether the Web Apps page is displayed. Default is true.
      },
      "zeroTouch": { # Options for displaying the Zero Touch page.
        "enabled": True or False, # Whether zero-touch embedded UI is usable with this token. If enabled, the admin can link zero-touch customers to this enterprise.
      },
    }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A token authorizing an admin to access an iframe.
      "token": "A String", # An opaque token to be passed to the Play front-end to generate an iframe.
    }

`enroll(token, body=None, x__xgafv=None)`

    Enrolls an enterprise with the calling EMM.

    Args:
      token: string, Required. The token provided by the enterprise to register the EMM. (required)
      body: object, The request body.
        The object takes the form of:

    { # An Enterprises resource represents the binding between an EMM and a specific organization. That binding can be instantiated in one of two different ways using this API as follows: - For Google managed domain customers, the process involves using Enterprises.enroll and Enterprises.setAccount (in conjunction with artifacts obtained from the Admin console and the Google API Console) and submitted to the EMM through a more-or-less manual process. - For managed Google Play Accounts customers, the process involves using Enterprises.generateSignupUrl and Enterprises.completeSignup in conjunction with the managed Google Play sign-up UI (Google-provided mechanism) to create the binding without manual steps. As an EMM, you can support either or both approaches in your EMM console. See Create an Enterprise for details.
      "administrator": [ # Admins of the enterprise. This is only supported for enterprises created via the EMM-initiated flow.
        { # This represents an enterprise admin who can manage the enterprise in the managed Google Play store.
          "email": "A String", # The admin's email address.
        },
      ],
      "enterpriseType": "A String", # The type of the enterprise.
      "googleAuthenticationSettings": { # Contains settings for Google-provided user authentication. # Output only. Settings for Google-provided user authentication.
        "dedicatedDevicesAllowed": "A String", # Whether dedicated devices are allowed.
        "googleAuthenticationRequired": "A String", # Whether Google authentication is required.
      },
      "id": "A String", # The unique ID for the enterprise.
      "managedGoogleDomainType": "A String", # The type of managed Google domain
      "name": "A String", # The name of the enterprise, for example, "Example, Inc".
      "primaryDomain": "A String", # The enterprise's primary domain, such as "example.com".
    }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # An Enterprises resource represents the binding between an EMM and a specific organization. That binding can be instantiated in one of two different ways using this API as follows: - For Google managed domain customers, the process involves using Enterprises.enroll and Enterprises.setAccount (in conjunction with artifacts obtained from the Admin console and the Google API Console) and submitted to the EMM through a more-or-less manual process. - For managed Google Play Accounts customers, the process involves using Enterprises.generateSignupUrl and Enterprises.completeSignup in conjunction with the managed Google Play sign-up UI (Google-provided mechanism) to create the binding without manual steps. As an EMM, you can support either or both approaches in your EMM console. See Create an Enterprise for details.
      "administrator": [ # Admins of the enterprise. This is only supported for enterprises created via the EMM-initiated flow.
        { # This represents an enterprise admin who can manage the enterprise in the managed Google Play store.
          "email": "A String", # The admin's email address.
        },
      ],
      "enterpriseType": "A String", # The type of the enterprise.
      "googleAuthenticationSettings": { # Contains settings for Google-provided user authentication. # Output only. Settings for Google-provided user authentication.
        "dedicatedDevicesAllowed": "A String", # Whether dedicated devices are allowed.
        "googleAuthenticationRequired": "A String", # Whether Google authentication is required.
      },
      "id": "A String", # The unique ID for the enterprise.
      "managedGoogleDomainType": "A String", # The type of managed Google domain
      "name": "A String", # The name of the enterprise, for example, "Example, Inc".
      "primaryDomain": "A String", # The enterprise's primary domain, such as "example.com".
    }

`generateEnterpriseUpgradeUrl(enterpriseId, adminEmail=None, allowedDomains=None, x__xgafv=None)`

    Generates an enterprise upgrade URL to upgrade an existing managed Google Play Accounts enterprise to a managed Google domain. See the guide to upgrading an enterprise for more details.

    Args:
      enterpriseId: string, Required. The ID of the enterprise. (required)
      adminEmail: string, Optional. Email address used to prefill the admin field of the enterprise signup form as part of the upgrade process. This value is a hint only and can be altered by the user. Personal email addresses are not allowed. If `allowedDomains` is non-empty then this must belong to one of the `allowedDomains`.
      allowedDomains: string, Optional. A list of domains that are permitted for the admin email. The IT admin cannot enter an email address with a domain name that is not in this list. Subdomains of domains in this list are not allowed but can be allowed by adding a second entry which has `*.` prefixed to the domain name (e.g. *.example.com). If the field is not present or is an empty list then the IT admin is free to use any valid domain name. Personal email domains are not allowed. (repeated)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Response message for generating a URL to upgrade an existing managed Google Play Accounts enterprise to a managed Google domain.
      "url": "A String", # A URL for an enterprise admin to upgrade their enterprise. The page can't be rendered in an iframe.
    }

`generateSignupUrl(adminEmail=None, allowedDomains=None, callbackUrl=None, x__xgafv=None)`

    Generates a sign-up URL.

    Args:
      adminEmail: string, Optional. Email address used to prefill the admin field of the enterprise signup form. This value is a hint only and can be altered by the user. If `allowedDomains` is non-empty then this must belong to one of the `allowedDomains`.
      allowedDomains: string, Optional. A list of domains that are permitted for the admin email. The IT admin cannot enter an email address with a domain name that is not in this list. Subdomains of domains in this list are not allowed but can be allowed by adding a second entry which has `*.` prefixed to the domain name (e.g. *.example.com). If the field is not present or is an empty list then the IT admin is free to use any valid domain name. Personal email domains are always allowed, but will result in the creation of a managed Google Play Accounts enterprise. (repeated)
      callbackUrl: string, The callback URL to which the Admin will be redirected after successfully creating an enterprise. Before redirecting there the system will add a single query parameter to this URL named "enterpriseToken" which will contain an opaque token to be used for the CompleteSignup request. Beware that this means that the URL will be parsed, the parameter added and then a new URL formatted, i.e. there may be some minor formatting changes and, more importantly, the URL must be well-formed so that it can be parsed.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A resource returned by the GenerateSignupUrl API, which contains the Signup URL and Completion Token.
      "completionToken": "A String", # An opaque token that will be required, along with the Enterprise Token, for obtaining the enterprise resource from CompleteSignup.
      "kind": "A String", # Deprecated.
      "url": "A String", # A URL under which the Admin can sign up for an enterprise. The page pointed to cannot be rendered in an iframe.
    }

`get(enterpriseId, x__xgafv=None)`

    Retrieves the name and domain of an enterprise.

    Args:
      enterpriseId: string, The ID of the enterprise. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # An Enterprises resource represents the binding between an EMM and a specific organization. That binding can be instantiated in one of two different ways using this API as follows: - For Google managed domain customers, the process involves using Enterprises.enroll and Enterprises.setAccount (in conjunction with artifacts obtained from the Admin console and the Google API Console) and submitted to the EMM through a more-or-less manual process. - For managed Google Play Accounts customers, the process involves using Enterprises.generateSignupUrl and Enterprises.completeSignup in conjunction with the managed Google Play sign-up UI (Google-provided mechanism) to create the binding without manual steps. As an EMM, you can support either or both approaches in your EMM console. See Create an Enterprise for details.
      "administrator": [ # Admins of the enterprise. This is only supported for enterprises created via the EMM-initiated flow.
        { # This represents an enterprise admin who can manage the enterprise in the managed Google Play store.
          "email": "A String", # The admin's email address.
        },
      ],
      "enterpriseType": "A String", # The type of the enterprise.
      "googleAuthenticationSettings": { # Contains settings for Google-provided user authentication. # Output only. Settings for Google-provided user authentication.
        "dedicatedDevicesAllowed": "A String", # Whether dedicated devices are allowed.
        "googleAuthenticationRequired": "A String", # Whether Google authentication is required.
      },
      "id": "A String", # The unique ID for the enterprise.
      "managedGoogleDomainType": "A String", # The type of managed Google domain
      "name": "A String", # The name of the enterprise, for example, "Example, Inc".
      "primaryDomain": "A String", # The enterprise's primary domain, such as "example.com".
    }

`getServiceAccount(enterpriseId, keyType=None, x__xgafv=None)`

    Returns a service account and credentials. The service account can be bound to the enterprise by calling setAccount. The service account is unique to this enterprise and EMM, and will be deleted if the enterprise is unbound. The credentials contain private key data and are not stored server-side. This method can only be called after calling Enterprises.Enroll or Enterprises.CompleteSignup, and before Enterprises.SetAccount; at other times it will return an error. Subsequent calls after the first will generate a new, unique set of credentials, and invalidate the previously generated credentials. Once the service account is bound to the enterprise, it can be managed using the serviceAccountKeys resource. *Note:* After you create a key, you might need to wait for 60 seconds or more before you perform another operation with the key. If you try to perform an operation with the key immediately after you create the key, and you receive an error, you can retry the request with exponential backoff .

    Args:
      enterpriseId: string, The ID of the enterprise. (required)
      keyType: string, The type of credential to return with the service account. Required.
        Allowed values
          googleCredentials - Google Credentials File format.
          pkcs12 - PKCS12 format. The password for the PKCS12 file is 'notasecret'. For more information, see https://tools.ietf.org/html/rfc7292. The data for keys of this type are base64 encoded according to RFC 4648 Section 4. See http://tools.ietf.org/html/rfc4648#section-4.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A service account identity, including the name and credentials that can be used to authenticate as the service account.
      "key": { #  *Deprecated:* New integrations cannot use this method and can refer to our new recommendations # Credentials that can be used to authenticate as this ServiceAccount.
        "data": "A String", # The body of the private key credentials file, in string format. This is only populated when the ServiceAccountKey is created, and is not stored by Google.
        "id": "A String", # An opaque, unique identifier for this ServiceAccountKey. Assigned by the server.
        "publicData": "A String", # Public key data for the credentials file. This is an X.509 cert. If you are using the googleCredentials key type, this is identical to the cert that can be retrieved by using the X.509 cert url inside of the credentials file.
        "type": "A String", # The file format of the generated key data.
      },
      "name": "A String", # The account name of the service account, in the form of an email address. Assigned by the server.
    }

`getStoreLayout(enterpriseId, x__xgafv=None)`

    Returns the store layout for the enterprise. If the store layout has not been set, returns "basic" as the store layout type and no homepage.

    Args:
      enterpriseId: string, The ID of the enterprise. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # General setting for the managed Google Play store layout, currently only specifying the page to display the first time the store is opened.
      "homepageId": "A String", # The ID of the store page to be used as the homepage. The homepage is the first page shown in the managed Google Play Store. Not specifying a homepage is equivalent to setting the store layout type to "basic".
      "storeLayoutType": "A String", # The store layout type. By default, this value is set to "basic" if the homepageId field is not set, and to "custom" otherwise. If set to "basic", the layout will consist of all approved apps that have been whitelisted for the user.
    }

`list(domain, x__xgafv=None)`

    Looks up an enterprise by domain name. This is only supported for enterprises created via the Google-initiated creation flow. Lookup of the id is not needed for enterprises created via the EMM-initiated flow since the EMM learns the enterprise ID in the callback specified in the Enterprises.generateSignupUrl call.

    Args:
      domain: string, Required. The exact primary domain name of the enterprise to look up. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        {
      "enterprise": [ # An enterprise.
        { # An Enterprises resource represents the binding between an EMM and a specific organization. That binding can be instantiated in one of two different ways using this API as follows: - For Google managed domain customers, the process involves using Enterprises.enroll and Enterprises.setAccount (in conjunction with artifacts obtained from the Admin console and the Google API Console) and submitted to the EMM through a more-or-less manual process. - For managed Google Play Accounts customers, the process involves using Enterprises.generateSignupUrl and Enterprises.completeSignup in conjunction with the managed Google Play sign-up UI (Google-provided mechanism) to create the binding without manual steps. As an EMM, you can support either or both approaches in your EMM console. See Create an Enterprise for details.
          "administrator": [ # Admins of the enterprise. This is only supported for enterprises created via the EMM-initiated flow.
            { # This represents an enterprise admin who can manage the enterprise in the managed Google Play store.
              "email": "A String", # The admin's email address.
            },
          ],
          "enterpriseType": "A String", # The type of the enterprise.
          "googleAuthenticationSettings": { # Contains settings for Google-provided user authentication. # Output only. Settings for Google-provided user authentication.
            "dedicatedDevicesAllowed": "A String", # Whether dedicated devices are allowed.
            "googleAuthenticationRequired": "A String", # Whether Google authentication is required.
          },
          "id": "A String", # The unique ID for the enterprise.
          "managedGoogleDomainType": "A String", # The type of managed Google domain
          "name": "A String", # The name of the enterprise, for example, "Example, Inc".
          "primaryDomain": "A String", # The enterprise's primary domain, such as "example.com".
        },
      ],
    }

`pullNotificationSet(requestMode=None, x__xgafv=None)`

    Pulls and returns a notification set for the enterprises associated with the service account authenticated for the request. The notification set may be empty if no notification are pending. A notification set returned needs to be acknowledged within 20 seconds by calling Enterprises.AcknowledgeNotificationSet, unless the notification set is empty. Notifications that are not acknowledged within the 20 seconds will eventually be included again in the response to another PullNotificationSet request, and those that are never acknowledged will ultimately be deleted according to the Google Cloud Platform Pub/Sub system policy. Multiple requests might be performed concurrently to retrieve notifications, in which case the pending notifications (if any) will be split among each caller, if any are pending. If no notifications are present, an empty notification list is returned. Subsequent requests may return more notifications once they become available.

    Args:
      requestMode: string, The request mode for pulling notifications. Specifying waitForNotifications will cause the request to block and wait until one or more notifications are present, or return an empty notification list if no notifications are present after some time. Specifying returnImmediately will cause the request to immediately return the pending notifications, or an empty list if no notifications are present. If omitted, defaults to waitForNotifications.
        Allowed values
          waitForNotifications - Wait until one or more notifications are present.
          returnImmediately - Returns immediately whether notifications are present or not.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A resource returned by the PullNotificationSet API, which contains a collection of notifications for enterprises associated with the service account authenticated for the request.
      "notification": [ # The notifications received, or empty if no notifications are present.
        { # A notification of one event relating to an enterprise.
          "appRestrictionsSchemaChangeEvent": { # An event generated when a new app version is uploaded to Google Play and its app restrictions schema changed. To fetch the app restrictions schema for an app, use Products.getAppRestrictionsSchema on the EMM API. # Notifications about new app restrictions schema changes.
            "productId": "A String", # The id of the product (e.g. "app:com.google.android.gm") for which the app restriction schema changed. This field will always be present.
          },
          "appUpdateEvent": { # An event generated when a new version of an app is uploaded to Google Play. Notifications are sent for new public versions only: alpha, beta, or canary versions do not generate this event. To fetch up-to-date version history for an app, use Products.Get on the EMM API. # Notifications about app updates.
            "productId": "A String", # The id of the product (e.g. "app:com.google.android.gm") that was updated. This field will always be present.
          },
          "deviceReportUpdateEvent": { # An event generated when an updated device report is available. # Notifications about device report updates.
            "deviceId": "A String", # The Android ID of the device. This field will always be present.
            "report": { # Device report updated with the latest app states for managed apps on the device. # The device report updated with the latest app states. This field will always be present.
              "appState": [ # List of app states set by managed apps on the device. App states are defined by the app's developers. This field will always be present.
                { # List of states set by the app.
                  "keyedAppState": [ # List of keyed app states. This field will always be present.
                    { # Represents a keyed app state containing a key, timestamp, severity level, optional description, and optional data.
                      "data": "A String", # Additional field intended for machine-readable data. For example, a number or JSON object. To prevent XSS, we recommend removing any HTML from the data before displaying it.
                      "key": "A String", # Key indicating what the app is providing a state for. The content of the key is set by the app's developer. To prevent XSS, we recommend removing any HTML from the key before displaying it. This field will always be present.
                      "message": "A String", # Free-form, human-readable message describing the app state. For example, an error message. To prevent XSS, we recommend removing any HTML from the message before displaying it.
                      "severity": "A String", # Severity of the app state. This field will always be present.
                      "stateTimestampMillis": "A String", # Timestamp of when the app set the state in milliseconds since epoch. This field will always be present.
                    },
                  ],
                  "packageName": "A String", # The package name of the app. This field will always be present.
                },
              ],
              "lastUpdatedTimestampMillis": "A String", # The timestamp of the last report update in milliseconds since epoch. This field will always be present.
            },
            "userId": "A String", # The ID of the user. This field will always be present.
          },
          "enterpriseId": "A String", # The ID of the enterprise for which the notification is sent. This will always be present.
          "enterpriseUpgradeEvent": { # An event generated when an enterprise is upgraded. # Notifications about enterprise upgrade.
            "upgradeState": "A String", # The upgrade state.
          },
          "installFailureEvent": { # An event generated when an app installation failed on a device # Notifications about an app installation failure.
            "deviceId": "A String", # The Android ID of the device. This field will always be present.
            "failureDetails": "A String", # Additional details on the failure if applicable.
            "failureReason": "A String", # The reason for the installation failure. This field will always be present.
            "productId": "A String", # The id of the product (e.g. "app:com.google.android.gm") for which the install failure event occured. This field will always be present.
            "userId": "A String", # The ID of the user. This field will always be present.
          },
          "newDeviceEvent": { # An event generated when a new device is ready to be managed. # Notifications about new devices.
            "deviceId": "A String", # The Android ID of the device. This field will always be present.
            "dpcPackageName": "A String", # Policy app on the device.
            "managementType": "A String", # Identifies the extent to which the device is controlled by an Android EMM in various deployment configurations. Possible values include: - "managedDevice", a device where the DPC is set as device owner, - "managedProfile", a device where the DPC is set as profile owner.
            "userId": "A String", # The ID of the user. This field will always be present.
          },
          "newPermissionsEvent": { # An event generated when new permissions are added to an app. # Notifications about new app permissions.
            "approvedPermissions": [ # The set of permissions that the enterprise admin has already approved for this application. Use Permissions.Get on the EMM API to retrieve details about these permissions.
              "A String",
            ],
            "productId": "A String", # The id of the product (e.g. "app:com.google.android.gm") for which new permissions were added. This field will always be present.
            "requestedPermissions": [ # The set of permissions that the app is currently requesting. Use Permissions.Get on the EMM API to retrieve details about these permissions.
              "A String",
            ],
          },
          "notificationType": "A String", # Type of the notification.
          "productApprovalEvent": { # An event generated when a product's approval status is changed. # Notifications about changes to a product's approval status.
            "approved": "A String", # Whether the product was approved or unapproved. This field will always be present.
            "productId": "A String", # The id of the product (e.g. "app:com.google.android.gm") for which the approval status has changed. This field will always be present.
          },
          "productAvailabilityChangeEvent": { # An event generated whenever a product's availability changes. # Notifications about product availability changes.
            "availabilityStatus": "A String", # The new state of the product. This field will always be present.
            "productId": "A String", # The id of the product (e.g. "app:com.google.android.gm") for which the product availability changed. This field will always be present.
          },
          "timestampMillis": "A String", # The time when the notification was published in milliseconds since 1970-01-01T00:00:00Z. This will always be present.
        },
      ],
      "notificationSetId": "A String", # The notification set ID, required to mark the notification as received with the Enterprises.AcknowledgeNotification API. This will be omitted if no notifications are present.
    }

`sendTestPushNotification(enterpriseId, x__xgafv=None)`

    Sends a test notification to validate the EMM integration with the Google Cloud Pub/Sub service for this enterprise.

    Args:
      enterpriseId: string, The ID of the enterprise. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        {
      "messageId": "A String", # The message ID of the test push notification that was sent.
      "topicName": "A String", # The name of the Cloud Pub/Sub topic to which notifications for this enterprise's enrolled account will be sent.
    }

`setAccount(enterpriseId, body=None, x__xgafv=None)`

    Sets the account that will be used to authenticate to the API as the enterprise.

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

    { # A service account that can be used to authenticate as the enterprise to API calls that require such authentication.
      "accountEmail": "A String", # The email address of the service account.
    }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A service account that can be used to authenticate as the enterprise to API calls that require such authentication.
      "accountEmail": "A String", # The email address of the service account.
    }

`setStoreLayout(enterpriseId, body=None, x__xgafv=None)`

    Sets the store layout for the enterprise. By default, storeLayoutType is set to "basic" and the basic store layout is enabled. The basic layout only contains apps approved by the admin, and that have been added to the available product set for a user (using the setAvailableProductSet call). Apps on the page are sorted in order of their product ID value. If you create a custom store layout (by setting storeLayoutType = "custom" and setting a homepage), the basic store layout is disabled.

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

    { # General setting for the managed Google Play store layout, currently only specifying the page to display the first time the store is opened.
      "homepageId": "A String", # The ID of the store page to be used as the homepage. The homepage is the first page shown in the managed Google Play Store. Not specifying a homepage is equivalent to setting the store layout type to "basic".
      "storeLayoutType": "A String", # The store layout type. By default, this value is set to "basic" if the homepageId field is not set, and to "custom" otherwise. If set to "basic", the layout will consist of all approved apps that have been whitelisted for the user.
    }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # General setting for the managed Google Play store layout, currently only specifying the page to display the first time the store is opened.
      "homepageId": "A String", # The ID of the store page to be used as the homepage. The homepage is the first page shown in the managed Google Play Store. Not specifying a homepage is equivalent to setting the store layout type to "basic".
      "storeLayoutType": "A String", # The store layout type. By default, this value is set to "basic" if the homepageId field is not set, and to "custom" otherwise. If set to "basic", the layout will consist of all approved apps that have been whitelisted for the user.
    }

`unenroll(enterpriseId, x__xgafv=None)`

    Unenrolls an enterprise from the calling EMM.

    Args:
      enterpriseId: string, The ID of the enterprise. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format