<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="androiddeviceprovisioning_v1.html">Android Device Provisioning Partner API</a> . <a href="androiddeviceprovisioning_v1.customers.html">customers</a> . <a href="androiddeviceprovisioning_v1.customers.dpcs.html">dpcs</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#list">list(parent, x__xgafv=None)</a></code></p>
<p class="firstline">Lists the DPCs (device policy controllers) that support zero-touch</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="list">list(parent, x__xgafv=None)</code>
  <pre>Lists the DPCs (device policy controllers) that support zero-touch
enrollment.

Args:
  parent: string, Required. The customer that can use the DPCs in configurations. An API
resource name in the format `customers/[CUSTOMER_ID]`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message of customer's listing DPCs.
    "dpcs": [ # The list of DPCs available to the customer that support zero-touch
        # enrollment.
      { # An EMM's DPC ([device policy
          # controller](http://developer.android.com/work/dpc/build-dpc.html)).
          # Zero-touch enrollment installs a DPC (listed in the `Configuration`) on a
          # device to maintain the customer's mobile policies. All the DPCs listed by the
          # API support zero-touch enrollment and are available in Google Play.
        "packageName": "A String", # Output only. The DPC's Android application ID that looks like a Java
            # package name. Zero-touch enrollment installs the DPC app onto a device
            # using this identifier.
        "name": "A String", # Output only. The API resource name in the format
            # `customers/[CUSTOMER_ID]/dpcs/[DPC_ID]`. Assigned by
            # the server. To maintain a reference to a DPC across customer accounts,
            # persist and match the last path component (`DPC_ID`).
        "dpcName": "A String", # Output only. The title of the DPC app in Google Play. For example, _Google
            # Apps Device Policy_. Useful in an application's user interface.
      },
    ],
  }</pre>
</div>

</body></html>