Regen all docs. (#700)

* Stop recursing if discovery == {}

* Generate docs with 'make docs'.
diff --git a/docs/dyn/androiddeviceprovisioning_v1.customers.configurations.html b/docs/dyn/androiddeviceprovisioning_v1.customers.configurations.html
new file mode 100644
index 0000000..256b5b5
--- /dev/null
+++ b/docs/dyn/androiddeviceprovisioning_v1.customers.configurations.html
@@ -0,0 +1,448 @@
+<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.configurations.html">configurations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new configuration. Once created, a customer can apply the</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes an unused configuration. The API call fails if the customer has</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the details of a configuration.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists a customer's configurations.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, body, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates a configuration's field values.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(parent, body, x__xgafv=None)</code>
+  <pre>Creates a new configuration. Once created, a customer can apply the
+configuration to devices.
+
+Args:
+  parent: string, Required. The customer that manages the configuration. An API resource name
+in the format `customers/[CUSTOMER_ID]`. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A configuration collects the provisioning options for Android devices. Each
+      # configuration combines the following:
+      # 
+      # * The EMM device policy controller (DPC) installed on the devices.
+      # * EMM policies enforced on the devices.
+      # * Metadata displayed on the device to help users during setup.
+      # 
+      # Customers can add as many configurations as they need. However, zero-touch
+      # enrollment works best when a customer sets a default configuration that's
+      # applied to any new devices the organization purchases.
+    "dpcExtras": "A String", # The JSON-formatted EMM provisioning extras that are passed to the DPC.
+    "contactPhone": "A String", # Required. The telephone number that device users can call, using another
+        # device, to get help. Zero-touch enrollment shows this number to device
+        # users before device provisioning. Accepts numerals, spaces, the plus sign,
+        # hyphens, and parentheses.
+    "name": "A String", # Output only. The API resource name in the format
+        # `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. Assigned by
+        # the server.
+    "companyName": "A String", # Required. The name of the organization. Zero-touch enrollment shows this
+        # organization name to device users during device provisioning.
+    "configurationId": "A String", # Output only. The ID of the configuration. Assigned by the server.
+    "customMessage": "A String", # A message, containing one or two sentences, to help device users get help
+        # or give them more details about what’s happening to their device.
+        # Zero-touch enrollment shows this message before the device is provisioned.
+    "dpcResourcePath": "A String", # Required. The resource name of the selected DPC (device policy controller)
+        # in the format `customers/[CUSTOMER_ID]/dpcs/*`. To list the supported DPCs,
+        # call
+        # `customers.dpcs.list`.
+    "contactEmail": "A String", # Required. The email address that device users can contact to get help.
+        # Zero-touch enrollment shows this email address to device users before
+        # device provisioning. The value is validated on input.
+    "configurationName": "A String", # Required. A short name that describes the configuration's purpose. For
+        # example, _Sales team_ or _Temporary employees_. The zero-touch enrollment
+        # portal displays this name to IT admins.
+    "isDefault": True or False, # Required. Whether this is the default configuration that zero-touch
+        # enrollment applies to any new devices the organization purchases in the
+        # future. Only one customer configuration can be the default. Setting this
+        # value to `true`, changes the previous default configuration's `isDefault`
+        # value to `false`.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A configuration collects the provisioning options for Android devices. Each
+        # configuration combines the following:
+        #
+        # * The EMM device policy controller (DPC) installed on the devices.
+        # * EMM policies enforced on the devices.
+        # * Metadata displayed on the device to help users during setup.
+        #
+        # Customers can add as many configurations as they need. However, zero-touch
+        # enrollment works best when a customer sets a default configuration that's
+        # applied to any new devices the organization purchases.
+      "dpcExtras": "A String", # The JSON-formatted EMM provisioning extras that are passed to the DPC.
+      "contactPhone": "A String", # Required. The telephone number that device users can call, using another
+          # device, to get help. Zero-touch enrollment shows this number to device
+          # users before device provisioning. Accepts numerals, spaces, the plus sign,
+          # hyphens, and parentheses.
+      "name": "A String", # Output only. The API resource name in the format
+          # `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. Assigned by
+          # the server.
+      "companyName": "A String", # Required. The name of the organization. Zero-touch enrollment shows this
+          # organization name to device users during device provisioning.
+      "configurationId": "A String", # Output only. The ID of the configuration. Assigned by the server.
+      "customMessage": "A String", # A message, containing one or two sentences, to help device users get help
+          # or give them more details about what’s happening to their device.
+          # Zero-touch enrollment shows this message before the device is provisioned.
+      "dpcResourcePath": "A String", # Required. The resource name of the selected DPC (device policy controller)
+          # in the format `customers/[CUSTOMER_ID]/dpcs/*`. To list the supported DPCs,
+          # call
+          # `customers.dpcs.list`.
+      "contactEmail": "A String", # Required. The email address that device users can contact to get help.
+          # Zero-touch enrollment shows this email address to device users before
+          # device provisioning. The value is validated on input.
+      "configurationName": "A String", # Required. A short name that describes the configuration's purpose. For
+          # example, _Sales team_ or _Temporary employees_. The zero-touch enrollment
+          # portal displays this name to IT admins.
+      "isDefault": True or False, # Required. Whether this is the default configuration that zero-touch
+          # enrollment applies to any new devices the organization purchases in the
+          # future. Only one customer configuration can be the default. Setting this
+          # value to `true`, changes the previous default configuration's `isDefault`
+          # value to `false`.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes an unused configuration. The API call fails if the customer has
+devices with the configuration applied.
+
+Args:
+  name: string, Required. The configuration to delete. An API resource name in the format
+`customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. If the
+configuration is applied to any devices, the API call fails. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated
+      # empty messages in your APIs. A typical example is to use it as the request
+      # or the response type of an API method. For instance:
+      #
+      #     service Foo {
+      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+      #     }
+      #
+      # The JSON representation for `Empty` is empty JSON object `{}`.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the details of a configuration.
+
+Args:
+  name: string, Required. The configuration to get. An API resource name in the format
+`customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A configuration collects the provisioning options for Android devices. Each
+        # configuration combines the following:
+        #
+        # * The EMM device policy controller (DPC) installed on the devices.
+        # * EMM policies enforced on the devices.
+        # * Metadata displayed on the device to help users during setup.
+        #
+        # Customers can add as many configurations as they need. However, zero-touch
+        # enrollment works best when a customer sets a default configuration that's
+        # applied to any new devices the organization purchases.
+      "dpcExtras": "A String", # The JSON-formatted EMM provisioning extras that are passed to the DPC.
+      "contactPhone": "A String", # Required. The telephone number that device users can call, using another
+          # device, to get help. Zero-touch enrollment shows this number to device
+          # users before device provisioning. Accepts numerals, spaces, the plus sign,
+          # hyphens, and parentheses.
+      "name": "A String", # Output only. The API resource name in the format
+          # `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. Assigned by
+          # the server.
+      "companyName": "A String", # Required. The name of the organization. Zero-touch enrollment shows this
+          # organization name to device users during device provisioning.
+      "configurationId": "A String", # Output only. The ID of the configuration. Assigned by the server.
+      "customMessage": "A String", # A message, containing one or two sentences, to help device users get help
+          # or give them more details about what’s happening to their device.
+          # Zero-touch enrollment shows this message before the device is provisioned.
+      "dpcResourcePath": "A String", # Required. The resource name of the selected DPC (device policy controller)
+          # in the format `customers/[CUSTOMER_ID]/dpcs/*`. To list the supported DPCs,
+          # call
+          # `customers.dpcs.list`.
+      "contactEmail": "A String", # Required. The email address that device users can contact to get help.
+          # Zero-touch enrollment shows this email address to device users before
+          # device provisioning. The value is validated on input.
+      "configurationName": "A String", # Required. A short name that describes the configuration's purpose. For
+          # example, _Sales team_ or _Temporary employees_. The zero-touch enrollment
+          # portal displays this name to IT admins.
+      "isDefault": True or False, # Required. Whether this is the default configuration that zero-touch
+          # enrollment applies to any new devices the organization purchases in the
+          # future. Only one customer configuration can be the default. Setting this
+          # value to `true`, changes the previous default configuration's `isDefault`
+          # value to `false`.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, x__xgafv=None)</code>
+  <pre>Lists a customer's configurations.
+
+Args:
+  parent: string, Required. The customer that manages the listed 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 configuration.
+    "configurations": [ # The configurations.
+      { # A configuration collects the provisioning options for Android devices. Each
+            # configuration combines the following:
+            #
+            # * The EMM device policy controller (DPC) installed on the devices.
+            # * EMM policies enforced on the devices.
+            # * Metadata displayed on the device to help users during setup.
+            #
+            # Customers can add as many configurations as they need. However, zero-touch
+            # enrollment works best when a customer sets a default configuration that's
+            # applied to any new devices the organization purchases.
+          "dpcExtras": "A String", # The JSON-formatted EMM provisioning extras that are passed to the DPC.
+          "contactPhone": "A String", # Required. The telephone number that device users can call, using another
+              # device, to get help. Zero-touch enrollment shows this number to device
+              # users before device provisioning. Accepts numerals, spaces, the plus sign,
+              # hyphens, and parentheses.
+          "name": "A String", # Output only. The API resource name in the format
+              # `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. Assigned by
+              # the server.
+          "companyName": "A String", # Required. The name of the organization. Zero-touch enrollment shows this
+              # organization name to device users during device provisioning.
+          "configurationId": "A String", # Output only. The ID of the configuration. Assigned by the server.
+          "customMessage": "A String", # A message, containing one or two sentences, to help device users get help
+              # or give them more details about what’s happening to their device.
+              # Zero-touch enrollment shows this message before the device is provisioned.
+          "dpcResourcePath": "A String", # Required. The resource name of the selected DPC (device policy controller)
+              # in the format `customers/[CUSTOMER_ID]/dpcs/*`. To list the supported DPCs,
+              # call
+              # `customers.dpcs.list`.
+          "contactEmail": "A String", # Required. The email address that device users can contact to get help.
+              # Zero-touch enrollment shows this email address to device users before
+              # device provisioning. The value is validated on input.
+          "configurationName": "A String", # Required. A short name that describes the configuration's purpose. For
+              # example, _Sales team_ or _Temporary employees_. The zero-touch enrollment
+              # portal displays this name to IT admins.
+          "isDefault": True or False, # Required. Whether this is the default configuration that zero-touch
+              # enrollment applies to any new devices the organization purchases in the
+              # future. Only one customer configuration can be the default. Setting this
+              # value to `true`, changes the previous default configuration's `isDefault`
+              # value to `false`.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates a configuration's field values.
+
+Args:
+  name: string, Output only. The API resource name in the format
+`customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. Assigned by
+the server. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A configuration collects the provisioning options for Android devices. Each
+      # configuration combines the following:
+      # 
+      # * The EMM device policy controller (DPC) installed on the devices.
+      # * EMM policies enforced on the devices.
+      # * Metadata displayed on the device to help users during setup.
+      # 
+      # Customers can add as many configurations as they need. However, zero-touch
+      # enrollment works best when a customer sets a default configuration that's
+      # applied to any new devices the organization purchases.
+    "dpcExtras": "A String", # The JSON-formatted EMM provisioning extras that are passed to the DPC.
+    "contactPhone": "A String", # Required. The telephone number that device users can call, using another
+        # device, to get help. Zero-touch enrollment shows this number to device
+        # users before device provisioning. Accepts numerals, spaces, the plus sign,
+        # hyphens, and parentheses.
+    "name": "A String", # Output only. The API resource name in the format
+        # `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. Assigned by
+        # the server.
+    "companyName": "A String", # Required. The name of the organization. Zero-touch enrollment shows this
+        # organization name to device users during device provisioning.
+    "configurationId": "A String", # Output only. The ID of the configuration. Assigned by the server.
+    "customMessage": "A String", # A message, containing one or two sentences, to help device users get help
+        # or give them more details about what’s happening to their device.
+        # Zero-touch enrollment shows this message before the device is provisioned.
+    "dpcResourcePath": "A String", # Required. The resource name of the selected DPC (device policy controller)
+        # in the format `customers/[CUSTOMER_ID]/dpcs/*`. To list the supported DPCs,
+        # call
+        # `customers.dpcs.list`.
+    "contactEmail": "A String", # Required. The email address that device users can contact to get help.
+        # Zero-touch enrollment shows this email address to device users before
+        # device provisioning. The value is validated on input.
+    "configurationName": "A String", # Required. A short name that describes the configuration's purpose. For
+        # example, _Sales team_ or _Temporary employees_. The zero-touch enrollment
+        # portal displays this name to IT admins.
+    "isDefault": True or False, # Required. Whether this is the default configuration that zero-touch
+        # enrollment applies to any new devices the organization purchases in the
+        # future. Only one customer configuration can be the default. Setting this
+        # value to `true`, changes the previous default configuration's `isDefault`
+        # value to `false`.
+  }
+
+  updateMask: string, Required. The field mask applied to the target `Configuration` before
+updating the fields. To learn more about using field masks, read
+[FieldMask](/protocol-buffers/docs/reference/google.protobuf#fieldmask) in
+the Protocol Buffers documentation.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A configuration collects the provisioning options for Android devices. Each
+        # configuration combines the following:
+        #
+        # * The EMM device policy controller (DPC) installed on the devices.
+        # * EMM policies enforced on the devices.
+        # * Metadata displayed on the device to help users during setup.
+        #
+        # Customers can add as many configurations as they need. However, zero-touch
+        # enrollment works best when a customer sets a default configuration that's
+        # applied to any new devices the organization purchases.
+      "dpcExtras": "A String", # The JSON-formatted EMM provisioning extras that are passed to the DPC.
+      "contactPhone": "A String", # Required. The telephone number that device users can call, using another
+          # device, to get help. Zero-touch enrollment shows this number to device
+          # users before device provisioning. Accepts numerals, spaces, the plus sign,
+          # hyphens, and parentheses.
+      "name": "A String", # Output only. The API resource name in the format
+          # `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. Assigned by
+          # the server.
+      "companyName": "A String", # Required. The name of the organization. Zero-touch enrollment shows this
+          # organization name to device users during device provisioning.
+      "configurationId": "A String", # Output only. The ID of the configuration. Assigned by the server.
+      "customMessage": "A String", # A message, containing one or two sentences, to help device users get help
+          # or give them more details about what’s happening to their device.
+          # Zero-touch enrollment shows this message before the device is provisioned.
+      "dpcResourcePath": "A String", # Required. The resource name of the selected DPC (device policy controller)
+          # in the format `customers/[CUSTOMER_ID]/dpcs/*`. To list the supported DPCs,
+          # call
+          # `customers.dpcs.list`.
+      "contactEmail": "A String", # Required. The email address that device users can contact to get help.
+          # Zero-touch enrollment shows this email address to device users before
+          # device provisioning. The value is validated on input.
+      "configurationName": "A String", # Required. A short name that describes the configuration's purpose. For
+          # example, _Sales team_ or _Temporary employees_. The zero-touch enrollment
+          # portal displays this name to IT admins.
+      "isDefault": True or False, # Required. Whether this is the default configuration that zero-touch
+          # enrollment applies to any new devices the organization purchases in the
+          # future. Only one customer configuration can be the default. Setting this
+          # value to `true`, changes the previous default configuration's `isDefault`
+          # value to `false`.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file