# Copyright 2015 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. require 'date' require 'google/apis/core/base_service' require 'google/apis/core/json_representation' require 'google/apis/core/hashable' require 'google/apis/errors' module Google module Apis module AndroiddeviceprovisioningV1 # Request message to claim a device on behalf of a customer. class ClaimDeviceRequest include Google::Apis::Core::Hashable # Required. The ID of the customer for whom the device is being claimed. # Corresponds to the JSON property `customerId` # @return [Fixnum] attr_accessor :customer_id # Encapsulates hardware and product IDs to identify a manufactured device. To # learn more, read [Identifiers](/zero-touch/guides/identifiers). # Corresponds to the JSON property `deviceIdentifier` # @return [Google::Apis::AndroiddeviceprovisioningV1::DeviceIdentifier] attr_accessor :device_identifier # Required. The section type of the device's provisioning record. # Corresponds to the JSON property `sectionType` # @return [String] attr_accessor :section_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @customer_id = args[:customer_id] if args.key?(:customer_id) @device_identifier = args[:device_identifier] if args.key?(:device_identifier) @section_type = args[:section_type] if args.key?(:section_type) end end # Response message containing device id of the claim. class ClaimDeviceResponse include Google::Apis::Core::Hashable # The device ID of the claimed device. # Corresponds to the JSON property `deviceId` # @return [Fixnum] attr_accessor :device_id # The resource name of the device in the format # `partners/[PARTNER_ID]/devices/[DEVICE_ID]`. # Corresponds to the JSON property `deviceName` # @return [String] attr_accessor :device_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @device_id = args[:device_id] if args.key?(:device_id) @device_name = args[:device_name] if args.key?(:device_name) end end # 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. class ClaimDevicesRequest include Google::Apis::Core::Hashable # Required. A list of device claims. # Corresponds to the JSON property `claims` # @return [Array] attr_accessor :claims def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @claims = args[:claims] if args.key?(:claims) end end # A customer resource in the zero-touch enrollment API. class Company include Google::Apis::Core::Hashable # Input only. Optional. Email address of customer's users in the admin role. # Each email address must be associated with a Google Account. # Corresponds to the JSON property `adminEmails` # @return [Array] attr_accessor :admin_emails # Output only. The ID of the company. Assigned by the server. # Corresponds to the JSON property `companyId` # @return [Fixnum] attr_accessor :company_id # Required. The name of the company. For example _XYZ Corp_. Characters # allowed are: Latin letters, numerals, hyphens, and spaces. Displayed to the # customer's employees in the zero-touch enrollment portal. # Corresponds to the JSON property `companyName` # @return [String] attr_accessor :company_name # Output only. The API resource name of the company in the format # `partners/[PARTNER_ID]/customers/[CUSTOMER_ID]`. Assigned by the server. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # 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. # Corresponds to the JSON property `ownerEmails` # @return [Array] attr_accessor :owner_emails # Output only. Whether any user from the company has accepted the latest # Terms of Service (ToS). See # TermsStatus. # Corresponds to the JSON property `termsStatus` # @return [String] attr_accessor :terms_status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @admin_emails = args[:admin_emails] if args.key?(:admin_emails) @company_id = args[:company_id] if args.key?(:company_id) @company_name = args[:company_name] if args.key?(:company_name) @name = args[:name] if args.key?(:name) @owner_emails = args[:owner_emails] if args.key?(:owner_emails) @terms_status = args[:terms_status] if args.key?(:terms_status) end end # 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. class Configuration include Google::Apis::Core::Hashable # Required. The name of the organization. Zero-touch enrollment shows this # organization name to device users during device provisioning. # Corresponds to the JSON property `companyName` # @return [String] attr_accessor :company_name # Output only. The ID of the configuration. Assigned by the server. # Corresponds to the JSON property `configurationId` # @return [Fixnum] attr_accessor :configuration_id # 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. # Corresponds to the JSON property `configurationName` # @return [String] attr_accessor :configuration_name # 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. # Corresponds to the JSON property `contactEmail` # @return [String] attr_accessor :contact_email # 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. # Corresponds to the JSON property `contactPhone` # @return [String] attr_accessor :contact_phone # 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. # Corresponds to the JSON property `customMessage` # @return [String] attr_accessor :custom_message # The JSON-formatted EMM provisioning extras that are passed to the DPC. # Corresponds to the JSON property `dpcExtras` # @return [String] attr_accessor :dpc_extras # 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`. # Corresponds to the JSON property `dpcResourcePath` # @return [String] attr_accessor :dpc_resource_path # 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`. # Corresponds to the JSON property `isDefault` # @return [Boolean] attr_accessor :is_default alias_method :is_default?, :is_default # Output only. The API resource name in the format # `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. Assigned by # the server. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @company_name = args[:company_name] if args.key?(:company_name) @configuration_id = args[:configuration_id] if args.key?(:configuration_id) @configuration_name = args[:configuration_name] if args.key?(:configuration_name) @contact_email = args[:contact_email] if args.key?(:contact_email) @contact_phone = args[:contact_phone] if args.key?(:contact_phone) @custom_message = args[:custom_message] if args.key?(:custom_message) @dpc_extras = args[:dpc_extras] if args.key?(:dpc_extras) @dpc_resource_path = args[:dpc_resource_path] if args.key?(:dpc_resource_path) @is_default = args[:is_default] if args.key?(:is_default) @name = args[:name] if args.key?(:name) end end # Request message to create a customer. class CreateCustomerRequest include Google::Apis::Core::Hashable # A customer resource in the zero-touch enrollment API. # Corresponds to the JSON property `customer` # @return [Google::Apis::AndroiddeviceprovisioningV1::Company] attr_accessor :customer def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @customer = args[:customer] if args.key?(:customer) end end # Request message for customer to assign a configuration to device. class CustomerApplyConfigurationRequest include Google::Apis::Core::Hashable # Required. The configuration applied to the device in the format # `customers/[CUSTOMER_ID]/configurations/[CONFIGURATION_ID]`. # Corresponds to the JSON property `configuration` # @return [String] attr_accessor :configuration # 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](/zero-touch/guides/identifiers). # Corresponds to the JSON property `device` # @return [Google::Apis::AndroiddeviceprovisioningV1::DeviceReference] attr_accessor :device def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @configuration = args[:configuration] if args.key?(:configuration) @device = args[:device] if args.key?(:device) end end # Response message of customer's listing configuration. class CustomerListConfigurationsResponse include Google::Apis::Core::Hashable # The configurations. # Corresponds to the JSON property `configurations` # @return [Array] attr_accessor :configurations def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @configurations = args[:configurations] if args.key?(:configurations) end end # Response message for listing my customers. class CustomerListCustomersResponse include Google::Apis::Core::Hashable # The customer accounts the calling user is a member of. # Corresponds to the JSON property `customers` # @return [Array] attr_accessor :customers # A token used to access the next page of results. Omitted if no further # results are available. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @customers = args[:customers] if args.key?(:customers) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # Response message of customer's liting devices. class CustomerListDevicesResponse include Google::Apis::Core::Hashable # The customer's devices. # Corresponds to the JSON property `devices` # @return [Array] attr_accessor :devices # A token used to access the next page of results. Omitted if no further # results are available. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @devices = args[:devices] if args.key?(:devices) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # Response message of customer's listing DPCs. class CustomerListDpcsResponse include Google::Apis::Core::Hashable # The list of DPCs available to the customer that support zero-touch # enrollment. # Corresponds to the JSON property `dpcs` # @return [Array] attr_accessor :dpcs def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @dpcs = args[:dpcs] if args.key?(:dpcs) end end # Request message for customer to remove the configuration from device. class CustomerRemoveConfigurationRequest include Google::Apis::Core::Hashable # 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](/zero-touch/guides/identifiers). # Corresponds to the JSON property `device` # @return [Google::Apis::AndroiddeviceprovisioningV1::DeviceReference] attr_accessor :device def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @device = args[:device] if args.key?(:device) end end # Request message for customer to unclaim a device. class CustomerUnclaimDeviceRequest include Google::Apis::Core::Hashable # 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](/zero-touch/guides/identifiers). # Corresponds to the JSON property `device` # @return [Google::Apis::AndroiddeviceprovisioningV1::DeviceReference] attr_accessor :device def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @device = args[:device] if args.key?(:device) end end # An Android device registered for zero-touch enrollment. class Device include Google::Apis::Core::Hashable # 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. # Corresponds to the JSON property `claims` # @return [Array] attr_accessor :claims # Not available to resellers. # Corresponds to the JSON property `configuration` # @return [String] attr_accessor :configuration # Output only. The ID of the device. Assigned by the server. # Corresponds to the JSON property `deviceId` # @return [Fixnum] attr_accessor :device_id # Encapsulates hardware and product IDs to identify a manufactured device. To # learn more, read [Identifiers](/zero-touch/guides/identifiers). # Corresponds to the JSON property `deviceIdentifier` # @return [Google::Apis::AndroiddeviceprovisioningV1::DeviceIdentifier] attr_accessor :device_identifier # Metadata entries that can be attached to a `Device`. To learn more, read # [Device metadata](/zero-touch/guides/metadata). # Corresponds to the JSON property `deviceMetadata` # @return [Google::Apis::AndroiddeviceprovisioningV1::DeviceMetadata] attr_accessor :device_metadata # Output only. The API resource name in the format # `partners/[PARTNER_ID]/devices/[DEVICE_ID]`. Assigned by the server. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @claims = args[:claims] if args.key?(:claims) @configuration = args[:configuration] if args.key?(:configuration) @device_id = args[:device_id] if args.key?(:device_id) @device_identifier = args[:device_identifier] if args.key?(:device_identifier) @device_metadata = args[:device_metadata] if args.key?(:device_metadata) @name = args[:name] if args.key?(:name) end end # 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). class DeviceClaim include Google::Apis::Core::Hashable # The ID of the Customer that purchased the device. # Corresponds to the JSON property `ownerCompanyId` # @return [Fixnum] attr_accessor :owner_company_id # Output only. The type of claim made on the device. # Corresponds to the JSON property `sectionType` # @return [String] attr_accessor :section_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @owner_company_id = args[:owner_company_id] if args.key?(:owner_company_id) @section_type = args[:section_type] if args.key?(:section_type) end end # Encapsulates hardware and product IDs to identify a manufactured device. To # learn more, read [Identifiers](/zero-touch/guides/identifiers). class DeviceIdentifier include Google::Apis::Core::Hashable # The device’s IMEI number. Validated on input. # Corresponds to the JSON property `imei` # @return [String] attr_accessor :imei # Required. The device manufacturer’s name. Matches the device's built-in # value returned from `android.os.Build.MANUFACTURER`. Allowed values are # listed in [manufacturer names](/zero-touch/resources/manufacturer-names). # Corresponds to the JSON property `manufacturer` # @return [String] attr_accessor :manufacturer # The device’s MEID number. # Corresponds to the JSON property `meid` # @return [String] attr_accessor :meid # The manufacturer's serial number for the device. This value might not be # unique. # Corresponds to the JSON property `serialNumber` # @return [String] attr_accessor :serial_number def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @imei = args[:imei] if args.key?(:imei) @manufacturer = args[:manufacturer] if args.key?(:manufacturer) @meid = args[:meid] if args.key?(:meid) @serial_number = args[:serial_number] if args.key?(:serial_number) end end # Metadata entries that can be attached to a `Device`. To learn more, read # [Device metadata](/zero-touch/guides/metadata). class DeviceMetadata include Google::Apis::Core::Hashable # Metadata entries recorded as key-value pairs. # Corresponds to the JSON property `entries` # @return [Hash] attr_accessor :entries def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @entries = args[:entries] if args.key?(:entries) end end # 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](/zero-touch/guides/identifiers). class DeviceReference include Google::Apis::Core::Hashable # The ID of the device. # Corresponds to the JSON property `deviceId` # @return [Fixnum] attr_accessor :device_id # Encapsulates hardware and product IDs to identify a manufactured device. To # learn more, read [Identifiers](/zero-touch/guides/identifiers). # Corresponds to the JSON property `deviceIdentifier` # @return [Google::Apis::AndroiddeviceprovisioningV1::DeviceIdentifier] attr_accessor :device_identifier def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @device_id = args[:device_id] if args.key?(:device_id) @device_identifier = args[:device_identifier] if args.key?(:device_identifier) end end # 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). class DevicesLongRunningOperationMetadata include Google::Apis::Core::Hashable # 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. # Corresponds to the JSON property `devicesCount` # @return [Fixnum] attr_accessor :devices_count # The processing status of the operation. # Corresponds to the JSON property `processingStatus` # @return [String] attr_accessor :processing_status # 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. # Corresponds to the JSON property `progress` # @return [Fixnum] attr_accessor :progress def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @devices_count = args[:devices_count] if args.key?(:devices_count) @processing_status = args[:processing_status] if args.key?(:processing_status) @progress = args[:progress] if args.key?(:progress) end end # 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). class DevicesLongRunningOperationResponse include Google::Apis::Core::Hashable # The processing status for each device in the operation. # One `PerDeviceStatus` per device. The list order matches the items in the # original request. # Corresponds to the JSON property `perDeviceStatus` # @return [Array] attr_accessor :per_device_status # A summary of how many items in the operation the server processed # successfully. Updated as the operation progresses. # Corresponds to the JSON property `successCount` # @return [Fixnum] attr_accessor :success_count def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @per_device_status = args[:per_device_status] if args.key?(:per_device_status) @success_count = args[:success_count] if args.key?(:success_count) end end # 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. class Dpc include Google::Apis::Core::Hashable # Output only. The title of the DPC app in Google Play. For example, _Google # Apps Device Policy_. Useful in an application's user interface. # Corresponds to the JSON property `dpcName` # @return [String] attr_accessor :dpc_name # 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`). # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # 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. # Corresponds to the JSON property `packageName` # @return [String] attr_accessor :package_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @dpc_name = args[:dpc_name] if args.key?(:dpc_name) @name = args[:name] if args.key?(:name) @package_name = args[:package_name] if args.key?(:package_name) end end # 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 ````. class Empty include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # Request to find devices. class FindDevicesByDeviceIdentifierRequest include Google::Apis::Core::Hashable # Encapsulates hardware and product IDs to identify a manufactured device. To # learn more, read [Identifiers](/zero-touch/guides/identifiers). # Corresponds to the JSON property `deviceIdentifier` # @return [Google::Apis::AndroiddeviceprovisioningV1::DeviceIdentifier] attr_accessor :device_identifier # Required. The maximum number of devices to show in a page of results. Must # be between 1 and 100 inclusive. # Corresponds to the JSON property `limit` # @return [Fixnum] attr_accessor :limit # A token specifying which result page to return. # Corresponds to the JSON property `pageToken` # @return [String] attr_accessor :page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @device_identifier = args[:device_identifier] if args.key?(:device_identifier) @limit = args[:limit] if args.key?(:limit) @page_token = args[:page_token] if args.key?(:page_token) end end # Response containing found devices. class FindDevicesByDeviceIdentifierResponse include Google::Apis::Core::Hashable # Found devices. # Corresponds to the JSON property `devices` # @return [Array] attr_accessor :devices # A token used to access the next page of results. Omitted if no further # results are available. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @devices = args[:devices] if args.key?(:devices) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # Request to find devices by customers. class FindDevicesByOwnerRequest include Google::Apis::Core::Hashable # Required. The list of customer IDs to search for. # Corresponds to the JSON property `customerId` # @return [Array] attr_accessor :customer_id # Required. The maximum number of devices to show in a page of results. Must # be between 1 and 100 inclusive. # Corresponds to the JSON property `limit` # @return [Fixnum] attr_accessor :limit # A token specifying which result page to return. # Corresponds to the JSON property `pageToken` # @return [String] attr_accessor :page_token # Required. The section type of the device's provisioning record. # Corresponds to the JSON property `sectionType` # @return [String] attr_accessor :section_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @customer_id = args[:customer_id] if args.key?(:customer_id) @limit = args[:limit] if args.key?(:limit) @page_token = args[:page_token] if args.key?(:page_token) @section_type = args[:section_type] if args.key?(:section_type) end end # Response containing found devices. class FindDevicesByOwnerResponse include Google::Apis::Core::Hashable # The customer's devices. # Corresponds to the JSON property `devices` # @return [Array] attr_accessor :devices # A token used to access the next page of results. # Omitted if no further results are available. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @devices = args[:devices] if args.key?(:devices) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # Response message of all customers related to this partner. class ListCustomersResponse include Google::Apis::Core::Hashable # List of customers related to this reseller partner. # Corresponds to the JSON property `customers` # @return [Array] attr_accessor :customers def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @customers = args[:customers] if args.key?(:customers) end end # This resource represents a long-running operation that is the result of a # network API call. class Operation include Google::Apis::Core::Hashable # 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. # Corresponds to the JSON property `done` # @return [Boolean] attr_accessor :done alias_method :done?, :done # 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). The error model is designed to be: # - Simple to use and understand for most users # - Flexible enough to meet unexpected needs # # Overview # The `Status` message contains three pieces of data: error code, error message, # and error details. The error code should be an enum value of # google.rpc.Code, but it may accept additional error codes if needed. The # error message should be a developer-facing English message that helps # developers *understand* and *resolve* the error. If a localized user-facing # error message is needed, put the localized message in the error details or # localize it in the client. The optional error details may contain arbitrary # information about the error. There is a predefined set of error detail types # in the package `google.rpc` that can be used for common error conditions. # # Language mapping # The `Status` message is the logical representation of the error model, but it # is not necessarily the actual wire format. When the `Status` message is # exposed in different client libraries and different wire protocols, it can be # mapped differently. For example, it will likely be mapped to some exceptions # in Java, but more likely mapped to some error codes in C. # # Other uses # The error model and the `Status` message can be used in a variety of # environments, either with or without APIs, to provide a # consistent developer experience across different environments. # Example uses of this error model include: # - Partial errors. If a service needs to return partial errors to the client, # it may embed the `Status` in the normal response to indicate the partial # errors. # - Workflow errors. A typical workflow has multiple steps. Each step may # have a `Status` message for error reporting. # - Batch operations. If a client uses batch request and batch response, the # `Status` message should be used directly inside batch response, one for # each error sub-response. # - Asynchronous operations. If an API call embeds asynchronous operation # results in its response, the status of those operations should be # represented directly using the `Status` message. # - Logging. If some API errors are stored in logs, the message `Status` could # be used directly after any stripping needed for security/privacy reasons. # Corresponds to the JSON property `error` # @return [Google::Apis::AndroiddeviceprovisioningV1::Status] attr_accessor :error # This field will contain a `DevicesLongRunningOperationMetadata` object if the # operation is created by `claimAsync`, `unclaimAsync`, or `updateMetadataAsync`. # Corresponds to the JSON property `metadata` # @return [Hash] attr_accessor :metadata # 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 have the format of `operations/some/unique/name`. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # This field will contain a `DevicesLongRunningOperationResponse` object if the # operation is created by `claimAsync`, `unclaimAsync`, or `updateMetadataAsync`. # Corresponds to the JSON property `response` # @return [Hash] attr_accessor :response def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @done = args[:done] if args.key?(:done) @error = args[:error] if args.key?(:error) @metadata = args[:metadata] if args.key?(:metadata) @name = args[:name] if args.key?(:name) @response = args[:response] if args.key?(:response) end end # A task for each device in the operation. Corresponds to each device # change in the request. class OperationPerDevice include Google::Apis::Core::Hashable # Identifies one claim request. # Corresponds to the JSON property `claim` # @return [Google::Apis::AndroiddeviceprovisioningV1::PartnerClaim] attr_accessor :claim # Captures the processing status for each device in the operation. # Corresponds to the JSON property `result` # @return [Google::Apis::AndroiddeviceprovisioningV1::PerDeviceStatusInBatch] attr_accessor :result # Identifies one unclaim request. # Corresponds to the JSON property `unclaim` # @return [Google::Apis::AndroiddeviceprovisioningV1::PartnerUnclaim] attr_accessor :unclaim # Identifies metdata updates to one device. # Corresponds to the JSON property `updateMetadata` # @return [Google::Apis::AndroiddeviceprovisioningV1::UpdateMetadataArguments] attr_accessor :update_metadata def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @claim = args[:claim] if args.key?(:claim) @result = args[:result] if args.key?(:result) @unclaim = args[:unclaim] if args.key?(:unclaim) @update_metadata = args[:update_metadata] if args.key?(:update_metadata) end end # Identifies one claim request. class PartnerClaim include Google::Apis::Core::Hashable # Required. The ID of the customer for whom the device is being claimed. # Corresponds to the JSON property `customerId` # @return [Fixnum] attr_accessor :customer_id # Encapsulates hardware and product IDs to identify a manufactured device. To # learn more, read [Identifiers](/zero-touch/guides/identifiers). # Corresponds to the JSON property `deviceIdentifier` # @return [Google::Apis::AndroiddeviceprovisioningV1::DeviceIdentifier] attr_accessor :device_identifier # Metadata entries that can be attached to a `Device`. To learn more, read # [Device metadata](/zero-touch/guides/metadata). # Corresponds to the JSON property `deviceMetadata` # @return [Google::Apis::AndroiddeviceprovisioningV1::DeviceMetadata] attr_accessor :device_metadata # Required. The section type of the device's provisioning record. # Corresponds to the JSON property `sectionType` # @return [String] attr_accessor :section_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @customer_id = args[:customer_id] if args.key?(:customer_id) @device_identifier = args[:device_identifier] if args.key?(:device_identifier) @device_metadata = args[:device_metadata] if args.key?(:device_metadata) @section_type = args[:section_type] if args.key?(:section_type) end end # Identifies one unclaim request. class PartnerUnclaim include Google::Apis::Core::Hashable # Device ID of the device. # Corresponds to the JSON property `deviceId` # @return [Fixnum] attr_accessor :device_id # Encapsulates hardware and product IDs to identify a manufactured device. To # learn more, read [Identifiers](/zero-touch/guides/identifiers). # Corresponds to the JSON property `deviceIdentifier` # @return [Google::Apis::AndroiddeviceprovisioningV1::DeviceIdentifier] attr_accessor :device_identifier # Required. The section type of the device's provisioning record. # Corresponds to the JSON property `sectionType` # @return [String] attr_accessor :section_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @device_id = args[:device_id] if args.key?(:device_id) @device_identifier = args[:device_identifier] if args.key?(:device_identifier) @section_type = args[:section_type] if args.key?(:section_type) end end # Captures the processing status for each device in the operation. class PerDeviceStatusInBatch include Google::Apis::Core::Hashable # If processing succeeds, the device ID of the device. # Corresponds to the JSON property `deviceId` # @return [Fixnum] attr_accessor :device_id # If processing fails, the error type. # Corresponds to the JSON property `errorIdentifier` # @return [String] attr_accessor :error_identifier # If processing fails, a developer message explaining what went wrong. # Corresponds to the JSON property `errorMessage` # @return [String] attr_accessor :error_message # The result status of the device after processing. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @device_id = args[:device_id] if args.key?(:device_id) @error_identifier = args[:error_identifier] if args.key?(:error_identifier) @error_message = args[:error_message] if args.key?(:error_message) @status = args[:status] if args.key?(:status) end end # 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). The error model is designed to be: # - Simple to use and understand for most users # - Flexible enough to meet unexpected needs # # Overview # The `Status` message contains three pieces of data: error code, error message, # and error details. The error code should be an enum value of # google.rpc.Code, but it may accept additional error codes if needed. The # error message should be a developer-facing English message that helps # developers *understand* and *resolve* the error. If a localized user-facing # error message is needed, put the localized message in the error details or # localize it in the client. The optional error details may contain arbitrary # information about the error. There is a predefined set of error detail types # in the package `google.rpc` that can be used for common error conditions. # # Language mapping # The `Status` message is the logical representation of the error model, but it # is not necessarily the actual wire format. When the `Status` message is # exposed in different client libraries and different wire protocols, it can be # mapped differently. For example, it will likely be mapped to some exceptions # in Java, but more likely mapped to some error codes in C. # # Other uses # The error model and the `Status` message can be used in a variety of # environments, either with or without APIs, to provide a # consistent developer experience across different environments. # Example uses of this error model include: # - Partial errors. If a service needs to return partial errors to the client, # it may embed the `Status` in the normal response to indicate the partial # errors. # - Workflow errors. A typical workflow has multiple steps. Each step may # have a `Status` message for error reporting. # - Batch operations. If a client uses batch request and batch response, the # `Status` message should be used directly inside batch response, one for # each error sub-response. # - Asynchronous operations. If an API call embeds asynchronous operation # results in its response, the status of those operations should be # represented directly using the `Status` message. # - Logging. If some API errors are stored in logs, the message `Status` could # be used directly after any stripping needed for security/privacy reasons. class Status include Google::Apis::Core::Hashable # The status code, which should be an enum value of google.rpc.Code. # Corresponds to the JSON property `code` # @return [Fixnum] attr_accessor :code # A list of messages that carry the error details. There is a common set of # message types for APIs to use. # Corresponds to the JSON property `details` # @return [Array>] attr_accessor :details # 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. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @details = args[:details] if args.key?(:details) @message = args[:message] if args.key?(:message) end end # Request message to unclaim a device. class UnclaimDeviceRequest include Google::Apis::Core::Hashable # The device ID returned by `ClaimDevice`. # Corresponds to the JSON property `deviceId` # @return [Fixnum] attr_accessor :device_id # Encapsulates hardware and product IDs to identify a manufactured device. To # learn more, read [Identifiers](/zero-touch/guides/identifiers). # Corresponds to the JSON property `deviceIdentifier` # @return [Google::Apis::AndroiddeviceprovisioningV1::DeviceIdentifier] attr_accessor :device_identifier # Required. The section type of the device's provisioning record. # Corresponds to the JSON property `sectionType` # @return [String] attr_accessor :section_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @device_id = args[:device_id] if args.key?(:device_id) @device_identifier = args[:device_identifier] if args.key?(:device_identifier) @section_type = args[:section_type] if args.key?(:section_type) end end # Request to unclaim devices asynchronously in batch. class UnclaimDevicesRequest include Google::Apis::Core::Hashable # Required. The list of devices to unclaim. # Corresponds to the JSON property `unclaims` # @return [Array] attr_accessor :unclaims def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @unclaims = args[:unclaims] if args.key?(:unclaims) end end # Request to update device metadata in batch. class UpdateDeviceMetadataInBatchRequest include Google::Apis::Core::Hashable # Required. The list of metadata updates. # Corresponds to the JSON property `updates` # @return [Array] attr_accessor :updates def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @updates = args[:updates] if args.key?(:updates) end end # Request to set metadata for a device. class UpdateDeviceMetadataRequest include Google::Apis::Core::Hashable # Metadata entries that can be attached to a `Device`. To learn more, read # [Device metadata](/zero-touch/guides/metadata). # Corresponds to the JSON property `deviceMetadata` # @return [Google::Apis::AndroiddeviceprovisioningV1::DeviceMetadata] attr_accessor :device_metadata def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @device_metadata = args[:device_metadata] if args.key?(:device_metadata) end end # Identifies metdata updates to one device. class UpdateMetadataArguments include Google::Apis::Core::Hashable # Device ID of the device. # Corresponds to the JSON property `deviceId` # @return [Fixnum] attr_accessor :device_id # Encapsulates hardware and product IDs to identify a manufactured device. To # learn more, read [Identifiers](/zero-touch/guides/identifiers). # Corresponds to the JSON property `deviceIdentifier` # @return [Google::Apis::AndroiddeviceprovisioningV1::DeviceIdentifier] attr_accessor :device_identifier # Metadata entries that can be attached to a `Device`. To learn more, read # [Device metadata](/zero-touch/guides/metadata). # Corresponds to the JSON property `deviceMetadata` # @return [Google::Apis::AndroiddeviceprovisioningV1::DeviceMetadata] attr_accessor :device_metadata def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @device_id = args[:device_id] if args.key?(:device_id) @device_identifier = args[:device_identifier] if args.key?(:device_identifier) @device_metadata = args[:device_metadata] if args.key?(:device_metadata) end end end end end