chore: Update discovery artifacts (#1291)

* chore: update docs/dyn/index.md
* chore(abusiveexperiencereport): update the api
* chore(acceleratedmobilepageurl): update the api
* chore(accessapproval): update the api
* chore(accesscontextmanager): update the api
* chore(adexchangebuyer2): update the api
* chore(adexperiencereport): update the api
* chore(admob): update the api
* chore(analytics): update the api
* chore(analyticsreporting): update the api
* chore(androiddeviceprovisioning): update the api
* chore(androidenterprise): update the api
* chore(androidpublisher): update the api
* chore(apigateway): update the api
* chore(artifactregistry): update the api
* chore(bigqueryconnection): update the api
* chore(bigquerydatatransfer): update the api
* chore(billingbudgets): update the api
* chore(binaryauthorization): update the api
* chore(blogger): update the api
* chore(books): update the api
* chore(calendar): update the api
* chore(chat): update the api
* chore(chromeuxreport): update the api
* chore(civicinfo): update the api
* chore(classroom): update the api
* chore(cloudbilling): update the api
* chore(cloudbuild): update the api
* chore(clouddebugger): update the api
* chore(clouderrorreporting): update the api
* chore(cloudfunctions): update the api
* chore(cloudidentity): update the api
* chore(cloudiot): update the api
* chore(cloudkms): update the api
* chore(cloudprofiler): update the api
* chore(cloudresourcemanager): update the api
* chore(cloudscheduler): update the api
* chore(cloudshell): update the api
* chore(cloudtasks): update the api
* chore(cloudtrace): update the api
* chore(composer): update the api
* chore(containeranalysis): update the api
* chore(content): update the api
* chore(customsearch): update the api
* chore(datacatalog): update the api
* chore(datafusion): update the api
* chore(datamigration): update the api
* chore(datastore): update the api
* chore(deploymentmanager): update the api
* chore(digitalassetlinks): update the api
* chore(displayvideo): update the api
* chore(dlp): update the api
* chore(dns): update the api
* chore(docs): update the api
* chore(domains): update the api
* chore(domainsrdap): update the api
* chore(doubleclickbidmanager): update the api
* chore(doubleclicksearch): update the api
* chore(drive): update the api
* chore(driveactivity): update the api
* chore(eventarc): update the api
* chore(factchecktools): update the api
* chore(fcm): update the api
* chore(file): update the api
* chore(firebase): update the api
* chore(firebasedatabase): update the api
* chore(firebasedynamiclinks): update the api
* chore(firebasehosting): update the api
* chore(firebaseml): update the api
* chore(firebaserules): update the api
* chore(firestore): update the api
* chore(fitness): update the api
* chore(gamesConfiguration): update the api
* chore(gamesManagement): update the api
* chore(gameservices): update the api
* chore(genomics): update the api
* chore(gmail): update the api
* chore(gmailpostmastertools): update the api
* chore(groupsmigration): update the api
* chore(groupssettings): update the api
* chore(healthcare): update the api
* chore(iam): update the api
* chore(iamcredentials): update the api
* chore(iap): update the api
* chore(identitytoolkit): update the api
* chore(indexing): update the api
* chore(jobs): update the api
* chore(kgsearch): update the api
* chore(language): update the api
* chore(libraryagent): update the api
* chore(licensing): update the api
* chore(lifesciences): update the api
* chore(logging): update the api
* chore(managedidentities): update the api
* chore(manufacturers): update the api
* chore(memcache): update the api
* chore(ml): update the api
* chore(monitoring): update the api
* chore(networkmanagement): update the api
* chore(osconfig): update the api
* chore(pagespeedonline): update the api
* chore(playablelocations): update the api
* chore(playcustomapp): update the api
* chore(policytroubleshooter): update the api
* chore(poly): update the api
* chore(privateca): update the api
* chore(prod_tt_sasportal): update the api
* chore(pubsub): update the api
* chore(pubsublite): update the api
* chore(realtimebidding): update the api
* chore(recommendationengine): update the api
* chore(recommender): update the api
* chore(redis): update the api
* chore(remotebuildexecution): update the api
* chore(reseller): update the api
* chore(runtimeconfig): update the api
* chore(safebrowsing): update the api
* chore(sasportal): update the api
* chore(script): update the api
* chore(searchconsole): update the api
* chore(secretmanager): update the api
* chore(servicecontrol): update the api
* chore(servicedirectory): update the api
* chore(siteVerification): update the api
* chore(slides): update the api
* chore(smartdevicemanagement): update the api
* chore(sourcerepo): update the api
* chore(sqladmin): update the api
* chore(storage): update the api
* chore(storagetransfer): update the api
* chore(streetviewpublish): update the api
* chore(sts): update the api
* chore(tagmanager): update the api
* chore(tasks): update the api
* chore(testing): update the api
* chore(texttospeech): update the api
* chore(toolresults): update the api
* chore(trafficdirector): update the api
* chore(transcoder): update the api
* chore(translate): update the api
* chore(vault): update the api
* chore(vectortile): update the api
* chore(verifiedaccess): update the api
* chore(videointelligence): update the api
* chore(vision): update the api
* chore(webfonts): update the api
* chore(webmasters): update the api
* chore(websecurityscanner): update the api
* chore(workflowexecutions): update the api
* chore(workflows): update the api
* chore(youtubeAnalytics): update the api
* chore(youtubereporting): update the api
* chore(docs): Add new discovery artifacts and reference documents
diff --git a/googleapiclient/discovery_cache/documents/androiddeviceprovisioning.v1.json b/googleapiclient/discovery_cache/documents/androiddeviceprovisioning.v1.json
index 57519df..0e1ceb7f 100644
--- a/googleapiclient/discovery_cache/documents/androiddeviceprovisioning.v1.json
+++ b/googleapiclient/discovery_cache/documents/androiddeviceprovisioning.v1.json
@@ -1,61 +1,39 @@
 {
   "basePath": "",
-  "title": "Android Device Provisioning Partner API",
-  "version": "v1",
   "baseUrl": "https://androiddeviceprovisioning.googleapis.com/",
+  "batchPath": "batch",
+  "canonicalName": "Android Provisioning Partner",
+  "description": "Automates Android zero-touch enrollment for device resellers, customers, and EMMs.",
+  "discoveryVersion": "v1",
+  "documentationLink": "https://developers.google.com/zero-touch/",
+  "fullyEncodeReservedExpansion": true,
+  "icons": {
+    "x16": "http://www.google.com/images/icons/product/search-16.gif",
+    "x32": "http://www.google.com/images/icons/product/search-32.gif"
+  },
+  "id": "androiddeviceprovisioning:v1",
+  "kind": "discovery#restDescription",
+  "mtlsRootUrl": "https://androiddeviceprovisioning.mtls.googleapis.com/",
+  "name": "androiddeviceprovisioning",
+  "ownerDomain": "google.com",
+  "ownerName": "Google",
   "parameters": {
-    "access_token": {
-      "location": "query",
-      "description": "OAuth access token.",
-      "type": "string"
-    },
-    "prettyPrint": {
-      "type": "boolean",
-      "location": "query",
-      "default": "true",
-      "description": "Returns response with indentations and line breaks."
-    },
-    "quotaUser": {
-      "type": "string",
-      "location": "query",
-      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters."
-    },
-    "uploadType": {
-      "location": "query",
-      "type": "string",
-      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")."
-    },
-    "callback": {
-      "description": "JSONP",
-      "type": "string",
-      "location": "query"
-    },
     "$.xgafv": {
-      "enumDescriptions": [
-        "v1 error format",
-        "v2 error format"
-      ],
       "description": "V1 error format.",
       "enum": [
         "1",
         "2"
       ],
-      "type": "string",
-      "location": "query"
-    },
-    "fields": {
-      "description": "Selector specifying which fields to include in a partial response.",
-      "type": "string",
-      "location": "query"
-    },
-    "oauth_token": {
-      "type": "string",
-      "description": "OAuth 2.0 token for the current user.",
-      "location": "query"
-    },
-    "key": {
+      "enumDescriptions": [
+        "v1 error format",
+        "v2 error format"
+      ],
       "location": "query",
-      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
+      "type": "string"
+    },
+    "access_token": {
+      "description": "OAuth access token.",
+      "location": "query",
       "type": "string"
     },
     "alt": {
@@ -66,154 +44,761 @@
         "media",
         "proto"
       ],
-      "location": "query",
       "enumDescriptions": [
         "Responses with Content-Type of application/json",
         "Media download with context-dependent Content-Type",
         "Responses with Content-Type of application/x-protobuf"
       ],
+      "location": "query",
+      "type": "string"
+    },
+    "callback": {
+      "description": "JSONP",
+      "location": "query",
+      "type": "string"
+    },
+    "fields": {
+      "description": "Selector specifying which fields to include in a partial response.",
+      "location": "query",
+      "type": "string"
+    },
+    "key": {
+      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
+      "location": "query",
+      "type": "string"
+    },
+    "oauth_token": {
+      "description": "OAuth 2.0 token for the current user.",
+      "location": "query",
+      "type": "string"
+    },
+    "prettyPrint": {
+      "default": "true",
+      "description": "Returns response with indentations and line breaks.",
+      "location": "query",
+      "type": "boolean"
+    },
+    "quotaUser": {
+      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
+      "location": "query",
+      "type": "string"
+    },
+    "uploadType": {
+      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
+      "location": "query",
       "type": "string"
     },
     "upload_protocol": {
-      "type": "string",
+      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
       "location": "query",
-      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")."
+      "type": "string"
     }
   },
-  "batchPath": "batch",
-  "documentationLink": "https://developers.google.com/zero-touch/",
-  "ownerDomain": "google.com",
   "protocol": "rest",
-  "servicePath": "",
-  "icons": {
-    "x16": "http://www.google.com/images/icons/product/search-16.gif",
-    "x32": "http://www.google.com/images/icons/product/search-32.gif"
-  },
-  "canonicalName": "Android Provisioning Partner",
-  "version_module": true,
-  "description": "Automates Android zero-touch enrollment for device resellers, customers, and EMMs.",
-  "name": "androiddeviceprovisioning",
-  "discoveryVersion": "v1",
-  "kind": "discovery#restDescription",
   "resources": {
+    "customers": {
+      "methods": {
+        "list": {
+          "description": "Lists the user's customer accounts.",
+          "flatPath": "v1/customers",
+          "httpMethod": "GET",
+          "id": "androiddeviceprovisioning.customers.list",
+          "parameterOrder": [],
+          "parameters": {
+            "pageSize": {
+              "description": "The maximum number of customers to show in a page of results. A number between 1 and 100 (inclusive).",
+              "format": "int32",
+              "location": "query",
+              "type": "integer"
+            },
+            "pageToken": {
+              "description": "A token specifying which result page to return.",
+              "location": "query",
+              "type": "string"
+            }
+          },
+          "path": "v1/customers",
+          "response": {
+            "$ref": "CustomerListCustomersResponse"
+          }
+        }
+      },
+      "resources": {
+        "configurations": {
+          "methods": {
+            "create": {
+              "description": "Creates a new configuration. Once created, a customer can apply the configuration to devices.",
+              "flatPath": "v1/customers/{customersId}/configurations",
+              "httpMethod": "POST",
+              "id": "androiddeviceprovisioning.customers.configurations.create",
+              "parameterOrder": [
+                "parent"
+              ],
+              "parameters": {
+                "parent": {
+                  "description": "Required. The customer that manages the configuration. An API resource name in the format `customers/[CUSTOMER_ID]`.",
+                  "location": "path",
+                  "pattern": "^customers/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/{+parent}/configurations",
+              "request": {
+                "$ref": "Configuration"
+              },
+              "response": {
+                "$ref": "Configuration"
+              }
+            },
+            "delete": {
+              "description": "Deletes an unused configuration. The API call fails if the customer has devices with the configuration applied.",
+              "flatPath": "v1/customers/{customersId}/configurations/{configurationsId}",
+              "httpMethod": "DELETE",
+              "id": "androiddeviceprovisioning.customers.configurations.delete",
+              "parameterOrder": [
+                "name"
+              ],
+              "parameters": {
+                "name": {
+                  "description": "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.",
+                  "location": "path",
+                  "pattern": "^customers/[^/]+/configurations/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/{+name}",
+              "response": {
+                "$ref": "Empty"
+              }
+            },
+            "get": {
+              "description": "Gets the details of a configuration.",
+              "flatPath": "v1/customers/{customersId}/configurations/{configurationsId}",
+              "httpMethod": "GET",
+              "id": "androiddeviceprovisioning.customers.configurations.get",
+              "parameterOrder": [
+                "name"
+              ],
+              "parameters": {
+                "name": {
+                  "description": "Required. The configuration to get. An API resource name in the format `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`.",
+                  "location": "path",
+                  "pattern": "^customers/[^/]+/configurations/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/{+name}",
+              "response": {
+                "$ref": "Configuration"
+              }
+            },
+            "list": {
+              "description": "Lists a customer's configurations.",
+              "flatPath": "v1/customers/{customersId}/configurations",
+              "httpMethod": "GET",
+              "id": "androiddeviceprovisioning.customers.configurations.list",
+              "parameterOrder": [
+                "parent"
+              ],
+              "parameters": {
+                "parent": {
+                  "description": "Required. The customer that manages the listed configurations. An API resource name in the format `customers/[CUSTOMER_ID]`.",
+                  "location": "path",
+                  "pattern": "^customers/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/{+parent}/configurations",
+              "response": {
+                "$ref": "CustomerListConfigurationsResponse"
+              }
+            },
+            "patch": {
+              "description": "Updates a configuration's field values.",
+              "flatPath": "v1/customers/{customersId}/configurations/{configurationsId}",
+              "httpMethod": "PATCH",
+              "id": "androiddeviceprovisioning.customers.configurations.patch",
+              "parameterOrder": [
+                "name"
+              ],
+              "parameters": {
+                "name": {
+                  "description": "Output only. The API resource name in the format `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. Assigned by the server.",
+                  "location": "path",
+                  "pattern": "^customers/[^/]+/configurations/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                },
+                "updateMask": {
+                  "description": "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.",
+                  "format": "google-fieldmask",
+                  "location": "query",
+                  "type": "string"
+                }
+              },
+              "path": "v1/{+name}",
+              "request": {
+                "$ref": "Configuration"
+              },
+              "response": {
+                "$ref": "Configuration"
+              }
+            }
+          }
+        },
+        "devices": {
+          "methods": {
+            "applyConfiguration": {
+              "description": "Applies a Configuration to the device to register the device for zero-touch enrollment. After applying a configuration to a device, the device automatically provisions itself on first boot, or next factory reset.",
+              "flatPath": "v1/customers/{customersId}/devices:applyConfiguration",
+              "httpMethod": "POST",
+              "id": "androiddeviceprovisioning.customers.devices.applyConfiguration",
+              "parameterOrder": [
+                "parent"
+              ],
+              "parameters": {
+                "parent": {
+                  "description": "Required. The customer managing the device. An API resource name in the format `customers/[CUSTOMER_ID]`.",
+                  "location": "path",
+                  "pattern": "^customers/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/{+parent}/devices:applyConfiguration",
+              "request": {
+                "$ref": "CustomerApplyConfigurationRequest"
+              },
+              "response": {
+                "$ref": "Empty"
+              }
+            },
+            "get": {
+              "description": "Gets the details of a device.",
+              "flatPath": "v1/customers/{customersId}/devices/{devicesId}",
+              "httpMethod": "GET",
+              "id": "androiddeviceprovisioning.customers.devices.get",
+              "parameterOrder": [
+                "name"
+              ],
+              "parameters": {
+                "name": {
+                  "description": "Required. The device to get. An API resource name in the format `customers/[CUSTOMER_ID]/devices/[DEVICE_ID]`.",
+                  "location": "path",
+                  "pattern": "^customers/[^/]+/devices/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/{+name}",
+              "response": {
+                "$ref": "Device"
+              }
+            },
+            "list": {
+              "description": "Lists a customer's devices.",
+              "flatPath": "v1/customers/{customersId}/devices",
+              "httpMethod": "GET",
+              "id": "androiddeviceprovisioning.customers.devices.list",
+              "parameterOrder": [
+                "parent"
+              ],
+              "parameters": {
+                "pageSize": {
+                  "description": "The maximum number of devices to show in a page of results. Must be between 1 and 100 inclusive.",
+                  "format": "int64",
+                  "location": "query",
+                  "type": "string"
+                },
+                "pageToken": {
+                  "description": "A token specifying which result page to return.",
+                  "location": "query",
+                  "type": "string"
+                },
+                "parent": {
+                  "description": "Required. The customer managing the devices. An API resource name in the format `customers/[CUSTOMER_ID]`.",
+                  "location": "path",
+                  "pattern": "^customers/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/{+parent}/devices",
+              "response": {
+                "$ref": "CustomerListDevicesResponse"
+              }
+            },
+            "removeConfiguration": {
+              "description": "Removes a configuration from device.",
+              "flatPath": "v1/customers/{customersId}/devices:removeConfiguration",
+              "httpMethod": "POST",
+              "id": "androiddeviceprovisioning.customers.devices.removeConfiguration",
+              "parameterOrder": [
+                "parent"
+              ],
+              "parameters": {
+                "parent": {
+                  "description": "Required. The customer managing the device in the format `customers/[CUSTOMER_ID]`.",
+                  "location": "path",
+                  "pattern": "^customers/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/{+parent}/devices:removeConfiguration",
+              "request": {
+                "$ref": "CustomerRemoveConfigurationRequest"
+              },
+              "response": {
+                "$ref": "Empty"
+              }
+            },
+            "unclaim": {
+              "description": "Unclaims a device from a customer and removes it from zero-touch enrollment. After removing a device, a customer must contact their reseller to register the device into zero-touch enrollment again.",
+              "flatPath": "v1/customers/{customersId}/devices:unclaim",
+              "httpMethod": "POST",
+              "id": "androiddeviceprovisioning.customers.devices.unclaim",
+              "parameterOrder": [
+                "parent"
+              ],
+              "parameters": {
+                "parent": {
+                  "description": "Required. The customer managing the device. An API resource name in the format `customers/[CUSTOMER_ID]`.",
+                  "location": "path",
+                  "pattern": "^customers/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/{+parent}/devices:unclaim",
+              "request": {
+                "$ref": "CustomerUnclaimDeviceRequest"
+              },
+              "response": {
+                "$ref": "Empty"
+              }
+            }
+          }
+        },
+        "dpcs": {
+          "methods": {
+            "list": {
+              "description": "Lists the DPCs (device policy controllers) that support zero-touch enrollment.",
+              "flatPath": "v1/customers/{customersId}/dpcs",
+              "httpMethod": "GET",
+              "id": "androiddeviceprovisioning.customers.dpcs.list",
+              "parameterOrder": [
+                "parent"
+              ],
+              "parameters": {
+                "parent": {
+                  "description": "Required. The customer that can use the DPCs in configurations. An API resource name in the format `customers/[CUSTOMER_ID]`.",
+                  "location": "path",
+                  "pattern": "^customers/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/{+parent}/dpcs",
+              "response": {
+                "$ref": "CustomerListDpcsResponse"
+              }
+            }
+          }
+        }
+      }
+    },
+    "operations": {
+      "methods": {
+        "get": {
+          "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
+          "flatPath": "v1/operations/{operationsId}",
+          "httpMethod": "GET",
+          "id": "androiddeviceprovisioning.operations.get",
+          "parameterOrder": [
+            "name"
+          ],
+          "parameters": {
+            "name": {
+              "description": "The name of the operation resource.",
+              "location": "path",
+              "pattern": "^operations/.*$",
+              "required": true,
+              "type": "string"
+            }
+          },
+          "path": "v1/{+name}",
+          "response": {
+            "$ref": "Operation"
+          }
+        }
+      }
+    },
     "partners": {
       "resources": {
         "customers": {
           "methods": {
             "create": {
-              "request": {
-                "$ref": "CreateCustomerRequest"
-              },
-              "flatPath": "v1/partners/{partnersId}/customers",
-              "path": "v1/{+parent}/customers",
               "description": "Creates a customer for zero-touch enrollment. After the method returns successfully, admin and owner roles can manage devices and EMM configs by calling API methods or using their zero-touch enrollment portal. The customer receives an email that welcomes them to zero-touch enrollment and explains how to sign into the portal.",
-              "parameters": {
-                "parent": {
-                  "required": true,
-                  "pattern": "^partners/[^/]+$",
-                  "description": "Required. The parent resource ID in the format `partners/[PARTNER_ID]` that identifies the reseller.",
-                  "location": "path",
-                  "type": "string"
-                }
-              },
+              "flatPath": "v1/partners/{partnersId}/customers",
+              "httpMethod": "POST",
+              "id": "androiddeviceprovisioning.partners.customers.create",
               "parameterOrder": [
                 "parent"
               ],
-              "httpMethod": "POST",
-              "id": "androiddeviceprovisioning.partners.customers.create",
+              "parameters": {
+                "parent": {
+                  "description": "Required. The parent resource ID in the format `partners/[PARTNER_ID]` that identifies the reseller.",
+                  "location": "path",
+                  "pattern": "^partners/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/{+parent}/customers",
+              "request": {
+                "$ref": "CreateCustomerRequest"
+              },
               "response": {
                 "$ref": "Company"
               }
             },
             "list": {
-              "parameters": {
-                "partnerId": {
-                  "location": "path",
-                  "required": true,
-                  "format": "int64",
-                  "pattern": "^[^/]+$",
-                  "description": "Required. The ID of the reseller partner.",
-                  "type": "string"
-                },
-                "pageSize": {
-                  "description": "The maximum number of results to be returned. If not specified or 0, all the records are returned.",
-                  "type": "integer",
-                  "format": "int32",
-                  "location": "query"
-                },
-                "pageToken": {
-                  "location": "query",
-                  "type": "string",
-                  "description": "A token identifying a page of results returned by the server."
-                }
-              },
-              "flatPath": "v1/partners/{partnersId}/customers",
-              "id": "androiddeviceprovisioning.partners.customers.list",
-              "path": "v1/partners/{+partnerId}/customers",
               "description": "Lists the customers that are enrolled to the reseller identified by the `partnerId` argument. This list includes customers that the reseller created and customers that enrolled themselves using the portal.",
+              "flatPath": "v1/partners/{partnersId}/customers",
               "httpMethod": "GET",
+              "id": "androiddeviceprovisioning.partners.customers.list",
               "parameterOrder": [
                 "partnerId"
               ],
+              "parameters": {
+                "pageSize": {
+                  "description": "The maximum number of results to be returned. If not specified or 0, all the records are returned.",
+                  "format": "int32",
+                  "location": "query",
+                  "type": "integer"
+                },
+                "pageToken": {
+                  "description": "A token identifying a page of results returned by the server.",
+                  "location": "query",
+                  "type": "string"
+                },
+                "partnerId": {
+                  "description": "Required. The ID of the reseller partner.",
+                  "format": "int64",
+                  "location": "path",
+                  "pattern": "^[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/partners/{+partnerId}/customers",
               "response": {
                 "$ref": "ListCustomersResponse"
               }
             }
           }
         },
+        "devices": {
+          "methods": {
+            "claim": {
+              "description": "Claims a device for a customer and adds it to zero-touch enrollment. If the device is already claimed by another customer, the call returns an error.",
+              "flatPath": "v1/partners/{partnersId}/devices:claim",
+              "httpMethod": "POST",
+              "id": "androiddeviceprovisioning.partners.devices.claim",
+              "parameterOrder": [
+                "partnerId"
+              ],
+              "parameters": {
+                "partnerId": {
+                  "description": "Required. The ID of the reseller partner.",
+                  "format": "int64",
+                  "location": "path",
+                  "pattern": "^[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/partners/{+partnerId}/devices:claim",
+              "request": {
+                "$ref": "ClaimDeviceRequest"
+              },
+              "response": {
+                "$ref": "ClaimDeviceResponse"
+              }
+            },
+            "claimAsync": {
+              "description": "Claims a batch of devices for a customer asynchronously. Adds the devices to zero-touch enrollment. To learn more, read [Long\u2011running batch operations](/zero-touch/guides/how-it-works#operations).",
+              "flatPath": "v1/partners/{partnersId}/devices:claimAsync",
+              "httpMethod": "POST",
+              "id": "androiddeviceprovisioning.partners.devices.claimAsync",
+              "parameterOrder": [
+                "partnerId"
+              ],
+              "parameters": {
+                "partnerId": {
+                  "description": "Required. The ID of the reseller partner.",
+                  "format": "int64",
+                  "location": "path",
+                  "pattern": "^[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/partners/{+partnerId}/devices:claimAsync",
+              "request": {
+                "$ref": "ClaimDevicesRequest"
+              },
+              "response": {
+                "$ref": "Operation"
+              }
+            },
+            "findByIdentifier": {
+              "description": "Finds devices by hardware identifiers, such as IMEI.",
+              "flatPath": "v1/partners/{partnersId}/devices:findByIdentifier",
+              "httpMethod": "POST",
+              "id": "androiddeviceprovisioning.partners.devices.findByIdentifier",
+              "parameterOrder": [
+                "partnerId"
+              ],
+              "parameters": {
+                "partnerId": {
+                  "description": "Required. The ID of the reseller partner.",
+                  "format": "int64",
+                  "location": "path",
+                  "pattern": "^[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/partners/{+partnerId}/devices:findByIdentifier",
+              "request": {
+                "$ref": "FindDevicesByDeviceIdentifierRequest"
+              },
+              "response": {
+                "$ref": "FindDevicesByDeviceIdentifierResponse"
+              }
+            },
+            "findByOwner": {
+              "description": "Finds devices claimed for customers. The results only contain devices registered to the reseller that's identified by the `partnerId` argument. The customer's devices purchased from other resellers don't appear in the results.",
+              "flatPath": "v1/partners/{partnersId}/devices:findByOwner",
+              "httpMethod": "POST",
+              "id": "androiddeviceprovisioning.partners.devices.findByOwner",
+              "parameterOrder": [
+                "partnerId"
+              ],
+              "parameters": {
+                "partnerId": {
+                  "description": "Required. The ID of the reseller partner.",
+                  "format": "int64",
+                  "location": "path",
+                  "pattern": "^[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/partners/{+partnerId}/devices:findByOwner",
+              "request": {
+                "$ref": "FindDevicesByOwnerRequest"
+              },
+              "response": {
+                "$ref": "FindDevicesByOwnerResponse"
+              }
+            },
+            "get": {
+              "description": "Gets a device.",
+              "flatPath": "v1/partners/{partnersId}/devices/{devicesId}",
+              "httpMethod": "GET",
+              "id": "androiddeviceprovisioning.partners.devices.get",
+              "parameterOrder": [
+                "name"
+              ],
+              "parameters": {
+                "name": {
+                  "description": "Required. The device API resource name in the format `partners/[PARTNER_ID]/devices/[DEVICE_ID]`.",
+                  "location": "path",
+                  "pattern": "^partners/[^/]+/devices/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/{+name}",
+              "response": {
+                "$ref": "Device"
+              }
+            },
+            "metadata": {
+              "description": "Updates reseller metadata associated with the device.",
+              "flatPath": "v1/partners/{partnersId}/devices/{devicesId}/metadata",
+              "httpMethod": "POST",
+              "id": "androiddeviceprovisioning.partners.devices.metadata",
+              "parameterOrder": [
+                "metadataOwnerId",
+                "deviceId"
+              ],
+              "parameters": {
+                "deviceId": {
+                  "description": "Required. The ID of the device.",
+                  "format": "int64",
+                  "location": "path",
+                  "pattern": "^[^/]+$",
+                  "required": true,
+                  "type": "string"
+                },
+                "metadataOwnerId": {
+                  "description": "Required. The owner of the newly set metadata. Set this to the partner ID.",
+                  "format": "int64",
+                  "location": "path",
+                  "pattern": "^[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/partners/{+metadataOwnerId}/devices/{+deviceId}/metadata",
+              "request": {
+                "$ref": "UpdateDeviceMetadataRequest"
+              },
+              "response": {
+                "$ref": "DeviceMetadata"
+              }
+            },
+            "unclaim": {
+              "description": "Unclaims a device from a customer and removes it from zero-touch enrollment.",
+              "flatPath": "v1/partners/{partnersId}/devices:unclaim",
+              "httpMethod": "POST",
+              "id": "androiddeviceprovisioning.partners.devices.unclaim",
+              "parameterOrder": [
+                "partnerId"
+              ],
+              "parameters": {
+                "partnerId": {
+                  "description": "Required. The ID of the reseller partner.",
+                  "format": "int64",
+                  "location": "path",
+                  "pattern": "^[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/partners/{+partnerId}/devices:unclaim",
+              "request": {
+                "$ref": "UnclaimDeviceRequest"
+              },
+              "response": {
+                "$ref": "Empty"
+              }
+            },
+            "unclaimAsync": {
+              "description": "Unclaims a batch of devices for a customer asynchronously. Removes the devices from zero-touch enrollment. To learn more, read [Long\u2011running batch operations](/zero-touch/guides/how-it-works#operations).",
+              "flatPath": "v1/partners/{partnersId}/devices:unclaimAsync",
+              "httpMethod": "POST",
+              "id": "androiddeviceprovisioning.partners.devices.unclaimAsync",
+              "parameterOrder": [
+                "partnerId"
+              ],
+              "parameters": {
+                "partnerId": {
+                  "description": "Required. The reseller partner ID.",
+                  "format": "int64",
+                  "location": "path",
+                  "pattern": "^[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/partners/{+partnerId}/devices:unclaimAsync",
+              "request": {
+                "$ref": "UnclaimDevicesRequest"
+              },
+              "response": {
+                "$ref": "Operation"
+              }
+            },
+            "updateMetadataAsync": {
+              "description": "Updates the reseller metadata attached to a batch of devices. This method updates devices asynchronously and returns an `Operation` that can be used to track progress. Read [Long\u2011running batch operations](/zero-touch/guides/how-it-works#operations).",
+              "flatPath": "v1/partners/{partnersId}/devices:updateMetadataAsync",
+              "httpMethod": "POST",
+              "id": "androiddeviceprovisioning.partners.devices.updateMetadataAsync",
+              "parameterOrder": [
+                "partnerId"
+              ],
+              "parameters": {
+                "partnerId": {
+                  "description": "Required. The reseller partner ID.",
+                  "format": "int64",
+                  "location": "path",
+                  "pattern": "^[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/partners/{+partnerId}/devices:updateMetadataAsync",
+              "request": {
+                "$ref": "UpdateDeviceMetadataInBatchRequest"
+              },
+              "response": {
+                "$ref": "Operation"
+              }
+            }
+          }
+        },
         "vendors": {
           "methods": {
             "list": {
-              "id": "androiddeviceprovisioning.partners.vendors.list",
-              "parameters": {
-                "pageToken": {
-                  "type": "string",
-                  "location": "query",
-                  "description": "A token identifying a page of results returned by the server."
-                },
-                "parent": {
-                  "location": "path",
-                  "required": true,
-                  "type": "string",
-                  "description": "Required. The resource name in the format `partners/[PARTNER_ID]`.",
-                  "pattern": "^partners/[^/]+$"
-                },
-                "pageSize": {
-                  "type": "integer",
-                  "location": "query",
-                  "description": "The maximum number of results to be returned.",
-                  "format": "int32"
-                }
-              },
               "description": "Lists the vendors of the partner.",
-              "response": {
-                "$ref": "ListVendorsResponse"
-              },
+              "flatPath": "v1/partners/{partnersId}/vendors",
               "httpMethod": "GET",
+              "id": "androiddeviceprovisioning.partners.vendors.list",
               "parameterOrder": [
                 "parent"
               ],
-              "flatPath": "v1/partners/{partnersId}/vendors",
-              "path": "v1/{+parent}/vendors"
+              "parameters": {
+                "pageSize": {
+                  "description": "The maximum number of results to be returned.",
+                  "format": "int32",
+                  "location": "query",
+                  "type": "integer"
+                },
+                "pageToken": {
+                  "description": "A token identifying a page of results returned by the server.",
+                  "location": "query",
+                  "type": "string"
+                },
+                "parent": {
+                  "description": "Required. The resource name in the format `partners/[PARTNER_ID]`.",
+                  "location": "path",
+                  "pattern": "^partners/[^/]+$",
+                  "required": true,
+                  "type": "string"
+                }
+              },
+              "path": "v1/{+parent}/vendors",
+              "response": {
+                "$ref": "ListVendorsResponse"
+              }
             }
           },
           "resources": {
             "customers": {
               "methods": {
                 "list": {
-                  "httpMethod": "GET",
-                  "flatPath": "v1/partners/{partnersId}/vendors/{vendorsId}/customers",
                   "description": "Lists the customers of the vendor.",
+                  "flatPath": "v1/partners/{partnersId}/vendors/{vendorsId}/customers",
+                  "httpMethod": "GET",
                   "id": "androiddeviceprovisioning.partners.vendors.customers.list",
                   "parameterOrder": [
                     "parent"
                   ],
                   "parameters": {
                     "pageSize": {
-                      "type": "integer",
                       "description": "The maximum number of results to be returned.",
+                      "format": "int32",
                       "location": "query",
-                      "format": "int32"
+                      "type": "integer"
                     },
                     "pageToken": {
                       "description": "A token identifying a page of results returned by the server.",
@@ -221,11 +806,11 @@
                       "type": "string"
                     },
                     "parent": {
-                      "pattern": "^partners/[^/]+/vendors/[^/]+$",
+                      "description": "Required. The resource name in the format `partners/[PARTNER_ID]/vendors/[VENDOR_ID]`.",
                       "location": "path",
-                      "type": "string",
+                      "pattern": "^partners/[^/]+/vendors/[^/]+$",
                       "required": true,
-                      "description": "Required. The resource name in the format `partners/[PARTNER_ID]/vendors/[VENDOR_ID]`."
+                      "type": "string"
                     }
                   },
                   "path": "v1/{+parent}/customers",
@@ -236,701 +821,32 @@
               }
             }
           }
-        },
-        "devices": {
-          "methods": {
-            "unclaim": {
-              "request": {
-                "$ref": "UnclaimDeviceRequest"
-              },
-              "httpMethod": "POST",
-              "flatPath": "v1/partners/{partnersId}/devices:unclaim",
-              "description": "Unclaims a device from a customer and removes it from zero-touch enrollment.",
-              "parameters": {
-                "partnerId": {
-                  "format": "int64",
-                  "pattern": "^[^/]+$",
-                  "description": "Required. The ID of the reseller partner.",
-                  "required": true,
-                  "type": "string",
-                  "location": "path"
-                }
-              },
-              "parameterOrder": [
-                "partnerId"
-              ],
-              "id": "androiddeviceprovisioning.partners.devices.unclaim",
-              "path": "v1/partners/{+partnerId}/devices:unclaim",
-              "response": {
-                "$ref": "Empty"
-              }
-            },
-            "unclaimAsync": {
-              "flatPath": "v1/partners/{partnersId}/devices:unclaimAsync",
-              "response": {
-                "$ref": "Operation"
-              },
-              "parameterOrder": [
-                "partnerId"
-              ],
-              "request": {
-                "$ref": "UnclaimDevicesRequest"
-              },
-              "description": "Unclaims a batch of devices for a customer asynchronously. Removes the devices from zero-touch enrollment. To learn more, read [Long‑running batch operations](/zero-touch/guides/how-it-works#operations).",
-              "httpMethod": "POST",
-              "parameters": {
-                "partnerId": {
-                  "pattern": "^[^/]+$",
-                  "type": "string",
-                  "format": "int64",
-                  "description": "Required. The reseller partner ID.",
-                  "required": true,
-                  "location": "path"
-                }
-              },
-              "path": "v1/partners/{+partnerId}/devices:unclaimAsync",
-              "id": "androiddeviceprovisioning.partners.devices.unclaimAsync"
-            },
-            "updateMetadataAsync": {
-              "path": "v1/partners/{+partnerId}/devices:updateMetadataAsync",
-              "flatPath": "v1/partners/{partnersId}/devices:updateMetadataAsync",
-              "parameterOrder": [
-                "partnerId"
-              ],
-              "httpMethod": "POST",
-              "description": "Updates the reseller metadata attached to a batch of devices. This method updates devices asynchronously and returns an `Operation` that can be used to track progress. Read [Long‑running batch operations](/zero-touch/guides/how-it-works#operations).",
-              "request": {
-                "$ref": "UpdateDeviceMetadataInBatchRequest"
-              },
-              "parameters": {
-                "partnerId": {
-                  "description": "Required. The reseller partner ID.",
-                  "format": "int64",
-                  "location": "path",
-                  "type": "string",
-                  "pattern": "^[^/]+$",
-                  "required": true
-                }
-              },
-              "id": "androiddeviceprovisioning.partners.devices.updateMetadataAsync",
-              "response": {
-                "$ref": "Operation"
-              }
-            },
-            "claimAsync": {
-              "request": {
-                "$ref": "ClaimDevicesRequest"
-              },
-              "parameterOrder": [
-                "partnerId"
-              ],
-              "parameters": {
-                "partnerId": {
-                  "location": "path",
-                  "required": true,
-                  "type": "string",
-                  "pattern": "^[^/]+$",
-                  "description": "Required. The ID of the reseller partner.",
-                  "format": "int64"
-                }
-              },
-              "response": {
-                "$ref": "Operation"
-              },
-              "path": "v1/partners/{+partnerId}/devices:claimAsync",
-              "id": "androiddeviceprovisioning.partners.devices.claimAsync",
-              "httpMethod": "POST",
-              "description": "Claims a batch of devices for a customer asynchronously. Adds the devices to zero-touch enrollment. To learn more, read [Long‑running batch operations](/zero-touch/guides/how-it-works#operations).",
-              "flatPath": "v1/partners/{partnersId}/devices:claimAsync"
-            },
-            "findByIdentifier": {
-              "response": {
-                "$ref": "FindDevicesByDeviceIdentifierResponse"
-              },
-              "parameters": {
-                "partnerId": {
-                  "required": true,
-                  "format": "int64",
-                  "type": "string",
-                  "pattern": "^[^/]+$",
-                  "description": "Required. The ID of the reseller partner.",
-                  "location": "path"
-                }
-              },
-              "path": "v1/partners/{+partnerId}/devices:findByIdentifier",
-              "flatPath": "v1/partners/{partnersId}/devices:findByIdentifier",
-              "id": "androiddeviceprovisioning.partners.devices.findByIdentifier",
-              "request": {
-                "$ref": "FindDevicesByDeviceIdentifierRequest"
-              },
-              "httpMethod": "POST",
-              "description": "Finds devices by hardware identifiers, such as IMEI.",
-              "parameterOrder": [
-                "partnerId"
-              ]
-            },
-            "get": {
-              "path": "v1/{+name}",
-              "httpMethod": "GET",
-              "id": "androiddeviceprovisioning.partners.devices.get",
-              "flatPath": "v1/partners/{partnersId}/devices/{devicesId}",
-              "response": {
-                "$ref": "Device"
-              },
-              "parameters": {
-                "name": {
-                  "required": true,
-                  "type": "string",
-                  "description": "Required. The device API resource name in the format `partners/[PARTNER_ID]/devices/[DEVICE_ID]`.",
-                  "pattern": "^partners/[^/]+/devices/[^/]+$",
-                  "location": "path"
-                }
-              },
-              "parameterOrder": [
-                "name"
-              ],
-              "description": "Gets a device."
-            },
-            "findByOwner": {
-              "path": "v1/partners/{+partnerId}/devices:findByOwner",
-              "response": {
-                "$ref": "FindDevicesByOwnerResponse"
-              },
-              "httpMethod": "POST",
-              "request": {
-                "$ref": "FindDevicesByOwnerRequest"
-              },
-              "flatPath": "v1/partners/{partnersId}/devices:findByOwner",
-              "description": "Finds devices claimed for customers. The results only contain devices registered to the reseller that's identified by the `partnerId` argument. The customer's devices purchased from other resellers don't appear in the results.",
-              "parameters": {
-                "partnerId": {
-                  "format": "int64",
-                  "pattern": "^[^/]+$",
-                  "type": "string",
-                  "required": true,
-                  "description": "Required. The ID of the reseller partner.",
-                  "location": "path"
-                }
-              },
-              "parameterOrder": [
-                "partnerId"
-              ],
-              "id": "androiddeviceprovisioning.partners.devices.findByOwner"
-            },
-            "claim": {
-              "parameters": {
-                "partnerId": {
-                  "pattern": "^[^/]+$",
-                  "format": "int64",
-                  "type": "string",
-                  "location": "path",
-                  "description": "Required. The ID of the reseller partner.",
-                  "required": true
-                }
-              },
-              "response": {
-                "$ref": "ClaimDeviceResponse"
-              },
-              "id": "androiddeviceprovisioning.partners.devices.claim",
-              "httpMethod": "POST",
-              "path": "v1/partners/{+partnerId}/devices:claim",
-              "request": {
-                "$ref": "ClaimDeviceRequest"
-              },
-              "flatPath": "v1/partners/{partnersId}/devices:claim",
-              "description": "Claims a device for a customer and adds it to zero-touch enrollment. If the device is already claimed by another customer, the call returns an error.",
-              "parameterOrder": [
-                "partnerId"
-              ]
-            },
-            "metadata": {
-              "response": {
-                "$ref": "DeviceMetadata"
-              },
-              "parameterOrder": [
-                "metadataOwnerId",
-                "deviceId"
-              ],
-              "parameters": {
-                "deviceId": {
-                  "required": true,
-                  "pattern": "^[^/]+$",
-                  "location": "path",
-                  "format": "int64",
-                  "description": "Required. The ID of the device.",
-                  "type": "string"
-                },
-                "metadataOwnerId": {
-                  "pattern": "^[^/]+$",
-                  "format": "int64",
-                  "location": "path",
-                  "required": true,
-                  "description": "Required. The owner of the newly set metadata. Set this to the partner ID.",
-                  "type": "string"
-                }
-              },
-              "request": {
-                "$ref": "UpdateDeviceMetadataRequest"
-              },
-              "path": "v1/partners/{+metadataOwnerId}/devices/{+deviceId}/metadata",
-              "description": "Updates reseller metadata associated with the device.",
-              "httpMethod": "POST",
-              "flatPath": "v1/partners/{partnersId}/devices/{devicesId}/metadata",
-              "id": "androiddeviceprovisioning.partners.devices.metadata"
-            }
-          }
-        }
-      }
-    },
-    "operations": {
-      "methods": {
-        "get": {
-          "httpMethod": "GET",
-          "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
-          "flatPath": "v1/operations/{operationsId}",
-          "path": "v1/{+name}",
-          "response": {
-            "$ref": "Operation"
-          },
-          "id": "androiddeviceprovisioning.operations.get",
-          "parameterOrder": [
-            "name"
-          ],
-          "parameters": {
-            "name": {
-              "description": "The name of the operation resource.",
-              "location": "path",
-              "pattern": "^operations/.*$",
-              "type": "string",
-              "required": true
-            }
-          }
-        }
-      }
-    },
-    "customers": {
-      "resources": {
-        "configurations": {
-          "methods": {
-            "patch": {
-              "httpMethod": "PATCH",
-              "flatPath": "v1/customers/{customersId}/configurations/{configurationsId}",
-              "id": "androiddeviceprovisioning.customers.configurations.patch",
-              "description": "Updates a configuration's field values.",
-              "parameters": {
-                "name": {
-                  "pattern": "^customers/[^/]+/configurations/[^/]+$",
-                  "location": "path",
-                  "required": true,
-                  "type": "string",
-                  "description": "Output only. The API resource name in the format `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. Assigned by the server."
-                },
-                "updateMask": {
-                  "location": "query",
-                  "format": "google-fieldmask",
-                  "description": "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.",
-                  "type": "string"
-                }
-              },
-              "request": {
-                "$ref": "Configuration"
-              },
-              "path": "v1/{+name}",
-              "response": {
-                "$ref": "Configuration"
-              },
-              "parameterOrder": [
-                "name"
-              ]
-            },
-            "list": {
-              "flatPath": "v1/customers/{customersId}/configurations",
-              "httpMethod": "GET",
-              "id": "androiddeviceprovisioning.customers.configurations.list",
-              "description": "Lists a customer's configurations.",
-              "parameterOrder": [
-                "parent"
-              ],
-              "response": {
-                "$ref": "CustomerListConfigurationsResponse"
-              },
-              "parameters": {
-                "parent": {
-                  "description": "Required. The customer that manages the listed configurations. An API resource name in the format `customers/[CUSTOMER_ID]`.",
-                  "location": "path",
-                  "type": "string",
-                  "required": true,
-                  "pattern": "^customers/[^/]+$"
-                }
-              },
-              "path": "v1/{+parent}/configurations"
-            },
-            "delete": {
-              "httpMethod": "DELETE",
-              "path": "v1/{+name}",
-              "flatPath": "v1/customers/{customersId}/configurations/{configurationsId}",
-              "description": "Deletes an unused configuration. The API call fails if the customer has devices with the configuration applied.",
-              "response": {
-                "$ref": "Empty"
-              },
-              "parameterOrder": [
-                "name"
-              ],
-              "parameters": {
-                "name": {
-                  "description": "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.",
-                  "location": "path",
-                  "required": true,
-                  "type": "string",
-                  "pattern": "^customers/[^/]+/configurations/[^/]+$"
-                }
-              },
-              "id": "androiddeviceprovisioning.customers.configurations.delete"
-            },
-            "get": {
-              "response": {
-                "$ref": "Configuration"
-              },
-              "id": "androiddeviceprovisioning.customers.configurations.get",
-              "flatPath": "v1/customers/{customersId}/configurations/{configurationsId}",
-              "httpMethod": "GET",
-              "description": "Gets the details of a configuration.",
-              "parameterOrder": [
-                "name"
-              ],
-              "parameters": {
-                "name": {
-                  "required": true,
-                  "type": "string",
-                  "pattern": "^customers/[^/]+/configurations/[^/]+$",
-                  "location": "path",
-                  "description": "Required. The configuration to get. An API resource name in the format `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`."
-                }
-              },
-              "path": "v1/{+name}"
-            },
-            "create": {
-              "httpMethod": "POST",
-              "request": {
-                "$ref": "Configuration"
-              },
-              "parameterOrder": [
-                "parent"
-              ],
-              "path": "v1/{+parent}/configurations",
-              "response": {
-                "$ref": "Configuration"
-              },
-              "description": "Creates a new configuration. Once created, a customer can apply the configuration to devices.",
-              "parameters": {
-                "parent": {
-                  "description": "Required. The customer that manages the configuration. An API resource name in the format `customers/[CUSTOMER_ID]`.",
-                  "location": "path",
-                  "pattern": "^customers/[^/]+$",
-                  "required": true,
-                  "type": "string"
-                }
-              },
-              "flatPath": "v1/customers/{customersId}/configurations",
-              "id": "androiddeviceprovisioning.customers.configurations.create"
-            }
-          }
-        },
-        "devices": {
-          "methods": {
-            "list": {
-              "parameterOrder": [
-                "parent"
-              ],
-              "flatPath": "v1/customers/{customersId}/devices",
-              "description": "Lists a customer's devices.",
-              "response": {
-                "$ref": "CustomerListDevicesResponse"
-              },
-              "httpMethod": "GET",
-              "path": "v1/{+parent}/devices",
-              "id": "androiddeviceprovisioning.customers.devices.list",
-              "parameters": {
-                "pageToken": {
-                  "type": "string",
-                  "location": "query",
-                  "description": "A token specifying which result page to return."
-                },
-                "pageSize": {
-                  "location": "query",
-                  "description": "The maximum number of devices to show in a page of results. Must be between 1 and 100 inclusive.",
-                  "format": "int64",
-                  "type": "string"
-                },
-                "parent": {
-                  "pattern": "^customers/[^/]+$",
-                  "description": "Required. The customer managing the devices. An API resource name in the format `customers/[CUSTOMER_ID]`.",
-                  "location": "path",
-                  "type": "string",
-                  "required": true
-                }
-              }
-            },
-            "unclaim": {
-              "path": "v1/{+parent}/devices:unclaim",
-              "flatPath": "v1/customers/{customersId}/devices:unclaim",
-              "httpMethod": "POST",
-              "id": "androiddeviceprovisioning.customers.devices.unclaim",
-              "response": {
-                "$ref": "Empty"
-              },
-              "request": {
-                "$ref": "CustomerUnclaimDeviceRequest"
-              },
-              "description": "Unclaims a device from a customer and removes it from zero-touch enrollment. After removing a device, a customer must contact their reseller to register the device into zero-touch enrollment again.",
-              "parameterOrder": [
-                "parent"
-              ],
-              "parameters": {
-                "parent": {
-                  "type": "string",
-                  "required": true,
-                  "description": "Required. The customer managing the device. An API resource name in the format `customers/[CUSTOMER_ID]`.",
-                  "location": "path",
-                  "pattern": "^customers/[^/]+$"
-                }
-              }
-            },
-            "applyConfiguration": {
-              "response": {
-                "$ref": "Empty"
-              },
-              "httpMethod": "POST",
-              "id": "androiddeviceprovisioning.customers.devices.applyConfiguration",
-              "parameterOrder": [
-                "parent"
-              ],
-              "parameters": {
-                "parent": {
-                  "required": true,
-                  "description": "Required. The customer managing the device. An API resource name in the format `customers/[CUSTOMER_ID]`.",
-                  "type": "string",
-                  "location": "path",
-                  "pattern": "^customers/[^/]+$"
-                }
-              },
-              "request": {
-                "$ref": "CustomerApplyConfigurationRequest"
-              },
-              "description": "Applies a Configuration to the device to register the device for zero-touch enrollment. After applying a configuration to a device, the device automatically provisions itself on first boot, or next factory reset.",
-              "flatPath": "v1/customers/{customersId}/devices:applyConfiguration",
-              "path": "v1/{+parent}/devices:applyConfiguration"
-            },
-            "removeConfiguration": {
-              "id": "androiddeviceprovisioning.customers.devices.removeConfiguration",
-              "response": {
-                "$ref": "Empty"
-              },
-              "httpMethod": "POST",
-              "description": "Removes a configuration from device.",
-              "request": {
-                "$ref": "CustomerRemoveConfigurationRequest"
-              },
-              "parameters": {
-                "parent": {
-                  "required": true,
-                  "description": "Required. The customer managing the device in the format `customers/[CUSTOMER_ID]`.",
-                  "type": "string",
-                  "location": "path",
-                  "pattern": "^customers/[^/]+$"
-                }
-              },
-              "flatPath": "v1/customers/{customersId}/devices:removeConfiguration",
-              "path": "v1/{+parent}/devices:removeConfiguration",
-              "parameterOrder": [
-                "parent"
-              ]
-            },
-            "get": {
-              "parameters": {
-                "name": {
-                  "pattern": "^customers/[^/]+/devices/[^/]+$",
-                  "required": true,
-                  "location": "path",
-                  "type": "string",
-                  "description": "Required. The device to get. An API resource name in the format `customers/[CUSTOMER_ID]/devices/[DEVICE_ID]`."
-                }
-              },
-              "path": "v1/{+name}",
-              "httpMethod": "GET",
-              "response": {
-                "$ref": "Device"
-              },
-              "id": "androiddeviceprovisioning.customers.devices.get",
-              "parameterOrder": [
-                "name"
-              ],
-              "flatPath": "v1/customers/{customersId}/devices/{devicesId}",
-              "description": "Gets the details of a device."
-            }
-          }
-        },
-        "dpcs": {
-          "methods": {
-            "list": {
-              "response": {
-                "$ref": "CustomerListDpcsResponse"
-              },
-              "parameterOrder": [
-                "parent"
-              ],
-              "flatPath": "v1/customers/{customersId}/dpcs",
-              "description": "Lists the DPCs (device policy controllers) that support zero-touch enrollment.",
-              "httpMethod": "GET",
-              "parameters": {
-                "parent": {
-                  "type": "string",
-                  "required": true,
-                  "pattern": "^customers/[^/]+$",
-                  "description": "Required. The customer that can use the DPCs in configurations. An API resource name in the format `customers/[CUSTOMER_ID]`.",
-                  "location": "path"
-                }
-              },
-              "id": "androiddeviceprovisioning.customers.dpcs.list",
-              "path": "v1/{+parent}/dpcs"
-            }
-          }
-        }
-      },
-      "methods": {
-        "list": {
-          "path": "v1/customers",
-          "response": {
-            "$ref": "CustomerListCustomersResponse"
-          },
-          "id": "androiddeviceprovisioning.customers.list",
-          "parameters": {
-            "pageSize": {
-              "format": "int32",
-              "type": "integer",
-              "description": "The maximum number of customers to show in a page of results. A number between 1 and 100 (inclusive).",
-              "location": "query"
-            },
-            "pageToken": {
-              "type": "string",
-              "location": "query",
-              "description": "A token specifying which result page to return."
-            }
-          },
-          "parameterOrder": [],
-          "description": "Lists the user's customer accounts.",
-          "flatPath": "v1/customers",
-          "httpMethod": "GET"
         }
       }
     }
   },
-  "revision": "20200801",
-  "mtlsRootUrl": "https://androiddeviceprovisioning.mtls.googleapis.com/",
+  "revision": "20210410",
+  "rootUrl": "https://androiddeviceprovisioning.googleapis.com/",
   "schemas": {
     "ClaimDeviceRequest": {
-      "id": "ClaimDeviceRequest",
       "description": "Request message to claim a device on behalf of a customer.",
-      "type": "object",
+      "id": "ClaimDeviceRequest",
       "properties": {
-        "deviceIdentifier": {
-          "description": "Required. Required. The device identifier of the device to claim.",
-          "$ref": "DeviceIdentifier"
-        },
-        "sectionType": {
-          "type": "string",
-          "enumDescriptions": [
-            "Unspecified section type.",
-            "SIM-lock section type.",
-            "Zero-touch enrollment section type."
-          ],
-          "enum": [
-            "SECTION_TYPE_UNSPECIFIED",
-            "SECTION_TYPE_SIM_LOCK",
-            "SECTION_TYPE_ZERO_TOUCH"
-          ],
-          "description": "Required. The section type of the device's provisioning record."
-        },
         "customerId": {
           "description": "Required. The ID of the customer for whom the device is being claimed.",
-          "type": "string",
-          "format": "int64"
+          "format": "int64",
+          "type": "string"
         },
-        "deviceMetadata": {
-          "description": "Optional. The metadata to attach to the device.",
-          "$ref": "DeviceMetadata"
-        }
-      }
-    },
-    "Empty": {
-      "id": "Empty",
-      "properties": {},
-      "type": "object",
-      "description": "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 `{}`."
-    },
-    "UpdateMetadataArguments": {
-      "id": "UpdateMetadataArguments",
-      "type": "object",
-      "properties": {
-        "deviceId": {
-          "type": "string",
-          "description": "Required. Device ID of the device.",
-          "format": "int64"
+        "deviceIdentifier": {
+          "$ref": "DeviceIdentifier",
+          "description": "Required. Required. The device identifier of the device to claim."
         },
         "deviceMetadata": {
           "$ref": "DeviceMetadata",
-          "description": "Required. The metadata to update."
-        },
-        "deviceIdentifier": {
-          "description": "Required. Device identifier.",
-          "$ref": "DeviceIdentifier"
-        }
-      },
-      "description": "Identifies metadata updates to one device."
-    },
-    "DevicesLongRunningOperationResponse": {
-      "description": "Tracks the status of a long-running operation to claim, unclaim, or attach metadata to devices. To learn more, read [Long‑running batch operations](/zero-touch/guides/how-it-works#operations).",
-      "properties": {
-        "perDeviceStatus": {
-          "description": "The processing status for each device in the operation. One `PerDeviceStatus` per device. The list order matches the items in the original request.",
-          "type": "array",
-          "items": {
-            "$ref": "OperationPerDevice"
-          }
-        },
-        "successCount": {
-          "type": "integer",
-          "format": "int32",
-          "description": "A summary of how many items in the operation the server processed successfully. Updated as the operation progresses."
-        }
-      },
-      "type": "object",
-      "id": "DevicesLongRunningOperationResponse"
-    },
-    "PartnerUnclaim": {
-      "properties": {
-        "deviceIdentifier": {
-          "description": "Required. Device identifier of the device.",
-          "$ref": "DeviceIdentifier"
-        },
-        "deviceId": {
-          "format": "int64",
-          "description": "Required. Device ID of the device.",
-          "type": "string"
-        },
-        "vacationModeExpireTime": {
-          "description": "Optional. The expiration time of the vacation unlock.",
-          "type": "string",
-          "format": "google-datetime"
-        },
-        "vacationModeDays": {
-          "format": "int32",
-          "description": "Optional. The duration of the vacation unlock starting from when the request is processed. (1 day is treated as 24 hours)",
-          "type": "integer"
+          "description": "Optional. The metadata to attach to the device."
         },
         "sectionType": {
           "description": "Required. The section type of the device's provisioning record.",
-          "type": "string",
           "enum": [
             "SECTION_TYPE_UNSPECIFIED",
             "SECTION_TYPE_SIM_LOCK",
@@ -940,371 +856,75 @@
             "Unspecified section type.",
             "SIM-lock section type.",
             "Zero-touch enrollment section type."
-          ]
-        }
-      },
-      "id": "PartnerUnclaim",
-      "description": "Identifies one unclaim request.",
-      "type": "object"
-    },
-    "CustomerListConfigurationsResponse": {
-      "properties": {
-        "configurations": {
-          "description": "The configurations.",
-          "items": {
-            "$ref": "Configuration"
-          },
-          "type": "array"
-        }
-      },
-      "description": "Response message of customer's listing configuration.",
-      "id": "CustomerListConfigurationsResponse",
-      "type": "object"
-    },
-    "FindDevicesByOwnerRequest": {
-      "type": "object",
-      "id": "FindDevicesByOwnerRequest",
-      "description": "Request to find devices by customers.",
-      "properties": {
-        "customerId": {
-          "description": "Required. The list of customer IDs to search for.",
-          "items": {
-            "type": "string",
-            "format": "int64"
-          },
-          "type": "array"
-        },
-        "pageToken": {
-          "type": "string",
-          "description": "A token specifying which result page to return."
-        },
-        "limit": {
-          "description": "Required. The maximum number of devices to show in a page of results. Must be between 1 and 100 inclusive.",
-          "type": "string",
-          "format": "int64"
-        },
-        "sectionType": {
-          "enumDescriptions": [
-            "Unspecified section type.",
-            "SIM-lock section type.",
-            "Zero-touch enrollment section type."
           ],
-          "enum": [
-            "SECTION_TYPE_UNSPECIFIED",
-            "SECTION_TYPE_SIM_LOCK",
-            "SECTION_TYPE_ZERO_TOUCH"
-          ],
-          "type": "string",
-          "description": "Required. The section type of the device's provisioning record."
-        }
-      }
-    },
-    "CustomerListDevicesResponse": {
-      "properties": {
-        "devices": {
-          "description": "The customer's devices.",
-          "type": "array",
-          "items": {
-            "$ref": "Device"
-          }
-        },
-        "nextPageToken": {
-          "type": "string",
-          "description": "A token used to access the next page of results. Omitted if no further results are available."
-        }
-      },
-      "id": "CustomerListDevicesResponse",
-      "type": "object",
-      "description": "Response message of customer's liting devices."
-    },
-    "UpdateDeviceMetadataRequest": {
-      "properties": {
-        "deviceMetadata": {
-          "$ref": "DeviceMetadata",
-          "description": "Required. The metadata to attach to the device."
-        }
-      },
-      "type": "object",
-      "description": "Request to set metadata for a device.",
-      "id": "UpdateDeviceMetadataRequest"
-    },
-    "CustomerRemoveConfigurationRequest": {
-      "description": "Request message for customer to remove the configuration from device.",
-      "type": "object",
-      "id": "CustomerRemoveConfigurationRequest",
-      "properties": {
-        "device": {
-          "$ref": "DeviceReference",
-          "description": "Required. The device to remove the configuration from."
-        }
-      }
-    },
-    "Operation": {
-      "type": "object",
-      "description": "This resource represents a long-running operation that is the result of a network API call.",
-      "id": "Operation",
-      "properties": {
-        "name": {
-          "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.",
-          "type": "string"
-        },
-        "metadata": {
-          "additionalProperties": {
-            "type": "any",
-            "description": "Properties of the object. Contains field @type with type URL."
-          },
-          "description": "This field will contain a `DevicesLongRunningOperationMetadata` object if the operation is created by `claimAsync`, `unclaimAsync`, or `updateMetadataAsync`.",
-          "type": "object"
-        },
-        "error": {
-          "description": "This field will always be not set if the operation is created by `claimAsync`, `unclaimAsync`, or `updateMetadataAsync`. In this case, error information for each device is set in `response.perDeviceStatus.result.status`.",
-          "$ref": "Status"
-        },
-        "done": {
-          "type": "boolean",
-          "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available."
-        },
-        "response": {
-          "type": "object",
-          "description": "This field will contain a `DevicesLongRunningOperationResponse` object if the operation is created by `claimAsync`, `unclaimAsync`, or `updateMetadataAsync`.",
-          "additionalProperties": {
-            "type": "any",
-            "description": "Properties of the object. Contains field @type with type URL."
-          }
-        }
-      }
-    },
-    "FindDevicesByOwnerResponse": {
-      "type": "object",
-      "description": "Response containing found devices.",
-      "id": "FindDevicesByOwnerResponse",
-      "properties": {
-        "totalSize": {
-          "type": "integer",
-          "description": "The total count of items in the list irrespective of pagination.",
-          "format": "int32"
-        },
-        "devices": {
-          "type": "array",
-          "items": {
-            "$ref": "Device"
-          },
-          "description": "The customer's devices."
-        },
-        "nextPageToken": {
-          "type": "string",
-          "description": "A token used to access the next page of results. Omitted if no further results are available."
-        }
-      }
-    },
-    "UnclaimDevicesRequest": {
-      "type": "object",
-      "description": "Request to unclaim devices asynchronously in batch.",
-      "id": "UnclaimDevicesRequest",
-      "properties": {
-        "unclaims": {
-          "items": {
-            "$ref": "PartnerUnclaim"
-          },
-          "description": "Required. The list of devices to unclaim.",
-          "type": "array"
-        }
-      }
-    },
-    "DeviceIdentifier": {
-      "type": "object",
-      "id": "DeviceIdentifier",
-      "properties": {
-        "serialNumber": {
-          "type": "string",
-          "description": "The manufacturer's serial number for the device. This value might not be unique across different device models."
-        },
-        "model": {
-          "description": "The device model's name. Matches the device's built-in value returned from `android.os.Build.MODEL`. Allowed values are listed in [models](/zero-touch/resources/manufacturer-names#model-names).",
-          "type": "string"
-        },
-        "manufacturer": {
-          "type": "string",
-          "description": "The device manufacturer’s name. Matches the device's built-in value returned from `android.os.Build.MANUFACTURER`. Allowed values are listed in [manufacturers](/zero-touch/resources/manufacturer-names#manufacturers-names)."
-        },
-        "meid": {
-          "description": "The device’s MEID number.",
-          "type": "string"
-        },
-        "imei": {
-          "description": "The device’s IMEI number. Validated on input.",
           "type": "string"
         }
       },
-      "description": "Encapsulates hardware and product IDs to identify a manufactured device. To understand requirements on identifier sets, read [Identifiers](https://developers.google.com/zero-touch/guides/identifiers)."
-    },
-    "DeviceClaim": {
-      "properties": {
-        "vacationModeExpireTime": {
-          "description": "The timestamp when the device will exit ‘vacation mode’. This value is present iff the device is in 'vacation mode'.",
-          "type": "string",
-          "format": "google-datetime"
-        },
-        "sectionType": {
-          "type": "string",
-          "readOnly": true,
-          "enumDescriptions": [
-            "Unspecified section type.",
-            "SIM-lock section type.",
-            "Zero-touch enrollment section type."
-          ],
-          "description": "Output only. The type of claim made on the device.",
-          "enum": [
-            "SECTION_TYPE_UNSPECIFIED",
-            "SECTION_TYPE_SIM_LOCK",
-            "SECTION_TYPE_ZERO_TOUCH"
-          ]
-        },
-        "ownerCompanyId": {
-          "type": "string",
-          "description": "The ID of the Customer that purchased the device.",
-          "format": "int64"
-        },
-        "resellerId": {
-          "description": "The ID of the reseller that claimed the device.",
-          "format": "int64",
-          "type": "string"
-        },
-        "vacationModeStartTime": {
-          "description": "The timestamp when the device was put into ‘vacation mode’. This value is present iff the device is in 'vacation mode'.",
-          "format": "google-datetime",
-          "type": "string"
-        }
-      },
-      "description": "A record of a device claimed by a reseller for a customer. Devices claimed for zero-touch enrollment have a claim with the type `SECTION_TYPE_ZERO_TOUCH`. To learn more, read [Claim devices for customers](/zero-touch/guides/how-it-works#claim).",
-      "type": "object",
-      "id": "DeviceClaim"
-    },
-    "UpdateDeviceMetadataInBatchRequest": {
-      "properties": {
-        "updates": {
-          "type": "array",
-          "description": "Required. The list of metadata updates.",
-          "items": {
-            "$ref": "UpdateMetadataArguments"
-          }
-        }
-      },
-      "id": "UpdateDeviceMetadataInBatchRequest",
-      "description": "Request to update device metadata in batch.",
-      "type": "object"
-    },
-    "CustomerListCustomersResponse": {
-      "description": "Response message for listing my customers.",
-      "properties": {
-        "nextPageToken": {
-          "type": "string",
-          "description": "A token used to access the next page of results. Omitted if no further results are available."
-        },
-        "customers": {
-          "type": "array",
-          "description": "The customer accounts the calling user is a member of.",
-          "items": {
-            "$ref": "Company"
-          }
-        }
-      },
-      "id": "CustomerListCustomersResponse",
       "type": "object"
     },
     "ClaimDeviceResponse": {
+      "description": "Response message containing device id of the claim.",
+      "id": "ClaimDeviceResponse",
       "properties": {
         "deviceId": {
           "description": "The device ID of the claimed device.",
-          "type": "string",
-          "format": "int64"
-        },
-        "deviceName": {
-          "type": "string",
-          "description": "The resource name of the device in the format `partners/[PARTNER_ID]/devices/[DEVICE_ID]`."
-        }
-      },
-      "id": "ClaimDeviceResponse",
-      "description": "Response message containing device id of the claim.",
-      "type": "object"
-    },
-    "DeviceMetadata": {
-      "description": "Metadata entries that can be attached to a `Device`. To learn more, read [Device metadata](https://developers.google.com/zero-touch/guides/metadata).",
-      "id": "DeviceMetadata",
-      "properties": {
-        "entries": {
-          "additionalProperties": {
-            "type": "string"
-          },
-          "type": "object",
-          "description": "Metadata entries recorded as key-value pairs."
-        }
-      },
-      "type": "object"
-    },
-    "CustomerApplyConfigurationRequest": {
-      "type": "object",
-      "description": "Request message for customer to assign a configuration to device.",
-      "properties": {
-        "device": {
-          "$ref": "DeviceReference",
-          "description": "Required. The device the configuration is applied to."
-        },
-        "configuration": {
-          "description": "Required. The configuration applied to the device in the format `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`.",
-          "type": "string"
-        }
-      },
-      "id": "CustomerApplyConfigurationRequest"
-    },
-    "CustomerListDpcsResponse": {
-      "id": "CustomerListDpcsResponse",
-      "type": "object",
-      "description": "Response message of customer's listing DPCs.",
-      "properties": {
-        "dpcs": {
-          "items": {
-            "$ref": "Dpc"
-          },
-          "type": "array",
-          "description": "The list of DPCs available to the customer that support zero-touch enrollment."
-        }
-      }
-    },
-    "Company": {
-      "type": "object",
-      "id": "Company",
-      "description": "A reseller, vendor, or customer in the zero-touch reseller and customer APIs.",
-      "properties": {
-        "companyId": {
-          "description": "Output only. The ID of the company. Assigned by the server.",
-          "readOnly": true,
           "format": "int64",
           "type": "string"
         },
-        "ownerEmails": {
-          "type": "array",
+        "deviceName": {
+          "description": "The resource name of the device in the format `partners/[PARTNER_ID]/devices/[DEVICE_ID]`.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "ClaimDevicesRequest": {
+      "description": "Request to claim devices asynchronously in batch. Claiming a device adds the device to zero-touch enrollment and shows the device in the customer's view of the portal.",
+      "id": "ClaimDevicesRequest",
+      "properties": {
+        "claims": {
+          "description": "Required. A list of device claims.",
           "items": {
-            "type": "string"
+            "$ref": "PartnerClaim"
           },
-          "description": "Required. Input only. Email address of customer's users in the owner role. At least one `owner_email` is required. Each email address must be associated with a Google Account. Owners share the same access as admins but can also add, delete, and edit your organization's portal users."
-        },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "Company": {
+      "description": "A reseller, vendor, or customer in the zero-touch reseller and customer APIs.",
+      "id": "Company",
+      "properties": {
         "adminEmails": {
+          "description": "Optional. Email address of customer's users in the admin role. Each email address must be associated with a Google Account.",
           "items": {
             "type": "string"
           },
-          "type": "array",
-          "description": "Optional. Email address of customer's users in the admin role. Each email address must be associated with a Google Account."
+          "type": "array"
         },
-        "name": {
-          "type": "string",
+        "companyId": {
+          "description": "Output only. The ID of the company. Assigned by the server.",
+          "format": "int64",
           "readOnly": true,
-          "description": "Output only. The API resource name of the company. The resource name is one of the following formats: * `partners/[PARTNER_ID]/customers/[CUSTOMER_ID]` * `partners/[PARTNER_ID]/vendors/[VENDOR_ID]` * `partners/[PARTNER_ID]/vendors/[VENDOR_ID]/customers/[CUSTOMER_ID]` Assigned by the server."
+          "type": "string"
         },
         "companyName": {
           "description": "Required. The name of the company. For example _XYZ Corp_. Displayed to the company's employees in the zero-touch enrollment portal.",
           "type": "string"
         },
+        "name": {
+          "description": "Output only. The API resource name of the company. The resource name is one of the following formats: * `partners/[PARTNER_ID]/customers/[CUSTOMER_ID]` * `partners/[PARTNER_ID]/vendors/[VENDOR_ID]` * `partners/[PARTNER_ID]/vendors/[VENDOR_ID]/customers/[CUSTOMER_ID]` Assigned by the server.",
+          "readOnly": true,
+          "type": "string"
+        },
+        "ownerEmails": {
+          "description": "Required. Input only. Email address of customer's users in the owner role. At least one `owner_email` is required. Each email address must be associated with a Google Account. Owners share the same access as admins but can also add, delete, and edit your organization's portal users.",
+          "items": {
+            "type": "string"
+          },
+          "type": "array"
+        },
         "termsStatus": {
           "description": "Output only. Whether any user from the company has accepted the latest Terms of Service (ToS). See TermsStatus.",
           "enum": [
@@ -1322,14 +942,39 @@
           "readOnly": true,
           "type": "string"
         }
-      }
+      },
+      "type": "object"
     },
     "Configuration": {
+      "description": "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.",
+      "id": "Configuration",
       "properties": {
+        "companyName": {
+          "description": "Required. The name of the organization. Zero-touch enrollment shows this organization name to device users during device provisioning.",
+          "type": "string"
+        },
+        "configurationId": {
+          "description": "Output only. The ID of the configuration. Assigned by the server.",
+          "format": "int64",
+          "readOnly": true,
+          "type": "string"
+        },
+        "configurationName": {
+          "description": "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.",
+          "type": "string"
+        },
         "contactEmail": {
           "description": "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.",
           "type": "string"
         },
+        "contactPhone": {
+          "description": "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.",
+          "type": "string"
+        },
+        "customMessage": {
+          "description": "A message, containing one or two sentences, to help device users get help or give them more details about what\u2019s happening to their device. Zero-touch enrollment shows this message before the device is provisioned.",
+          "type": "string"
+        },
         "dpcExtras": {
           "description": "The JSON-formatted EMM provisioning extras that are passed to the DPC.",
           "type": "string"
@@ -1338,152 +983,322 @@
           "description": "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`.",
           "type": "string"
         },
-        "name": {
-          "readOnly": true,
-          "description": "Output only. The API resource name in the format `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. Assigned by the server.",
-          "type": "string"
-        },
-        "contactPhone": {
-          "type": "string",
-          "description": "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."
-        },
-        "configurationId": {
-          "type": "string",
-          "description": "Output only. The ID of the configuration. Assigned by the server.",
-          "readOnly": true,
-          "format": "int64"
-        },
-        "configurationName": {
-          "description": "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.",
-          "type": "string"
-        },
-        "customMessage": {
-          "description": "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.",
-          "type": "string"
-        },
-        "companyName": {
-          "description": "Required. The name of the organization. Zero-touch enrollment shows this organization name to device users during device provisioning.",
-          "type": "string"
-        },
         "isDefault": {
-          "type": "boolean",
-          "description": "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`."
-        }
-      },
-      "type": "object",
-      "description": "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.",
-      "id": "Configuration"
-    },
-    "OperationPerDevice": {
-      "description": "A task for each device in the operation. Corresponds to each device change in the request.",
-      "id": "OperationPerDevice",
-      "properties": {
-        "unclaim": {
-          "$ref": "PartnerUnclaim",
-          "description": "A copy of the original device-unclaim request received by the server."
+          "description": "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`.",
+          "type": "boolean"
         },
-        "updateMetadata": {
-          "description": "A copy of the original metadata-update request received by the server.",
-          "$ref": "UpdateMetadataArguments"
-        },
-        "result": {
-          "description": "The processing result for each device.",
-          "$ref": "PerDeviceStatusInBatch"
-        },
-        "claim": {
-          "description": "A copy of the original device-claim request received by the server.",
-          "$ref": "PartnerClaim"
+        "name": {
+          "description": "Output only. The API resource name in the format `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. Assigned by the server.",
+          "readOnly": true,
+          "type": "string"
         }
       },
       "type": "object"
     },
-    "UnclaimDeviceRequest": {
-      "type": "object",
+    "CreateCustomerRequest": {
+      "description": "Request message to create a customer.",
+      "id": "CreateCustomerRequest",
       "properties": {
+        "customer": {
+          "$ref": "Company",
+          "description": "Required. The company data to populate the new customer. Must contain a value for `companyName` and at least one `owner_email` that's associated with a Google Account. The values for `companyId` and `name` must be empty."
+        }
+      },
+      "type": "object"
+    },
+    "CustomerApplyConfigurationRequest": {
+      "description": "Request message for customer to assign a configuration to device.",
+      "id": "CustomerApplyConfigurationRequest",
+      "properties": {
+        "configuration": {
+          "description": "Required. The configuration applied to the device in the format `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`.",
+          "type": "string"
+        },
+        "device": {
+          "$ref": "DeviceReference",
+          "description": "Required. The device the configuration is applied to."
+        }
+      },
+      "type": "object"
+    },
+    "CustomerListConfigurationsResponse": {
+      "description": "Response message of customer's listing configuration.",
+      "id": "CustomerListConfigurationsResponse",
+      "properties": {
+        "configurations": {
+          "description": "The configurations.",
+          "items": {
+            "$ref": "Configuration"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "CustomerListCustomersResponse": {
+      "description": "Response message for listing my customers.",
+      "id": "CustomerListCustomersResponse",
+      "properties": {
+        "customers": {
+          "description": "The customer accounts the calling user is a member of.",
+          "items": {
+            "$ref": "Company"
+          },
+          "type": "array"
+        },
+        "nextPageToken": {
+          "description": "A token used to access the next page of results. Omitted if no further results are available.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "CustomerListDevicesResponse": {
+      "description": "Response message of customer's liting devices.",
+      "id": "CustomerListDevicesResponse",
+      "properties": {
+        "devices": {
+          "description": "The customer's devices.",
+          "items": {
+            "$ref": "Device"
+          },
+          "type": "array"
+        },
+        "nextPageToken": {
+          "description": "A token used to access the next page of results. Omitted if no further results are available.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "CustomerListDpcsResponse": {
+      "description": "Response message of customer's listing DPCs.",
+      "id": "CustomerListDpcsResponse",
+      "properties": {
+        "dpcs": {
+          "description": "The list of DPCs available to the customer that support zero-touch enrollment.",
+          "items": {
+            "$ref": "Dpc"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "CustomerRemoveConfigurationRequest": {
+      "description": "Request message for customer to remove the configuration from device.",
+      "id": "CustomerRemoveConfigurationRequest",
+      "properties": {
+        "device": {
+          "$ref": "DeviceReference",
+          "description": "Required. The device to remove the configuration from."
+        }
+      },
+      "type": "object"
+    },
+    "CustomerUnclaimDeviceRequest": {
+      "description": "Request message for customer to unclaim a device.",
+      "id": "CustomerUnclaimDeviceRequest",
+      "properties": {
+        "device": {
+          "$ref": "DeviceReference",
+          "description": "Required. The device to unclaim."
+        }
+      },
+      "type": "object"
+    },
+    "Device": {
+      "description": "An Android device registered for zero-touch enrollment.",
+      "id": "Device",
+      "properties": {
+        "claims": {
+          "description": "Output only. The provisioning claims for a device. Devices claimed for zero-touch enrollment have a claim with the type `SECTION_TYPE_ZERO_TOUCH`. Call `partners.devices.unclaim` or `partners.devices.unclaimAsync` to remove the device from zero-touch enrollment.",
+          "items": {
+            "$ref": "DeviceClaim"
+          },
+          "readOnly": true,
+          "type": "array"
+        },
+        "configuration": {
+          "description": "Not available to resellers.",
+          "type": "string"
+        },
+        "deviceId": {
+          "description": "Output only. The ID of the device. Assigned by the server.",
+          "format": "int64",
+          "readOnly": true,
+          "type": "string"
+        },
+        "deviceIdentifier": {
+          "$ref": "DeviceIdentifier",
+          "description": "The hardware IDs that identify a manufactured device. To learn more, read [Identifiers](https://developers.google.com/zero-touch/guides/identifiers)."
+        },
+        "deviceMetadata": {
+          "$ref": "DeviceMetadata",
+          "description": "The metadata attached to the device. Structured as key-value pairs. To learn more, read [Device metadata](https://developers.google.com/zero-touch/guides/metadata)."
+        },
+        "name": {
+          "description": "Output only. The API resource name in the format `partners/[PARTNER_ID]/devices/[DEVICE_ID]`. Assigned by the server.",
+          "readOnly": true,
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "DeviceClaim": {
+      "description": "A record of a device claimed by a reseller for a customer. Devices claimed for zero-touch enrollment have a claim with the type `SECTION_TYPE_ZERO_TOUCH`. To learn more, read [Claim devices for customers](/zero-touch/guides/how-it-works#claim).",
+      "id": "DeviceClaim",
+      "properties": {
+        "ownerCompanyId": {
+          "description": "The ID of the Customer that purchased the device.",
+          "format": "int64",
+          "type": "string"
+        },
+        "resellerId": {
+          "description": "The ID of the reseller that claimed the device.",
+          "format": "int64",
+          "type": "string"
+        },
         "sectionType": {
-          "enumDescriptions": [
-            "Unspecified section type.",
-            "SIM-lock section type.",
-            "Zero-touch enrollment section type."
-          ],
-          "type": "string",
+          "description": "Output only. The type of claim made on the device.",
           "enum": [
             "SECTION_TYPE_UNSPECIFIED",
             "SECTION_TYPE_SIM_LOCK",
             "SECTION_TYPE_ZERO_TOUCH"
           ],
-          "description": "Required. The section type of the device's provisioning record."
-        },
-        "deviceId": {
-          "format": "int64",
-          "type": "string",
-          "description": "Required. The device ID returned by `ClaimDevice`."
-        },
-        "vacationModeDays": {
-          "type": "integer",
-          "format": "int32",
-          "description": "The duration of the vacation unlock starting from when the request is processed. (1 day is treated as 24 hours)"
+          "enumDescriptions": [
+            "Unspecified section type.",
+            "SIM-lock section type.",
+            "Zero-touch enrollment section type."
+          ],
+          "readOnly": true,
+          "type": "string"
         },
         "vacationModeExpireTime": {
+          "description": "The timestamp when the device will exit \u2018vacation mode\u2019. This value is present iff the device is in 'vacation mode'.",
           "format": "google-datetime",
-          "type": "string",
-          "description": "The expiration time of the vacation unlock."
+          "type": "string"
         },
-        "deviceIdentifier": {
-          "description": "Required. The device identifier you used when you claimed this device.",
-          "$ref": "DeviceIdentifier"
+        "vacationModeStartTime": {
+          "description": "The timestamp when the device was put into \u2018vacation mode\u2019. This value is present iff the device is in 'vacation mode'.",
+          "format": "google-datetime",
+          "type": "string"
         }
       },
-      "id": "UnclaimDeviceRequest",
-      "description": "Request message to unclaim a device."
+      "type": "object"
+    },
+    "DeviceIdentifier": {
+      "description": "Encapsulates hardware and product IDs to identify a manufactured device. To understand requirements on identifier sets, read [Identifiers](https://developers.google.com/zero-touch/guides/identifiers).",
+      "id": "DeviceIdentifier",
+      "properties": {
+        "imei": {
+          "description": "The device\u2019s IMEI number. Validated on input.",
+          "type": "string"
+        },
+        "manufacturer": {
+          "description": "The device manufacturer\u2019s name. Matches the device's built-in value returned from `android.os.Build.MANUFACTURER`. Allowed values are listed in [manufacturers](/zero-touch/resources/manufacturer-names#manufacturers-names).",
+          "type": "string"
+        },
+        "meid": {
+          "description": "The device\u2019s MEID number.",
+          "type": "string"
+        },
+        "model": {
+          "description": "The device model's name. Matches the device's built-in value returned from `android.os.Build.MODEL`. Allowed values are listed in [models](/zero-touch/resources/manufacturer-names#model-names).",
+          "type": "string"
+        },
+        "serialNumber": {
+          "description": "The manufacturer's serial number for the device. This value might not be unique across different device models.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "DeviceMetadata": {
+      "description": "Metadata entries that can be attached to a `Device`. To learn more, read [Device metadata](https://developers.google.com/zero-touch/guides/metadata).",
+      "id": "DeviceMetadata",
+      "properties": {
+        "entries": {
+          "additionalProperties": {
+            "type": "string"
+          },
+          "description": "Metadata entries recorded as key-value pairs.",
+          "type": "object"
+        }
+      },
+      "type": "object"
+    },
+    "DeviceReference": {
+      "description": "A `DeviceReference` is an API abstraction that lets you supply a _device_ argument to a method using one of the following identifier types: * A numeric API resource ID. * Real-world hardware IDs, such as IMEI number, belonging to the manufactured device. Methods that operate on devices take a `DeviceReference` as a parameter type because it's more flexible for the caller. To learn more about device identifiers, read [Identifiers](https://developers.google.com/zero-touch/guides/identifiers).",
+      "id": "DeviceReference",
+      "properties": {
+        "deviceId": {
+          "description": "The ID of the device.",
+          "format": "int64",
+          "type": "string"
+        },
+        "deviceIdentifier": {
+          "$ref": "DeviceIdentifier",
+          "description": "The hardware IDs of the device."
+        }
+      },
+      "type": "object"
     },
     "DevicesLongRunningOperationMetadata": {
+      "description": "Tracks the status of a long-running operation to asynchronously update a batch of reseller metadata attached to devices. To learn more, read [Long\u2011running batch operations](/zero-touch/guides/how-it-works#operations).",
+      "id": "DevicesLongRunningOperationMetadata",
       "properties": {
-        "progress": {
+        "devicesCount": {
+          "description": "The number of metadata updates in the operation. This might be different from the number of updates in the request if the API can't parse some of the updates.",
           "format": "int32",
-          "description": "The processing progress of the operation. Measured as a number from 0 to 100. A value of 10O doesnt always mean the operation completed—check for the inclusion of a `done` field.",
           "type": "integer"
         },
         "processingStatus": {
-          "type": "string",
-          "enumDescriptions": [
-            "Invalid code. Shouldn't be used.",
-            "Pending.",
-            "In progress.",
-            "Processed. This doesn't mean all items were processed successfully, you should check the `response` field for the result of every item."
-          ],
+          "description": "The processing status of the operation.",
           "enum": [
             "BATCH_PROCESS_STATUS_UNSPECIFIED",
             "BATCH_PROCESS_PENDING",
             "BATCH_PROCESS_IN_PROGRESS",
             "BATCH_PROCESS_PROCESSED"
           ],
-          "description": "The processing status of the operation."
+          "enumDescriptions": [
+            "Invalid code. Shouldn't be used.",
+            "Pending.",
+            "In progress.",
+            "Processed. This doesn't mean all items were processed successfully, you should check the `response` field for the result of every item."
+          ],
+          "type": "string"
         },
-        "devicesCount": {
-          "description": "The number of metadata updates in the operation. This might be different from the number of updates in the request if the API can't parse some of the updates.",
-          "type": "integer",
-          "format": "int32"
+        "progress": {
+          "description": "The processing progress of the operation. Measured as a number from 0 to 100. A value of 10O doesnt always mean the operation completed\u2014check for the inclusion of a `done` field.",
+          "format": "int32",
+          "type": "integer"
         }
       },
-      "description": "Tracks the status of a long-running operation to asynchronously update a batch of reseller metadata attached to devices. To learn more, read [Long‑running batch operations](/zero-touch/guides/how-it-works#operations).",
-      "type": "object",
-      "id": "DevicesLongRunningOperationMetadata"
+      "type": "object"
     },
-    "CustomerUnclaimDeviceRequest": {
-      "id": "CustomerUnclaimDeviceRequest",
+    "DevicesLongRunningOperationResponse": {
+      "description": "Tracks the status of a long-running operation to claim, unclaim, or attach metadata to devices. To learn more, read [Long\u2011running batch operations](/zero-touch/guides/how-it-works#operations).",
+      "id": "DevicesLongRunningOperationResponse",
       "properties": {
-        "device": {
-          "description": "Required. The device to unclaim.",
-          "$ref": "DeviceReference"
+        "perDeviceStatus": {
+          "description": "The processing status for each device in the operation. One `PerDeviceStatus` per device. The list order matches the items in the original request.",
+          "items": {
+            "$ref": "OperationPerDevice"
+          },
+          "type": "array"
+        },
+        "successCount": {
+          "description": "A summary of how many items in the operation the server processed successfully. Updated as the operation progresses.",
+          "format": "int32",
+          "type": "integer"
         }
       },
-      "type": "object",
-      "description": "Request message for customer to unclaim a device."
+      "type": "object"
     },
     "Dpc": {
+      "description": "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.",
       "id": "Dpc",
-      "type": "object",
       "properties": {
         "dpcName": {
           "description": "Output only. The title of the DPC app in Google Play. For example, _Google Apps Device Policy_. Useful in an application's user interface.",
@@ -1492,180 +1307,345 @@
         },
         "name": {
           "description": "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`).",
-          "type": "string",
-          "readOnly": true
+          "readOnly": true,
+          "type": "string"
         },
         "packageName": {
+          "description": "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.",
           "readOnly": true,
-          "type": "string",
-          "description": "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."
+          "type": "string"
         }
       },
-      "description": "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."
+      "type": "object"
     },
-    "ListVendorsResponse": {
-      "type": "object",
-      "id": "ListVendorsResponse",
+    "Empty": {
+      "description": "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 `{}`.",
+      "id": "Empty",
+      "properties": {},
+      "type": "object"
+    },
+    "FindDevicesByDeviceIdentifierRequest": {
+      "description": "Request to find devices.",
+      "id": "FindDevicesByDeviceIdentifierRequest",
       "properties": {
-        "vendors": {
-          "type": "array",
+        "deviceIdentifier": {
+          "$ref": "DeviceIdentifier",
+          "description": "Required. Required. The device identifier to search for."
+        },
+        "limit": {
+          "description": "Required. The maximum number of devices to show in a page of results. Must be between 1 and 100 inclusive.",
+          "format": "int64",
+          "type": "string"
+        },
+        "pageToken": {
+          "description": "A token specifying which result page to return.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "FindDevicesByDeviceIdentifierResponse": {
+      "description": "Response containing found devices.",
+      "id": "FindDevicesByDeviceIdentifierResponse",
+      "properties": {
+        "devices": {
+          "description": "Found devices.",
+          "items": {
+            "$ref": "Device"
+          },
+          "type": "array"
+        },
+        "nextPageToken": {
+          "description": "A token used to access the next page of results. Omitted if no further results are available.",
+          "type": "string"
+        },
+        "totalSize": {
+          "description": "The total count of items in the list irrespective of pagination.",
+          "format": "int32",
+          "type": "integer"
+        }
+      },
+      "type": "object"
+    },
+    "FindDevicesByOwnerRequest": {
+      "description": "Request to find devices by customers.",
+      "id": "FindDevicesByOwnerRequest",
+      "properties": {
+        "customerId": {
+          "description": "Required. The list of customer IDs to search for.",
+          "items": {
+            "format": "int64",
+            "type": "string"
+          },
+          "type": "array"
+        },
+        "limit": {
+          "description": "Required. The maximum number of devices to show in a page of results. Must be between 1 and 100 inclusive.",
+          "format": "int64",
+          "type": "string"
+        },
+        "pageToken": {
+          "description": "A token specifying which result page to return.",
+          "type": "string"
+        },
+        "sectionType": {
+          "description": "Required. The section type of the device's provisioning record.",
+          "enum": [
+            "SECTION_TYPE_UNSPECIFIED",
+            "SECTION_TYPE_SIM_LOCK",
+            "SECTION_TYPE_ZERO_TOUCH"
+          ],
+          "enumDescriptions": [
+            "Unspecified section type.",
+            "SIM-lock section type.",
+            "Zero-touch enrollment section type."
+          ],
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "FindDevicesByOwnerResponse": {
+      "description": "Response containing found devices.",
+      "id": "FindDevicesByOwnerResponse",
+      "properties": {
+        "devices": {
+          "description": "The customer's devices.",
+          "items": {
+            "$ref": "Device"
+          },
+          "type": "array"
+        },
+        "nextPageToken": {
+          "description": "A token used to access the next page of results. Omitted if no further results are available.",
+          "type": "string"
+        },
+        "totalSize": {
+          "description": "The total count of items in the list irrespective of pagination.",
+          "format": "int32",
+          "type": "integer"
+        }
+      },
+      "type": "object"
+    },
+    "ListCustomersResponse": {
+      "description": "Response message of all customers related to this partner.",
+      "id": "ListCustomersResponse",
+      "properties": {
+        "customers": {
+          "description": "List of customers related to this reseller partner.",
           "items": {
             "$ref": "Company"
           },
-          "description": "List of vendors of the reseller partner. Fields `name`, `companyId` and `companyName` are populated to the Company object."
+          "type": "array"
         },
         "nextPageToken": {
           "description": "A token to retrieve the next page of results. Omitted if no further results are available.",
           "type": "string"
         },
         "totalSize": {
-          "format": "int32",
           "description": "The total count of items in the list irrespective of pagination.",
+          "format": "int32",
           "type": "integer"
         }
       },
-      "description": "Response message to list vendors of the partner."
+      "type": "object"
     },
-    "FindDevicesByDeviceIdentifierResponse": {
+    "ListVendorCustomersResponse": {
+      "description": "Response message to list customers of the vendor.",
+      "id": "ListVendorCustomersResponse",
       "properties": {
+        "customers": {
+          "description": "List of customers of the vendor.",
+          "items": {
+            "$ref": "Company"
+          },
+          "type": "array"
+        },
         "nextPageToken": {
-          "description": "A token used to access the next page of results. Omitted if no further results are available.",
+          "description": "A token to retrieve the next page of results. Omitted if no further results are available.",
           "type": "string"
         },
         "totalSize": {
-          "type": "integer",
           "description": "The total count of items in the list irrespective of pagination.",
-          "format": "int32"
-        },
-        "devices": {
-          "type": "array",
-          "description": "Found devices.",
-          "items": {
-            "$ref": "Device"
-          }
+          "format": "int32",
+          "type": "integer"
         }
       },
-      "type": "object",
-      "description": "Response containing found devices.",
-      "id": "FindDevicesByDeviceIdentifierResponse"
+      "type": "object"
     },
-    "Status": {
-      "type": "object",
-      "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
+    "ListVendorsResponse": {
+      "description": "Response message to list vendors of the partner.",
+      "id": "ListVendorsResponse",
       "properties": {
-        "code": {
-          "type": "integer",
-          "format": "int32",
-          "description": "The status code, which should be an enum value of google.rpc.Code."
+        "nextPageToken": {
+          "description": "A token to retrieve the next page of results. Omitted if no further results are available.",
+          "type": "string"
         },
-        "details": {
-          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
+        "totalSize": {
+          "description": "The total count of items in the list irrespective of pagination.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "vendors": {
+          "description": "List of vendors of the reseller partner. Fields `name`, `companyId` and `companyName` are populated to the Company object.",
           "items": {
-            "additionalProperties": {
-              "type": "any",
-              "description": "Properties of the object. Contains field @type with type URL."
-            },
-            "type": "object"
+            "$ref": "Company"
           },
           "type": "array"
-        },
-        "message": {
-          "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
-          "type": "string"
         }
       },
-      "id": "Status"
+      "type": "object"
     },
-    "ClaimDevicesRequest": {
-      "id": "ClaimDevicesRequest",
-      "type": "object",
-      "description": "Request to claim devices asynchronously in batch. Claiming a device adds the device to zero-touch enrollment and shows the device in the customer's view of the portal.",
+    "Operation": {
+      "description": "This resource represents a long-running operation that is the result of a network API call.",
+      "id": "Operation",
       "properties": {
-        "claims": {
-          "description": "Required. A list of device claims.",
-          "type": "array",
-          "items": {
-            "$ref": "PartnerClaim"
-          }
+        "done": {
+          "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.",
+          "type": "boolean"
+        },
+        "error": {
+          "$ref": "Status",
+          "description": "This field will always be not set if the operation is created by `claimAsync`, `unclaimAsync`, or `updateMetadataAsync`. In this case, error information for each device is set in `response.perDeviceStatus.result.status`."
+        },
+        "metadata": {
+          "additionalProperties": {
+            "description": "Properties of the object. Contains field @type with type URL.",
+            "type": "any"
+          },
+          "description": "This field will contain a `DevicesLongRunningOperationMetadata` object if the operation is created by `claimAsync`, `unclaimAsync`, or `updateMetadataAsync`.",
+          "type": "object"
+        },
+        "name": {
+          "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.",
+          "type": "string"
+        },
+        "response": {
+          "additionalProperties": {
+            "description": "Properties of the object. Contains field @type with type URL.",
+            "type": "any"
+          },
+          "description": "This field will contain a `DevicesLongRunningOperationResponse` object if the operation is created by `claimAsync`, `unclaimAsync`, or `updateMetadataAsync`.",
+          "type": "object"
         }
-      }
+      },
+      "type": "object"
     },
-    "Device": {
-      "id": "Device",
-      "description": "An Android device registered for zero-touch enrollment.",
-      "type": "object",
+    "OperationPerDevice": {
+      "description": "A task for each device in the operation. Corresponds to each device change in the request.",
+      "id": "OperationPerDevice",
       "properties": {
-        "deviceId": {
-          "description": "Output only. The ID of the device. Assigned by the server.",
-          "readOnly": true,
+        "claim": {
+          "$ref": "PartnerClaim",
+          "description": "A copy of the original device-claim request received by the server."
+        },
+        "result": {
+          "$ref": "PerDeviceStatusInBatch",
+          "description": "The processing result for each device."
+        },
+        "unclaim": {
+          "$ref": "PartnerUnclaim",
+          "description": "A copy of the original device-unclaim request received by the server."
+        },
+        "updateMetadata": {
+          "$ref": "UpdateMetadataArguments",
+          "description": "A copy of the original metadata-update request received by the server."
+        }
+      },
+      "type": "object"
+    },
+    "PartnerClaim": {
+      "description": "Identifies one claim request.",
+      "id": "PartnerClaim",
+      "properties": {
+        "customerId": {
+          "description": "Required. The ID of the customer for whom the device is being claimed.",
           "format": "int64",
           "type": "string"
         },
+        "deviceIdentifier": {
+          "$ref": "DeviceIdentifier",
+          "description": "Required. Required. Device identifier of the device."
+        },
         "deviceMetadata": {
           "$ref": "DeviceMetadata",
-          "description": "The metadata attached to the device. Structured as key-value pairs. To learn more, read [Device metadata](https://developers.google.com/zero-touch/guides/metadata)."
+          "description": "Required. The metadata to attach to the device at claim."
         },
-        "claims": {
-          "items": {
-            "$ref": "DeviceClaim"
-          },
-          "description": "Output only. The provisioning claims for a device. Devices claimed for zero-touch enrollment have a claim with the type `SECTION_TYPE_ZERO_TOUCH`. Call `partners.devices.unclaim` or `partners.devices.unclaimAsync` to remove the device from zero-touch enrollment.",
-          "readOnly": true,
-          "type": "array"
-        },
-        "name": {
-          "type": "string",
-          "description": "Output only. The API resource name in the format `partners/[PARTNER_ID]/devices/[DEVICE_ID]`. Assigned by the server.",
-          "readOnly": true
-        },
-        "deviceIdentifier": {
-          "$ref": "DeviceIdentifier",
-          "description": "The hardware IDs that identify a manufactured device. To learn more, read [Identifiers](https://developers.google.com/zero-touch/guides/identifiers)."
-        },
-        "configuration": {
-          "type": "string",
-          "description": "Not available to resellers."
-        }
-      }
-    },
-    "CreateCustomerRequest": {
-      "description": "Request message to create a customer.",
-      "type": "object",
-      "properties": {
-        "customer": {
-          "$ref": "Company",
-          "description": "Required. The company data to populate the new customer. Must contain a value for `companyName` and at least one `owner_email` that's associated with a Google Account. The values for `companyId` and `name` must be empty."
+        "sectionType": {
+          "description": "Required. The section type of the device's provisioning record.",
+          "enum": [
+            "SECTION_TYPE_UNSPECIFIED",
+            "SECTION_TYPE_SIM_LOCK",
+            "SECTION_TYPE_ZERO_TOUCH"
+          ],
+          "enumDescriptions": [
+            "Unspecified section type.",
+            "SIM-lock section type.",
+            "Zero-touch enrollment section type."
+          ],
+          "type": "string"
         }
       },
-      "id": "CreateCustomerRequest"
+      "type": "object"
     },
-    "FindDevicesByDeviceIdentifierRequest": {
-      "type": "object",
+    "PartnerUnclaim": {
+      "description": "Identifies one unclaim request.",
+      "id": "PartnerUnclaim",
       "properties": {
-        "pageToken": {
-          "type": "string",
-          "description": "A token specifying which result page to return."
-        },
-        "limit": {
-          "type": "string",
+        "deviceId": {
+          "description": "Required. Device ID of the device.",
           "format": "int64",
-          "description": "Required. The maximum number of devices to show in a page of results. Must be between 1 and 100 inclusive."
+          "type": "string"
         },
         "deviceIdentifier": {
           "$ref": "DeviceIdentifier",
-          "description": "Required. Required. The device identifier to search for."
+          "description": "Required. Device identifier of the device."
+        },
+        "sectionType": {
+          "description": "Required. The section type of the device's provisioning record.",
+          "enum": [
+            "SECTION_TYPE_UNSPECIFIED",
+            "SECTION_TYPE_SIM_LOCK",
+            "SECTION_TYPE_ZERO_TOUCH"
+          ],
+          "enumDescriptions": [
+            "Unspecified section type.",
+            "SIM-lock section type.",
+            "Zero-touch enrollment section type."
+          ],
+          "type": "string"
+        },
+        "vacationModeDays": {
+          "description": "Optional. The duration of the vacation unlock starting from when the request is processed. (1 day is treated as 24 hours)",
+          "format": "int32",
+          "type": "integer"
+        },
+        "vacationModeExpireTime": {
+          "description": "Optional. The expiration time of the vacation unlock.",
+          "format": "google-datetime",
+          "type": "string"
         }
       },
-      "description": "Request to find devices.",
-      "id": "FindDevicesByDeviceIdentifierRequest"
+      "type": "object"
     },
     "PerDeviceStatusInBatch": {
       "description": "Captures the processing status for each device in the operation.",
+      "id": "PerDeviceStatusInBatch",
       "properties": {
+        "deviceId": {
+          "description": "If processing succeeds, the device ID of the device.",
+          "format": "int64",
+          "type": "string"
+        },
         "errorIdentifier": {
           "description": "If processing fails, the error type.",
           "type": "string"
         },
+        "errorMessage": {
+          "description": "If processing fails, a developer message explaining what went wrong.",
+          "type": "string"
+        },
         "status": {
           "description": "The result status of the device after processing.",
           "enum": [
@@ -1689,119 +1669,139 @@
             "This section is claimed by another company."
           ],
           "type": "string"
-        },
-        "errorMessage": {
-          "type": "string",
-          "description": "If processing fails, a developer message explaining what went wrong."
-        },
-        "deviceId": {
-          "format": "int64",
-          "type": "string",
-          "description": "If processing succeeds, the device ID of the device."
         }
       },
-      "id": "PerDeviceStatusInBatch",
       "type": "object"
     },
-    "PartnerClaim": {
-      "id": "PartnerClaim",
-      "type": "object",
-      "description": "Identifies one claim request.",
+    "Status": {
+      "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
+      "id": "Status",
       "properties": {
-        "customerId": {
+        "code": {
+          "description": "The status code, which should be an enum value of google.rpc.Code.",
+          "format": "int32",
+          "type": "integer"
+        },
+        "details": {
+          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
+          "items": {
+            "additionalProperties": {
+              "description": "Properties of the object. Contains field @type with type URL.",
+              "type": "any"
+            },
+            "type": "object"
+          },
+          "type": "array"
+        },
+        "message": {
+          "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
+    "UnclaimDeviceRequest": {
+      "description": "Request message to unclaim a device.",
+      "id": "UnclaimDeviceRequest",
+      "properties": {
+        "deviceId": {
+          "description": "Required. The device ID returned by `ClaimDevice`.",
           "format": "int64",
-          "type": "string",
-          "description": "Required. The ID of the customer for whom the device is being claimed."
+          "type": "string"
         },
         "deviceIdentifier": {
           "$ref": "DeviceIdentifier",
-          "description": "Required. Required. Device identifier of the device."
+          "description": "Required. The device identifier you used when you claimed this device."
         },
         "sectionType": {
-          "type": "string",
-          "enumDescriptions": [
-            "Unspecified section type.",
-            "SIM-lock section type.",
-            "Zero-touch enrollment section type."
-          ],
+          "description": "Required. The section type of the device's provisioning record.",
           "enum": [
             "SECTION_TYPE_UNSPECIFIED",
             "SECTION_TYPE_SIM_LOCK",
             "SECTION_TYPE_ZERO_TOUCH"
           ],
-          "description": "Required. The section type of the device's provisioning record."
+          "enumDescriptions": [
+            "Unspecified section type.",
+            "SIM-lock section type.",
+            "Zero-touch enrollment section type."
+          ],
+          "type": "string"
         },
-        "deviceMetadata": {
-          "$ref": "DeviceMetadata",
-          "description": "Required. The metadata to attach to the device at claim."
-        }
-      }
-    },
-    "ListVendorCustomersResponse": {
-      "type": "object",
-      "properties": {
-        "totalSize": {
-          "type": "integer",
+        "vacationModeDays": {
+          "description": "The duration of the vacation unlock starting from when the request is processed. (1 day is treated as 24 hours)",
           "format": "int32",
-          "description": "The total count of items in the list irrespective of pagination."
+          "type": "integer"
         },
-        "customers": {
-          "items": {
-            "$ref": "Company"
-          },
-          "description": "List of customers of the vendor.",
-          "type": "array"
-        },
-        "nextPageToken": {
-          "description": "A token to retrieve the next page of results. Omitted if no further results are available.",
+        "vacationModeExpireTime": {
+          "description": "The expiration time of the vacation unlock.",
+          "format": "google-datetime",
           "type": "string"
         }
       },
-      "description": "Response message to list customers of the vendor.",
-      "id": "ListVendorCustomersResponse"
+      "type": "object"
     },
-    "DeviceReference": {
-      "type": "object",
-      "description": "A `DeviceReference` is an API abstraction that lets you supply a _device_ argument to a method using one of the following identifier types: * A numeric API resource ID. * Real-world hardware IDs, such as IMEI number, belonging to the manufactured device. Methods that operate on devices take a `DeviceReference` as a parameter type because it's more flexible for the caller. To learn more about device identifiers, read [Identifiers](https://developers.google.com/zero-touch/guides/identifiers).",
-      "id": "DeviceReference",
+    "UnclaimDevicesRequest": {
+      "description": "Request to unclaim devices asynchronously in batch.",
+      "id": "UnclaimDevicesRequest",
       "properties": {
-        "deviceIdentifier": {
-          "description": "The hardware IDs of the device.",
-          "$ref": "DeviceIdentifier"
-        },
-        "deviceId": {
-          "type": "string",
-          "description": "The ID of the device.",
-          "format": "int64"
-        }
-      }
-    },
-    "ListCustomersResponse": {
-      "id": "ListCustomersResponse",
-      "description": "Response message of all customers related to this partner.",
-      "properties": {
-        "nextPageToken": {
-          "type": "string",
-          "description": "A token to retrieve the next page of results. Omitted if no further results are available."
-        },
-        "totalSize": {
-          "description": "The total count of items in the list irrespective of pagination.",
-          "type": "integer",
-          "format": "int32"
-        },
-        "customers": {
+        "unclaims": {
+          "description": "Required. The list of devices to unclaim.",
           "items": {
-            "$ref": "Company"
+            "$ref": "PartnerUnclaim"
           },
-          "description": "List of customers related to this reseller partner.",
           "type": "array"
         }
       },
       "type": "object"
+    },
+    "UpdateDeviceMetadataInBatchRequest": {
+      "description": "Request to update device metadata in batch.",
+      "id": "UpdateDeviceMetadataInBatchRequest",
+      "properties": {
+        "updates": {
+          "description": "Required. The list of metadata updates.",
+          "items": {
+            "$ref": "UpdateMetadataArguments"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
+    "UpdateDeviceMetadataRequest": {
+      "description": "Request to set metadata for a device.",
+      "id": "UpdateDeviceMetadataRequest",
+      "properties": {
+        "deviceMetadata": {
+          "$ref": "DeviceMetadata",
+          "description": "Required. The metadata to attach to the device."
+        }
+      },
+      "type": "object"
+    },
+    "UpdateMetadataArguments": {
+      "description": "Identifies metadata updates to one device.",
+      "id": "UpdateMetadataArguments",
+      "properties": {
+        "deviceId": {
+          "description": "Required. Device ID of the device.",
+          "format": "int64",
+          "type": "string"
+        },
+        "deviceIdentifier": {
+          "$ref": "DeviceIdentifier",
+          "description": "Required. Device identifier."
+        },
+        "deviceMetadata": {
+          "$ref": "DeviceMetadata",
+          "description": "Required. The metadata to update."
+        }
+      },
+      "type": "object"
     }
   },
-  "id": "androiddeviceprovisioning:v1",
-  "ownerName": "Google",
-  "fullyEncodeReservedExpansion": true,
-  "rootUrl": "https://androiddeviceprovisioning.googleapis.com/"
-}
+  "servicePath": "",
+  "title": "Android Device Provisioning Partner API",
+  "version": "v1",
+  "version_module": true
+}
\ No newline at end of file