"description":"Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice."
}
}
},
"customers":{
"methods":{
"list":{
"flatPath":"v1/customers",
"path":"v1/customers",
"id":"androiddeviceprovisioning.customers.list",
"description":"List the user's customer accounts.",
"response":{
"$ref":"CustomerListCustomersResponse"
},
"parameterOrder":[],
"httpMethod":"GET",
"parameters":{
"pageToken":{
"location":"query",
"description":"The next_page_token value returned from a previous List request, if any.",
"type":"string"
},
"pageSize":{
"description":"The maximum number of items to return.",
"format":"int32",
"type":"integer",
"location":"query"
}
}
}
},
"resources":{
"dpcs":{
"methods":{
"list":{
"description":"Lists the DPCs (device policy controllers) that support zero-touch\nenrollment.",
"response":{
"$ref":"CustomerListDpcsResponse"
},
"parameterOrder":[
"parent"
],
"httpMethod":"GET",
"parameters":{
"parent":{
"description":"Required. The customer that can use the DPCs in configurations. An API\nresource name in the format `customers/[CUSTOMER_ID]`.",
"description":"Unclaims a device from a customer and removes it from zero-touch\nenrollment.\n\nAfter removing a device, a customer must contact their reseller to register\nthe device into zero-touch enrollment again."
},
"removeConfiguration":{
"httpMethod":"POST",
"parameterOrder":[
"parent"
],
"response":{
"$ref":"Empty"
},
"parameters":{
"parent":{
"description":"Required. The customer managing the device in the format\n`customers/[CUSTOMER_ID]`.",
"description":"Applies a Configuration to the device to register the device for zero-touch\nenrollment. After applying a configuration to a device, the device\nautomatically provisions itself on first boot, or next factory reset."
"description":"Required. The device to get. An API resource name in the format\n`customers/[CUSTOMER_ID]/devices/[DEVICE_ID]`.",
"required":true,
"type":"string",
"pattern":"^customers/[^/]+/devices/[^/]+$",
"location":"path"
}
}
}
}
},
"configurations":{
"methods":{
"delete":{
"description":"Deletes an unused configuration. The API call fails if the customer has\ndevices with the configuration applied.",
"httpMethod":"DELETE",
"response":{
"$ref":"Empty"
},
"parameterOrder":[
"name"
],
"parameters":{
"name":{
"description":"Required. The configuration to delete. An API resource name in the format\n`customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. If the\nconfiguration is applied to any devices, the API call fails.",
"description":"Gets the details of a configuration."
},
"patch":{
"httpMethod":"PATCH",
"parameterOrder":[
"name"
],
"response":{
"$ref":"Configuration"
},
"parameters":{
"updateMask":{
"description":"Required. The field mask applied to the target `Configuration` before\nupdating the fields. To learn more about using field masks, read\n[FieldMask](/protocol-buffers/docs/reference/google.protobuf#fieldmask) in\nthe Protocol Buffers documentation.",
"format":"google-fieldmask",
"type":"string",
"location":"query"
},
"name":{
"description":"Output only. The API resource name in the format\n`customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. Assigned by\nthe server.",
"description":"Lists the customers that are enrolled to the reseller identified by the\n`partnerId` argument. This list includes customers that the reseller\ncreated and customers that enrolled themselves using the portal.",
"description":"Creates a customer for zero-touch enrollment. After the method returns\nsuccessfully, admin and owner roles can manage devices and EMM configs\nby calling API methods or using their zero-touch enrollment portal. The API\ndoesn't notify the customer that they have access.",
"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.",
"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.",
"description":"A record of a device claimed by a reseller for a customer. Devices claimed\nfor zero-touch enrollment have a claim with the type\n`SECTION_TYPE_ZERO_TOUCH`. To learn more, read\n[Claim devices for customers](/zero-touch/guides/how-it-works#claim).",
"description":"This resource represents a long-running operation that is the result of a\nnetwork API call.",
"type":"object",
"properties":{
"done":{
"description":"If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.",
"type":"boolean"
},
"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"
},
"name":{
"description":"The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.",
"type":"string"
},
"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`."
"description":"This field will contain a `DevicesLongRunningOperationMetadata` object if the operation is created by `claimAsync`, `unclaimAsync`, or `updateMetadataAsync`.",
"description":"Encapsulates hardware and product IDs to identify a manufactured device. To\nlearn more, read [Identifiers](/zero-touch/guides/identifiers).",
"type":"object",
"properties":{
"serialNumber":{
"description":"The manufacturer's serial number for the device. This value might not be\nunique.",
"type":"string"
},
"imei":{
"description":"The device’s IMEI number. Validated on input.",
"type":"string"
},
"meid":{
"description":"The device’s MEID number.",
"type":"string"
},
"manufacturer":{
"description":"Required. The device manufacturer’s name. Matches the device's built-in\nvalue returned from `android.os.Build.MANUFACTURER`. Allowed values are\nlisted in [manufacturer names](/zero-touch/resources/manufacturer-names).",
"type":"string"
}
},
"id":"DeviceIdentifier"
},
"Dpc":{
"properties":{
"name":{
"description":"Output only. The API resource name in the format\n`customers/[CUSTOMER_ID]/dpcs/[DPC_ID]`. Assigned by\nthe server. To maintain a reference to a DPC across customer accounts,\npersist and match the last path component (`DPC_ID`).",
"type":"string"
},
"packageName":{
"description":"Output only. The DPC's Android application ID that looks like a Java\npackage name. Zero-touch enrollment installs the DPC app onto a device\nusing this identifier.",
"type":"string"
},
"dpcName":{
"description":"Output only. The title of the DPC app in Google Play. For example, _Google\nApps Device Policy_. Useful in an application's user interface.",
"type":"string"
}
},
"id":"Dpc",
"description":"An EMM's DPC ([device policy controller](/android/work/dpc/build-dpc)).\nZero-touch enrollment installs a DPC (listed in the `Configuration`) on a\ndevice to maintain the customer's mobile policies. All the DPCs listed by the\nAPI support zero-touch enrollment and are available in Google Play.",
"description":"Required. The device the configuration is applied to.",
"$ref":"DeviceReference"
}
},
"id":"CustomerApplyConfigurationRequest"
},
"CustomerUnclaimDeviceRequest":{
"description":"Request message for customer to unclaim a device.",
"type":"object",
"properties":{
"device":{
"$ref":"DeviceReference",
"description":"Required. The device to unclaim."
}
},
"id":"CustomerUnclaimDeviceRequest"
},
"Status":{
"description":"The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.",
"description":"The status code, which should be an enum value of google.rpc.Code.",
"format":"int32",
"type":"integer"
},
"message":{
"description":"A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.",
"description":"A `DeviceReference` is an API abstraction that lets you supply a _device_\nargument to a method using one of the following identifier types:\n\n* A numeric API resource ID.\n* Real-world hardware IDs, such as IMEI number, belonging to the manufactured\n device.\n\nMethods that operate on devices take a `DeviceReference` as a parameter type\nbecause it's more flexible for the caller. To learn more about device\nidentifiers, read [Identifiers](/zero-touch/guides/identifiers).",
"description":"Output only. The provisioning claims for a device. Devices claimed for\nzero-touch enrollment have a claim with the type `SECTION_TYPE_ZERO_TOUCH`.\nCall\n`partners.devices.unclaim`\nor\n`partners.devices.unclaimAsync`\nto remove the device from zero-touch enrollment.",
"description":"The metadata attached to the device. Structured as key-value pairs. To\nlearn more, read [Device metadata](/zero-touch/guides/metadata)."
"description":"Required. The company data to populate the new customer. Must contain a\nvalue for `companyName` and at least one `owner_email` that's associated\nwith a Google Account. The values for `companyId` and `name` must be empty.",
"description":"Input only. Email address of customer's users in the owner role. At least\none `owner_email` is required. Each email address must be associated with a\nGoogle Account. Owners share the same access as admins but can also add,\ndelete, and edit your organization's portal users.",
"type":"array",
"items":{
"type":"string"
}
},
"companyId":{
"description":"Output only. The ID of the company. Assigned by the server.",
"format":"int64",
"type":"string"
},
"name":{
"description":"Output only. The API resource name of the company in the format\n`partners/[PARTNER_ID]/customers/[CUSTOMER_ID]`. Assigned by the server.",
"type":"string"
},
"companyName":{
"description":"Required. The name of the company. For example _XYZ Corp_. Characters\nallowed are: Latin letters, numerals, hyphens, and spaces. Displayed to the\ncustomer's employees in the zero-touch enrollment portal.",
"type":"string"
},
"adminEmails":{
"description":"Input only. Optional. Email address of customer's users in the admin role.\nEach email address must be associated with a Google Account.",
"type":"array",
"items":{
"type":"string"
}
}
},
"id":"Company",
"description":"A customer resource in the zero-touch enrollment API.",
"type":"object"
},
"Configuration":{
"description":"A configuration collects the provisioning options for Android devices. Each\nconfiguration combines the following:\n\n* The EMM device policy controller (DPC) installed on the devices.\n* EMM policies enforced on the devices.\n* Metadata displayed on the device to help users during setup.\n\nCustomers can add as many configurations as they need. However, zero-touch\nenrollment works best when a customer sets a default configuration that's\napplied to any new devices the organization purchases.",
"type":"object",
"properties":{
"companyName":{
"description":"Required. The name of the organization. Zero-touch enrollment shows this\norganization name to device users during device provisioning.",
"type":"string"
},
"configurationId":{
"description":"Output only. The ID of the configuration. Assigned by the server.",
"format":"int64",
"type":"string"
},
"dpcResourcePath":{
"description":"Required. The resource name of the selected DPC (device policy controller)\nin the format `customers/[CUSTOMER_ID]/dpcs/*`. To list the supported DPCs,\ncall\n`customers.dpcs.list`.",
"type":"string"
},
"isDefault":{
"description":"Required. Whether this is the default configuration that zero-touch\nenrollment applies to any new devices the organization purchases in the\nfuture. Only one customer configuration can be the default. Setting this\nvalue to `true`, changes the previous default configuration's `isDefault`\nvalue to `false`.",
"type":"boolean"
},
"dpcExtras":{
"description":"The JSON-formatted EMM provisioning extras that are passed to the DPC.",
"type":"string"
},
"customMessage":{
"description":"A message, containing one or two sentences, to help device users get help\nor give them more details about what’s happening to their device.\nZero-touch enrollment shows this message before the device is provisioned.",
"type":"string"
},
"contactEmail":{
"description":"Required. The email address that device users can contact to get help.\nZero-touch enrollment shows this email address to device users before\ndevice provisioning. The value is validated on input.",
"type":"string"
},
"name":{
"description":"Output only. The API resource name in the format\n`customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. Assigned by\nthe server.",
"type":"string"
},
"configurationName":{
"description":"Required. A short name that describes the configuration's purpose. For\nexample, _Sales team_ or _Temporary employees_. The zero-touch enrollment\nportal displays this name to IT admins.",
"type":"string"
},
"contactPhone":{
"description":"Required. The telephone number that device users can call, using another\ndevice, to get help. Zero-touch enrollment shows this number to device\nusers before device provisioning. Accepts numerals, spaces, the plus sign,\nhyphens, and parentheses.",
"type":"string"
}
},
"id":"Configuration"
},
"UpdateDeviceMetadataRequest":{
"description":"Request to set metadata for a device.",
"type":"object",
"properties":{
"deviceMetadata":{
"$ref":"DeviceMetadata",
"description":"The metdata to set."
}
},
"id":"UpdateDeviceMetadataRequest"
},
"CustomerListDpcsResponse":{
"description":"Response message of customer's listing DPCs.",
"type":"object",
"properties":{
"dpcs":{
"description":"The list of DPCs available to the customer that support zero-touch\nenrollment.",
"type":"array",
"items":{
"$ref":"Dpc"
}
}
},
"id":"CustomerListDpcsResponse"
},
"PartnerUnclaim":{
"description":"Identifies one unclaim request.",
"type":"object",
"properties":{
"deviceId":{
"description":"Device ID of the device.",
"format":"int64",
"type":"string"
},
"deviceIdentifier":{
"description":"Device identifier of the device.",
"$ref":"DeviceIdentifier"
},
"sectionType":{
"description":"Section type to unclaim.",
"type":"string",
"enumDescriptions":[
"Unspecified section type.",
"Zero-touch enrollment section type."
],
"enum":[
"SECTION_TYPE_UNSPECIFIED",
"SECTION_TYPE_ZERO_TOUCH"
]
}
},
"id":"PartnerUnclaim"
},
"Empty":{
"description":"A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.",
"type":"object",
"properties":{},
"id":"Empty"
},
"FindDevicesByDeviceIdentifierResponse":{
"description":"Response containing found devices.",
"type":"object",
"properties":{
"nextPageToken":{
"description":"Page token of the next page.",
"type":"string"
},
"devices":{
"description":"Found devices.",
"type":"array",
"items":{
"$ref":"Device"
}
}
},
"id":"FindDevicesByDeviceIdentifierResponse"
},
"PartnerClaim":{
"properties":{
"deviceIdentifier":{
"$ref":"DeviceIdentifier",
"description":"Device identifier of the device."
},
"deviceMetadata":{
"$ref":"DeviceMetadata",
"description":"Metadata to set at claim."
},
"sectionType":{
"enumDescriptions":[
"Unspecified section type.",
"Zero-touch enrollment section type."
],
"enum":[
"SECTION_TYPE_UNSPECIFIED",
"SECTION_TYPE_ZERO_TOUCH"
],
"description":"Section type to claim.",
"type":"string"
},
"customerId":{
"description":"Customer ID to claim for.",
"format":"int64",
"type":"string"
}
},
"id":"PartnerClaim",
"description":"Identifies one claim request.",
"type":"object"
},
"UnclaimDeviceRequest":{
"description":"Request message to unclaim a device.",
"type":"object",
"properties":{
"deviceId":{
"description":"The device ID returned by `ClaimDevice`.",
"format":"int64",
"type":"string"
},
"deviceIdentifier":{
"description":"The device identifier you used when you claimed this device.",
"$ref":"DeviceIdentifier"
},
"sectionType":{
"enumDescriptions":[
"Unspecified section type.",
"Zero-touch enrollment section type."
],
"enum":[
"SECTION_TYPE_UNSPECIFIED",
"SECTION_TYPE_ZERO_TOUCH"
],
"description":"The section type to unclaim for.",
"type":"string"
}
},
"id":"UnclaimDeviceRequest"
},
"DeviceMetadata":{
"properties":{
"entries":{
"additionalProperties":{
"type":"string"
},
"description":"Metadata entries recorded as key-value pairs.",
"type":"object"
}
},
"id":"DeviceMetadata",
"description":"Metadata entries that can be attached to a `Device`. To learn more, read\n[Device metadata](/zero-touch/guides/metadata).",