This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

SPEKTRA Edge Devices Service API

Understanding the Devices service API.
  • 1:
  • 2:

Devices service manages the edge devices connecting to the SPEKTRA Edge system. The service is typically operated by a user with the device-operator role or a higher.

Full API Specifications (with resources):

Device Management (Device Resources)

Devices on SPEKTRA Edge have their information managed by Device resources. Configuration values and status information for each device are stored in the Device resource. This resource is used by the agent running on the device where the SPEKTRA Edge OS is installed.

Devices are usually managed by being tied to a service account. When the actual SPEKTRA Edge device boots, the agent in the device connects to the Devices service using the stored service account. By using the service account associated with the device resource, it determines which device resource to download configuration values from and stores status information for that device resource.

The simplest Device resource can be created with the following command; since the Device resource is a Project scope resource, the Project must be specified for creation.

## Create a device with ID DEVICE
## display name is "Test Device
cuttle devices create device --project $PROJECT \
  --display-name "Test Device" \
  $DEVICE

Device Metrics

The SPEKTRA Edge device periodically reports hardware metrics information (e.g., CPU utilization), which is stored as time-series data on the Monitoring service; see the Monitoring chapter for instructions on how to use the Monitoring service.

Device Logs

Logging from an SPEKTRA Edge device can be done in two ways: logs from the point of command execution can be streamed in real time via the SPEKTRA Edge controller, or logs sent by the device can be stored in the SPEKTRA Edge backend and retrieved from there as needed. The other is to store the logs sent by the device in the SPEKTRA Edge backend and retrieve the logs from there as needed.

To use the former real-time device logs, use the command:

cuttle devices logs --follow`

In this case, the system logs from the time the command was executed (as described in /var/log/syslog) can be obtained without any additional configuration.

cuttle devices logs --follow $DEVICE

The latter, which stores logs in the SPEKTRA Edge backend and retrieves data from it, requires prior configuration to enable the feature. This feature is currently available without additional subscription, but may be paid for in the future. Log data is stored for up to 90 days.

To perform logging, set the spec.loggingConfig field in the Device resource.

cuttle devices update device $DEVICE_ID \
  --update-mask spec.loggingConfig \
  --spec '{"loggingConfig": {"enableJournalExport": true, "priority":7}}'
FieldDescription
enableJournalExporSet to ture to save logs.
prioritySet the Priority (level) of logs to be retrieved. Possible values are 1 to 7, according to the Priority of Journald (0 - emergency, 1 - alert, 2 - critical, 3 - error, 4 - warning, 5 - notice,6 - informational, 7 - debug). If a higher Priority is specified, all logs of the lower Priority will also be collected (setting 7 means all logs will be collected).
unitsSpecifies the Systemd unit names of logs to be retrieved. If not specified, logs of all units are acquired. It is omitted in the above example. If you want to use it, add the value to spec.loggingConfig using the following example.

To get docker.service and droplet.service only:

{"units": ["docker.service", "droplet.service"]}

Use the cuttle devices logs --archival command to retrieve the stored logs.

    cuttle devices logs --archival --since 60 $DEVICE_ID
OptionsDescription
--sinceSpecifies when to start logging in seconds. If 60 is used as in the example, logs will be taken from one minute ago to the present.

Remote terminal access to SPEKTRA Edge devices

SPEKTRA Edge devices provide remote terminal access as standard.

For macOS and Linux environments

In macOS and Linux environments, the cuttle command can be used to remotely login to a device. The cuttle devices ssh command is used for terminal access. The argument of the command is the value of NAME as displayed in cuttle devices list devices.

The following is an example of access when NAME is projects/$PROJECT/regions/eu1/devices/test-device.

cuttle devices ssh projects/$PROJECT/regions/eu1/devices/test-device

For Windows environment

The cuttle devices ssh command cannot be used as-is in a Windows environment due to technical limitations. Please refer to the official Microsoft documentation on how to install WSL2.

Port forwarding with SPEKTRA Edge devices

To use a device with SPEKTRA Edge OS installed as a “jump box”, use the cuttle devices forward-port command.

The following example forwards local port 8080 to port 80 on 192.168.10.1 using the device projects/$PROJECT/regions/eu1/devices/test-device as a jump box. With this command running, open localhost:8080 in your web browser to access 192.168.10.1:80 (you will normally see the home gateway operation screen).

cuttle devices forward-port \
  projects/$PROJECT/regions/eu1/devices/test-device \
  8080 tcp://192.168.10.1:80/

Device Auto-registration Settings (Provisioning Policy)

Device resources can be created individually by users, but this can be complicated if there are many devices. To solve this problem, a mechanism to automatically register devices can be used.

The Provisioning Policy resource is a resource that stores settings for auto-registering devices. When an SPEKTRA Edge device with a Provisioning Policy set is booted, a corresponding Device resource is automatically created based on the settings.

Like the Device resource, the SPEKTRA Edge device identifies a Provisioning Policy tied to it using a service account. See the “Provisioning SPEKTRA Edge Devices” section for specific instructions for tying service accounts.

The following example is a cuttle command that creates a new Provisioning Policy.

cuttle devices create provisioning-policy \
  --project $PROJECT \
  --spec '{"mode": "UNATTENDED", \
           "identityFieldPaths": ["status.deviceInfo.hardwareInformation.system.serialNumber"]}' \
  test-provisioning-policy
FieldDescription
.spec.modeSpecifies the registration mode. You can select either UNATTENDED (fully automatic) or MANUAL (with approval). When the registration mode is MANUAL, a Provisioning Approval Request resource is created for approval instead of a Device resource when a new SPEKTRA Edge device is started.
.spec.identityFieldPathsSets the field used to recognize identical devices. If this field is not set, a Device resource will be created each time the same hardware makes multiple registration requests (for example, when an SD card is remade). By setting this field to include a serial number, an existing Device resource can be reused if a request is made by hardware with the same serial number.

Device resource template values

The Provisioning Policy generates a Device resource for each new hardware. At this time, by setting a value in the Provisioning Policy’s spec.template, it is possible to automatically set the value of the Device resource to be generated.

The following example shows the configuration of a Provisioning Policy when labels and log settings are automatically configured for the generated Device resource.

cuttle devices create provisioning-policy \
  --project $PROJECT \
  --spec '{"mode": "UNATTENDED", \
           "identityFieldPaths": ["status.deviceInfo.hardwareInformation.system.serialNumber"], \
           "template": {"metadata": {"labels": {"device": "raspberry-pi"}}, \
                        "spec": {"loggingConfig": {"priority":7, \
                                                   "enableJournalExport":true}}}}' \
  test-provisioning-policy

SPEKTRA Edge Device Provisioning

Download SPEKTRA Edge OS image

SPEKTRA Edge OS can be downloaded from the following URL. Note that the files used depend on the architecture of the hardware used. Currently, amd64 (x86) or Raspberry Pi 4 are supported.

The image of version 2.1.0 can be downloaded from the following URL

SPEKTRA Edge OS Image Customization

The SPEKTRA Edge OS provided to the public does not contain information tied to a specific Project. Therefore, to automate provisioning, the OS image must be customized and a configuration file must be inserted.

Create a configuration (Provisioning Policy) for automatic registration

Create a Provisioning Policy on the Devices endpoint to configure how new devices will be registered with the system. When a new device is registered with the system, a Device resource is created for each device based on the settings in this resource.

cuttle devices create provisioning-policy \
  --project $PROJECT \
  --spec '{"mode": "UNATTENDED", \
           "identityFieldPaths": ["status.deviceInfo.hardwareInformation.system.serialNumber"]}' \
  test-provisioning-policy

Generate service account and key for Provisioning Policy

In order for a new device to register using the above Provisioning Policy, it must use the service account (and its key) associated with the applicable Provisioning Policy.

The following command generates a service account and stores the downloaded key in /tmp. The jq command is used to format some values.

cuttle devices provision-service-account-to-provisioning-policy \
  -o json \
  provisioning-policy \
  --name projects/$PROJECT/regions/us-west2/provisioningPolicies/test-provisioning-policy | \
jq .serviceAccount > /tmp/service_accont_key.json

Customize image files

Customize the downloaded SPEKTRA Edge OS image using the following command. This command must be used with sudo on Linux.

sudo -E cuttle os edit \
  --image-file spektra-edge_generic-amd64_1.0.2.raw \
  --password $PASSWORD \
  --endpoint-domain $CONTROLLER_DOMAIN \
  --project-service-account-key /tmp/service_accont_key.json

The main options available with the cuttle os edit command are

OptionsDescription
--passwordPassword to use for terminal login.
--endpoint-domainThe endpoint domain the device connects to — apis.edgelq.com for the commercial environment. You can omit it there; set it only when targeting a different SPEKTRA Edge deployment.
--project-service-account-keyThe service account key generated by the above method.
--disk-mappingSpecify a configuration file to mount internal HDD or SSD.
--ntpSpecify the configuration file for NTP server.
--network-agentSpecifies the network configuration file.

--disk-mapping: disk mapping file

The disk mapping file is written in YAML format and is configured when using HDDs or SSDs other than the boot media. If you use only boot media, you do not need to specify this option.

The file contents are largely divided into diskmappings and bindmounts, the former being partition mount settings and the latter being bind mount settings.

The diskmappings specifies which disk (disk) and where (mountpoint) it should be mounted. If the partition is unformatted, it will be automatically formatted using the specified size (size) and file system (filesystem). Note that if you specify -1 for the size option, all available space will be used, but only for the tailmost partition.

The bindmounts lists which directories (mountsource) are to be bind-mounted where (mountpoint).

Below is the default disk mapping file for x86 devices. By default, the tailmost EDGELQ_DATA partition is expanded to its maximum size at SPEKTRA Edge OS startup. Also, /var/lib/docker, /var/lib/droplet, and /var/log are bind-mounted in /isodevice/data where EDGELQ_DATA is mounted, so that files stored in these directories will be boot persistent in the media.

Note that the default disk mapping file has different settings for each platform. For example, the Raspberry Pi requires a separate partition to store firmware, etc., so a dedicated setting is used.

diskmappings:
  - disk: /dev/disk/by-partlabel/EDGELQ_DATA
    mountpoint: /isodevice/data
    size: -1
    filesystem: ext4
  - disk: /dev/disk/by-partlabel/EDGELQ_ISOS
    mountpoint: /isodevice/isos
    filesystem: ext4
  - disk: /dev/disk/by-partlabel/EDGELQ_BOOT
    mountpoint: /isodevice/boot
    filesystem: ext4
bindmounts:
  - mountsource: /isodevice/data/docker
    mountpoint: /var/lib/docker
  - mountsource: /isodevice/data/droplet
    mountpoint: /var/lib/droplet
  - mountsource: /isodevice/data/log
    mountpoint: /var/log

--network-agent: network configuration file

The network configuration file is the Netplan configuration file. The default configuration file has DHCP enabled, so there is no need to specify this option if static IP or WiFi settings are not required.

The following is the default configuration file.

network:
  version: 2
  renderer: networkd
  ethernets:
    default-en:
      match:
        name: en*
      dhcp4: yes
    default-eth:
      match:
        name: eth*
      dhcp4: yes

Static IP Configuration Example

The following configuration example sets 192.168.1.30/24 for the eth0 interface.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp2s0:
      dhcp4: no
      addresses: [192.168.1.30/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [192.168.1.1]

Example of WiFi setup

The following setup connects the wlan0 interface to the NTT-WIFI network (SSID) using WIFI-PASSWORD as the password.

network:
  version: 2
  renderer: networkd
  wifis:
    wlan0:
      dhcp4: yes
      access-points:
        "NTT-WIFI":
          password: "WIFI-PASSWORD"

Please refer to the Netplan manual for other possible settings (some settings are not supported).

--ntp: NTP configuration file

The NTP configuration file is the systemd-timesyncd configuration file. Specify this option if you want to use an NTP server other than the default.

For information on how to write the configuration file, see man timesyncd.conf or Arch Linux website.

If the NTP server is not properly configured, the SPEKTRA Edge OS and applications running on it may stop working. If a TLS (HTTPS) certificate verification error occurs, make sure that the NTP server is properly configured and that the system clock is not out of sync.

Write SPEKTRA Edge OS to media

Image files can be written to media with any application.

On Linux, for example, you can use the dd command (replacing sdX with the appropriate device name).

sudo dd if=spektra-edge_generic-amd64_1.0.2.raw of=/dev/sdX

In a Windows environment, Raspberry Pi Imager or Balena Etcher can also be used.

SPEKTRA Edge Device Startup

The media on which the customized OS image is written can be used as boot media without modification. When the device is booted while connected to the network, it is automatically registered to the SPEKTRA Edge controller.

The list of registered devices can be viewed with the following command

cuttle devices list devices --project $PROJECT

Hardware update procedure

This section describes how the operation is performed in the event of a hardware failure, assuming that the device has been provisioned using a Provisioning Policy, and that the relevant Provisioning Policy has a Deduplication Field with a serial number set.

How to respond to hardware failure

Hardware failure can be divided into two categories: failure of the boot media (SD card or USB memory) on which the SPEKTRA Edge OS is installed, and failure of the hardware itself (such as the Raspberry Pi). Depending on which of these two elements is being replaced, the method of response will vary.

If only the hardware is replaced and the OS media is identical

Insert the existing boot media into the new hardware and boot. In this case, the service account information remaining on the boot media takes precedence over the serial number, so the existing Device resource is used as is (the resource serial number is overwritten).

If the hardware is identical and only the OS media is replaced

Point the new boot media to the existing hardware to boot. In this case, the new boot media does not have a service account to identify the Device resource, so the serial number is used to identify the existing Device resource. Since there is no change in the serial number on the same hardware, the existing Device resource will be used.

When replacing both hardware and OS media

If both are replaced at the same time, a new Device resource will be created since there is no way to identify the existing Device resource. To avoid this behavior, perform the following operations on the OS image (after copying the files) before writing to the SD card.

## remove an existing service account
cuttle devices remove-service-account-from-device device --name $DEVICE
## edit the image file (create service account for the device in question and
## write it)
cuttle os edit cuttle os edit \
  --image-file $IMAGE_FILE_NAME \
  --device-name $DEVICE

1 -

Understanding the devices.edgelq.com service APIv1, in proto package ntt.devices.v1.

Service devices.edgelq.com in version v1, proto package ntt.devices.v1

Here is the list of resources supported in Devices service APIv1:

CustomizedImage Resource

CustomizedImage Resource

Name patterns:

  • projects/{project}/regions/{region}/customizedImages/{customized_image}

Parent resources:

This section covers the methods and messages to interact with CustomizedImage resource.

CustomizedImage Methods

Here is the list of CustomizedImage resource methods:

GetCustomizedImage Method

GetCustomizedImage

rpc GetCustomizedImage(GetCustomizedImageRequest) returns (CustomizedImage)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/customizedImages.get

The equivalent REST API is:

GET /v1/{name=projects/*/regions/*/customizedImages/*} 

BatchGetCustomizedImages Method

BatchGetCustomizedImages

rpc BatchGetCustomizedImages(BatchGetCustomizedImagesRequest) returns (BatchGetCustomizedImagesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/customizedImages.batchGet

The equivalent REST API is:

GET /v1/customizedImages:batchGet 

ListCustomizedImages Method

ListCustomizedImages

rpc ListCustomizedImages(ListCustomizedImagesRequest) returns (ListCustomizedImagesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/customizedImages.list

The equivalent REST API is:

GET /v1/{parent=projects/*/regions/*}/customizedImages 

WatchCustomizedImage Method

WatchCustomizedImage

rpc WatchCustomizedImage(WatchCustomizedImageRequest) returns (WatchCustomizedImageResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/customizedImages.watch

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/customizedImages/*}:watch 

WatchCustomizedImages Method

WatchCustomizedImages

rpc WatchCustomizedImages(WatchCustomizedImagesRequest) returns (WatchCustomizedImagesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/customizedImages.watch

The equivalent REST API is:

POST /v1/{parent=projects/*/regions/*}/customizedImages:watch 

CreateCustomizedImage Method

CreateCustomizedImage

rpc CreateCustomizedImage(CreateCustomizedImageRequest) returns (CustomizedImage)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/customizedImages.create

The equivalent REST API is:

POST /v1/{parent=projects/*/regions/*}/customizedImages (BODY: customized_image)

UpdateCustomizedImage Method

UpdateCustomizedImage

rpc UpdateCustomizedImage(UpdateCustomizedImageRequest) returns (CustomizedImage)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/customizedImages.update

The equivalent REST API is:

PUT /v1/{customized_image.name=projects/*/regions/*/customizedImages/*} (BODY: customized_image)

DeleteCustomizedImage Method

DeleteCustomizedImage

rpc DeleteCustomizedImage(DeleteCustomizedImageRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/customizedImages.delete

The equivalent REST API is:

DELETE /v1/{name=projects/*/regions/*/customizedImages/*} 

RequestUrl Method

RequestUrl

rpc RequestUrl(RequestUrlRequest) returns (RequestUrlResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/customizedImages.requestUrl

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/customizedImages/*}:requestUrl 

CustomizedImage Messages

Here is the list of CustomizedImage resource messages:

CustomizedImage Message

NameTypeDescription
namestring (name of CustomizedImage)Name of CustomizedImage When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
specCustomizedImage.Spec
statusCustomizedImage.Status

CustomizedImage.Spec Message

NameTypeDescription
versionstringDeprecated. Use os_version instead. After a while, version and device_type are removed and os_version becomes required
device_typestring
os_versionstring (reference to OsVersion)
provisioning_policystringEither provisioning_policy or service_account must be specified
service_accountstring (reference to ServiceAccount)
service_account_keystring (reference to ServiceAccountKey)
passwordstringPassword for ‘admin’ user in the image. Please generate it using bcrypt (e.g. mkpasswd --method=bcrypt) and provide the hashed value ref: https://www.usenix.org/legacy/event/usenix99/provos/provos.pdf
encryptionbool
encryption_passwordstringUnlike password field, encryption_password must be plain text This field will be set to "" after the image is ready
disk_mappingstring
network_agentstring
ntpstring
http_proxystring
https_proxystring
no_proxystring

CustomizedImage.Status Message

NameTypeDescription
stateCustomizedImage.Status.StateState of the image.
logstringError log when state is ERROR.
filestringTODO hide this from client
md5sumstringbase64 encoded

GetCustomizedImageRequest Message

A request message of the GetCustomizedImage method.

NameTypeDescription
namestring (name of CustomizedImage)Name of ntt.devices.v1.CustomizedImage
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetCustomizedImagesRequest Message

A request message of the BatchGetCustomizedImages method.

NameTypeDescription
namesrepeated string (name of CustomizedImage)Names of CustomizedImages
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetCustomizedImagesResponse Message

A response message of the BatchGetCustomizedImages method.

NameTypeDescription
customized_imagesrepeated CustomizedImagefound CustomizedImages
missingrepeated string (name of CustomizedImage)list of not found CustomizedImages

ListCustomizedImagesRequest Message

A request message of the ListCustomizedImages method.

NameTypeDescription
parentstring (parent name of CustomizedImage)Parent name of ntt.devices.v1.CustomizedImage
page_sizeint32Requested page size. Server may return fewer CustomizedImages than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of CustomizedImage)A token identifying a page of results the server should return. Typically, this is the value of ListCustomizedImagesResponse.next_page_token.
order_bystring (orderBy of CustomizedImage)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of CustomizedImage)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListCustomizedImagesResponse Message

A response message of the ListCustomizedImages method.

NameTypeDescription
customized_imagesrepeated CustomizedImageThe list of CustomizedImages
prev_page_tokenstring (cursor of CustomizedImage)A token to retrieve previous page of results. Pass this value in the ListCustomizedImagesRequest.page_token.
next_page_tokenstring (cursor of CustomizedImage)A token to retrieve next page of results. Pass this value in the ListCustomizedImagesRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total CustomizedImages across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchCustomizedImageRequest Message

A request message of the WatchCustomizedImage method.

NameTypeDescription
namestring (name of CustomizedImage)Name of ntt.devices.v1.CustomizedImage
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchCustomizedImageResponse Message

A response message of the WatchCustomizedImage method.

NameTypeDescription
changeCustomizedImageChange

WatchCustomizedImagesRequest Message

A request message of the WatchCustomizedImages method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of CustomizedImage)Parent name of ntt.devices.v1.CustomizedImage
page_sizeint32Requested page size. Server may return fewer CustomizedImages than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of CustomizedImage)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of CustomizedImage)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of CustomizedImage)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to CustomizedImage that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to CustomizedImage that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchCustomizedImagesResponse Message

A response message of the WatchCustomizedImages method.

NameTypeDescription
customized_image_changesrepeated CustomizedImageChangeChanges of CustomizedImages
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All CustomizedImages will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchCustomizedImagesResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (CustomizedImages will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchCustomizedImagesResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of CustomizedImage)New token to retrieve previous page of results.
next_page_tokenstring (cursor of CustomizedImage)New token to retrieve next page of results.

CreateCustomizedImageRequest Message

A request message of the CreateCustomizedImage method.

NameTypeDescription
parentstring (parent name of CustomizedImage)Parent name of ntt.devices.v1.CustomizedImage
customized_imageCustomizedImageCustomizedImage resource body
response_maskCreateCustomizedImageRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateCustomizedImageRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateCustomizedImageRequest Message

A request message of the UpdateCustomizedImage method.

NameTypeDescription
customized_imageCustomizedImageCustomizedImage resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateCustomizedImageRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateCustomizedImageRequest.ResponseMaskreduce message response size.

UpdateCustomizedImageRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateCustomizedImageConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateCustomizedImageRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteCustomizedImageRequest Message

A request message of the DeleteCustomizedImage method.

NameTypeDescription
namestring (name of CustomizedImage)Name of ntt.devices.v1.CustomizedImage
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

RequestUrlRequest Message

Request message for method [RequestUrl][ntt.devices.v1.RequestUrl]

NameTypeDescription
namestring (name of CustomizedImage)name of ntt.devices.v1.CustomizedImage

RequestUrlResponse Message

Response message for method [RequestUrl][ntt.devices.v1.RequestUrl]

NameTypeDescription
urlstring
headersrepeated string

CustomizedImage Enumerations

Here is the list of CustomizedImage resource enumerations:

CustomizedImage.Status.State Enumeration

NameDescription
STATE_UNSPECIFIEDInitial state
IN_PROGRESSBackend is processing the customization request.
ERRORThere was an error processing the customization request. Check the parameters and try again.
READYThe customized image is ready to download.

Device Resource

Device Resource

Name patterns:

  • projects/{project}/regions/{region}/devices/{device}

Parent resources:

This section covers the methods and messages to interact with Device resource.

Device Methods

Here is the list of Device resource methods:

GetDevice Method

GetDevice

rpc GetDevice(GetDeviceRequest) returns (Device)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.get

The equivalent REST API is:

GET /v1/{name=projects/*/regions/*/devices/*} 

BatchGetDevices Method

BatchGetDevices

rpc BatchGetDevices(BatchGetDevicesRequest) returns (BatchGetDevicesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.batchGet

The equivalent REST API is:

GET /v1/devices:batchGet 

ListDevices Method

ListDevices

rpc ListDevices(ListDevicesRequest) returns (ListDevicesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.list

The equivalent REST API is:

GET /v1/{parent=projects/*/regions/*}/devices 

WatchDevice Method

WatchDevice

rpc WatchDevice(WatchDeviceRequest) returns (WatchDeviceResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.watch

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/devices/*}:watch 

WatchDevices Method

WatchDevices

rpc WatchDevices(WatchDevicesRequest) returns (WatchDevicesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.watch

The equivalent REST API is:

POST /v1/{parent=projects/*/regions/*}/devices:watch 

CreateDevice Method

CreateDevice

rpc CreateDevice(CreateDeviceRequest) returns (Device)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.create

The equivalent REST API is:

POST /v1/{parent=projects/*/regions/*}/devices (BODY: device)

UpdateDevice Method

UpdateDevice

rpc UpdateDevice(UpdateDeviceRequest) returns (Device)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.update

The equivalent REST API is:

PUT /v1/{device.name=projects/*/regions/*/devices/*} (BODY: device)

DeleteDevice Method

DeleteDevice

rpc DeleteDevice(DeleteDeviceRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.delete

The equivalent REST API is:

DELETE /v1/{name=projects/*/regions/*/devices/*} 

SearchDevices Method

SearchDevices

rpc SearchDevices(SearchDevicesRequest) returns (SearchDevicesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.search

The equivalent REST API is:

GET /v1/{parent=projects/*/regions/*}/devices:search 

GetDedicatedEndpoints Method

GetDedicatedEndpoints

rpc GetDedicatedEndpoints(GetDedicatedEndpointsRequest) returns (GetDedicatedEndpointsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.getDedicatedEndpoints

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/devices/*}:getDedicatedEndpoints 

ProvisionServiceAccountToDevice Method

ProvisionServiceAccountToDevice

rpc ProvisionServiceAccountToDevice(ProvisionServiceAccountToDeviceRequest) returns (ProvisionServiceAccountToDeviceResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.provisionServiceAccountToDevice

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/devices/*}:provisionServiceAccountToDevice 

RemoveServiceAccountFromDevice Method

RemoveServiceAccountFromDevice

rpc RemoveServiceAccountFromDevice(RemoveServiceAccountFromDeviceRequest) returns (RemoveServiceAccountFromDeviceResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.removeServiceAccountFromDevice

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/devices/*}:removeServiceAccountFromDevice 

Heartbeat Method

Heartbeat

rpc Heartbeat(HeartbeatMsg) returns (HeartbeatResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.heartbeat

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/devices/*}:heartbeat 

ReportDeviceMetrics Method

ReportDeviceMetrics

rpc ReportDeviceMetrics(ReportDeviceMetricsRequest) returns (ReportDeviceMetricsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.reportDeviceMetrics

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/devices/*}:reportDeviceMetrics 

ListPublicDevices Method

ListPublicDevices

rpc ListPublicDevices(ListPublicDevicesRequest) returns (ListPublicDevicesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.listPublicDevices

The equivalent REST API is:

GET /v1/{parent=projects/*/regions/*}/devices:listPublicDevices 

Device Messages

Here is the list of Device resource messages:

Device Message

NameTypeDescription
namestring (name of Device)Name of Device When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
display_namestringDisplay name for the device
descriptionstringOptional. Description of the Device.
specDevice.SpecSpec holds the expected state of the Device, meaning configurations.
statusDevice.StatusStatus of the Device reported from the actual device.
public_listing_specDevice.PublicListingSpec

Device.Spec Message

NameTypeDescription
service_accountstring (reference to ServiceAccount)The associated service account to the Device. The agents in the device uses a key from this service account when they issue any requests to our endpoints for authoroization and authentication. ProvisionServiceAccountToDevice creates a new service account and a key for the Device and asign the account to this fileld. If you change the value of this field, the existing device would lose the access to the resources in our services, that means you can revoke the permissions from the device. You can manually set an empty value to do so, or call RemoveServiceAccountFromDevice.
log_bucketstring (reference to Bucket)Logging bucket associated with device
metrics_bucketstring (reference to Bucket)Monitoring metrics bucket associated with device
os_versionstringThe expected OS version in string (e.g. 1.0.2). The device will automatically download the OS image and upgrade itself with it. You can stack the OS upgrade progress in the Condition named OSReady in Status.Conditions.
netplan_yaml_configstring
netplan_api_config_modeDevice.Spec.NetworkConfigMode
os_image_urlstringThe URL is dynamically constructed once the device is created or updated. The URL will be based on the device hardware information URL format: base_url/dedicated_path/iso_version/architecture/os_type
ssh_configDevice.Spec.SSHConfig
attestation_configDevice.Spec.AttestationConfig
disable_device_discoveryboolDisables the daemon on the device for device auto discovery on the network. When it’s enabled, avahi-daemon is launched on the device which listens at UDP 5353. This daemon is useful to locate the device that acquires an IP address with DHCP.
logging_configDevice.Spec.LoggingConfig
proxy_configDevice.Spec.ProxyConfig
locationDevice.Spec.Location
usb_guardDevice.Spec.USBGuard
health_checksrepeated HealthCheckSpecCustom Health checks for device
disable_network_config_fallbackboolIf enabled, the default network configuration that was part of the initial disk image will never be used. This needs to be used with caution because clearing this flag would require access to device over console port or by connecting a Monitor to it.

Device.Status Message

NameTypeDescription
addressesrepeated Device.Status.AddressList of network addresses.
conditionsrepeated Device.Status.ConditionList of conditions of the Device.
network_config_stateDevice.Status.NetworkConfigState
proxy_config_statusDevice.Status.ProxyConfigStatus
device_infoDevice.Status.DeviceInfoDevice detailed information
attestation_statusrepeated PCR
normalized_addressDevice.Status.NormalizedAddressNormalized Address.
connection_statusDevice.Status.ConnectionStatus
connection_status_change_time.google.protobuf.TimestampLast change of connection_status

Device.PublicListingSpec Message

NameTypeDescription
enabledbool
field_mask.google.protobuf.FieldMask

Device.Spec.SSHConfig Message

SSHConfig defines the ssh configuration for the Device.

NameTypeDescription
disable_ssh_serverbool
disable_ssh_passwordbool
ssh_authorizedrepeated Device.Spec.SSHConfig.AuthKey
ip_allow_listrepeated string
ip_deny_listrepeated string
reject_period.google.protobuf.Duration
disable_ssh_authkeybool

Device.Spec.AttestationConfig Message

NameTypeDescription
attestation_expectedboolIf true, the droplet will try to attest itself.
attestation_domainstring (reference to AttestationDomain)Attestation domain for device attestation.

Device.Spec.LoggingConfig Message

NameTypeDescription
priorityint32Log priority as understood by systemd (0 - emergency, 1 - alert, 2 - critical, 3 - error, 4 - warning, 5 - notice, 6 - informational, 7 - debug). Journal logs with this priority and higher will be uploaded to the server.
unitsrepeated stringList of systemd unit names to monitor for logs, e.g. NetworkManager.service, docker.service. Leave empty to export all journald logs.
enable_journal_exportboolWhether the journald log exporter is enabled.
container_logging_configDevice.Spec.LoggingConfig.ContainerLoggingConfig

Device.Spec.ProxyConfig Message

NameTypeDescription
http_proxystring
https_proxystring
no_proxystring
proxy_interfacesrepeated stringBy default proxy is applicable for all interfaces configuring proxy_interfaces allows to restrict proxy setting to be used only with specific interfaces At present this is only used for Control Plane (for eg LTE fallback)

Device.Spec.Location Message

Device location of the device.

NameTypeDescription
addressstring
placementstring

Device.Spec.USBGuard Message

USB Guard. When enable is not set, USB guard service will not be started. When it is enabled, we can specify allowed device white list with WhiteList. Each device can be specified one of Device Name, Device ID or connected port number. We can specify multiple parameter for a device.

NameTypeDescription
enableboolEnable USB Guard service on the device.
white_listrepeated Device.Spec.USBGuard.WhiteListThis is array of white list of the USB devices.

Device.Spec.SSHConfig.AuthKey Message

NameTypeDescription
ssha_keystring
cert_authoritybool
commandstring
environmentstring
fromstring
no_agent_forwardingbool
no_port_forwardingbool
no_ptybool
no_user_rcbool
no_x11_forwardingbool
permitopenstring
principalsstring
tunnelstring
restrictbool

Device.Spec.LoggingConfig.ContainerLoggingConfig Message

Configuration to control how container log export is handled Only enable option is available now

NameTypeDescription
enable_container_log_exportboolEnable container log export. Default is disabled

Device.Spec.USBGuard.Port Message

USB match operator for “via-port”.

NameTypeDescription
equalsrepeated string
one_ofrepeated string

Device.Spec.USBGuard.Interface Message

USB match operator for “with-interface”.

NameTypeDescription
equalsrepeated string
one_ofrepeated string

Device.Spec.USBGuard.WhiteList Message

This is array of white list of the USB devices.

NameTypeDescription
device_namestringUSB device name to be allowed to connect.
device_idstringUSB device id to be allowed to connect.
via_portDevice.Spec.USBGuard.PortUSB port to be allowed to connect.
with_interfaceDevice.Spec.USBGuard.InterfaceUSB interface to be allowed to connect.
with_connect_typestringUSB connect type to be allowed to connect.

Device.Status.Address Message

Interface addresses of the Device.

NameTypeDescription
addressstringIPv4 or IPv6 address such as 203.0.113.5 (no suffix for subnet)
typestringAlways InternalIP

Device.Status.Condition Message

Condition holds status of each sub component or module of the device.

NameTypeDescription
messagestringThe message describes the status.
reasonstringThe reason for the status.
statusstringThe status name.
typestringType name of the status.
last_heart_beat_time.google.protobuf.TimestampWhen the status has been updated last time. Deprecated
last_transition_time.google.protobuf.TimestampWhen the status has tuned into the current value.

Device.Status.NetworkConfigState Message

NameTypeDescription
active_network_config_sourceDevice.Status.NetworkConfigState.NetworkConfigSource
desired_network_config_sourceDevice.Status.NetworkConfigState.NetworkConfigSource
desired_network_config_errorstring
default_netplan_configstring
active_netplan_configstring
desired_netplan_configstring

Device.Status.ProxyConfigStatus Message

NameTypeDescription
active_config_sourceDevice.Status.ProxyConfigStatus.ProxyConfigSource
desired_config_sourceDevice.Status.ProxyConfigStatus.ProxyConfigSource
proxy_config_errorstring
default_configDevice.Spec.ProxyConfig
active_configDevice.Spec.ProxyConfig
api_configDevice.Spec.ProxyConfig

Device.Status.DeviceInfo Message

Device Information

NameTypeDescription
architecturestringThe architecture of the CPU (and the software compilied for) (e.g. arm64)
hardwarestringThe platform hardware (e.g. raspberry, generic)
operating_systemstringBase OS name (e.g. Linux)
kernel_versionstringOS kernel version
os_imagestringOS base Image name
container_runtime_versionstringNot used
os_versionstringLiquid OS version currently used.
driverstringContainer driver name (e.g. /var/lib/droplet/compose)
hardware_informationDevice.Status.DeviceInfo.HardwareInformation
network_interfacesmap<string, Device.Status.DeviceInfo.NetworkInterface>
control_plane_interface_infoDevice.Status.DeviceInfo.ControlPlaneInterfaceInfo
managed_featuresDevice.Status.DeviceInfo.ManagedFeatures

Device.Status.NormalizedAddress Message

NameTypeDescription
postal_codestringPostal code
country_codestringCountry code example US, JP
continentstringContinent, e.g. North America, Asia
continent_idstring
countrystringCountry name example United States, Japan
country_idstring
admin_area1stringProbe Location Administrative Area level 1 name, e.g. California (state), Chiba (prefecture)
admin_area1_idstring
admin_area2stringProbe Location Administrative Area level 2 name, e.g. Santa Clara (county), Tateyama (town)
admin_area2_idstring
admin_area3stringProbe Location Administrative Area level 3 name, e.g. Sunnyvale (city)
admin_area3_idstring
admin_area4stringProbe Location Administrative Area level 4 name, e.g. Sunnyvale (city)
admin_area4_idstring
addressstringOriginal address.
coordinates.google.type.LatLngcoordinates
accuracydoublelocation accuracy in meters

Device.Status.DeviceInfo.HardwareInformation Message

NameTypeDescription
osDevice.Status.DeviceInfo.HardwareInformation.OS
biosDevice.Status.DeviceInfo.HardwareInformation.BIOS
systemDevice.Status.DeviceInfo.HardwareInformation.System
cpuDevice.Status.DeviceInfo.HardwareInformation.CPU
blockDevice.Status.DeviceInfo.HardwareInformation.Block
networkDevice.Status.DeviceInfo.HardwareInformation.Network
gpuDevice.Status.DeviceInfo.HardwareInformation.GPU
memory_infoDevice.Status.DeviceInfo.HardwareInformation.MemoryInfo
hailo_infoDevice.Status.DeviceInfo.HardwareInformation.HailoInfo
nvidia_infoDevice.Status.DeviceInfo.HardwareInformation.NvidiaInfo
modem_statusrepeated Device.Status.DeviceInfo.HardwareInformation.ModemStatus

Device.Status.DeviceInfo.NetworkInterface Message

Network Interface

NameTypeDescription
interface_namestring
ip_address_v4repeated string
external_ip_address_v4repeated string
ip_address_v6repeated string
external_ip_address_v6repeated string
as_infoDevice.Status.DeviceInfo.NetworkInterface.ASInfoAsinfo describes the ISP (ASN) details for the interface This is resolved automatically from the external_ip_address.
carrierDevice.Status.DeviceInfo.NetworkInterface.CarrierCarrier.

Device.Status.DeviceInfo.ControlPlaneInterfaceInfo Message

NameTypeDescription
active_control_plane_interfacestring
uses_proxybool
is_fallbackboolis_fallback would be true if droplet could not connect using the best default route and explicitly uses this interface to connect to api endpoint

Device.Status.DeviceInfo.ManagedFeatures Message

ManagedFeatures reports which management capabilities the droplet has enabled. These are static, derived from the droplet’s startup flags (–disable-os-management and the per-feature –disable-*-management flags), and only change when the droplet restarts with different flags. A true value means the droplet reconciles that feature against the Device spec; it does not reflect the live on/off state of the feature.

NameTypeDescription
osboolOS management (SSH, USB, Avahi, OS versioning). When false, the os/os_upgrade/ssh/usb/avahi features below are all unmanaged.
os_upgradeboolOS upgrade management.
sshboolSSH server/config management.
usbboolUSBGuard management.
avahiboolAvahi daemon management.
networkboolNetwork (netplan) management.
podsboolPod management.

Device.Status.DeviceInfo.HardwareInformation.Capability Message

NameTypeDescription
namestring
descriptionstring

Device.Status.DeviceInfo.HardwareInformation.OS Message

NameTypeDescription
operating_systemstring
kernel_versionstring
os_imagestring
container_runtime_versionstring

Device.Status.DeviceInfo.HardwareInformation.BIOS Message

TODO: Add capabilities and size

NameTypeDescription
vendorstring
bios_versionstring
release_datestring

Device.Status.DeviceInfo.HardwareInformation.System Message

NameTypeDescription
manufacturerstring
product_namestring
versionstring
serial_numberstring
configurationDevice.Status.DeviceInfo.HardwareInformation.System.Configuration

Device.Status.DeviceInfo.HardwareInformation.CPU Message

NameTypeDescription
processorsrepeated Device.Status.DeviceInfo.HardwareInformation.CPU.Processor

Device.Status.DeviceInfo.HardwareInformation.Block Message

NameTypeDescription
disksrepeated Device.Status.DeviceInfo.HardwareInformation.Block.Disk

Device.Status.DeviceInfo.HardwareInformation.Network Message

NameTypeDescription
nicsrepeated Device.Status.DeviceInfo.HardwareInformation.Network.NIC

Device.Status.DeviceInfo.HardwareInformation.GPU Message

NameTypeDescription
graphic_cardsrepeated Device.Status.DeviceInfo.HardwareInformation.GPU.GraphicCard

Device.Status.DeviceInfo.HardwareInformation.PCIDevice Message

Revisit: May be just device ??

NameTypeDescription
addressstring
vendorstring
productstring
namestring
subvendorstring

Device.Status.DeviceInfo.HardwareInformation.MemoryInfo Message

NameTypeDescription
descriptionstring
size_bytesint64
memory_banksrepeated Device.Status.DeviceInfo.HardwareInformation.MemoryInfo.MemoryBank

Device.Status.DeviceInfo.HardwareInformation.HailoInfo Message

NameTypeDescription
statusstring
cli_versionstring
modulesrepeated Device.Status.DeviceInfo.HardwareInformation.HailoInfo.HailoModuleInfo

Device.Status.DeviceInfo.HardwareInformation.NvidiaInfo Message

NameTypeDescription
statusstring
driver_versionstring
cuda_versionstring
gpusrepeated Device.Status.DeviceInfo.HardwareInformation.NvidiaInfo.GpuInfo

Device.Status.DeviceInfo.HardwareInformation.ModemStatus Message

NameTypeDescription
modemDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.Modem

Device.Status.DeviceInfo.HardwareInformation.System.Configuration Message

NameTypeDescription
chassisstring
uuidstring
sku_numberstring
familystring

Device.Status.DeviceInfo.HardwareInformation.CPU.Processor Message

NameTypeDescription
vendorstring
modelstring
capabilitiesrepeated Device.Status.DeviceInfo.HardwareInformation.Capability
num_threadsuint32s
num_coresuint32s
num_enabled_coresuint32s
namestring
serialstring
frequency_mhzint64
max_frequency_mhzint64
cache_inforepeated Device.Status.DeviceInfo.HardwareInformation.CPU.Processor.Cache
driverstring
latencyint64
clockint64

Device.Status.DeviceInfo.HardwareInformation.CPU.Processor.Cache Message

NameTypeDescription
typestring
size_bytesint64

Device.Status.DeviceInfo.HardwareInformation.Block.Disk Message

NameTypeDescription
namestring
size_bytesint64
drive_typestring
vendorstring
modelstring
serial_numberstring
wwnstring
partitionsrepeated Device.Status.DeviceInfo.HardwareInformation.Block.Disk.Partition

Device.Status.DeviceInfo.HardwareInformation.Block.Disk.Partition Message

NameTypeDescription
namestring
size_bytesint64
mount_pointstring
typestring

Device.Status.DeviceInfo.HardwareInformation.Network.NIC Message

NameTypeDescription
namestring
mac_addressstring
virtualbool
descriptionstring
product_namestring
vendorstring
subvendorstring
settingmap<string, string>

Device.Status.DeviceInfo.HardwareInformation.GPU.GraphicCard Message

NameTypeDescription
indexint64
deviceDevice.Status.DeviceInfo.HardwareInformation.PCIDevice

Device.Status.DeviceInfo.HardwareInformation.MemoryInfo.MemoryBank Message

NameTypeDescription
descriptionstring
productstring
vendorstring
serialstring
slotstring
size_bytesint64
frequency_hzint64
width_bitsint32

Device.Status.DeviceInfo.HardwareInformation.HailoInfo.HailoModuleInfo Message

NameTypeDescription
dev_idstring
control_proto_versionstring
firmware_versionstring
logger_versionstring
board_namestring
serial_numberstring
part_numberstring
product_namestring
neural_network_core_clock_ratestring

Device.Status.DeviceInfo.HardwareInformation.NvidiaInfo.GpuInfo Message

NameTypeDescription
idstring
product_namestring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.RegistrationSettings Message

NameTypeDescription
drx_cyclestring
mico_modestring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.FiveGNr Message

NameTypeDescription
registration_settingsDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.RegistrationSettings

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.Settings Message

NameTypeDescription
apnstring
ip_typestring
passwordstring
userstring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.InitialBearer Message

NameTypeDescription
dbus_pathstring
settingsDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.Settings

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.Eps Message

NameTypeDescription
initial_bearerDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.InitialBearer
ue_mode_operationstring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.ThreeGpp Message

NameTypeDescription
fiveg_nrDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.FiveGNr
enabled_locksrepeated string
epsDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.Eps
imeistring
operator_codestring
operator_namestring
packet_service_statestring
pcostring
registration_statestring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.Cdma Message

NameTypeDescription
activation_statestring
cdma1x_registration_statestring
esnstring
evdo_registration_statestring
meidstring
nidstring
sidstring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalQuality Message

NameTypeDescription
recentstring
valuestring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.Generic Message

NameTypeDescription
access_technologiesrepeated string
bearersrepeated string
carrier_configurationstring
carrier_configuration_revisionstring
current_bandsrepeated string
current_capabilitiesrepeated string
current_modesstring
devicestring
device_identifierstring
driversrepeated string
equipment_identifierstring
hardware_revisionstring
manufacturerstring
modelstring
own_numbersrepeated string
pluginstring
portsrepeated string
power_statestring
primary_portstring
primary_sim_slotstring
revisionstring
signal_qualityDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalQuality
simstring
sim_slotsrepeated string
statestring
state_failed_reasonstring
supported_bandsrepeated string
supported_capabilitiesrepeated string
supported_ip_familiesrepeated string
supported_modesrepeated string
unlock_requiredstring
unlock_retriesrepeated string

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SimStatus Message

NameTypeDescription
dbus_pathstring
activestring
eidstring
emergency_numbersrepeated string
esim_statusstring
gid1string
gid2string
iccidstring
imsistring
operator_codestring
operator_namestring
removabilitystring
sim_typestring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.Modem Message

NameTypeDescription
three_g_ppDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.ThreeGpp
cdmaDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.Cdma
dbus_pathstring
genericDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.Generic
sim_statusmap<string, Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SimStatus>

Device.Status.DeviceInfo.NetworkInterface.ASInfo Message

NameTypeDescription
asnstringAS Number string example AS7018
namestringAS Owner name example AT&T Services, Inc.
domainstringDomain name example att.com
routesrepeated stringRoutes exported from this ASN example 12.128.0.0/9
asn_typestringASN Owner type example isp(AT&T) / hosting(google)/ business (Amazon)

Device.Status.DeviceInfo.NetworkInterface.Carrier Message

NameTypeDescription
namestringMobile network carrier name example AT&T
mobile_country_codestringMobile country code example 214
mobile_network_codestringMobile network code example 7
location_area_codestringMobile location area code example 2862

GetDeviceRequest Message

A request message of the GetDevice method.

NameTypeDescription
namestring (name of Device)Name of ntt.devices.v1.Device
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetDevicesRequest Message

A request message of the BatchGetDevices method.

NameTypeDescription
namesrepeated string (name of Device)Names of Devices
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetDevicesResponse Message

A response message of the BatchGetDevices method.

NameTypeDescription
devicesrepeated Devicefound Devices
missingrepeated string (name of Device)list of not found Devices

ListDevicesRequest Message

A request message of the ListDevices method.

NameTypeDescription
parentstring (parent name of Device)Parent name of ntt.devices.v1.Device
page_sizeint32Requested page size. Server may return fewer Devices than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of Device)A token identifying a page of results the server should return. Typically, this is the value of ListDevicesResponse.next_page_token.
order_bystring (orderBy of Device)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of Device)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListDevicesResponse Message

A response message of the ListDevices method.

NameTypeDescription
devicesrepeated DeviceThe list of Devices
prev_page_tokenstring (cursor of Device)A token to retrieve previous page of results. Pass this value in the ListDevicesRequest.page_token.
next_page_tokenstring (cursor of Device)A token to retrieve next page of results. Pass this value in the ListDevicesRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total Devices across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchDeviceRequest Message

A request message of the WatchDevice method.

NameTypeDescription
namestring (name of Device)Name of ntt.devices.v1.Device
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchDeviceResponse Message

A response message of the WatchDevice method.

NameTypeDescription
changeDeviceChange

WatchDevicesRequest Message

A request message of the WatchDevices method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of Device)Parent name of ntt.devices.v1.Device
page_sizeint32Requested page size. Server may return fewer Devices than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of Device)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of Device)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of Device)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Device that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Device that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchDevicesResponse Message

A response message of the WatchDevices method.

NameTypeDescription
device_changesrepeated DeviceChangeChanges of Devices
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Devices will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchDevicesResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Devices will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchDevicesResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of Device)New token to retrieve previous page of results.
next_page_tokenstring (cursor of Device)New token to retrieve next page of results.

CreateDeviceRequest Message

A request message of the CreateDevice method.

NameTypeDescription
parentstring (parent name of Device)Parent name of ntt.devices.v1.Device
deviceDeviceDevice resource body
response_maskCreateDeviceRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateDeviceRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateDeviceRequest Message

A request message of the UpdateDevice method.

NameTypeDescription
deviceDeviceDevice resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateDeviceRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateDeviceRequest.ResponseMaskreduce message response size.

UpdateDeviceRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateDeviceConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateDeviceRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteDeviceRequest Message

A request message of the DeleteDevice method.

NameTypeDescription
namestring (name of Device)Name of ntt.devices.v1.Device
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

SearchDevicesRequest Message

A request message of the SearchDevices method.

NameTypeDescription
parentstring (parent name of Device)Parent name of ntt.devices.v1.Device
page_sizeint32Requested page size. Server may return fewer Devices than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of Device)A token identifying a page of results the server should return. Typically, this is the value of SearchDevicesResponse.next_page_token.
order_bystring (orderBy of Device)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of Device)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
phrasestringOptional search phrase used to further filter results.

SearchDevicesResponse Message

A response message of the SearchDevices method.

NameTypeDescription
devicesrepeated DeviceThe list of Devices
prev_page_tokenstring (cursor of Device)A token to retrieve previous page of results. Pass this value in the SearchDevicesRequest.page_token.
next_page_tokenstring (cursor of Device)A token to retrieve next page of results. Pass this value in the SearchDevicesRequest.page_token.
current_offsetint32Current offset from the first page (0 if no page tokens were given). Page index can be computed from offset and limit provided in a request
total_results_countint32Number of total Devices across all pages.

GetDedicatedEndpointsRequest Message

A request message of the [GetDedicatedEndpoints][ntt.devices.v1.GetDedicatedEndpoints]

NameTypeDescription
namestring (name of Device)

GetDedicatedEndpointsResponse Message

Response message for method [GetDedicatedEndpoints][ntt.devices.v1.GetDedicatedEndpoints]

NameTypeDescription
endpointsrepeated string

ProvisionServiceAccountToDeviceRequest Message

Request message for method [ProvisionServiceAccountToDevice][ntt.devices.v1.ProvisionServiceAccountToDevice]

NameTypeDescription
namestring (name of Device)Name of Device to provision service account. This method automatically generates a service account and a key for the device and assign the key to .Spec.ServiceAccount
external_pubkeystringexternal public key to use for service account for this device. If not present, a keypair will be generated by the server.

ProvisionServiceAccountToDeviceResponse Message

Response message for method [ProvisionServiceAccountToDevice][ntt.devices.v1.ProvisionServiceAccountToDevice]

NameTypeDescription
service_accountServiceAccountThe service account generated by the endpoint. Save the private key included.

RemoveServiceAccountFromDeviceRequest Message

Request message for method [RemoveServiceAccountFromDevice][ntt.devices.v1.RemoveServiceAccountFromDevice]

NameTypeDescription
namestring (name of Device)Name of the Device to remove its service account The service account and the key will be automatically deleted as well when they have been generated automatically by ProvisionServiceAccountToDevice action. Otherwise, the service account will be kept intact. The device will lost the access to the resources in the project.

RemoveServiceAccountFromDeviceResponse Message

Response message for method [RemoveServiceAccountFromDevice][ntt.devices.v1.RemoveServiceAccountFromDevice]

NameTypeDescription
nonenonenone

HeartbeatMsg Message

NameTypeDescription
namestring (name of Device)
registerHeartbeatMsg.Register
heartbeatHeartbeatMsg.Heartbeat

HeartbeatMsg.Register Message

NameTypeDescription
nonenonenone

HeartbeatMsg.Heartbeat Message

NameTypeDescription
nonenonenone

HeartbeatResponse Message

NameTypeDescription
desired_heartbeat_interval.google.protobuf.Duration

ReportDeviceMetricsRequest Message

A request message of the ReportDeviceMetrics method.

NameTypeDescription
namestring (name of Device)device_name abd region_id are required in first message for streaming
display_namestring
serial_numberstring
device_metricsDeviceMetrics

ReportDeviceMetricsResponse Message

NameTypeDescription
new_time_series_headersrepeated TimeSerieList of newly seen time series headers with unique binary key observed in corresponding ReportDeviceMetricsRequest.

ListPublicDevicesRequest Message

Request message for method [ListPublicDevices][ntt.devices.v1.ListPublicDevices]

NameTypeDescription
parentstring (parent name of Device)Parent name of ntt.devices.v1.Device
page_sizeint32Requested page size. Server may return fewer Devices than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of Device)A token identifying a page of results the server should return. Typically, this is the value of [ListDevicesResponse.next_page_token][ntt.devices.v1.ListDevicesResponse.next_page_token]
order_bystring (orderBy of Device)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of Device)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be requested on top of those defined by request field View.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

ListPublicDevicesResponse Message

Response message for method [ListPublicDevices][ntt.devices.v1.ListPublicDevices]

NameTypeDescription
devicesrepeated DeviceThe list of Devices
prev_page_tokenstring (cursor of Device)A token to retrieve previous page of results. Pass this value in the [ListDevicesRequest.page_token][ntt.devices.v1.ListDevicesRequest.page_token]
next_page_tokenstring (cursor of Device)A token to retrieve next page of results. Pass this value in the [ListDevicesRequest.page_token][ntt.devices.v1.ListDevicesRequest.page_token]

Device Enumerations

Here is the list of Device resource enumerations:

Device.Spec.NetworkConfigMode Enumeration

MERGE or REPLACE the api netplan_config with the baked in config in the device. REPLACE - The desired configuration must be input in full. The default config in disk will not be used. MERGE - Replaces level keys such as ethernet, modems, wifis etc that are defined in API config. Merge makes it easier to add new types of configuration - for example if the default configuration does not have wifis, it is easier to just add wifi config alone in API and use config mode merge. However, if the goal is to add to or replace a specific configuration in a section that already exists in the default configuration, then the API config should have the entire section and not just the changes for example if the default config on disk has eno1, eno2 under ethernet section and the goal is to replace the eno2 on disk, then the API configuration should specify both eno1 and eno2. This is because the merge mode still replaces whole sections that are defined in the API config

NameDescription
MERGE
REPLACE

Device.Status.ConnectionStatus Enumeration

NameDescription
CONNECTION_STATUS_UNSPECIFIED
CONNECTED
DISCONNECTED

Device.Status.NetworkConfigState.NetworkConfigSource Enumeration

NameDescription
UNKNOWN
DEFAULT_CONFIG
API_CONFIG
MERGED_DEFAULT_AND_API_CONFIG
PREVIOUS_MERGED_DEFAULT_AND_API_CONFIG
PREVIOUS_API_CONFIG

Device.Status.ProxyConfigStatus.ProxyConfigSource Enumeration

NameDescription
NO_CONFIG
DEFAULT_CONFIG
API_CONFIG

DeviceDistributionCounter Resource

DeviceDistributionCounter Resource

Name patterns:

  • projects/{project}/regions/{region}/deviceDistributionCounters/{device_distribution_counter}

Parent resources:

This section covers the methods and messages to interact with DeviceDistributionCounter resource.

DeviceDistributionCounter Methods

Here is the list of DeviceDistributionCounter resource methods:

GetDeviceDistributionCounter Method

GetDeviceDistributionCounter

rpc GetDeviceDistributionCounter(GetDeviceDistributionCounterRequest) returns (DeviceDistributionCounter)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceDistributionCounters.get

The equivalent REST API is:

GET /v1/{name=projects/*/regions/*/deviceDistributionCounters/*} 

BatchGetDeviceDistributionCounters Method

BatchGetDeviceDistributionCounters

rpc BatchGetDeviceDistributionCounters(BatchGetDeviceDistributionCountersRequest) returns (BatchGetDeviceDistributionCountersResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceDistributionCounters.batchGet

The equivalent REST API is:

GET /v1/deviceDistributionCounters:batchGet 

ListDeviceDistributionCounters Method

ListDeviceDistributionCounters

rpc ListDeviceDistributionCounters(ListDeviceDistributionCountersRequest) returns (ListDeviceDistributionCountersResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceDistributionCounters.list

The equivalent REST API is:

GET /v1/{parent=projects/*/regions/*}/deviceDistributionCounters 

WatchDeviceDistributionCounter Method

WatchDeviceDistributionCounter

rpc WatchDeviceDistributionCounter(WatchDeviceDistributionCounterRequest) returns (WatchDeviceDistributionCounterResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceDistributionCounters.watch

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/deviceDistributionCounters/*}:watch 

WatchDeviceDistributionCounters Method

WatchDeviceDistributionCounters

rpc WatchDeviceDistributionCounters(WatchDeviceDistributionCountersRequest) returns (WatchDeviceDistributionCountersResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceDistributionCounters.watch

The equivalent REST API is:

POST /v1/{parent=projects/*/regions/*}/deviceDistributionCounters:watch 

DeviceDistributionCounter Messages

Here is the list of DeviceDistributionCounter resource messages:

DeviceDistributionCounter Message

NameTypeDescription
namestring (name of DeviceDistributionCounter)Name of DeviceDistributionCounter When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
total_countint64
online_countint64

GetDeviceDistributionCounterRequest Message

A request message of the GetDeviceDistributionCounter method.

NameTypeDescription
namestring (name of DeviceDistributionCounter)Name of ntt.devices.v1.DeviceDistributionCounter
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetDeviceDistributionCountersRequest Message

A request message of the BatchGetDeviceDistributionCounters method.

NameTypeDescription
namesrepeated string (name of DeviceDistributionCounter)Names of DeviceDistributionCounters
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetDeviceDistributionCountersResponse Message

A response message of the BatchGetDeviceDistributionCounters method.

NameTypeDescription
device_distribution_countersrepeated DeviceDistributionCounterfound DeviceDistributionCounters
missingrepeated string (name of DeviceDistributionCounter)list of not found DeviceDistributionCounters

ListDeviceDistributionCountersRequest Message

A request message of the ListDeviceDistributionCounters method.

NameTypeDescription
parentstring (parent name of DeviceDistributionCounter)Parent name of ntt.devices.v1.DeviceDistributionCounter
page_sizeint32Requested page size. Server may return fewer DeviceDistributionCounters than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of DeviceDistributionCounter)A token identifying a page of results the server should return. Typically, this is the value of ListDeviceDistributionCountersResponse.next_page_token.
order_bystring (orderBy of DeviceDistributionCounter)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of DeviceDistributionCounter)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListDeviceDistributionCountersResponse Message

A response message of the ListDeviceDistributionCounters method.

NameTypeDescription
device_distribution_countersrepeated DeviceDistributionCounterThe list of DeviceDistributionCounters
prev_page_tokenstring (cursor of DeviceDistributionCounter)A token to retrieve previous page of results. Pass this value in the ListDeviceDistributionCountersRequest.page_token.
next_page_tokenstring (cursor of DeviceDistributionCounter)A token to retrieve next page of results. Pass this value in the ListDeviceDistributionCountersRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total DeviceDistributionCounters across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchDeviceDistributionCounterRequest Message

A request message of the WatchDeviceDistributionCounter method.

NameTypeDescription
namestring (name of DeviceDistributionCounter)Name of ntt.devices.v1.DeviceDistributionCounter
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchDeviceDistributionCounterResponse Message

A response message of the WatchDeviceDistributionCounter method.

NameTypeDescription
changeDeviceDistributionCounterChange

WatchDeviceDistributionCountersRequest Message

A request message of the WatchDeviceDistributionCounters method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of DeviceDistributionCounter)Parent name of ntt.devices.v1.DeviceDistributionCounter
page_sizeint32Requested page size. Server may return fewer DeviceDistributionCounters than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of DeviceDistributionCounter)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of DeviceDistributionCounter)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of DeviceDistributionCounter)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to DeviceDistributionCounter that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to DeviceDistributionCounter that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchDeviceDistributionCountersResponse Message

A response message of the WatchDeviceDistributionCounters method.

NameTypeDescription
device_distribution_counter_changesrepeated DeviceDistributionCounterChangeChanges of DeviceDistributionCounters
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All DeviceDistributionCounters will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchDeviceDistributionCountersResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (DeviceDistributionCounters will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchDeviceDistributionCountersResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of DeviceDistributionCounter)New token to retrieve previous page of results.
next_page_tokenstring (cursor of DeviceDistributionCounter)New token to retrieve next page of results.

DeviceHardware Resource

DeviceHardware Resource

Name patterns:

  • projects/{project}/regions/{region}/deviceHardwares/{device_hardware}

Parent resources:

This section covers the methods and messages to interact with DeviceHardware resource.

DeviceHardware Methods

Here is the list of DeviceHardware resource methods:

GetDeviceHardware Method

GetDeviceHardware

rpc GetDeviceHardware(GetDeviceHardwareRequest) returns (DeviceHardware)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwares.get

The equivalent REST API is:

GET /v1/{name=projects/*/regions/*/deviceHardwares/*} 

BatchGetDeviceHardwares Method

BatchGetDeviceHardwares

rpc BatchGetDeviceHardwares(BatchGetDeviceHardwaresRequest) returns (BatchGetDeviceHardwaresResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwares.batchGet

The equivalent REST API is:

GET /v1/deviceHardwares:batchGet 

ListDeviceHardwares Method

ListDeviceHardwares

rpc ListDeviceHardwares(ListDeviceHardwaresRequest) returns (ListDeviceHardwaresResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwares.list

The equivalent REST API is:

GET /v1/{parent=projects/*/regions/*}/deviceHardwares 

WatchDeviceHardware Method

WatchDeviceHardware

rpc WatchDeviceHardware(WatchDeviceHardwareRequest) returns (WatchDeviceHardwareResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwares.watch

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/deviceHardwares/*}:watch 

WatchDeviceHardwares Method

WatchDeviceHardwares

rpc WatchDeviceHardwares(WatchDeviceHardwaresRequest) returns (WatchDeviceHardwaresResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwares.watch

The equivalent REST API is:

POST /v1/{parent=projects/*/regions/*}/deviceHardwares:watch 

CreateDeviceHardware Method

CreateDeviceHardware

rpc CreateDeviceHardware(CreateDeviceHardwareRequest) returns (DeviceHardware)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwares.create

The equivalent REST API is:

POST /v1/{parent=projects/*/regions/*}/deviceHardwares (BODY: device_hardware)

UpdateDeviceHardware Method

UpdateDeviceHardware

rpc UpdateDeviceHardware(UpdateDeviceHardwareRequest) returns (DeviceHardware)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwares.update

The equivalent REST API is:

PUT /v1/{device_hardware.name=projects/*/regions/*/deviceHardwares/*} (BODY: device_hardware)

DeleteDeviceHardware Method

DeleteDeviceHardware

rpc DeleteDeviceHardware(DeleteDeviceHardwareRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwares.delete

The equivalent REST API is:

DELETE /v1/{name=projects/*/regions/*/deviceHardwares/*} 

Deregister Method

Deregister

rpc Deregister(DeregisterRequest) returns (DeregisterResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwares.deregister

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/deviceHardwares/*}:deregister 

DeviceHardware Messages

Here is the list of DeviceHardware resource messages:

DeviceHardware Message

NameTypeDescription
namestring (name of DeviceHardware)Name of DeviceHardware When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
display_namestring
serial_numberstring
manufacturerstring
product_namestringShould be in the format “productname (sku)”
mac_addressrepeated string
sim_iccidstringResult of activating sim card, which is specified by associated_sim_card field
imeistring
associated_provisioning_policy_namestring (reference to ProvisioningPolicy)
associated_devicestring (reference to Device)
associated_sim_cardstring (reference to SimCard)
statusDeviceHardware.Status

DeviceHardware.Status Message

NameTypeDescription
provisioning_stateDeviceHardware.Status.PROVISIONING_STATE

GetDeviceHardwareRequest Message

A request message of the GetDeviceHardware method.

NameTypeDescription
namestring (name of DeviceHardware)Name of ntt.devices.v1.DeviceHardware
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetDeviceHardwaresRequest Message

A request message of the BatchGetDeviceHardwares method.

NameTypeDescription
namesrepeated string (name of DeviceHardware)Names of DeviceHardwares
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetDeviceHardwaresResponse Message

A response message of the BatchGetDeviceHardwares method.

NameTypeDescription
device_hardwaresrepeated DeviceHardwarefound DeviceHardwares
missingrepeated string (name of DeviceHardware)list of not found DeviceHardwares

ListDeviceHardwaresRequest Message

A request message of the ListDeviceHardwares method.

NameTypeDescription
parentstring (parent name of DeviceHardware)Parent name of ntt.devices.v1.DeviceHardware
page_sizeint32Requested page size. Server may return fewer DeviceHardwares than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of DeviceHardware)A token identifying a page of results the server should return. Typically, this is the value of ListDeviceHardwaresResponse.next_page_token.
order_bystring (orderBy of DeviceHardware)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of DeviceHardware)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListDeviceHardwaresResponse Message

A response message of the ListDeviceHardwares method.

NameTypeDescription
device_hardwaresrepeated DeviceHardwareThe list of DeviceHardwares
prev_page_tokenstring (cursor of DeviceHardware)A token to retrieve previous page of results. Pass this value in the ListDeviceHardwaresRequest.page_token.
next_page_tokenstring (cursor of DeviceHardware)A token to retrieve next page of results. Pass this value in the ListDeviceHardwaresRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total DeviceHardwares across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchDeviceHardwareRequest Message

A request message of the WatchDeviceHardware method.

NameTypeDescription
namestring (name of DeviceHardware)Name of ntt.devices.v1.DeviceHardware
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchDeviceHardwareResponse Message

A response message of the WatchDeviceHardware method.

NameTypeDescription
changeDeviceHardwareChange

WatchDeviceHardwaresRequest Message

A request message of the WatchDeviceHardwares method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of DeviceHardware)Parent name of ntt.devices.v1.DeviceHardware
page_sizeint32Requested page size. Server may return fewer DeviceHardwares than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of DeviceHardware)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of DeviceHardware)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of DeviceHardware)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to DeviceHardware that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to DeviceHardware that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchDeviceHardwaresResponse Message

A response message of the WatchDeviceHardwares method.

NameTypeDescription
device_hardware_changesrepeated DeviceHardwareChangeChanges of DeviceHardwares
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All DeviceHardwares will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchDeviceHardwaresResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (DeviceHardwares will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchDeviceHardwaresResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of DeviceHardware)New token to retrieve previous page of results.
next_page_tokenstring (cursor of DeviceHardware)New token to retrieve next page of results.

CreateDeviceHardwareRequest Message

A request message of the CreateDeviceHardware method.

NameTypeDescription
parentstring (parent name of DeviceHardware)Parent name of ntt.devices.v1.DeviceHardware
device_hardwareDeviceHardwareDeviceHardware resource body
response_maskCreateDeviceHardwareRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateDeviceHardwareRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateDeviceHardwareRequest Message

A request message of the UpdateDeviceHardware method.

NameTypeDescription
device_hardwareDeviceHardwareDeviceHardware resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateDeviceHardwareRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateDeviceHardwareRequest.ResponseMaskreduce message response size.

UpdateDeviceHardwareRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateDeviceHardwareConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateDeviceHardwareRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteDeviceHardwareRequest Message

A request message of the DeleteDeviceHardware method.

NameTypeDescription
namestring (name of DeviceHardware)Name of ntt.devices.v1.DeviceHardware
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

DeregisterRequest Message

Request message for method [Deregister][ntt.devices.v1.Deregister]

NameTypeDescription
namestring (name of DeviceHardware)Name of ntt.devices.v1.DeviceHardware

DeregisterResponse Message

Response message for method [Deregister][ntt.devices.v1.Deregister]

NameTypeDescription
nonenonenone

DeviceHardware Enumerations

Here is the list of DeviceHardware resource enumerations:

DeviceHardware.Status.PROVISIONING_STATE Enumeration

NameDescription
UNKNOWNHardware was deregistered, so device state cannot be tracked
SIM_ACTIVATINGThe SIM card is being activated.
CONNECTINGThe device would be connecting to ZTP as the attached SIM card was activated. If SIM card is not attached, this is the first status. If stuck at this value, provisioning could have failed.
NOT_PROVISIONEDDeprecated: This has been replaced by splitting into SIM_ACTIVATING and ZTP_CONNECTING
PROVISIONEDDevice passed attestation and service account is created Could be either provisioning policy scope for device scope account
REVOKEDFor device scope onboarding, the device was removed For provisioning policy based onboarding, the provisioning policy was removed

DeviceHardwareRegisterSession Resource

DeviceHardwareRegisterSession Resource

Name patterns:

  • projects/{project}/regions/{region}/deviceHardwareRegisterSessions/{device_hardware_register_session}

Parent resources:

This section covers the methods and messages to interact with DeviceHardwareRegisterSession resource.

DeviceHardwareRegisterSession Methods

Here is the list of DeviceHardwareRegisterSession resource methods:

GetDeviceHardwareRegisterSession Method

GetDeviceHardwareRegisterSession

rpc GetDeviceHardwareRegisterSession(GetDeviceHardwareRegisterSessionRequest) returns (DeviceHardwareRegisterSession)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwareRegisterSessions.get

The equivalent REST API is:

GET /v1/{name=projects/*/regions/*/deviceHardwareRegisterSessions/*} 

BatchGetDeviceHardwareRegisterSessions Method

BatchGetDeviceHardwareRegisterSessions

rpc BatchGetDeviceHardwareRegisterSessions(BatchGetDeviceHardwareRegisterSessionsRequest) returns (BatchGetDeviceHardwareRegisterSessionsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwareRegisterSessions.batchGet

The equivalent REST API is:

GET /v1/deviceHardwareRegisterSessions:batchGet 

ListDeviceHardwareRegisterSessions Method

ListDeviceHardwareRegisterSessions

rpc ListDeviceHardwareRegisterSessions(ListDeviceHardwareRegisterSessionsRequest) returns (ListDeviceHardwareRegisterSessionsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwareRegisterSessions.list

The equivalent REST API is:

GET /v1/{parent=projects/*/regions/*}/deviceHardwareRegisterSessions 

WatchDeviceHardwareRegisterSession Method

WatchDeviceHardwareRegisterSession

rpc WatchDeviceHardwareRegisterSession(WatchDeviceHardwareRegisterSessionRequest) returns (WatchDeviceHardwareRegisterSessionResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwareRegisterSessions.watch

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/deviceHardwareRegisterSessions/*}:watch 

WatchDeviceHardwareRegisterSessions Method

WatchDeviceHardwareRegisterSessions

rpc WatchDeviceHardwareRegisterSessions(WatchDeviceHardwareRegisterSessionsRequest) returns (WatchDeviceHardwareRegisterSessionsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwareRegisterSessions.watch

The equivalent REST API is:

POST /v1/{parent=projects/*/regions/*}/deviceHardwareRegisterSessions:watch 

CreateDeviceHardwareRegisterSession Method

CreateDeviceHardwareRegisterSession

rpc CreateDeviceHardwareRegisterSession(CreateDeviceHardwareRegisterSessionRequest) returns (DeviceHardwareRegisterSession)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwareRegisterSessions.create

The equivalent REST API is:

POST /v1/{parent=projects/*/regions/*}/deviceHardwareRegisterSessions (BODY: device_hardware_register_session)

UpdateDeviceHardwareRegisterSession Method

UpdateDeviceHardwareRegisterSession

rpc UpdateDeviceHardwareRegisterSession(UpdateDeviceHardwareRegisterSessionRequest) returns (DeviceHardwareRegisterSession)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwareRegisterSessions.update

The equivalent REST API is:

PUT /v1/{device_hardware_register_session.name=projects/*/regions/*/deviceHardwareRegisterSessions/*} (BODY: device_hardware_register_session)

DeleteDeviceHardwareRegisterSession Method

DeleteDeviceHardwareRegisterSession

rpc DeleteDeviceHardwareRegisterSession(DeleteDeviceHardwareRegisterSessionRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwareRegisterSessions.delete

The equivalent REST API is:

DELETE /v1/{name=projects/*/regions/*/deviceHardwareRegisterSessions/*} 

GetDeviceHardwareRegisterSessionFromToken Method

GetDeviceHardwareRegisterSessionFromToken

rpc GetDeviceHardwareRegisterSessionFromToken(GetDeviceHardwareRegisterSessionFromTokenRequest) returns (GetDeviceHardwareRegisterSessionFromTokenResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwareRegisterSessions.getDeviceHardwareRegisterSessionFromToken

The equivalent REST API is:

GET /v1/deviceHardwareRegisterSessions:getDeviceHardwareRegisterSessionFromToken 

RegisterHardware Method

RegisterHardware

rpc RegisterHardware(RegisterHardwareRequest) returns (RegisterHardwareResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwareRegisterSessions.registerHardware

The equivalent REST API is:

POST /v1/deviceHardwareRegisterSessions:registerHardware 

HardwareStatus Method

HardwareStatus

rpc HardwareStatus(HardwareStatusRequest) returns (HardwareStatusResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceHardwareRegisterSessions.hardwareStatus

The equivalent REST API is:

GET /v1/deviceHardwareRegisterSessions:hardwareStatus 

DeviceHardwareRegisterSession Messages

Here is the list of DeviceHardwareRegisterSession resource messages:

DeviceHardwareRegisterSession Message

NameTypeDescription
namestring (name of DeviceHardwareRegisterSession)Name of DeviceHardwareRegisterSession When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
display_namestring
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
start_time.google.protobuf.TimestampStart time, if not set, current time will be used
expiration_time.google.protobuf.TimestampExpiration time, if not set, will be set to 1 week from now
user_emailstringEmail address of the user who will register the hardware Only used to send an email. Not used for identity/authorization
inviter_emailstringInviter Email, automatically set from token, not accepted as input
language_codestringEmail ISO language code. Defaults to “en-us” (American English).
extrasmap<string, string>Extra custom fields to further customize email. Fields should be agreed between sender (usually UI) and documented in the template of email service provider.
provisioning_policy_namestring (reference to ProvisioningPolicy)Provisioning Policy name to register hardware one of provisioning_policy_name or device_name is required
device_namestring (reference to Device)Device name to register hardware
single_useboolIf true, only one hardware can be registered using this session If false, multiple hardwares can be registered using this session
tokenstringauto-generated
statusDeviceHardwareRegisterSession.Status

DeviceHardwareRegisterSession.Status Message

NameTypeDescription
device_hardwaresrepeated string (name of DeviceHardware)Device hardwares that were registered with this session Deleted names are retailed for history

GetDeviceHardwareRegisterSessionRequest Message

A request message of the GetDeviceHardwareRegisterSession method.

NameTypeDescription
namestring (name of DeviceHardwareRegisterSession)Name of ntt.devices.v1.DeviceHardwareRegisterSession
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetDeviceHardwareRegisterSessionsRequest Message

A request message of the BatchGetDeviceHardwareRegisterSessions method.

NameTypeDescription
namesrepeated string (name of DeviceHardwareRegisterSession)Names of DeviceHardwareRegisterSessions
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetDeviceHardwareRegisterSessionsResponse Message

A response message of the BatchGetDeviceHardwareRegisterSessions method.

NameTypeDescription
device_hardware_register_sessionsrepeated DeviceHardwareRegisterSessionfound DeviceHardwareRegisterSessions
missingrepeated string (name of DeviceHardwareRegisterSession)list of not found DeviceHardwareRegisterSessions

ListDeviceHardwareRegisterSessionsRequest Message

A request message of the ListDeviceHardwareRegisterSessions method.

NameTypeDescription
parentstring (parent name of DeviceHardwareRegisterSession)Parent name of ntt.devices.v1.DeviceHardwareRegisterSession
page_sizeint32Requested page size. Server may return fewer DeviceHardwareRegisterSessions than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of DeviceHardwareRegisterSession)A token identifying a page of results the server should return. Typically, this is the value of ListDeviceHardwareRegisterSessionsResponse.next_page_token.
order_bystring (orderBy of DeviceHardwareRegisterSession)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of DeviceHardwareRegisterSession)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListDeviceHardwareRegisterSessionsResponse Message

A response message of the ListDeviceHardwareRegisterSessions method.

NameTypeDescription
device_hardware_register_sessionsrepeated DeviceHardwareRegisterSessionThe list of DeviceHardwareRegisterSessions
prev_page_tokenstring (cursor of DeviceHardwareRegisterSession)A token to retrieve previous page of results. Pass this value in the ListDeviceHardwareRegisterSessionsRequest.page_token.
next_page_tokenstring (cursor of DeviceHardwareRegisterSession)A token to retrieve next page of results. Pass this value in the ListDeviceHardwareRegisterSessionsRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total DeviceHardwareRegisterSessions across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchDeviceHardwareRegisterSessionRequest Message

A request message of the WatchDeviceHardwareRegisterSession method.

NameTypeDescription
namestring (name of DeviceHardwareRegisterSession)Name of ntt.devices.v1.DeviceHardwareRegisterSession
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchDeviceHardwareRegisterSessionResponse Message

A response message of the WatchDeviceHardwareRegisterSession method.

NameTypeDescription
changeDeviceHardwareRegisterSessionChange

WatchDeviceHardwareRegisterSessionsRequest Message

A request message of the WatchDeviceHardwareRegisterSessions method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of DeviceHardwareRegisterSession)Parent name of ntt.devices.v1.DeviceHardwareRegisterSession
page_sizeint32Requested page size. Server may return fewer DeviceHardwareRegisterSessions than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of DeviceHardwareRegisterSession)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of DeviceHardwareRegisterSession)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of DeviceHardwareRegisterSession)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to DeviceHardwareRegisterSession that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to DeviceHardwareRegisterSession that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchDeviceHardwareRegisterSessionsResponse Message

A response message of the WatchDeviceHardwareRegisterSessions method.

NameTypeDescription
device_hardware_register_session_changesrepeated DeviceHardwareRegisterSessionChangeChanges of DeviceHardwareRegisterSessions
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All DeviceHardwareRegisterSessions will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchDeviceHardwareRegisterSessionsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (DeviceHardwareRegisterSessions will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchDeviceHardwareRegisterSessionsResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of DeviceHardwareRegisterSession)New token to retrieve previous page of results.
next_page_tokenstring (cursor of DeviceHardwareRegisterSession)New token to retrieve next page of results.

CreateDeviceHardwareRegisterSessionRequest Message

A request message of the CreateDeviceHardwareRegisterSession method.

NameTypeDescription
parentstring (parent name of DeviceHardwareRegisterSession)Parent name of ntt.devices.v1.DeviceHardwareRegisterSession
device_hardware_register_sessionDeviceHardwareRegisterSessionDeviceHardwareRegisterSession resource body
response_maskCreateDeviceHardwareRegisterSessionRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateDeviceHardwareRegisterSessionRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateDeviceHardwareRegisterSessionRequest Message

A request message of the UpdateDeviceHardwareRegisterSession method.

NameTypeDescription
device_hardware_register_sessionDeviceHardwareRegisterSessionDeviceHardwareRegisterSession resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateDeviceHardwareRegisterSessionRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateDeviceHardwareRegisterSessionRequest.ResponseMaskreduce message response size.

UpdateDeviceHardwareRegisterSessionRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateDeviceHardwareRegisterSessionConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateDeviceHardwareRegisterSessionRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteDeviceHardwareRegisterSessionRequest Message

A request message of the DeleteDeviceHardwareRegisterSession method.

NameTypeDescription
namestring (name of DeviceHardwareRegisterSession)Name of ntt.devices.v1.DeviceHardwareRegisterSession
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

GetDeviceHardwareRegisterSessionFromTokenRequest Message

Request message for method [GetDeviceHardwareRegisterSessionFromToken][ntt.devices.v1.GetDeviceHardwareRegisterSessionFromToken]

NameTypeDescription
tokenstringtoken from hardware_register_session

GetDeviceHardwareRegisterSessionFromTokenResponse Message

Response message for method [GetDeviceHardwareRegisterSessionFromToken][ntt.devices.v1.GetDeviceHardwareRegisterSessionFromToken]

NameTypeDescription
device_hardware_register_sessionDeviceHardwareRegisterSession
project_display_namestringUsed for showing project name in hardware registration dashboard

RegisterHardwareRequest Message

Request message for method [RegisterHardware][ntt.devices.v1.RegisterHardware]

NameTypeDescription
tokenstringtoken from hardware_register_session
serial_numberstring
manufacturerstring
product_namestringShould be in the format “productname (sku)”, required field
mac_addressrepeated string
sim_iccidstring
imeistring
md5_hmac_digeststringMD5 HMAC of ‘{“ICCID”:"<>",“MODEL”:"<>",“SN”:"<>"}’

RegisterHardwareResponse Message

Response message for method [RegisterHardware][ntt.devices.v1.RegisterHardware]

NameTypeDescription
hardwareDeviceHardware

HardwareStatusRequest Message

Request message for method [HardwareStatus][ntt.devices.v1.HardwareStatus]

NameTypeDescription
tokenstringtoken for hardware_register_session
serial_numberstring
manufacturerstringmanufacturer is typically not required, only required in case of serial number conflict with different vendors
product_namestringproduct_name is typically not required, only required in case of serial number conflict with different productname/skus Should be in the format “productname (sku)”

HardwareStatusResponse Message

Response message for method [HardwareStatus][ntt.devices.v1.HardwareStatus]

NameTypeDescription
device_hardwaresrepeated DeviceHardware

DeviceType Resource

DeviceType Resource

Name patterns:

  • deviceTypes/{device_type}

This section covers the methods and messages to interact with DeviceType resource.

DeviceType Methods

Here is the list of DeviceType resource methods:

GetDeviceType Method

GetDeviceType

rpc GetDeviceType(GetDeviceTypeRequest) returns (DeviceType)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceTypes.get

The equivalent REST API is:

GET /v1/{name=deviceTypes/*} 

BatchGetDeviceTypes Method

BatchGetDeviceTypes

rpc BatchGetDeviceTypes(BatchGetDeviceTypesRequest) returns (BatchGetDeviceTypesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceTypes.batchGet

The equivalent REST API is:

GET /v1/deviceTypes:batchGet 

ListDeviceTypes Method

ListDeviceTypes

rpc ListDeviceTypes(ListDeviceTypesRequest) returns (ListDeviceTypesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceTypes.list

The equivalent REST API is:

GET /v1/deviceTypes 

WatchDeviceType Method

WatchDeviceType

rpc WatchDeviceType(WatchDeviceTypeRequest) returns (WatchDeviceTypeResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceTypes.watch

The equivalent REST API is:

POST /v1/{name=deviceTypes/*}:watch 

WatchDeviceTypes Method

WatchDeviceTypes

rpc WatchDeviceTypes(WatchDeviceTypesRequest) returns (WatchDeviceTypesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceTypes.watch

The equivalent REST API is:

POST /v1/deviceTypes:watch 

CreateDeviceType Method

CreateDeviceType

rpc CreateDeviceType(CreateDeviceTypeRequest) returns (DeviceType)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceTypes.create

The equivalent REST API is:

POST /v1/deviceTypes (BODY: device_type)

UpdateDeviceType Method

UpdateDeviceType

rpc UpdateDeviceType(UpdateDeviceTypeRequest) returns (DeviceType)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceTypes.update

The equivalent REST API is:

PUT /v1/{device_type.name=deviceTypes/*} (BODY: device_type)

DeleteDeviceType Method

DeleteDeviceType

rpc DeleteDeviceType(DeleteDeviceTypeRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceTypes.delete

The equivalent REST API is:

DELETE /v1/{name=deviceTypes/*} 

DeviceType Messages

Here is the list of DeviceType resource messages:

DeviceType Message

NameTypeDescription
namestring (name of DeviceType)Name of DeviceType When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
display_namestringDisplay name of Device Type
hardwareDeviceType.Hardware
architectureDeviceType.Architecture
descriptionstringDescription of the Device Type

GetDeviceTypeRequest Message

A request message of the GetDeviceType method.

NameTypeDescription
namestring (name of DeviceType)Name of ntt.devices.v1.DeviceType
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetDeviceTypesRequest Message

A request message of the BatchGetDeviceTypes method.

NameTypeDescription
namesrepeated string (name of DeviceType)Names of DeviceTypes
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetDeviceTypesResponse Message

A response message of the BatchGetDeviceTypes method.

NameTypeDescription
device_typesrepeated DeviceTypefound DeviceTypes
missingrepeated string (name of DeviceType)list of not found DeviceTypes

ListDeviceTypesRequest Message

A request message of the ListDeviceTypes method.

NameTypeDescription
page_sizeint32Requested page size. Server may return fewer DeviceTypes than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of DeviceType)A token identifying a page of results the server should return. Typically, this is the value of ListDeviceTypesResponse.next_page_token.
order_bystring (orderBy of DeviceType)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of DeviceType)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListDeviceTypesResponse Message

A response message of the ListDeviceTypes method.

NameTypeDescription
device_typesrepeated DeviceTypeThe list of DeviceTypes
prev_page_tokenstring (cursor of DeviceType)A token to retrieve previous page of results. Pass this value in the ListDeviceTypesRequest.page_token.
next_page_tokenstring (cursor of DeviceType)A token to retrieve next page of results. Pass this value in the ListDeviceTypesRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total DeviceTypes across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchDeviceTypeRequest Message

A request message of the WatchDeviceType method.

NameTypeDescription
namestring (name of DeviceType)Name of ntt.devices.v1.DeviceType
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchDeviceTypeResponse Message

A response message of the WatchDeviceType method.

NameTypeDescription
changeDeviceTypeChange

WatchDeviceTypesRequest Message

A request message of the WatchDeviceTypes method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_sizeint32Requested page size. Server may return fewer DeviceTypes than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of DeviceType)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of DeviceType)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of DeviceType)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to DeviceType that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to DeviceType that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchDeviceTypesResponse Message

A response message of the WatchDeviceTypes method.

NameTypeDescription
device_type_changesrepeated DeviceTypeChangeChanges of DeviceTypes
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All DeviceTypes will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchDeviceTypesResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (DeviceTypes will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchDeviceTypesResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of DeviceType)New token to retrieve previous page of results.
next_page_tokenstring (cursor of DeviceType)New token to retrieve next page of results.

CreateDeviceTypeRequest Message

A request message of the CreateDeviceType method.

NameTypeDescription
device_typeDeviceTypeDeviceType resource body
response_maskCreateDeviceTypeRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateDeviceTypeRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateDeviceTypeRequest Message

A request message of the UpdateDeviceType method.

NameTypeDescription
device_typeDeviceTypeDeviceType resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateDeviceTypeRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateDeviceTypeRequest.ResponseMaskreduce message response size.

UpdateDeviceTypeRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateDeviceTypeConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateDeviceTypeRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteDeviceTypeRequest Message

A request message of the DeleteDeviceType method.

NameTypeDescription
namestring (name of DeviceType)Name of ntt.devices.v1.DeviceType
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

DeviceType Enumerations

Here is the list of DeviceType resource enumerations:

DeviceType.Hardware Enumeration

Hardware (e.g. Generic, Raspberry Pi)

NameDescription
HARDWARE_UNSPECIFIED
GENERIC
RASPBERRYPI

DeviceType.Architecture Enumeration

Architecture name (e.g. amd64)

NameDescription
ARCHITECTURE_UNSPECIFIED
AMD64
ARM64

OsImageProfile Resource

OsImageProfile Resource

Name patterns:

  • projects/{project}/regions/{region}/osImageProfiles/{os_image_profile}

Parent resources:

This section covers the methods and messages to interact with OsImageProfile resource.

OsImageProfile Methods

Here is the list of OsImageProfile resource methods:

GetOsImageProfile Method

GetOsImageProfile

rpc GetOsImageProfile(GetOsImageProfileRequest) returns (OsImageProfile)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osImageProfiles.get

The equivalent REST API is:

GET /v1/{name=projects/*/regions/*/osImageProfiles/*} 

BatchGetOsImageProfiles Method

BatchGetOsImageProfiles

rpc BatchGetOsImageProfiles(BatchGetOsImageProfilesRequest) returns (BatchGetOsImageProfilesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osImageProfiles.batchGet

The equivalent REST API is:

GET /v1/osImageProfiles:batchGet 

ListOsImageProfiles Method

ListOsImageProfiles

rpc ListOsImageProfiles(ListOsImageProfilesRequest) returns (ListOsImageProfilesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osImageProfiles.list

The equivalent REST API is:

GET /v1/{parent=projects/*/regions/*}/osImageProfiles 

WatchOsImageProfile Method

WatchOsImageProfile

rpc WatchOsImageProfile(WatchOsImageProfileRequest) returns (WatchOsImageProfileResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osImageProfiles.watch

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/osImageProfiles/*}:watch 

WatchOsImageProfiles Method

WatchOsImageProfiles

rpc WatchOsImageProfiles(WatchOsImageProfilesRequest) returns (WatchOsImageProfilesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osImageProfiles.watch

The equivalent REST API is:

POST /v1/{parent=projects/*/regions/*}/osImageProfiles:watch 

CreateOsImageProfile Method

CreateOsImageProfile

rpc CreateOsImageProfile(CreateOsImageProfileRequest) returns (OsImageProfile)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osImageProfiles.create

The equivalent REST API is:

POST /v1/{parent=projects/*/regions/*}/osImageProfiles (BODY: os_image_profile)

UpdateOsImageProfile Method

UpdateOsImageProfile

rpc UpdateOsImageProfile(UpdateOsImageProfileRequest) returns (OsImageProfile)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osImageProfiles.update

The equivalent REST API is:

PUT /v1/{os_image_profile.name=projects/*/regions/*/osImageProfiles/*} (BODY: os_image_profile)

DeleteOsImageProfile Method

DeleteOsImageProfile

rpc DeleteOsImageProfile(DeleteOsImageProfileRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osImageProfiles.delete

The equivalent REST API is:

DELETE /v1/{name=projects/*/regions/*/osImageProfiles/*} 

OsImageProfile Messages

Here is the list of OsImageProfile resource messages:

OsImageProfile Message

NameTypeDescription
namestring (name of OsImageProfile)Name of OsImageProfile When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
display_namestringDisplay name of the profile
descriptionstringOptional. Description of the profile.
device_typestring (reference to DeviceType)Device type for the profile
install_ai_acceleratorboolInstall runtimes and drivers for Hailo-8 and NVIDIA CUDA.
encryptionboolEnable disk encryption
disk_mappingstringDisk Mapping YAML configuration.
network_agentstringNetwork Agent YAML configuration.
ntpstringNTP Server settings.
http_proxystringHTTP PROXY address
https_proxystringHTTPS PROXY address
no_proxystringNO Proxy addresses (comma separated).

GetOsImageProfileRequest Message

A request message of the GetOsImageProfile method.

NameTypeDescription
namestring (name of OsImageProfile)Name of ntt.devices.v1.OsImageProfile
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetOsImageProfilesRequest Message

A request message of the BatchGetOsImageProfiles method.

NameTypeDescription
namesrepeated string (name of OsImageProfile)Names of OsImageProfiles
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetOsImageProfilesResponse Message

A response message of the BatchGetOsImageProfiles method.

NameTypeDescription
os_image_profilesrepeated OsImageProfilefound OsImageProfiles
missingrepeated string (name of OsImageProfile)list of not found OsImageProfiles

ListOsImageProfilesRequest Message

A request message of the ListOsImageProfiles method.

NameTypeDescription
parentstring (parent name of OsImageProfile)Parent name of ntt.devices.v1.OsImageProfile
page_sizeint32Requested page size. Server may return fewer OsImageProfiles than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of OsImageProfile)A token identifying a page of results the server should return. Typically, this is the value of ListOsImageProfilesResponse.next_page_token.
order_bystring (orderBy of OsImageProfile)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of OsImageProfile)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListOsImageProfilesResponse Message

A response message of the ListOsImageProfiles method.

NameTypeDescription
os_image_profilesrepeated OsImageProfileThe list of OsImageProfiles
prev_page_tokenstring (cursor of OsImageProfile)A token to retrieve previous page of results. Pass this value in the ListOsImageProfilesRequest.page_token.
next_page_tokenstring (cursor of OsImageProfile)A token to retrieve next page of results. Pass this value in the ListOsImageProfilesRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total OsImageProfiles across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchOsImageProfileRequest Message

A request message of the WatchOsImageProfile method.

NameTypeDescription
namestring (name of OsImageProfile)Name of ntt.devices.v1.OsImageProfile
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchOsImageProfileResponse Message

A response message of the WatchOsImageProfile method.

NameTypeDescription
changeOsImageProfileChange

WatchOsImageProfilesRequest Message

A request message of the WatchOsImageProfiles method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of OsImageProfile)Parent name of ntt.devices.v1.OsImageProfile
page_sizeint32Requested page size. Server may return fewer OsImageProfiles than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of OsImageProfile)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of OsImageProfile)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of OsImageProfile)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to OsImageProfile that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to OsImageProfile that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchOsImageProfilesResponse Message

A response message of the WatchOsImageProfiles method.

NameTypeDescription
os_image_profile_changesrepeated OsImageProfileChangeChanges of OsImageProfiles
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All OsImageProfiles will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchOsImageProfilesResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (OsImageProfiles will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchOsImageProfilesResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of OsImageProfile)New token to retrieve previous page of results.
next_page_tokenstring (cursor of OsImageProfile)New token to retrieve next page of results.

CreateOsImageProfileRequest Message

A request message of the CreateOsImageProfile method.

NameTypeDescription
parentstring (parent name of OsImageProfile)Parent name of ntt.devices.v1.OsImageProfile
os_image_profileOsImageProfileOsImageProfile resource body
response_maskCreateOsImageProfileRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateOsImageProfileRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateOsImageProfileRequest Message

A request message of the UpdateOsImageProfile method.

NameTypeDescription
os_image_profileOsImageProfileOsImageProfile resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateOsImageProfileRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateOsImageProfileRequest.ResponseMaskreduce message response size.

UpdateOsImageProfileRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateOsImageProfileConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateOsImageProfileRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteOsImageProfileRequest Message

A request message of the DeleteOsImageProfile method.

NameTypeDescription
namestring (name of OsImageProfile)Name of ntt.devices.v1.OsImageProfile
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

OsVersion Resource

OsVersion Resource

Name patterns:

  • osVersions/{os_version}

This section covers the methods and messages to interact with OsVersion resource.

OsVersion Methods

Here is the list of OsVersion resource methods:

GetOsVersion Method

GetOsVersion

rpc GetOsVersion(GetOsVersionRequest) returns (OsVersion)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osVersions.get

The equivalent REST API is:

GET /v1/{name=osVersions/*} 

BatchGetOsVersions Method

BatchGetOsVersions

rpc BatchGetOsVersions(BatchGetOsVersionsRequest) returns (BatchGetOsVersionsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osVersions.batchGet

The equivalent REST API is:

GET /v1/osVersions:batchGet 

ListOsVersions Method

ListOsVersions

rpc ListOsVersions(ListOsVersionsRequest) returns (ListOsVersionsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osVersions.list

The equivalent REST API is:

GET /v1/osVersions 

WatchOsVersion Method

WatchOsVersion

rpc WatchOsVersion(WatchOsVersionRequest) returns (WatchOsVersionResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osVersions.watch

The equivalent REST API is:

POST /v1/{name=osVersions/*}:watch 

WatchOsVersions Method

WatchOsVersions

rpc WatchOsVersions(WatchOsVersionsRequest) returns (WatchOsVersionsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osVersions.watch

The equivalent REST API is:

POST /v1/osVersions:watch 

CreateOsVersion Method

CreateOsVersion

rpc CreateOsVersion(CreateOsVersionRequest) returns (OsVersion)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osVersions.create

The equivalent REST API is:

POST /v1/osVersions (BODY: os_version)

UpdateOsVersion Method

UpdateOsVersion

rpc UpdateOsVersion(UpdateOsVersionRequest) returns (OsVersion)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osVersions.update

The equivalent REST API is:

PUT /v1/{os_version.name=osVersions/*} (BODY: os_version)

DeleteOsVersion Method

DeleteOsVersion

rpc DeleteOsVersion(DeleteOsVersionRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osVersions.delete

The equivalent REST API is:

DELETE /v1/{name=osVersions/*} 

OsVersion Messages

Here is the list of OsVersion resource messages:

OsVersion Message

NameTypeDescription
namestring (name of OsVersion)Name of OsVersion When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
versionstringThe version name.
device_typestring (reference to DeviceType)Supported device type.
minimum_previous_versionstringThe minum previous OS version that is required to upgrade devices to the OS version.
channelOsVersion.Channel

GetOsVersionRequest Message

A request message of the GetOsVersion method.

NameTypeDescription
namestring (name of OsVersion)Name of ntt.devices.v1.OsVersion
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetOsVersionsRequest Message

A request message of the BatchGetOsVersions method.

NameTypeDescription
namesrepeated string (name of OsVersion)Names of OsVersions
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetOsVersionsResponse Message

A response message of the BatchGetOsVersions method.

NameTypeDescription
os_versionsrepeated OsVersionfound OsVersions
missingrepeated string (name of OsVersion)list of not found OsVersions

ListOsVersionsRequest Message

A request message of the ListOsVersions method.

NameTypeDescription
page_sizeint32Requested page size. Server may return fewer OsVersions than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of OsVersion)A token identifying a page of results the server should return. Typically, this is the value of ListOsVersionsResponse.next_page_token.
order_bystring (orderBy of OsVersion)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of OsVersion)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListOsVersionsResponse Message

A response message of the ListOsVersions method.

NameTypeDescription
os_versionsrepeated OsVersionThe list of OsVersions
prev_page_tokenstring (cursor of OsVersion)A token to retrieve previous page of results. Pass this value in the ListOsVersionsRequest.page_token.
next_page_tokenstring (cursor of OsVersion)A token to retrieve next page of results. Pass this value in the ListOsVersionsRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total OsVersions across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchOsVersionRequest Message

A request message of the WatchOsVersion method.

NameTypeDescription
namestring (name of OsVersion)Name of ntt.devices.v1.OsVersion
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchOsVersionResponse Message

A response message of the WatchOsVersion method.

NameTypeDescription
changeOsVersionChange

WatchOsVersionsRequest Message

A request message of the WatchOsVersions method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_sizeint32Requested page size. Server may return fewer OsVersions than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of OsVersion)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of OsVersion)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of OsVersion)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to OsVersion that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to OsVersion that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchOsVersionsResponse Message

A response message of the WatchOsVersions method.

NameTypeDescription
os_version_changesrepeated OsVersionChangeChanges of OsVersions
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All OsVersions will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchOsVersionsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (OsVersions will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchOsVersionsResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of OsVersion)New token to retrieve previous page of results.
next_page_tokenstring (cursor of OsVersion)New token to retrieve next page of results.

CreateOsVersionRequest Message

A request message of the CreateOsVersion method.

NameTypeDescription
os_versionOsVersionOsVersion resource body
response_maskCreateOsVersionRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateOsVersionRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateOsVersionRequest Message

A request message of the UpdateOsVersion method.

NameTypeDescription
os_versionOsVersionOsVersion resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateOsVersionRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateOsVersionRequest.ResponseMaskreduce message response size.

UpdateOsVersionRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateOsVersionConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateOsVersionRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteOsVersionRequest Message

A request message of the DeleteOsVersion method.

NameTypeDescription
namestring (name of OsVersion)Name of ntt.devices.v1.OsVersion
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

OsVersion Enumerations

Here is the list of OsVersion resource enumerations:

OsVersion.Channel Enumeration

NameDescription
CHANNEL_UNSPECIFIED
NORMAL
BETA

Project Resource

Project Resource

Name patterns:

  • projects/{project}

This section covers the methods and messages to interact with Project resource.

Project Methods

Here is the list of Project resource methods:

GetProject Method

GetProject

rpc GetProject(GetProjectRequest) returns (Project)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/projects.get

The equivalent REST API is:

GET /v1/{name=projects/*} 

BatchGetProjects Method

BatchGetProjects

rpc BatchGetProjects(BatchGetProjectsRequest) returns (BatchGetProjectsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/projects.batchGet

The equivalent REST API is:

GET /v1/projects:batchGet 

ListProjects Method

ListProjects

rpc ListProjects(ListProjectsRequest) returns (ListProjectsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/projects.list

The equivalent REST API is:

GET /v1/projects 

WatchProject Method

WatchProject

rpc WatchProject(WatchProjectRequest) returns (WatchProjectResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/projects.watch

The equivalent REST API is:

POST /v1/{name=projects/*}:watch 

WatchProjects Method

WatchProjects

rpc WatchProjects(WatchProjectsRequest) returns (WatchProjectsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/projects.watch

The equivalent REST API is:

POST /v1/projects:watch 

CreateProject Method

CreateProject

rpc CreateProject(CreateProjectRequest) returns (Project)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/projects.create

The equivalent REST API is:

POST /v1/projects (BODY: project)

UpdateProject Method

UpdateProject

rpc UpdateProject(UpdateProjectRequest) returns (Project)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/projects.update

The equivalent REST API is:

PUT /v1/{project.name=projects/*} (BODY: project)

DeleteProject Method

DeleteProject

rpc DeleteProject(DeleteProjectRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/projects.delete

The equivalent REST API is:

DELETE /v1/{name=projects/*} 

Project Messages

Here is the list of Project resource messages:

Project Message

NameTypeDescription
namestring (name of Project)Name of Project When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
multi_region_policyMultiRegionPolicyMulti region policy defines in which region all kid resources (and their kids) will by default belong and cross-region syncing policies.

GetProjectRequest Message

A request message of the GetProject method.

NameTypeDescription
namestring (name of Project)Name of ntt.devices.v1.Project
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetProjectsRequest Message

A request message of the BatchGetProjects method.

NameTypeDescription
namesrepeated string (name of Project)Names of Projects
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetProjectsResponse Message

A response message of the BatchGetProjects method.

NameTypeDescription
projectsrepeated Projectfound Projects
missingrepeated string (name of Project)list of not found Projects

ListProjectsRequest Message

A request message of the ListProjects method.

NameTypeDescription
page_sizeint32Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of Project)A token identifying a page of results the server should return. Typically, this is the value of ListProjectsResponse.next_page_token.
order_bystring (orderBy of Project)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of Project)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListProjectsResponse Message

A response message of the ListProjects method.

NameTypeDescription
projectsrepeated ProjectThe list of Projects
prev_page_tokenstring (cursor of Project)A token to retrieve previous page of results. Pass this value in the ListProjectsRequest.page_token.
next_page_tokenstring (cursor of Project)A token to retrieve next page of results. Pass this value in the ListProjectsRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total Projects across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchProjectRequest Message

A request message of the WatchProject method.

NameTypeDescription
namestring (name of Project)Name of ntt.devices.v1.Project
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchProjectResponse Message

A response message of the WatchProject method.

NameTypeDescription
changeProjectChange

WatchProjectsRequest Message

A request message of the WatchProjects method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_sizeint32Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of Project)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of Project)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of Project)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Project that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Project that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchProjectsResponse Message

A response message of the WatchProjects method.

NameTypeDescription
project_changesrepeated ProjectChangeChanges of Projects
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Projects will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchProjectsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Projects will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchProjectsResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of Project)New token to retrieve previous page of results.
next_page_tokenstring (cursor of Project)New token to retrieve next page of results.

CreateProjectRequest Message

A request message of the CreateProject method.

NameTypeDescription
projectProjectProject resource body
response_maskCreateProjectRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateProjectRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateProjectRequest Message

A request message of the UpdateProject method.

NameTypeDescription
projectProjectProject resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateProjectRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateProjectRequest.ResponseMaskreduce message response size.

UpdateProjectRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateProjectConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateProjectRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteProjectRequest Message

A request message of the DeleteProject method.

NameTypeDescription
namestring (name of Project)Name of ntt.devices.v1.Project
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

ProvisioningApprovalRequest Resource

ProvisioningApprovalRequest Resource

Name patterns:

  • projects/{project}/regions/{region}/provisioningPolicies/{provisioning_policy}/provisioningApprovalRequests/{provisioning_approval_request}

Parent resources:

This section covers the methods and messages to interact with ProvisioningApprovalRequest resource.

ProvisioningApprovalRequest Methods

Here is the list of ProvisioningApprovalRequest resource methods:

GetProvisioningApprovalRequest Method

GetProvisioningApprovalRequest

rpc GetProvisioningApprovalRequest(GetProvisioningApprovalRequestRequest) returns (ProvisioningApprovalRequest)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningApprovalRequests.get

The equivalent REST API is:

GET /v1/{name=projects/*/regions/*/provisioningPolicies/*/provisioningApprovalRequests/*} 

BatchGetProvisioningApprovalRequests Method

BatchGetProvisioningApprovalRequests

rpc BatchGetProvisioningApprovalRequests(BatchGetProvisioningApprovalRequestsRequest) returns (BatchGetProvisioningApprovalRequestsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningApprovalRequests.batchGet

The equivalent REST API is:

GET /v1/provisioningApprovalRequests:batchGet 

ListProvisioningApprovalRequests Method

ListProvisioningApprovalRequests

rpc ListProvisioningApprovalRequests(ListProvisioningApprovalRequestsRequest) returns (ListProvisioningApprovalRequestsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningApprovalRequests.list

The equivalent REST API is:

GET /v1/{parent=projects/*/regions/*/provisioningPolicies/*}/provisioningApprovalRequests 

WatchProvisioningApprovalRequest Method

WatchProvisioningApprovalRequest

rpc WatchProvisioningApprovalRequest(WatchProvisioningApprovalRequestRequest) returns (WatchProvisioningApprovalRequestResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningApprovalRequests.watch

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/provisioningPolicies/*/provisioningApprovalRequests/*}:watch 

WatchProvisioningApprovalRequests Method

WatchProvisioningApprovalRequests

rpc WatchProvisioningApprovalRequests(WatchProvisioningApprovalRequestsRequest) returns (WatchProvisioningApprovalRequestsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningApprovalRequests.watch

The equivalent REST API is:

POST /v1/{parent=projects/*/regions/*/provisioningPolicies/*}/provisioningApprovalRequests:watch 

CreateProvisioningApprovalRequest Method

CreateProvisioningApprovalRequest

rpc CreateProvisioningApprovalRequest(CreateProvisioningApprovalRequestRequest) returns (ProvisioningApprovalRequest)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningApprovalRequests.create

The equivalent REST API is:

POST /v1/{parent=projects/*/regions/*/provisioningPolicies/*}/provisioningApprovalRequests (BODY: provisioning_approval_request)

UpdateProvisioningApprovalRequest Method

UpdateProvisioningApprovalRequest

rpc UpdateProvisioningApprovalRequest(UpdateProvisioningApprovalRequestRequest) returns (ProvisioningApprovalRequest)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningApprovalRequests.update

The equivalent REST API is:

PUT /v1/{provisioning_approval_request.name=projects/*/regions/*/provisioningPolicies/*/provisioningApprovalRequests/*} (BODY: provisioning_approval_request)

DeleteProvisioningApprovalRequest Method

DeleteProvisioningApprovalRequest

rpc DeleteProvisioningApprovalRequest(DeleteProvisioningApprovalRequestRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningApprovalRequests.delete

The equivalent REST API is:

DELETE /v1/{name=projects/*/regions/*/provisioningPolicies/*/provisioningApprovalRequests/*} 

ProvisionDeviceForApprovedRequest Method

ProvisionDeviceForApprovedRequest

rpc ProvisionDeviceForApprovedRequest(ProvisionDeviceForApprovedRequestRequest) returns (ProvisionDeviceForApprovedRequestResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningApprovalRequests.provisionDeviceForApprovedRequest

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/provisioningPolicies/*/provisioningApprovalRequests/*}:provisionDeviceForApprovedRequest 

ProvisioningApprovalRequest Messages

Here is the list of ProvisioningApprovalRequest resource messages:

ProvisioningApprovalRequest Message

NameTypeDescription
namestring (name of ProvisioningApprovalRequest)Name of ProvisioningApprovalRequest When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
specProvisioningApprovalRequest.Spec
statusProvisioningApprovalRequest.Status

ProvisioningApprovalRequest.Spec Message

NameTypeDescription
conclusionProvisioningApprovalRequest.Spec.ConclusionThe verdicit for the approval, approved or revoked.
service_accountstring (reference to ServiceAccount)System managed, this service account will be used by the Device resource once it’s approved. A device finds its pending request using this field.

ProvisioningApprovalRequest.Status Message

NameTypeDescription
nonenonenone

GetProvisioningApprovalRequestRequest Message

A request message of the GetProvisioningApprovalRequest method.

NameTypeDescription
namestring (name of ProvisioningApprovalRequest)Name of ntt.devices.v1.ProvisioningApprovalRequest
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetProvisioningApprovalRequestsRequest Message

A request message of the BatchGetProvisioningApprovalRequests method.

NameTypeDescription
namesrepeated string (name of ProvisioningApprovalRequest)Names of ProvisioningApprovalRequests
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetProvisioningApprovalRequestsResponse Message

A response message of the BatchGetProvisioningApprovalRequests method.

NameTypeDescription
provisioning_approval_requestsrepeated ProvisioningApprovalRequestfound ProvisioningApprovalRequests
missingrepeated string (name of ProvisioningApprovalRequest)list of not found ProvisioningApprovalRequests

ListProvisioningApprovalRequestsRequest Message

A request message of the ListProvisioningApprovalRequests method.

NameTypeDescription
parentstring (parent name of ProvisioningApprovalRequest)Parent name of ntt.devices.v1.ProvisioningApprovalRequest
page_sizeint32Requested page size. Server may return fewer ProvisioningApprovalRequests than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of ProvisioningApprovalRequest)A token identifying a page of results the server should return. Typically, this is the value of ListProvisioningApprovalRequestsResponse.next_page_token.
order_bystring (orderBy of ProvisioningApprovalRequest)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of ProvisioningApprovalRequest)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListProvisioningApprovalRequestsResponse Message

A response message of the ListProvisioningApprovalRequests method.

NameTypeDescription
provisioning_approval_requestsrepeated ProvisioningApprovalRequestThe list of ProvisioningApprovalRequests
prev_page_tokenstring (cursor of ProvisioningApprovalRequest)A token to retrieve previous page of results. Pass this value in the ListProvisioningApprovalRequestsRequest.page_token.
next_page_tokenstring (cursor of ProvisioningApprovalRequest)A token to retrieve next page of results. Pass this value in the ListProvisioningApprovalRequestsRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total ProvisioningApprovalRequests across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchProvisioningApprovalRequestRequest Message

A request message of the WatchProvisioningApprovalRequest method.

NameTypeDescription
namestring (name of ProvisioningApprovalRequest)Name of ntt.devices.v1.ProvisioningApprovalRequest
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchProvisioningApprovalRequestResponse Message

A response message of the WatchProvisioningApprovalRequest method.

NameTypeDescription
changeProvisioningApprovalRequestChange

WatchProvisioningApprovalRequestsRequest Message

A request message of the WatchProvisioningApprovalRequests method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of ProvisioningApprovalRequest)Parent name of ntt.devices.v1.ProvisioningApprovalRequest
page_sizeint32Requested page size. Server may return fewer ProvisioningApprovalRequests than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of ProvisioningApprovalRequest)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of ProvisioningApprovalRequest)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of ProvisioningApprovalRequest)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ProvisioningApprovalRequest that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ProvisioningApprovalRequest that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchProvisioningApprovalRequestsResponse Message

A response message of the WatchProvisioningApprovalRequests method.

NameTypeDescription
provisioning_approval_request_changesrepeated ProvisioningApprovalRequestChangeChanges of ProvisioningApprovalRequests
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ProvisioningApprovalRequests will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchProvisioningApprovalRequestsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ProvisioningApprovalRequests will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchProvisioningApprovalRequestsResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of ProvisioningApprovalRequest)New token to retrieve previous page of results.
next_page_tokenstring (cursor of ProvisioningApprovalRequest)New token to retrieve next page of results.

CreateProvisioningApprovalRequestRequest Message

A request message of the CreateProvisioningApprovalRequest method.

NameTypeDescription
parentstring (parent name of ProvisioningApprovalRequest)Parent name of ntt.devices.v1.ProvisioningApprovalRequest
provisioning_approval_requestProvisioningApprovalRequestProvisioningApprovalRequest resource body
response_maskCreateProvisioningApprovalRequestRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateProvisioningApprovalRequestRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateProvisioningApprovalRequestRequest Message

A request message of the UpdateProvisioningApprovalRequest method.

NameTypeDescription
provisioning_approval_requestProvisioningApprovalRequestProvisioningApprovalRequest resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateProvisioningApprovalRequestRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateProvisioningApprovalRequestRequest.ResponseMaskreduce message response size.

UpdateProvisioningApprovalRequestRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateProvisioningApprovalRequestConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateProvisioningApprovalRequestRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteProvisioningApprovalRequestRequest Message

A request message of the DeleteProvisioningApprovalRequest method.

NameTypeDescription
namestring (name of ProvisioningApprovalRequest)Name of ntt.devices.v1.ProvisioningApprovalRequest
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

ProvisionDeviceForApprovedRequestRequest Message

Request message for method [ProvisionDeviceForApprovedRequest][ntt.devices.v1.ProvisionDeviceForApprovedRequest]

NameTypeDescription
namestring (name of ProvisioningApprovalRequest)name of ntt.devices.v1.ProvisioningApprovalRequest
device_statusDevice.Status

ProvisionDeviceForApprovedRequestResponse Message

Response message for method [ProvisionDeviceForApprovedRequest][ntt.devices.v1.ProvisionDeviceForApprovedRequest]

NameTypeDescription
deviceDevice

ProvisioningApprovalRequest Enumerations

Here is the list of ProvisioningApprovalRequest resource enumerations:

ProvisioningApprovalRequest.Spec.Conclusion Enumeration

NameDescription
CONCLUSION_NOT_SPECIFIED
APPROVED
REVOKED

ProvisioningPolicy Resource

ProvisioningPolicy Resource

Name patterns:

  • projects/{project}/regions/{region}/provisioningPolicies/{provisioning_policy}

Parent resources:

This section covers the methods and messages to interact with ProvisioningPolicy resource.

ProvisioningPolicy Methods

Here is the list of ProvisioningPolicy resource methods:

GetProvisioningPolicy Method

GetProvisioningPolicy

rpc GetProvisioningPolicy(GetProvisioningPolicyRequest) returns (ProvisioningPolicy)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.get

The equivalent REST API is:

GET /v1/{name=projects/*/regions/*/provisioningPolicies/*} 

BatchGetProvisioningPolicies Method

BatchGetProvisioningPolicies

rpc BatchGetProvisioningPolicies(BatchGetProvisioningPoliciesRequest) returns (BatchGetProvisioningPoliciesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.batchGet

The equivalent REST API is:

GET /v1/provisioningPolicies:batchGet 

ListProvisioningPolicies Method

ListProvisioningPolicies

rpc ListProvisioningPolicies(ListProvisioningPoliciesRequest) returns (ListProvisioningPoliciesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.list

The equivalent REST API is:

GET /v1/{parent=projects/*/regions/*}/provisioningPolicies 

WatchProvisioningPolicy Method

WatchProvisioningPolicy

rpc WatchProvisioningPolicy(WatchProvisioningPolicyRequest) returns (WatchProvisioningPolicyResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.watch

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/provisioningPolicies/*}:watch 

WatchProvisioningPolicies Method

WatchProvisioningPolicies

rpc WatchProvisioningPolicies(WatchProvisioningPoliciesRequest) returns (WatchProvisioningPoliciesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.watch

The equivalent REST API is:

POST /v1/{parent=projects/*/regions/*}/provisioningPolicies:watch 

CreateProvisioningPolicy Method

CreateProvisioningPolicy

rpc CreateProvisioningPolicy(CreateProvisioningPolicyRequest) returns (ProvisioningPolicy)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.create

The equivalent REST API is:

POST /v1/{parent=projects/*/regions/*}/provisioningPolicies (BODY: provisioning_policy)

UpdateProvisioningPolicy Method

UpdateProvisioningPolicy

rpc UpdateProvisioningPolicy(UpdateProvisioningPolicyRequest) returns (ProvisioningPolicy)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.update

The equivalent REST API is:

PUT /v1/{provisioning_policy.name=projects/*/regions/*/provisioningPolicies/*} (BODY: provisioning_policy)

DeleteProvisioningPolicy Method

DeleteProvisioningPolicy

rpc DeleteProvisioningPolicy(DeleteProvisioningPolicyRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.delete

The equivalent REST API is:

DELETE /v1/{name=projects/*/regions/*/provisioningPolicies/*} 

SearchProvisioningPolicies Method

SearchProvisioningPolicies

rpc SearchProvisioningPolicies(SearchProvisioningPoliciesRequest) returns (SearchProvisioningPoliciesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.search

The equivalent REST API is:

GET /v1/{parent=projects/*/regions/*}/provisioningPolicies:search 

ProvisionServiceAccountToProvisioningPolicy Method

ProvisionServiceAccountToProvisioningPolicy

rpc ProvisionServiceAccountToProvisioningPolicy(ProvisionServiceAccountToProvisioningPolicyRequest) returns (ProvisionServiceAccountToProvisioningPolicyResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.provisionServiceAccountToProvisioningPolicy

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/provisioningPolicies/*}:provisionServiceAccountToProvisioningPolicy 

RemoveServiceAccountFromProvisioningPolicy Method

RemoveServiceAccountFromProvisioningPolicy

rpc RemoveServiceAccountFromProvisioningPolicy(RemoveServiceAccountFromProvisioningPolicyRequest) returns (RemoveServiceAccountFromProvisioningPolicyResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.removeServiceAccountFromProvisioningPolicy

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/provisioningPolicies/*}:removeServiceAccountFromProvisioningPolicy 

ProvisionDeviceViaPolicy Method

ProvisionDeviceViaPolicy

rpc ProvisionDeviceViaPolicy(ProvisionDeviceViaPolicyRequest) returns (ProvisionDeviceViaPolicyResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.provisionDeviceViaPolicy

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/provisioningPolicies/*}:provisionDeviceViaPolicy 

RequestProvisioningApproval Method

RequestProvisioningApproval

rpc RequestProvisioningApproval(RequestProvisioningApprovalRequest) returns (RequestProvisioningApprovalResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.requestProvisioningApproval

The equivalent REST API is:

POST /v1/{name=projects/*/regions/*/provisioningPolicies/*}:requestProvisioningApproval 

ProvisioningPolicy Messages

Here is the list of ProvisioningPolicy resource messages:

ProvisioningPolicy Message

NameTypeDescription
namestring (name of ProvisioningPolicy)Name of ProvisioningPolicy When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
display_namestringDisplay Name
descriptionstringDescription
specProvisioningPolicy.Spec
statusProvisioningPolicy.Status

ProvisioningPolicy.Spec Message

NameTypeDescription
modeProvisioningPolicy.ModeProvisioning mode.
service_accountstring (reference to ServiceAccount)The service account associated with the policy. Devices have to have a key of this service account to conduct self-provisioning.
device_name_formatstringTemplate for device name.
device_display_name_formatstringTemplate for device display name.
labelsmap<string, string>Deprecated: Use template instead. labels that provisioned Device resources will have.
templateProvisioningPolicy.Spec.TemplateTemplate for Devices to be generated. Used only on Device resource creation, changing the value won’t affect existing Device resources.
identity_field_pathsrepeated stringDevice hardware identity paths (fields) to use for matching pre-existing device resources when provisioning.
rolestring (reference to Role)Role that the newly created service account should be bound to. If not specified, will use the default value of “services/devices.edgelq.com/roles/v1-device-agent”.
scope_paramsrepeated ScopeParamList of scope params to add IF role is specified. Ignored if role is empty.
conditionstring (reference to Condition)Optional condition for the role binding. DEPRECATED, use extra_conditions
condition_params.google.protobuf.StructCondition params DEPRECATED, use extra_conditions
extra_conditionsrepeated ExecutableConditionOptional extra conditions to be attached for a role.

ProvisioningPolicy.Status Message

NameTypeDescription
nonenonenone

ProvisioningPolicy.Spec.Template Message

NameTypeDescription
metadataMeta
specDevice.Specservice_account will be ignored.
public_listing_specDevice.PublicListingSpec

GetProvisioningPolicyRequest Message

A request message of the GetProvisioningPolicy method.

NameTypeDescription
namestring (name of ProvisioningPolicy)Name of ntt.devices.v1.ProvisioningPolicy
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetProvisioningPoliciesRequest Message

A request message of the BatchGetProvisioningPolicies method.

NameTypeDescription
namesrepeated string (name of ProvisioningPolicy)Names of ProvisioningPolicies
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetProvisioningPoliciesResponse Message

A response message of the BatchGetProvisioningPolicies method.

NameTypeDescription
provisioning_policiesrepeated ProvisioningPolicyfound ProvisioningPolicies
missingrepeated string (name of ProvisioningPolicy)list of not found ProvisioningPolicies

ListProvisioningPoliciesRequest Message

A request message of the ListProvisioningPolicies method.

NameTypeDescription
parentstring (parent name of ProvisioningPolicy)Parent name of ntt.devices.v1.ProvisioningPolicy
page_sizeint32Requested page size. Server may return fewer ProvisioningPolicies than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of ProvisioningPolicy)A token identifying a page of results the server should return. Typically, this is the value of ListProvisioningPoliciesResponse.next_page_token.
order_bystring (orderBy of ProvisioningPolicy)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of ProvisioningPolicy)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListProvisioningPoliciesResponse Message

A response message of the ListProvisioningPolicies method.

NameTypeDescription
provisioning_policiesrepeated ProvisioningPolicyThe list of ProvisioningPolicies
prev_page_tokenstring (cursor of ProvisioningPolicy)A token to retrieve previous page of results. Pass this value in the ListProvisioningPoliciesRequest.page_token.
next_page_tokenstring (cursor of ProvisioningPolicy)A token to retrieve next page of results. Pass this value in the ListProvisioningPoliciesRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total ProvisioningPolicies across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchProvisioningPolicyRequest Message

A request message of the WatchProvisioningPolicy method.

NameTypeDescription
namestring (name of ProvisioningPolicy)Name of ntt.devices.v1.ProvisioningPolicy
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchProvisioningPolicyResponse Message

A response message of the WatchProvisioningPolicy method.

NameTypeDescription
changeProvisioningPolicyChange

WatchProvisioningPoliciesRequest Message

A request message of the WatchProvisioningPolicies method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of ProvisioningPolicy)Parent name of ntt.devices.v1.ProvisioningPolicy
page_sizeint32Requested page size. Server may return fewer ProvisioningPolicies than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of ProvisioningPolicy)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of ProvisioningPolicy)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of ProvisioningPolicy)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ProvisioningPolicy that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ProvisioningPolicy that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchProvisioningPoliciesResponse Message

A response message of the WatchProvisioningPolicies method.

NameTypeDescription
provisioning_policy_changesrepeated ProvisioningPolicyChangeChanges of ProvisioningPolicies
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ProvisioningPolicies will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchProvisioningPoliciesResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ProvisioningPolicies will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchProvisioningPoliciesResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of ProvisioningPolicy)New token to retrieve previous page of results.
next_page_tokenstring (cursor of ProvisioningPolicy)New token to retrieve next page of results.

CreateProvisioningPolicyRequest Message

A request message of the CreateProvisioningPolicy method.

NameTypeDescription
parentstring (parent name of ProvisioningPolicy)Parent name of ntt.devices.v1.ProvisioningPolicy
provisioning_policyProvisioningPolicyProvisioningPolicy resource body
response_maskCreateProvisioningPolicyRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateProvisioningPolicyRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateProvisioningPolicyRequest Message

A request message of the UpdateProvisioningPolicy method.

NameTypeDescription
provisioning_policyProvisioningPolicyProvisioningPolicy resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateProvisioningPolicyRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateProvisioningPolicyRequest.ResponseMaskreduce message response size.

UpdateProvisioningPolicyRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateProvisioningPolicyConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateProvisioningPolicyRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteProvisioningPolicyRequest Message

A request message of the DeleteProvisioningPolicy method.

NameTypeDescription
namestring (name of ProvisioningPolicy)Name of ntt.devices.v1.ProvisioningPolicy
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

SearchProvisioningPoliciesRequest Message

A request message of the SearchProvisioningPolicies method.

NameTypeDescription
parentstring (parent name of ProvisioningPolicy)Parent name of ntt.devices.v1.ProvisioningPolicy
page_sizeint32Requested page size. Server may return fewer ProvisioningPolicies than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of ProvisioningPolicy)A token identifying a page of results the server should return. Typically, this is the value of SearchProvisioningPoliciesResponse.next_page_token.
order_bystring (orderBy of ProvisioningPolicy)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of ProvisioningPolicy)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
phrasestringOptional search phrase used to further filter results.

SearchProvisioningPoliciesResponse Message

A response message of the SearchProvisioningPolicies method.

NameTypeDescription
provisioning_policiesrepeated ProvisioningPolicyThe list of ProvisioningPolicies
prev_page_tokenstring (cursor of ProvisioningPolicy)A token to retrieve previous page of results. Pass this value in the SearchProvisioningPoliciesRequest.page_token.
next_page_tokenstring (cursor of ProvisioningPolicy)A token to retrieve next page of results. Pass this value in the SearchProvisioningPoliciesRequest.page_token.
current_offsetint32Current offset from the first page (0 if no page tokens were given). Page index can be computed from offset and limit provided in a request
total_results_countint32Number of total ProvisioningPolicies across all pages.

ProvisionServiceAccountToProvisioningPolicyRequest Message

Request message for method [ProvisionServiceAccountToProvisioningPolicy][ntt.devices.v1.ProvisionServiceAccountToProvisioningPolicy]

NameTypeDescription
namestring (name of ProvisioningPolicy)Name of ntt.devices.v1.ProvisioningPolicy

ProvisionServiceAccountToProvisioningPolicyResponse Message

Response message for method [ProvisionServiceAccountToProvisioningPolicy][ntt.devices.v1.ProvisionServiceAccountToProvisioningPolicy]

NameTypeDescription
service_accountServiceAccount

RemoveServiceAccountFromProvisioningPolicyRequest Message

Request message for method [RemoveServiceAccountFromProvisioningPolicy][ntt.devices.v1.RemoveServiceAccountFromProvisioningPolicy]

NameTypeDescription
namestring (name of ProvisioningPolicy)Name of ntt.devices.v1.ProvisioningPolicy

RemoveServiceAccountFromProvisioningPolicyResponse Message

Response message for method [RemoveServiceAccountFromProvisioningPolicy][ntt.devices.v1.RemoveServiceAccountFromProvisioningPolicy]

NameTypeDescription
removedbool

ProvisionDeviceViaPolicyRequest Message

Request message for method [ProvisionDeviceViaPolicy][ntt.devices.v1.ProvisionDeviceViaPolicy]

NameTypeDescription
namestring (name of ProvisioningPolicy)Name of ntt.devices.v1.ProvisioningPolicy
device_statusDevice.Status
external_pubkeystringexternal public key to use for service account for this device. If not present, a keypair will be generated by the server.

ProvisionDeviceViaPolicyResponse Message

Response message for method [ProvisionDeviceViaPolicy][ntt.devices.v1.ProvisionDeviceViaPolicy]

NameTypeDescription
deviceDevice
service_accountServiceAccount

RequestProvisioningApprovalRequest Message

Request message for method [RequestProvisioningApproval][ntt.devices.v1.RequestProvisioningApproval]

NameTypeDescription
namestring (name of ProvisioningPolicy)Name of ntt.devices.v1.ProvisioningPolicy
device_statusDevice.StatusDevice status to get serial number.
external_pubkeystringexternal public key to use for service account for this device. If not present, a keypair will be generated by the server.

RequestProvisioningApprovalResponse Message

Response message for method [RequestProvisioningApproval][ntt.devices.v1.RequestProvisioningApproval]

NameTypeDescription
requestProvisioningApprovalRequest
service_accountServiceAccount

ProvisioningPolicy Enumerations

Here is the list of ProvisioningPolicy resource enumerations:

ProvisioningPolicy.Mode Enumeration

NameDescription
MODE_UNSPECIFIEDMode is not defined, devices will do nothing when the policy is configured in this mode.
UNATTENDEDDevices will create Device resources automatically without any human interaction.
MANUAL_APPROVALDevices will create ProvisioningApprovalRequests so that users can approve.

TpmAttestationCert Resource

TpmAttestationCert Resource

Name patterns:

  • tpmAttestationCerts/{tpm_attestation_cert}
  • projects/{project}/tpmAttestationCerts/{tpm_attestation_cert}

Parent resources:

This section covers the methods and messages to interact with TpmAttestationCert resource.

TpmAttestationCert Methods

Here is the list of TpmAttestationCert resource methods:

GetTpmAttestationCert Method

GetTpmAttestationCert

rpc GetTpmAttestationCert(GetTpmAttestationCertRequest) returns (TpmAttestationCert)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/tpmAttestationCerts.get

The equivalent REST API is:

GET /v1/{name=tpmAttestationCerts/*} 
GET /v1/{name=projects/*/tpmAttestationCerts/*} 

BatchGetTpmAttestationCerts Method

BatchGetTpmAttestationCerts

rpc BatchGetTpmAttestationCerts(BatchGetTpmAttestationCertsRequest) returns (BatchGetTpmAttestationCertsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/tpmAttestationCerts.batchGet

The equivalent REST API is:

GET /v1/tpmAttestationCerts:batchGet 

ListTpmAttestationCerts Method

ListTpmAttestationCerts

rpc ListTpmAttestationCerts(ListTpmAttestationCertsRequest) returns (ListTpmAttestationCertsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/tpmAttestationCerts.list

The equivalent REST API is:

GET /v1/tpmAttestationCerts 
GET /v1/{parent=projects/*}/tpmAttestationCerts 

WatchTpmAttestationCert Method

WatchTpmAttestationCert

rpc WatchTpmAttestationCert(WatchTpmAttestationCertRequest) returns (WatchTpmAttestationCertResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/tpmAttestationCerts.watch

The equivalent REST API is:

POST /v1/{name=tpmAttestationCerts/*}:watch 
POST /v1/{name=projects/*/tpmAttestationCerts/*}:watch 

WatchTpmAttestationCerts Method

WatchTpmAttestationCerts

rpc WatchTpmAttestationCerts(WatchTpmAttestationCertsRequest) returns (WatchTpmAttestationCertsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/tpmAttestationCerts.watch

The equivalent REST API is:

POST /v1/tpmAttestationCerts:watch 
POST /v1/{parent=projects/*}/tpmAttestationCerts:watch 

CreateTpmAttestationCert Method

CreateTpmAttestationCert

rpc CreateTpmAttestationCert(CreateTpmAttestationCertRequest) returns (TpmAttestationCert)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/tpmAttestationCerts.create

The equivalent REST API is:

POST /v1/tpmAttestationCerts (BODY: tpm_attestation_cert)
POST /v1/{parent=projects/*}/tpmAttestationCerts 

UpdateTpmAttestationCert Method

UpdateTpmAttestationCert

rpc UpdateTpmAttestationCert(UpdateTpmAttestationCertRequest) returns (TpmAttestationCert)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/tpmAttestationCerts.update

The equivalent REST API is:

PUT /v1/{tpm_attestation_cert.name=tpmAttestationCerts/*} (BODY: tpm_attestation_cert)
PUT /v1/{tpm_attestation_cert.name=projects/*/tpmAttestationCerts/*} 

DeleteTpmAttestationCert Method

DeleteTpmAttestationCert

rpc DeleteTpmAttestationCert(DeleteTpmAttestationCertRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/tpmAttestationCerts.delete

The equivalent REST API is:

DELETE /v1/{name=tpmAttestationCerts/*} 
DELETE /v1/{name=projects/*/tpmAttestationCerts/*} 

TpmAttestationCert Messages

Here is the list of TpmAttestationCert resource messages:

TpmAttestationCert Message

NameTypeDescription
namestring (name of TpmAttestationCert)Name of TpmAttestationCert When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
display_namestring
manufacturerstring
product_namestringShould be in the format “productname (sku)”
tpm_manufacturer_ca_certstringDeprecated: use tpm_manufacturer_ca_certs. Read as a fallback for certs created before the array field existed. TODO: reserve field 6 after staging+prod are upgraded and every cert has tpm_manufacturer_ca_certs populated.
idevid_issuer_ca_certstring
ldevid_issuer_ca_certstring
tpm_manufacturer_ca_certsrepeated stringPEM CA certificates for the TPM endorsement key (EK). One entry per TPM chip vendor/CA that may ship in this product/SKU; the EK cert is accepted if it chains to any of them. Each entry is a PEM cert or chain.

GetTpmAttestationCertRequest Message

A request message of the GetTpmAttestationCert method.

NameTypeDescription
namestring (name of TpmAttestationCert)Name of ntt.devices.v1.TpmAttestationCert
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetTpmAttestationCertsRequest Message

A request message of the BatchGetTpmAttestationCerts method.

NameTypeDescription
namesrepeated string (name of TpmAttestationCert)Names of TpmAttestationCerts
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetTpmAttestationCertsResponse Message

A response message of the BatchGetTpmAttestationCerts method.

NameTypeDescription
tpm_attestation_certsrepeated TpmAttestationCertfound TpmAttestationCerts
missingrepeated string (name of TpmAttestationCert)list of not found TpmAttestationCerts

ListTpmAttestationCertsRequest Message

A request message of the ListTpmAttestationCerts method.

NameTypeDescription
parentstring (parent name of TpmAttestationCert)Parent name of ntt.devices.v1.TpmAttestationCert
page_sizeint32Requested page size. Server may return fewer TpmAttestationCerts than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of TpmAttestationCert)A token identifying a page of results the server should return. Typically, this is the value of ListTpmAttestationCertsResponse.next_page_token.
order_bystring (orderBy of TpmAttestationCert)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of TpmAttestationCert)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListTpmAttestationCertsResponse Message

A response message of the ListTpmAttestationCerts method.

NameTypeDescription
tpm_attestation_certsrepeated TpmAttestationCertThe list of TpmAttestationCerts
prev_page_tokenstring (cursor of TpmAttestationCert)A token to retrieve previous page of results. Pass this value in the ListTpmAttestationCertsRequest.page_token.
next_page_tokenstring (cursor of TpmAttestationCert)A token to retrieve next page of results. Pass this value in the ListTpmAttestationCertsRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total TpmAttestationCerts across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchTpmAttestationCertRequest Message

A request message of the WatchTpmAttestationCert method.

NameTypeDescription
namestring (name of TpmAttestationCert)Name of ntt.devices.v1.TpmAttestationCert
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchTpmAttestationCertResponse Message

A response message of the WatchTpmAttestationCert method.

NameTypeDescription
changeTpmAttestationCertChange

WatchTpmAttestationCertsRequest Message

A request message of the WatchTpmAttestationCerts method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of TpmAttestationCert)Parent name of ntt.devices.v1.TpmAttestationCert
page_sizeint32Requested page size. Server may return fewer TpmAttestationCerts than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of TpmAttestationCert)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of TpmAttestationCert)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of TpmAttestationCert)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to TpmAttestationCert that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to TpmAttestationCert that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchTpmAttestationCertsResponse Message

A response message of the WatchTpmAttestationCerts method.

NameTypeDescription
tpm_attestation_cert_changesrepeated TpmAttestationCertChangeChanges of TpmAttestationCerts
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All TpmAttestationCerts will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchTpmAttestationCertsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (TpmAttestationCerts will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchTpmAttestationCertsResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of TpmAttestationCert)New token to retrieve previous page of results.
next_page_tokenstring (cursor of TpmAttestationCert)New token to retrieve next page of results.

CreateTpmAttestationCertRequest Message

A request message of the CreateTpmAttestationCert method.

NameTypeDescription
parentstring (parent name of TpmAttestationCert)Parent name of ntt.devices.v1.TpmAttestationCert
tpm_attestation_certTpmAttestationCertTpmAttestationCert resource body
response_maskCreateTpmAttestationCertRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateTpmAttestationCertRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateTpmAttestationCertRequest Message

A request message of the UpdateTpmAttestationCert method.

NameTypeDescription
tpm_attestation_certTpmAttestationCertTpmAttestationCert resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateTpmAttestationCertRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateTpmAttestationCertRequest.ResponseMaskreduce message response size.

UpdateTpmAttestationCertRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateTpmAttestationCertConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateTpmAttestationCertRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteTpmAttestationCertRequest Message

A request message of the DeleteTpmAttestationCert method.

NameTypeDescription
namestring (name of TpmAttestationCert)Name of ntt.devices.v1.TpmAttestationCert
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

Devices Service Shared Methods and Messages

Devices Service Shared Methods

Here is the list of Devices service shared methods:

ProvisionHardware Method

ProvisionHardware

rpc ProvisionHardware(ProvisionHardwareRequest) returns (ProvisionHardwareResponse)

Devices Service Shared Messages

Here is the list of Devices service shared messages:

CustomizedImageChange Message

CustomizedImageChange is used by Watch notifications Responses to describe change of single CustomizedImage One of Added, Modified, Removed

NameTypeDescription
addedCustomizedImageChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedCustomizedImageChange.ModifiedModified is returned when watched document is modified
currentCustomizedImageChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedCustomizedImageChange.RemovedRemoved is returned when CustomizedImage is deleted or leaves Query view

CustomizedImageChange.Added Message

CustomizedImage has been added to query view

NameTypeDescription
customized_imageCustomizedImage
view_indexint32Integer describing index of added CustomizedImage in resulting query view.

CustomizedImageChange.Current Message

CustomizedImage has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
customized_imageCustomizedImage

CustomizedImageChange.Modified Message

CustomizedImage changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of CustomizedImage)Name of modified CustomizedImage
customized_imageCustomizedImageNew version of CustomizedImage or masked difference, depending on mask_changes instrumentation of issued [WatchCustomizedImageRequest] or [WatchCustomizedImagesRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified CustomizedImage. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying CustomizedImage new index in resulting query view.

CustomizedImageChange.Removed Message

Removed is returned when CustomizedImage is deleted or leaves Query view

NameTypeDescription
namestring (name of CustomizedImage)
view_indexint32Integer specifying removed CustomizedImage index. Not populated in stateless watch type.

DeviceChange Message

DeviceChange is used by Watch notifications Responses to describe change of single Device One of Added, Modified, Removed

NameTypeDescription
addedDeviceChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedDeviceChange.ModifiedModified is returned when watched document is modified
currentDeviceChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedDeviceChange.RemovedRemoved is returned when Device is deleted or leaves Query view

DeviceChange.Added Message

Device has been added to query view

NameTypeDescription
deviceDevice
view_indexint32Integer describing index of added Device in resulting query view.

DeviceChange.Current Message

Device has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
deviceDevice

DeviceChange.Modified Message

Device changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of Device)Name of modified Device
deviceDeviceNew version of Device or masked difference, depending on mask_changes instrumentation of issued [WatchDeviceRequest] or [WatchDevicesRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified Device. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying Device new index in resulting query view.

DeviceChange.Removed Message

Removed is returned when Device is deleted or leaves Query view

NameTypeDescription
namestring (name of Device)
view_indexint32Integer specifying removed Device index. Not populated in stateless watch type.

DeviceDistributionCounterChange Message

DeviceDistributionCounterChange is used by Watch notifications Responses to describe change of single DeviceDistributionCounter One of Added, Modified, Removed

NameTypeDescription
addedDeviceDistributionCounterChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedDeviceDistributionCounterChange.ModifiedModified is returned when watched document is modified
currentDeviceDistributionCounterChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedDeviceDistributionCounterChange.RemovedRemoved is returned when DeviceDistributionCounter is deleted or leaves Query view

DeviceDistributionCounterChange.Added Message

DeviceDistributionCounter has been added to query view

NameTypeDescription
device_distribution_counterDeviceDistributionCounter
view_indexint32Integer describing index of added DeviceDistributionCounter in resulting query view.

DeviceDistributionCounterChange.Current Message

DeviceDistributionCounter has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
device_distribution_counterDeviceDistributionCounter

DeviceDistributionCounterChange.Modified Message

DeviceDistributionCounter changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of DeviceDistributionCounter)Name of modified DeviceDistributionCounter
device_distribution_counterDeviceDistributionCounterNew version of DeviceDistributionCounter or masked difference, depending on mask_changes instrumentation of issued [WatchDeviceDistributionCounterRequest] or [WatchDeviceDistributionCountersRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified DeviceDistributionCounter. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying DeviceDistributionCounter new index in resulting query view.

DeviceDistributionCounterChange.Removed Message

Removed is returned when DeviceDistributionCounter is deleted or leaves Query view

NameTypeDescription
namestring (name of DeviceDistributionCounter)
view_indexint32Integer specifying removed DeviceDistributionCounter index. Not populated in stateless watch type.

DeviceHardwareChange Message

DeviceHardwareChange is used by Watch notifications Responses to describe change of single DeviceHardware One of Added, Modified, Removed

NameTypeDescription
addedDeviceHardwareChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedDeviceHardwareChange.ModifiedModified is returned when watched document is modified
currentDeviceHardwareChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedDeviceHardwareChange.RemovedRemoved is returned when DeviceHardware is deleted or leaves Query view

DeviceHardwareChange.Added Message

DeviceHardware has been added to query view

NameTypeDescription
device_hardwareDeviceHardware
view_indexint32Integer describing index of added DeviceHardware in resulting query view.

DeviceHardwareChange.Current Message

DeviceHardware has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
device_hardwareDeviceHardware

DeviceHardwareChange.Modified Message

DeviceHardware changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of DeviceHardware)Name of modified DeviceHardware
device_hardwareDeviceHardwareNew version of DeviceHardware or masked difference, depending on mask_changes instrumentation of issued [WatchDeviceHardwareRequest] or [WatchDeviceHardwaresRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified DeviceHardware. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying DeviceHardware new index in resulting query view.

DeviceHardwareChange.Removed Message

Removed is returned when DeviceHardware is deleted or leaves Query view

NameTypeDescription
namestring (name of DeviceHardware)
view_indexint32Integer specifying removed DeviceHardware index. Not populated in stateless watch type.

DeviceHardwareRegisterSessionChange Message

DeviceHardwareRegisterSessionChange is used by Watch notifications Responses to describe change of single DeviceHardwareRegisterSession One of Added, Modified, Removed

NameTypeDescription
addedDeviceHardwareRegisterSessionChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedDeviceHardwareRegisterSessionChange.ModifiedModified is returned when watched document is modified
currentDeviceHardwareRegisterSessionChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedDeviceHardwareRegisterSessionChange.RemovedRemoved is returned when DeviceHardwareRegisterSession is deleted or leaves Query view

DeviceHardwareRegisterSessionChange.Added Message

DeviceHardwareRegisterSession has been added to query view

NameTypeDescription
device_hardware_register_sessionDeviceHardwareRegisterSession
view_indexint32Integer describing index of added DeviceHardwareRegisterSession in resulting query view.

DeviceHardwareRegisterSessionChange.Current Message

DeviceHardwareRegisterSession has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
device_hardware_register_sessionDeviceHardwareRegisterSession

DeviceHardwareRegisterSessionChange.Modified Message

DeviceHardwareRegisterSession changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of DeviceHardwareRegisterSession)Name of modified DeviceHardwareRegisterSession
device_hardware_register_sessionDeviceHardwareRegisterSessionNew version of DeviceHardwareRegisterSession or masked difference, depending on mask_changes instrumentation of issued [WatchDeviceHardwareRegisterSessionRequest] or [WatchDeviceHardwareRegisterSessionsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified DeviceHardwareRegisterSession. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying DeviceHardwareRegisterSession new index in resulting query view.

DeviceHardwareRegisterSessionChange.Removed Message

Removed is returned when DeviceHardwareRegisterSession is deleted or leaves Query view

NameTypeDescription
namestring (name of DeviceHardwareRegisterSession)
view_indexint32Integer specifying removed DeviceHardwareRegisterSession index. Not populated in stateless watch type.

DeviceMetrics Message

NameTypeDescription
uptimeuint64
memory_usage_bytesuint64
memory_utilization_percentfloat
load_average_1mfloat
memory_statsDeviceMetrics.MemoryStats
cpu_statsrepeated DeviceMetrics.CpuCoreStats
disk_metricsrepeated DeviceMetrics.DiskMetricshould match order in repeated DiskMetricsLabel
hardware_metricsrepeated DeviceMetrics.HardwareMetricshould match order in repeated DiskMetricsLabel
modem_metricsmap<uint32s, DeviceMetrics.ModemMetric>should match order in repeated ModemMetricLabel
per_antenna_signalDeviceMetrics.PerAntennaSignal
container_metricsmap<uint32s, DeviceMetrics.ContainerMetric>should match order in repeated ContainerMetricLabel
pod_metricsrepeated DeviceMetrics.PodMetricshould match order in repeated PodMetricLabel
metrics_time.google.protobuf.Timestamp
disk_labelsrepeated DeviceMetrics.DiskMetricsLabeloptional - only required when something changes or in first time the metric is sent
hardware_metrics_labelsrepeated DeviceMetrics.HardwareMetricsLabeloptional - only required when something changes or in first time the metric is sent
modem_metrics_labelsrepeated DeviceMetrics.ModemMetricLabeloptional - only required when something changes or in first time the metric is sent
container_metrics_labelsrepeated DeviceMetrics.ContainerMetricLabeloptional - only required when something changes or in first time the metric is sent
pod_metrics_labelsrepeated DeviceMetrics.PodMetricLabeloptional - only required when something changes or in first time the metric is sent
health_check_metric_labelsrepeated DeviceMetrics.HealthCheckMetricLabel
health_check_metricsmap<uint32s, DeviceMetrics.HealthCheckMetric>should match order in health_check_metric_labels
interface_name_labelsrepeated stringSent only if there is some change
interface_counter_start_timerepeated .google.protobuf.TimestampSent only if there is some change
interface_metricsrepeated DeviceMetrics.InterfaceMetric

DeviceMetrics.ContainerMetric Message

NameTypeDescription
cpu_utilizationfloat
memory_utilizationfloat
memory_usage_bytesuint64

DeviceMetrics.ContainerMetricLabel Message

NameTypeDescription
pod_idstring
container_idstring

DeviceMetrics.CpuCoreStats Message

NameTypeDescription
userfloat
systemfloat
idlefloat
nicefloat
iowaitfloat
irqfloat
softirqfloat
stealfloat

DeviceMetrics.DiskMetric Message

NameTypeDescription
disk_usage_bytesuint64
disk_utilization_percentfloat

DeviceMetrics.DiskMetricsLabel Message

NameTypeDescription
mount_pointstring
partition_labelstring
partitionstring

DeviceMetrics.HardwareMetric Message

NameTypeDescription
fan_speeduint64
temperatureint64
voltagefloat
powerfloat

DeviceMetrics.HardwareMetricsLabel Message

NameTypeDescription
sensor_tagstring
chip_tagstring

DeviceMetrics.HealthCheckMetric Message

NameTypeDescription
is_succeessfulbool
http_response_time_micro_secondsuint64
rtt_microsecondsuint64

DeviceMetrics.HealthCheckMetricLabel Message

Ideally labels should not change continuously. TODO: Check if status_summary and destination_host are an issue

NameTypeDescription
health_check_namestring
status_summarystring
destination_hoststring
container_namestring
pod_idstring

DeviceMetrics.InterfaceMetric Message

NameTypeDescription
bytes_sentuint64
bytes_recvduint64
packets_sentuint64
packets_recvduint64
in_erruint64in_errors - Sum of Errin, Dropin and Fifoin
out_erruint64out errors - Sum of Errout, Dropout and Fifoout

DeviceMetrics.MemoryStats Message

NameTypeDescription
buffered_memoryuint64
cached_memoryuint64
free_memoryuint64
used_memoryuint64
available_memoryuint64
shared_memoryuint64

DeviceMetrics.ModemMetric Message

NameTypeDescription
rssisint32
rsrpsint32
rsrqfloat
snrfloat

DeviceMetrics.ModemMetricLabel Message

NameTypeDescription
cell_typeMobileNetworkType
cell_iduint64
physical_cell_iduint64
tacuint64
earfcnuint64

DeviceMetrics.PerAntennaSignal Message

NameTypeDescription
fiveg_rsrpsrepeated sint32
fiveg_rsrqsrepeated float
lte_rsrpsrepeated sint32
lte_rsrqsrepeated float

DeviceMetrics.PodMetric Message

NameTypeDescription
pod_statusuint64
is_healthybool

DeviceMetrics.PodMetricLabel Message

NameTypeDescription
pod_idstring

DeviceTypeChange Message

DeviceTypeChange is used by Watch notifications Responses to describe change of single DeviceType One of Added, Modified, Removed

NameTypeDescription
addedDeviceTypeChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedDeviceTypeChange.ModifiedModified is returned when watched document is modified
currentDeviceTypeChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedDeviceTypeChange.RemovedRemoved is returned when DeviceType is deleted or leaves Query view

DeviceTypeChange.Added Message

DeviceType has been added to query view

NameTypeDescription
device_typeDeviceType
view_indexint32Integer describing index of added DeviceType in resulting query view.

DeviceTypeChange.Current Message

DeviceType has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
device_typeDeviceType

DeviceTypeChange.Modified Message

DeviceType changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of DeviceType)Name of modified DeviceType
device_typeDeviceTypeNew version of DeviceType or masked difference, depending on mask_changes instrumentation of issued [WatchDeviceTypeRequest] or [WatchDeviceTypesRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified DeviceType. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying DeviceType new index in resulting query view.

DeviceTypeChange.Removed Message

Removed is returned when DeviceType is deleted or leaves Query view

NameTypeDescription
namestring (name of DeviceType)
view_indexint32Integer specifying removed DeviceType index. Not populated in stateless watch type.

LogsService Message

NameTypeDescription
nonenonenone

LogsService.ToClient Message

Messages sent only to a client

NameTypeDescription
databytesLogs data

LogsService.ToDevice Message

Messages sent only to a device

NameTypeDescription
followboolLive follow the logs service
linesuint32sNumber of lines to get from the logs service
sourcestringSource of the logs service (e.g. docker container ID)

OsImageProfileChange Message

OsImageProfileChange is used by Watch notifications Responses to describe change of single OsImageProfile One of Added, Modified, Removed

NameTypeDescription
addedOsImageProfileChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedOsImageProfileChange.ModifiedModified is returned when watched document is modified
currentOsImageProfileChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedOsImageProfileChange.RemovedRemoved is returned when OsImageProfile is deleted or leaves Query view

OsImageProfileChange.Added Message

OsImageProfile has been added to query view

NameTypeDescription
os_image_profileOsImageProfile
view_indexint32Integer describing index of added OsImageProfile in resulting query view.

OsImageProfileChange.Current Message

OsImageProfile has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
os_image_profileOsImageProfile

OsImageProfileChange.Modified Message

OsImageProfile changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of OsImageProfile)Name of modified OsImageProfile
os_image_profileOsImageProfileNew version of OsImageProfile or masked difference, depending on mask_changes instrumentation of issued [WatchOsImageProfileRequest] or [WatchOsImageProfilesRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified OsImageProfile. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying OsImageProfile new index in resulting query view.

OsImageProfileChange.Removed Message

Removed is returned when OsImageProfile is deleted or leaves Query view

NameTypeDescription
namestring (name of OsImageProfile)
view_indexint32Integer specifying removed OsImageProfile index. Not populated in stateless watch type.

OsVersionChange Message

OsVersionChange is used by Watch notifications Responses to describe change of single OsVersion One of Added, Modified, Removed

NameTypeDescription
addedOsVersionChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedOsVersionChange.ModifiedModified is returned when watched document is modified
currentOsVersionChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedOsVersionChange.RemovedRemoved is returned when OsVersion is deleted or leaves Query view

OsVersionChange.Added Message

OsVersion has been added to query view

NameTypeDescription
os_versionOsVersion
view_indexint32Integer describing index of added OsVersion in resulting query view.

OsVersionChange.Current Message

OsVersion has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
os_versionOsVersion

OsVersionChange.Modified Message

OsVersion changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of OsVersion)Name of modified OsVersion
os_versionOsVersionNew version of OsVersion or masked difference, depending on mask_changes instrumentation of issued [WatchOsVersionRequest] or [WatchOsVersionsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified OsVersion. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying OsVersion new index in resulting query view.

OsVersionChange.Removed Message

Removed is returned when OsVersion is deleted or leaves Query view

NameTypeDescription
namestring (name of OsVersion)
view_indexint32Integer specifying removed OsVersion index. Not populated in stateless watch type.

PodManagementService Message

NameTypeDescription
commandPodManagementService.PodStatePod state command
podstringPod to execute the command on
servicestringService (container) name to execute the command on (empty = acts on the entire pod)

ProjectChange Message

ProjectChange is used by Watch notifications Responses to describe change of single Project One of Added, Modified, Removed

NameTypeDescription
addedProjectChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedProjectChange.ModifiedModified is returned when watched document is modified
currentProjectChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedProjectChange.RemovedRemoved is returned when Project is deleted or leaves Query view

ProjectChange.Added Message

Project has been added to query view

NameTypeDescription
projectProject
view_indexint32Integer describing index of added Project in resulting query view.

ProjectChange.Current Message

Project has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
projectProject

ProjectChange.Modified Message

Project changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of Project)Name of modified Project
projectProjectNew version of Project or masked difference, depending on mask_changes instrumentation of issued [WatchProjectRequest] or [WatchProjectsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified Project. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying Project new index in resulting query view.

ProjectChange.Removed Message

Removed is returned when Project is deleted or leaves Query view

NameTypeDescription
namestring (name of Project)
view_indexint32Integer specifying removed Project index. Not populated in stateless watch type.

ProvisionHardwareRequest Message

Request message for method [ProvisionHardware][ntt.devices.v1.ProvisionHardware]

NameTypeDescription
provisioning_targetProvisionHardwareRequest.ProvisioningTarget
identifyDeviceIdentity
challenge_responseIdentityChallengeResponse

ProvisionHardwareRequest.ProvisioningTarget Message

ProvisioningTarget is used to know the correct region to route the request

NameTypeDescription
provisioning_policy_namestring (name of ProvisioningPolicy)one of provisioning_policy_name or device_name is required
device_namestring (name of Device)

ProvisionHardwareResponse Message

Response message for method [ProvisionHardware][ntt.devices.v1.ProvisionHardware]

NameTypeDescription
identity_challengeIdentityChallenge
provisioning_responseProvisionHardwareResponse.ProvisioningResponse

ProvisionHardwareResponse.ProvisioningResponse Message

One of provisioning service_account and policy name or device service_account and device name will be returned.

NameTypeDescription
service_accountServiceAccount
provisioning_policy_namestring (name of ProvisioningPolicy)
device_namestring (name of Device)

ProvisioningApprovalRequestChange Message

ProvisioningApprovalRequestChange is used by Watch notifications Responses to describe change of single ProvisioningApprovalRequest One of Added, Modified, Removed

NameTypeDescription
addedProvisioningApprovalRequestChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedProvisioningApprovalRequestChange.ModifiedModified is returned when watched document is modified
currentProvisioningApprovalRequestChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedProvisioningApprovalRequestChange.RemovedRemoved is returned when ProvisioningApprovalRequest is deleted or leaves Query view

ProvisioningApprovalRequestChange.Added Message

ProvisioningApprovalRequest has been added to query view

NameTypeDescription
provisioning_approval_requestProvisioningApprovalRequest
view_indexint32Integer describing index of added ProvisioningApprovalRequest in resulting query view.

ProvisioningApprovalRequestChange.Current Message

ProvisioningApprovalRequest has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
provisioning_approval_requestProvisioningApprovalRequest

ProvisioningApprovalRequestChange.Modified Message

ProvisioningApprovalRequest changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of ProvisioningApprovalRequest)Name of modified ProvisioningApprovalRequest
provisioning_approval_requestProvisioningApprovalRequestNew version of ProvisioningApprovalRequest or masked difference, depending on mask_changes instrumentation of issued [WatchProvisioningApprovalRequestRequest] or [WatchProvisioningApprovalRequestsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified ProvisioningApprovalRequest. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying ProvisioningApprovalRequest new index in resulting query view.

ProvisioningApprovalRequestChange.Removed Message

Removed is returned when ProvisioningApprovalRequest is deleted or leaves Query view

NameTypeDescription
namestring (name of ProvisioningApprovalRequest)
view_indexint32Integer specifying removed ProvisioningApprovalRequest index. Not populated in stateless watch type.

ProvisioningPolicyChange Message

ProvisioningPolicyChange is used by Watch notifications Responses to describe change of single ProvisioningPolicy One of Added, Modified, Removed

NameTypeDescription
addedProvisioningPolicyChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedProvisioningPolicyChange.ModifiedModified is returned when watched document is modified
currentProvisioningPolicyChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedProvisioningPolicyChange.RemovedRemoved is returned when ProvisioningPolicy is deleted or leaves Query view

ProvisioningPolicyChange.Added Message

ProvisioningPolicy has been added to query view

NameTypeDescription
provisioning_policyProvisioningPolicy
view_indexint32Integer describing index of added ProvisioningPolicy in resulting query view.

ProvisioningPolicyChange.Current Message

ProvisioningPolicy has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
provisioning_policyProvisioningPolicy

ProvisioningPolicyChange.Modified Message

ProvisioningPolicy changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of ProvisioningPolicy)Name of modified ProvisioningPolicy
provisioning_policyProvisioningPolicyNew version of ProvisioningPolicy or masked difference, depending on mask_changes instrumentation of issued [WatchProvisioningPolicyRequest] or [WatchProvisioningPoliciesRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified ProvisioningPolicy. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying ProvisioningPolicy new index in resulting query view.

ProvisioningPolicyChange.Removed Message

Removed is returned when ProvisioningPolicy is deleted or leaves Query view

NameTypeDescription
namestring (name of ProvisioningPolicy)
view_indexint32Integer specifying removed ProvisioningPolicy index. Not populated in stateless watch type.

SCPService Message

NameTypeDescription
dirSCPService.CreateDirectoryRequest to create a directory
fileSCPService.CreateFileRequest to create a file
eotboolRequest to end SCP transfer
configSCPService.ConfigureRequest SCP configuration

SCPService.Configure Message

NameTypeDescription
recursivebool
directionSCPService.Configure.Direction
pathstring

SCPService.CreateDirectory Message

NameTypeDescription
pathstring
modeuint32s

SCPService.CreateFile Message

NameTypeDescription
initSCPService.CreateFile.InitializeRequest file initialization
databytesRequest file data
eofboolRequest to end file transfer

SCPService.CreateFile.Initialize Message

NameTypeDescription
pathstring
modeuint32s
sizeuint64

SSHService Message

Services on the device that the client connects to

SSH protocol overview (distinguish layers)

Proxies layer (transport):

  • The SSH service is carried over a Proxies channel.
  • Proxies controls stream open/close and CloseSend/Recv behavior.
  • Transport errors (gRPC stream errors) are surfaced by Proxies, not SSH.

SSH message layer (this proto):

  • The broker only forwards messages; it does not interpret them.
  • Expected order (SSH message layer):
    1. ClientOut.Hello (exactly once) from consumer to provider.
    2. Data flow in both directions:
      • ClientOut.Data (stdin) from consumer to provider.
      • ClientIn.Data (stdout/stderr) from provider to consumer.
      • ClientOut.TerminalSize (resize) from consumer to provider.
    3. ClientIn.ExitStatus (at most once) from provider to consumer, after the remote process exits. No further data should follow ExitStatus.
  • Invalid sequences (examples):
    • Data after ExitStatus.
    • Multiple ExitStatus messages.
    • Transport EOF before Proxies Close.
NameTypeDescription
nonenonenone

SSHService.ClientIn Message

NameTypeDescription
databytes
exit_statusSSHService.ExitStatus

SSHService.ClientOut Message

NameTypeDescription
databytes
ssh_helloSSHService.Hello
ssh_resize_terminalSSHService.TerminalSize

SSHService.ExitStatus Message

NameTypeDescription
codeint32

SSHService.Hello Message

NameTypeDescription
userstring
commandrepeated stringCommand to execute. This field is repeated for backwards compatibility, but only the first item is used. The command should be provided as a single string (not tokenized).
envmap<string, string>Environment (optional)
ttySSHService.Hello.TtyModeTTY allocation policy.
sizeSSHService.TerminalSizeInitial terminal size (only used when TTY is enabled).

SSHService.TerminalSize Message

NameTypeDescription
widthuint32s
heightuint32s

SystemStateService Message

NameTypeDescription
nonenonenone

TpmAttestationCertChange Message

TpmAttestationCertChange is used by Watch notifications Responses to describe change of single TpmAttestationCert One of Added, Modified, Removed

NameTypeDescription
addedTpmAttestationCertChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedTpmAttestationCertChange.ModifiedModified is returned when watched document is modified
currentTpmAttestationCertChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedTpmAttestationCertChange.RemovedRemoved is returned when TpmAttestationCert is deleted or leaves Query view

TpmAttestationCertChange.Added Message

TpmAttestationCert has been added to query view

NameTypeDescription
tpm_attestation_certTpmAttestationCert
view_indexint32Integer describing index of added TpmAttestationCert in resulting query view.

TpmAttestationCertChange.Current Message

TpmAttestationCert has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
tpm_attestation_certTpmAttestationCert

TpmAttestationCertChange.Modified Message

TpmAttestationCert changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of TpmAttestationCert)Name of modified TpmAttestationCert
tpm_attestation_certTpmAttestationCertNew version of TpmAttestationCert or masked difference, depending on mask_changes instrumentation of issued [WatchTpmAttestationCertRequest] or [WatchTpmAttestationCertsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified TpmAttestationCert. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying TpmAttestationCert new index in resulting query view.

TpmAttestationCertChange.Removed Message

Removed is returned when TpmAttestationCert is deleted or leaves Query view

NameTypeDescription
namestring (name of TpmAttestationCert)
view_indexint32Integer specifying removed TpmAttestationCert index. Not populated in stateless watch type.

Devices Service Shared Enumerations

Here is the list of Devices service shared enumerations:

BrokerServiceType Enumeration

Broker dedicated messages

NameDescription
BROKER_SERVICE_UNSPECIFIEDService type not specified
BROKER_SERVICE_SSH_LEGACYSSH service
BROKER_SERVICE_SSH
BROKER_SERVICE_TCP_FORWARD_PORTTCP port forward service (also used for UDP forwarding)
BROKER_SERVICE_REBOOTReboot service
BROKER_SERVICE_SHUTDOWNShutdown service
BROKER_SERVICE_SCPSCP service
BROKER_SERVICE_SCP_LEGACY
BROKER_SYS_LOGSSystem Logs service
BROKER_APP_LOGSApplication (Container) Logs service
BROKER_POD_MANAGEMENTPod State Management service

MobileNetworkType Enumeration

NameDescription
FiveGNR
LTE
UMTS

PodManagementService.PodState Enumeration

Commands for pod state management

NameDescription
UNSPECIFIEDUnspecified pod state
STARTStart the pod
STOPStop the pod
RESTARTRestart the pod

SCPService.Configure.Direction Enumeration

NameDescription
DOWNLOAD
UPLOAD

SSHService.Hello.TtyMode Enumeration

NameDescription
TTY_AUTO
TTY_FORCE
TTY_DISABLE

SystemStateService.SystemState Enumeration

Commands for system state management

NameDescription
UNSPECIFIEDUnspecified system state
SHUTDOWNShutdown the system
REBOOTReboot the system

2 -

Understanding the devices.edgelq.com service APIv1alpha2, in proto package ntt.devices.v1alpha2.

Service devices.edgelq.com in version v1alpha2, proto package ntt.devices.v1alpha2

Here is the list of resources supported in Devices service APIv1alpha2:

CustomizedImage Resource

CustomizedImage Resource

Name patterns:

  • projects/{project}/regions/{region}/customizedImages/{customized_image}

Parent resources:

This section covers the methods and messages to interact with CustomizedImage resource.

CustomizedImage Methods

Here is the list of CustomizedImage resource methods:

GetCustomizedImage Method

GetCustomizedImage

rpc GetCustomizedImage(GetCustomizedImageRequest) returns (CustomizedImage)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/customizedImages.get

The equivalent REST API is:

GET /v1alpha2/{name=projects/*/regions/*/customizedImages/*} 

BatchGetCustomizedImages Method

BatchGetCustomizedImages

rpc BatchGetCustomizedImages(BatchGetCustomizedImagesRequest) returns (BatchGetCustomizedImagesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/customizedImages.batchGet

The equivalent REST API is:

GET /v1alpha2/customizedImages:batchGet 

ListCustomizedImages Method

ListCustomizedImages

rpc ListCustomizedImages(ListCustomizedImagesRequest) returns (ListCustomizedImagesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/customizedImages.list

The equivalent REST API is:

GET /v1alpha2/{parent=projects/*/regions/*}/customizedImages 

WatchCustomizedImage Method

WatchCustomizedImage

rpc WatchCustomizedImage(WatchCustomizedImageRequest) returns (WatchCustomizedImageResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/customizedImages.watch

The equivalent REST API is:

POST /v1alpha2/{name=projects/*/regions/*/customizedImages/*}:watch 

WatchCustomizedImages Method

WatchCustomizedImages

rpc WatchCustomizedImages(WatchCustomizedImagesRequest) returns (WatchCustomizedImagesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/customizedImages.watch

The equivalent REST API is:

POST /v1alpha2/{parent=projects/*/regions/*}/customizedImages:watch 

CreateCustomizedImage Method

CreateCustomizedImage

rpc CreateCustomizedImage(CreateCustomizedImageRequest) returns (CustomizedImage)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/customizedImages.create

The equivalent REST API is:

POST /v1alpha2/{parent=projects/*/regions/*}/customizedImages (BODY: customized_image)

UpdateCustomizedImage Method

UpdateCustomizedImage

rpc UpdateCustomizedImage(UpdateCustomizedImageRequest) returns (CustomizedImage)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/customizedImages.update

The equivalent REST API is:

PUT /v1alpha2/{customized_image.name=projects/*/regions/*/customizedImages/*} (BODY: customized_image)

DeleteCustomizedImage Method

DeleteCustomizedImage

rpc DeleteCustomizedImage(DeleteCustomizedImageRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/customizedImages.delete

The equivalent REST API is:

DELETE /v1alpha2/{name=projects/*/regions/*/customizedImages/*} 

RequestUrl Method

RequestUrl

rpc RequestUrl(RequestUrlRequest) returns (RequestUrlResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/customizedImages.requestUrl

The equivalent REST API is:

POST /v1alpha2/{name=projects/*/regions/*/customizedImages/*}:requestUrl 

CustomizedImage Messages

Here is the list of CustomizedImage resource messages:

CustomizedImage Message

NameTypeDescription
namestring (name of CustomizedImage)Name of CustomizedImage When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata of CustomizedImage
specCustomizedImage.Spec
statusCustomizedImage.Status

CustomizedImage.Spec Message

NameTypeDescription
versionstring
device_typestring
provisioning_policystring
install_ai_acceleratorbool
passwordstring
encryptionbool
encryption_passwordstring
disk_mappingstring
network_agentstring
ntpstring
http_proxystring
https_proxystring
no_proxystring

CustomizedImage.Status Message

NameTypeDescription
stateCustomizedImage.Status.StateState of the image.
logstringError log when state is ERROR.
filestringTODO hide this from client

GetCustomizedImageRequest Message

A request message of the GetCustomizedImage method.

NameTypeDescription
namestring (name of CustomizedImage)Name of ntt.devices.v1alpha2.CustomizedImage
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetCustomizedImagesRequest Message

A request message of the BatchGetCustomizedImages method.

NameTypeDescription
namesrepeated string (name of CustomizedImage)Names of CustomizedImages
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetCustomizedImagesResponse Message

A response message of the BatchGetCustomizedImages method.

NameTypeDescription
customized_imagesrepeated CustomizedImagefound CustomizedImages
missingrepeated string (name of CustomizedImage)list of not found CustomizedImages

ListCustomizedImagesRequest Message

A request message of the ListCustomizedImages method.

NameTypeDescription
parentstring (parent name of CustomizedImage)Parent name of ntt.devices.v1alpha2.CustomizedImage
page_sizeint32Requested page size. Server may return fewer CustomizedImages than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of CustomizedImage)A token identifying a page of results the server should return. Typically, this is the value of ListCustomizedImagesResponse.next_page_token.
order_bystring (orderBy of CustomizedImage)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of CustomizedImage)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListCustomizedImagesResponse Message

A response message of the ListCustomizedImages method.

NameTypeDescription
customized_imagesrepeated CustomizedImageThe list of CustomizedImages
prev_page_tokenstring (cursor of CustomizedImage)A token to retrieve previous page of results. Pass this value in the ListCustomizedImagesRequest.page_token.
next_page_tokenstring (cursor of CustomizedImage)A token to retrieve next page of results. Pass this value in the ListCustomizedImagesRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total CustomizedImages across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchCustomizedImageRequest Message

A request message of the WatchCustomizedImage method.

NameTypeDescription
namestring (name of CustomizedImage)Name of ntt.devices.v1alpha2.CustomizedImage
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchCustomizedImageResponse Message

A response message of the WatchCustomizedImage method.

NameTypeDescription
changeCustomizedImageChange

WatchCustomizedImagesRequest Message

A request message of the WatchCustomizedImages method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of CustomizedImage)Parent name of ntt.devices.v1alpha2.CustomizedImage
page_sizeint32Requested page size. Server may return fewer CustomizedImages than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of CustomizedImage)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of CustomizedImage)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of CustomizedImage)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to CustomizedImage that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to CustomizedImage that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchCustomizedImagesResponse Message

A response message of the WatchCustomizedImages method.

NameTypeDescription
customized_image_changesrepeated CustomizedImageChangeChanges of CustomizedImages
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All CustomizedImages will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchCustomizedImagesResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (CustomizedImages will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchCustomizedImagesResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of CustomizedImage)New token to retrieve previous page of results.
next_page_tokenstring (cursor of CustomizedImage)New token to retrieve next page of results.

CreateCustomizedImageRequest Message

A request message of the CreateCustomizedImage method.

NameTypeDescription
parentstring (parent name of CustomizedImage)Parent name of ntt.devices.v1alpha2.CustomizedImage
customized_imageCustomizedImageCustomizedImage resource body
response_maskCreateCustomizedImageRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateCustomizedImageRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateCustomizedImageRequest Message

A request message of the UpdateCustomizedImage method.

NameTypeDescription
customized_imageCustomizedImageCustomizedImage resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateCustomizedImageRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateCustomizedImageRequest.ResponseMaskreduce message response size.

UpdateCustomizedImageRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateCustomizedImageConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateCustomizedImageRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteCustomizedImageRequest Message

A request message of the DeleteCustomizedImage method.

NameTypeDescription
namestring (name of CustomizedImage)Name of ntt.devices.v1alpha2.CustomizedImage
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

RequestUrlRequest Message

Request message for method [RequestUrl][ntt.devices.v1alpha2.RequestUrl]

NameTypeDescription
namestring (name of CustomizedImage)name of ntt.devices.v1alpha2.CustomizedImage

RequestUrlResponse Message

Response message for method [RequestUrl][ntt.devices.v1alpha2.RequestUrl]

NameTypeDescription
urlstring
headersrepeated string

CustomizedImage Enumerations

Here is the list of CustomizedImage resource enumerations:

CustomizedImage.Status.State Enumeration

NameDescription
STATE_UNSPECIFIEDInitial state
IN_PROGRESSBackend is processing the customization request.
ERRORThere was an error processing the customization request. Check the parameters and try again.
READYThe customized image is ready to download.

Device Resource

Device Resource

Name patterns:

  • projects/{project}/regions/{region}/devices/{device}

Parent resources:

This section covers the methods and messages to interact with Device resource.

Device Methods

Here is the list of Device resource methods:

ListenForConnections Method

ListenForConnections

rpc ListenForConnections(ListenForConnectionsRequest) returns (ListenForConnectionsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.listenForConnections

The equivalent REST API is:

POST /v1alpha2/{register_listener.device=projects/*/regions/*/devices/*}:listenForConnections 

OpenConnectionChannelSocket Method

OpenConnectionChannelSocket

rpc OpenConnectionChannelSocket(OpenConnectionChannelSocketRequest) returns (OpenConnectionChannelSocketResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.openConnectionChannelSocket

The equivalent REST API is:

POST /v1alpha2/{register_socket.device=projects/*/regions/*/devices/*}:openConnectionChannelSocket 

ConnectToDevice Method

ConnectToDevice

rpc ConnectToDevice(ConnectToDeviceRequest) returns (ConnectToDeviceResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.connectToDevice

The equivalent REST API is:

POST /v1alpha2/{open_request.device=projects/*/regions/*/devices/*}:connectToDevice 

GetDevice Method

GetDevice

rpc GetDevice(GetDeviceRequest) returns (Device)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.get

The equivalent REST API is:

GET /v1alpha2/{name=projects/*/regions/*/devices/*} 

BatchGetDevices Method

BatchGetDevices

rpc BatchGetDevices(BatchGetDevicesRequest) returns (BatchGetDevicesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.batchGet

The equivalent REST API is:

GET /v1alpha2/devices:batchGet 

ListDevices Method

ListDevices

rpc ListDevices(ListDevicesRequest) returns (ListDevicesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.list

The equivalent REST API is:

GET /v1alpha2/{parent=projects/*/regions/*}/devices 

WatchDevice Method

WatchDevice

rpc WatchDevice(WatchDeviceRequest) returns (WatchDeviceResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.watch

The equivalent REST API is:

POST /v1alpha2/{name=projects/*/regions/*/devices/*}:watch 

WatchDevices Method

WatchDevices

rpc WatchDevices(WatchDevicesRequest) returns (WatchDevicesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.watch

The equivalent REST API is:

POST /v1alpha2/{parent=projects/*/regions/*}/devices:watch 

CreateDevice Method

CreateDevice

rpc CreateDevice(CreateDeviceRequest) returns (Device)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.create

The equivalent REST API is:

POST /v1alpha2/{parent=projects/*/regions/*}/devices (BODY: device)

UpdateDevice Method

UpdateDevice

rpc UpdateDevice(UpdateDeviceRequest) returns (Device)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.update

The equivalent REST API is:

PUT /v1alpha2/{device.name=projects/*/regions/*/devices/*} (BODY: device)

DeleteDevice Method

DeleteDevice

rpc DeleteDevice(DeleteDeviceRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.delete

The equivalent REST API is:

DELETE /v1alpha2/{name=projects/*/regions/*/devices/*} 

ProvisionServiceAccountToDevice Method

ProvisionServiceAccountToDevice

rpc ProvisionServiceAccountToDevice(ProvisionServiceAccountToDeviceRequest) returns (ProvisionServiceAccountToDeviceResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.provisionServiceAccountToDevice

The equivalent REST API is:

POST /v1alpha2/{name=projects/*/regions/*/devices/*}:provisionServiceAccountToDevice 

RemoveServiceAccountFromDevice Method

RemoveServiceAccountFromDevice

rpc RemoveServiceAccountFromDevice(RemoveServiceAccountFromDeviceRequest) returns (RemoveServiceAccountFromDeviceResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.removeServiceAccountFromDevice

The equivalent REST API is:

POST /v1alpha2/{name=projects/*/regions/*/devices/*}:removeServiceAccountFromDevice 

ListPublicDevices Method

ListPublicDevices

rpc ListPublicDevices(ListPublicDevicesRequest) returns (ListPublicDevicesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/devices.listPublicDevices

The equivalent REST API is:

GET /v1alpha2/{parent=projects/*/regions/*}/devices:listPublicDevices 

Device Messages

Here is the list of Device resource messages:

Device Message

NameTypeDescription
namestring (name of Device)Name of Device When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9-]{0,28}[a-z0-9]
metadataMetaMetadata of Device
specDevice.SpecSpec holds the expected state of the Device, meaning configurations.
statusDevice.StatusStatus of the Device reported from the actual device.
public_listing_specDevice.PublicListingSpec
display_namestringDisplay name for the device

Device.Spec Message

NameTypeDescription
service_accountstring (reference to ServiceAccount)The associated service account to the Device. The agents in the device uses a key from this service account when they issue any requests to our endpoints for authoroization and authentication. ProvisionServiceAccountToDevice creates a new service account and a key for the Device and asign the account to this fileld. If you change the value of this field, the existing device would lose the access to the resources in our services, that means you can revoke the permissions from the device. You can manually set an empty value to do so, or call RemoveServiceAccountFromDevice.
os_versionstringThe expected OS version in string (e.g. 1.0.2). The device will automatically download the OS image and upgrade itself with it. You can stack the OS upgrade progress in the Condition named OSReady in Status.Conditions.
netplan_configDevice.Spec.NetplanConfig
netplan_api_config_modeDevice.Spec.NetworkConfigMode
os_image_urlstringThe URL is dynamically constructed once the device is created or updated. The URL will be based on the device hardware information URL format: base_url/dedicated_path/iso_version/architecture/os_type
ssh_configDevice.Spec.SSHConfig
attestation_configDevice.Spec.AttestationConfig
disable_device_discoveryboolDisables the daemon on the device for device auto discovery on the network. When it’s enabled, avahi-daemon is launched on the device which listens at UDP 5353. This daemon is useful to locate the device that acquires an IP address with DHCP.
logging_configDevice.Spec.LoggingConfig
proxy_configDevice.Spec.ProxyConfig
locationDevice.Spec.Location

Device.Status Message

NameTypeDescription
addressesrepeated Device.Status.AddressList of network addresses.
conditionsrepeated Device.Status.ConditionList of conditions of the Device.
network_config_stateDevice.Status.NetworkConfigState
proxy_config_statusDevice.Status.ProxyConfigStatus
device_infoDevice.Status.DeviceInfoDevice detailed information
attestation_statusrepeated PCR
normalized_addressDevice.Status.NormalizedAddressNormalized Address.

Device.PublicListingSpec Message

NameTypeDescription
enabledbool
field_mask.google.protobuf.FieldMask

Device.Spec.NetworkingConfig Message

NameTypeDescription
versionint32
rendererstring
ethernetsmap<string, Device.Spec.NetworkingConfig.EthOpts>
wifismap<string, Device.Spec.NetworkingConfig.WifiOpts>
bridgesmap<string, Device.Spec.NetworkingConfig.BridgesOpts>
bondsmap<string, Device.Spec.NetworkingConfig.BondsOpts>
tunnelsmap<string, Device.Spec.NetworkingConfig.TunnelsOpts>
vlansmap<string, Device.Spec.NetworkingConfig.VlansOpts>
modemsmap<string, Device.Spec.NetworkingConfig.ModemOpts>

Device.Spec.NetplanConfig Message

NameTypeDescription
networkDevice.Spec.NetworkingConfig

Device.Spec.SSHConfig Message

SSHConfig defines the ssh configuration for the Device.

NameTypeDescription
disable_ssh_serverbool
disable_ssh_passwordbool
ssh_authorizedrepeated Device.Spec.SSHConfig.AuthKey
ip_allow_listrepeated string
ip_deny_listrepeated string
reject_period.google.protobuf.Duration
disable_ssh_authkeybool

Device.Spec.AttestationConfig Message

NameTypeDescription
attestation_expectedboolIf true, the droplet will try to attest itself.
attestation_domainstring (reference to AttestationDomain)Attestation domain for device attestation.
insecure_use_tpm_simulator_seedint32Insecure, use for dev only. If non-zero, droplet will use an in-memory TPM simulator instead of an actual, physical one, using the provided seed as initialization seed. OK, this is not actually insecure, since server-side should verify trustworthiness of the key anyways (the entire point of verification protocol after all), but it’s better to mark it this way for people who don’t read the documentation. This field is designed to be used for development purposes, as it allows for running the attestation protocol on devices which don’t have a TMP chip. To make it work, ensure that attestation domain policies are configured for development as well (depends on which aspect we’re testing; at the very least insecure_skip_manufacturer_ekcert_verification should be probably set to true).

Device.Spec.LoggingConfig Message

NameTypeDescription
priorityint32Log priority as understood by systemd (0 - emergency, 1 - alert, 2 - critical, 3 - error, 4 - warning, 5 - notice, 6 - informational, 7 - debug). Journal logs with this priority and higher will be uploaded to the server.
unitsrepeated stringList of systemd unit names to monitor for logs, e.g. NetworkManager.service, docker.service. Leave empty to export all journald logs.
enable_journal_exportboolWhether the journald log exporter is enabled.

Device.Spec.ProxyConfig Message

NameTypeDescription
http_proxystring
https_proxystring
no_proxystring
proxy_interfacesrepeated stringBy default proxy is applicable for all interfaces configuring proxy_interfaces allows to restrict proxy setting to be used only with specific interfaces At present this is only used for Control Plane (for eg LTE fallback)

Device.Spec.Location Message

Device location of the device.

NameTypeDescription
addressstring
placementstring

Device.Spec.NetworkingConfig.CommonOpts Message

NameTypeDescription
nonenonenone

Device.Spec.NetworkingConfig.EthOpts Message

NameTypeDescription
matchDevice.Spec.NetworkingConfig.EthOpts.Match
set_namestring
wakeonlanbool
rendererstring
dhcp4bool
dhcp6bool
ipv6_privacybool
link_localrepeated string
criticalbool
dhcp_identifierstring
dhcp4_overridesDevice.Spec.NetworkingConfig.CommonOpts.DHCPOverrides
dhcp6_overridesDevice.Spec.NetworkingConfig.CommonOpts.DHCPOverrides
accept_rabool
addressesrepeated string
nameserversDevice.Spec.NetworkingConfig.CommonOpts.Nameservers
macaddressstring
mtuint32
optionalbool
optional_addressesrepeated string
routesrepeated Device.Spec.NetworkingConfig.CommonOpts.Routes
routing_policyDevice.Spec.NetworkingConfig.CommonOpts.RoutingPolicy
authDevice.Spec.NetworkingConfig.CommonOpts.Auth
gateway4stringDeprecated
gateway6stringDeprecated

Device.Spec.NetworkingConfig.WifiOpts Message

NameTypeDescription
matchDevice.Spec.NetworkingConfig.WifiOpts.Match
set_namestring
wakeonlanbool
access_pointsmap<string, Device.Spec.NetworkingConfig.WifiOpts.AccessPoint>
wakeonwlanrepeated stringThis enables WakeOnWLan on supported devices. Not all drivers support all options. May be any combination of any, disconnect, magic_pkt, gtk_rekey_failure, eap_identity_req, four_way_handshake, rfkill_release or tcp (NetworkManager only). Or the exclusive default flag (the default).
regulatory_domainstringThis can be used to define the radio’s regulatory domain, to make use of additional WiFi channels outside the “world domain”. Takes an ISO / IEC 3166 country code (like GB) or 00 to reset to the “world domain”
rendererstring
dhcp4bool
dhcp6bool
ipv6_privacybool
link_localrepeated string
criticalbool
dhcp_identifierstring
dhcp4_overridesDevice.Spec.NetworkingConfig.CommonOpts.DHCPOverrides
dhcp6_overridesDevice.Spec.NetworkingConfig.CommonOpts.DHCPOverrides
accept_rabool
addressesrepeated string
nameserversDevice.Spec.NetworkingConfig.CommonOpts.Nameservers
macaddressstring
mtuint32
optionalbool
optional_addressesrepeated string
routesrepeated Device.Spec.NetworkingConfig.CommonOpts.Routes
routing_policyDevice.Spec.NetworkingConfig.CommonOpts.RoutingPolicy
authDevice.Spec.NetworkingConfig.CommonOpts.Auth
gateway4stringDeprecated
gateway6stringDeprecated

Device.Spec.NetworkingConfig.BridgesOpts Message

NameTypeDescription
interfacesrepeated string
parametersDevice.Spec.NetworkingConfig.BridgesOpts.Parameters
rendererstring
dhcp4bool
dhcp6bool
ipv6_privacybool
link_localrepeated string
criticalbool
dhcp_identifierstring
dhcp4_overridesDevice.Spec.NetworkingConfig.CommonOpts.DHCPOverrides
dhcp6_overridesDevice.Spec.NetworkingConfig.CommonOpts.DHCPOverrides
accept_rabool
addressesrepeated string
nameserversDevice.Spec.NetworkingConfig.CommonOpts.Nameservers
macaddressstring
mtuint32
optionalbool
optional_addressesrepeated string
routesrepeated Device.Spec.NetworkingConfig.CommonOpts.Routes
routing_policyDevice.Spec.NetworkingConfig.CommonOpts.RoutingPolicy
authDevice.Spec.NetworkingConfig.CommonOpts.Auth
gateway4stringDeprecated
gateway6stringDeprecated

Device.Spec.NetworkingConfig.BondsOpts Message

NameTypeDescription
interfacesrepeated string
parametersDevice.Spec.NetworkingConfig.BondsOpts.Parameters
rendererstring
dhcp4bool
dhcp6bool
ipv6_privacybool
link_localrepeated string
criticalbool
dhcp_identifierstring
dhcp4_overridesDevice.Spec.NetworkingConfig.CommonOpts.DHCPOverrides
dhcp6_overridesDevice.Spec.NetworkingConfig.CommonOpts.DHCPOverrides
accept_rabool
addressesrepeated string
nameserversDevice.Spec.NetworkingConfig.CommonOpts.Nameservers
macaddressstring
mtuint32
optionalbool
optional_addressesrepeated string
routesrepeated Device.Spec.NetworkingConfig.CommonOpts.Routes
routing_policyDevice.Spec.NetworkingConfig.CommonOpts.RoutingPolicy
authDevice.Spec.NetworkingConfig.CommonOpts.Auth
gateway4stringDeprecated
gateway6stringDeprecated

Device.Spec.NetworkingConfig.TunnelsOpts Message

NameTypeDescription
modestring
localstring
remotestring
keyint32
rendererstring
dhcp4bool
dhcp6bool
ipv6_privacybool
link_localrepeated string
criticalbool
dhcp_identifierstring
dhcp4_overridesDevice.Spec.NetworkingConfig.CommonOpts.DHCPOverrides
dhcp6_overridesDevice.Spec.NetworkingConfig.CommonOpts.DHCPOverrides
accept_rabool
addressesrepeated string
nameserversDevice.Spec.NetworkingConfig.CommonOpts.Nameservers
macaddressstring
mtuint32
optionalbool
optional_addressesrepeated string
routesrepeated Device.Spec.NetworkingConfig.CommonOpts.Routes
routing_policyDevice.Spec.NetworkingConfig.CommonOpts.RoutingPolicy
authDevice.Spec.NetworkingConfig.CommonOpts.Auth
gateway4stringDeprecated
gateway6stringDeprecated

Device.Spec.NetworkingConfig.VlansOpts Message

NameTypeDescription
idint32
linkstring
rendererstring
dhcp4bool
dhcp6bool
ipv6_privacybool
link_localrepeated string
criticalbool
dhcp_identifierstring
dhcp4_overridesDevice.Spec.NetworkingConfig.CommonOpts.DHCPOverrides
dhcp6_overridesDevice.Spec.NetworkingConfig.CommonOpts.DHCPOverrides
accept_rabool
addressesrepeated string
nameserversDevice.Spec.NetworkingConfig.CommonOpts.Nameservers
macaddressstring
mtuint32
optionalbool
optional_addressesrepeated string
routesrepeated Device.Spec.NetworkingConfig.CommonOpts.Routes
routing_policyDevice.Spec.NetworkingConfig.CommonOpts.RoutingPolicy
authDevice.Spec.NetworkingConfig.CommonOpts.Auth
gateway4stringDeprecated
gateway6stringDeprecated

Device.Spec.NetworkingConfig.ModemOpts Message

NameTypeDescription
apnstring
usernamestring
passwordstring
numberstring
network_idstring
device_idstring
pinstring
sim_idstring
sim_operator_idstring
auto_configbool
rendererstring
dhcp4bool
dhcp6bool
ipv6_privacybool
link_localrepeated string
criticalbool
dhcp_identifierstring
dhcp4_overridesDevice.Spec.NetworkingConfig.CommonOpts.DHCPOverrides
dhcp6_overridesDevice.Spec.NetworkingConfig.CommonOpts.DHCPOverrides
accept_rabool
addressesrepeated string
nameserversDevice.Spec.NetworkingConfig.CommonOpts.Nameservers
macaddressstring
mtuint32
optionalbool
optional_addressesrepeated string
routesrepeated Device.Spec.NetworkingConfig.CommonOpts.Routes
routing_policyDevice.Spec.NetworkingConfig.CommonOpts.RoutingPolicy
authDevice.Spec.NetworkingConfig.CommonOpts.Auth
gateway4stringDeprecated
gateway6stringDeprecated

Device.Spec.NetworkingConfig.CommonOpts.DHCPOverrides Message

NameTypeDescription
use_dnsbool
use_ntpbool
send_hostnamebool
use_hostnamebool
use_mtubool
hostnamestring
use_routesbool
route_metricint32

Device.Spec.NetworkingConfig.CommonOpts.Nameservers Message

NameTypeDescription
searchrepeated string
addressesrepeated string

Device.Spec.NetworkingConfig.CommonOpts.Routes Message

NameTypeDescription
fromstring
tostring
viastring
on_linkbool
metricint32
typestring
scopestring
tableint32

Device.Spec.NetworkingConfig.CommonOpts.RoutingPolicy Message

NameTypeDescription
fromstring
tostring
tableint32
priorityint32
markint32
type_of_serviceint32

Device.Spec.NetworkingConfig.CommonOpts.Auth Message

NameTypeDescription
key_managementstring
passwordstring
methodstring
identitystring
anonymous_identitystring
ca_certificatestring
client_certificatestring
client_keystring
client_key_passwordstring
phase2_authstring

Device.Spec.NetworkingConfig.EthOpts.Match Message

NameTypeDescription
namestring
macaddressstring
driverstring

Device.Spec.NetworkingConfig.WifiOpts.Match Message

NameTypeDescription
namestring
macaddressstring
driverstring

Device.Spec.NetworkingConfig.WifiOpts.AccessPoint Message

NameTypeDescription
passwordstringSetting password here is equivalent to using auth with key-management: psk
modestring
bssidstring
bandstring
channelstring
hiddenstring
authDevice.Spec.NetworkingConfig.CommonOpts.Auth

Device.Spec.NetworkingConfig.BridgesOpts.Parameters Message

NameTypeDescription
ageing_timeint32
priorityint32
port_priorityint32
forward_delayint32
hello_timeint32
max_ageint32
path_costint32
stpbool

Device.Spec.NetworkingConfig.BondsOpts.Parameters Message

NameTypeDescription
modestring
lacp_rateint32
mii_monitor_intervalint32
min_linksint32
transmit_hash_policyint32
ad_selectint32
all_slaves_activeint32
arp_ip_targetsbool
arp_validatestring
arp_all_targetsstring
up_delaystring
fail_over_mac_policystring
gratuitous_arpint32
packets_per_slavestring
primary_reselect_policystring
resend_igmpstring
learn_packet_intervalstring
primarystring

Device.Spec.NetworkingConfig.TunnelsOpts.Key Message

NameTypeDescription
inputint32
outputint32

Device.Spec.SSHConfig.AuthKey Message

NameTypeDescription
ssha_keystring
cert_authoritybool
commandstring
environmentstring
fromstring
no_agent_forwardingbool
no_port_forwardingbool
no_ptybool
no_user_rcbool
no_x11_forwardingbool
permitopenstring
principalsstring
tunnelstring
restrictbool

Device.Status.Address Message

Interface addresses of the Device.

NameTypeDescription
addressstringIPv4 or IPv6 address such as 203.0.113.5 (no suffix for subnet)
typestringAlways InternalIP

Device.Status.Condition Message

Condition holds status of each sub component or module of the device.

NameTypeDescription
messagestringThe message describes the status.
reasonstringThe reason for the status.
statusstringThe status name.
typestringType name of the status.
last_heart_beat_time.google.protobuf.TimestampWhen the status has been updated last time.
last_transition_time.google.protobuf.TimestampWhen the status has tuned into the current value.

Device.Status.NetworkConfigState Message

NameTypeDescription
active_network_config_sourceDevice.Status.NetworkConfigState.NetworkConfigSource
desired_network_config_sourceDevice.Status.NetworkConfigState.NetworkConfigSource
desired_network_config_errorstring
default_configDevice.Spec.NetplanConfig
active_configDevice.Spec.NetplanConfig
desired_configDevice.Spec.NetplanConfig

Device.Status.ProxyConfigStatus Message

NameTypeDescription
active_config_sourceDevice.Status.ProxyConfigStatus.ProxyConfigSource
desired_config_sourceDevice.Status.ProxyConfigStatus.ProxyConfigSource
proxy_config_errorstring
default_configDevice.Spec.ProxyConfig
active_configDevice.Spec.ProxyConfig
api_configDevice.Spec.ProxyConfig

Device.Status.DeviceInfo Message

Device Information

NameTypeDescription
architecturestringThe architecture of the CPU (and the software compilied for) (e.g. arm64)
operating_systemstringBase OS name (e.g. Linux)
kernel_versionstringOS kernel version
os_imagestringOS base Image name
container_runtime_versionstringNot used
os_versionstringLiquid OS version currently used.
driverstringContainer driver name (e.g. /var/lib/droplet/compose)
hardware_informationDevice.Status.DeviceInfo.HardwareInformation
network_interfacesmap<string, Device.Status.DeviceInfo.NetworkInterface>
control_plane_interface_infoDevice.Status.DeviceInfo.ControlPlaneInterfaceInfo

Device.Status.NormalizedAddress Message

NameTypeDescription
postal_codestringPostal code
country_codestringCountry code example US, JP
continentstringContinent, e.g. North America, Asia
continent_idstring
countrystringCountry name example United States, Japan
country_idstring
admin_area1stringProbe Location Administrative Area level 1 name, e.g. California (state), Chiba (prefecture)
admin_area1_idstring
admin_area2stringProbe Location Administrative Area level 2 name, e.g. Santa Clara (county), Tateyama (town)
admin_area2_idstring
admin_area3stringProbe Location Administrative Area level 3 name, e.g. Sunnyvale (city)
admin_area3_idstring
admin_area4stringProbe Location Administrative Area level 4 name, e.g. Sunnyvale (city)
admin_area4_idstring
addressstringOriginal address.
coordinates.google.type.LatLngcoordinates
accuracydoublelocation accuracy in meters

Device.Status.DeviceInfo.HardwareInformation Message

NameTypeDescription
osDevice.Status.DeviceInfo.HardwareInformation.OS
biosDevice.Status.DeviceInfo.HardwareInformation.BIOS
systemDevice.Status.DeviceInfo.HardwareInformation.System
cpuDevice.Status.DeviceInfo.HardwareInformation.CPU
blockDevice.Status.DeviceInfo.HardwareInformation.Block
networkDevice.Status.DeviceInfo.HardwareInformation.Network
gpuDevice.Status.DeviceInfo.HardwareInformation.GPU
memory_infoDevice.Status.DeviceInfo.HardwareInformation.MemoryInfo
hailo_infoDevice.Status.DeviceInfo.HardwareInformation.HailoInfo
nvidia_infoDevice.Status.DeviceInfo.HardwareInformation.NvidiaInfo
modem_statusrepeated Device.Status.DeviceInfo.HardwareInformation.ModemStatus

Device.Status.DeviceInfo.NetworkInterface Message

Network Interface

NameTypeDescription
interface_namestring
ip_address_v4repeated string
external_ip_address_v4repeated string
ip_address_v6repeated string
external_ip_address_v6repeated string
as_infoDevice.Status.DeviceInfo.NetworkInterface.ASInfoAsinfo describes the ISP (ASN) details for the interface This is resolved automatically from the external_ip_address.
carrierDevice.Status.DeviceInfo.NetworkInterface.CarrierCarrier.

Device.Status.DeviceInfo.ControlPlaneInterfaceInfo Message

NameTypeDescription
active_control_plane_interfacestring
usesProxybool
is_fallbackboolis_fallback would be true if droplet could not connect using the best default route and explicitly uses this interface to connect to api endpoint

Device.Status.DeviceInfo.HardwareInformation.Capability Message

NameTypeDescription
namestring
descriptionstring

Device.Status.DeviceInfo.HardwareInformation.OS Message

NameTypeDescription
operating_systemstring
kernel_versionstring
os_imagestring
container_runtime_versionstring

Device.Status.DeviceInfo.HardwareInformation.BIOS Message

TODO: Add capabilities and size

NameTypeDescription
vendorstring
bios_versionstring
release_datestring

Device.Status.DeviceInfo.HardwareInformation.System Message

NameTypeDescription
manufacturerstring
product_namestring
versionstring
serial_numberstring
configurationDevice.Status.DeviceInfo.HardwareInformation.System.Configuration

Device.Status.DeviceInfo.HardwareInformation.CPU Message

NameTypeDescription
processorsrepeated Device.Status.DeviceInfo.HardwareInformation.CPU.Processor

Device.Status.DeviceInfo.HardwareInformation.Block Message

NameTypeDescription
disksrepeated Device.Status.DeviceInfo.HardwareInformation.Block.Disk

Device.Status.DeviceInfo.HardwareInformation.Network Message

NameTypeDescription
nicsrepeated Device.Status.DeviceInfo.HardwareInformation.Network.NIC

Device.Status.DeviceInfo.HardwareInformation.GPU Message

NameTypeDescription
graphic_cardsrepeated Device.Status.DeviceInfo.HardwareInformation.GPU.GraphicCard

Device.Status.DeviceInfo.HardwareInformation.PCIDevice Message

Revisit: May be just device ??

NameTypeDescription
addressstring
vendorstring
productstring
namestring
subvendorstring

Device.Status.DeviceInfo.HardwareInformation.MemoryInfo Message

NameTypeDescription
memoryrepeated Device.Status.DeviceInfo.HardwareInformation.MemoryInfo.Memory

Device.Status.DeviceInfo.HardwareInformation.HailoInfo Message

NameTypeDescription
statusstring
cli_versionstring
modulesrepeated Device.Status.DeviceInfo.HardwareInformation.HailoInfo.HailoModuleInfo

Device.Status.DeviceInfo.HardwareInformation.NvidiaInfo Message

NameTypeDescription
statusstring
driver_versionstring
cuda_versionstring
gpusrepeated Device.Status.DeviceInfo.HardwareInformation.NvidiaInfo.GpuInfo

Device.Status.DeviceInfo.HardwareInformation.ModemStatus Message

NameTypeDescription
modemDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.Modem

Device.Status.DeviceInfo.HardwareInformation.System.Configuration Message

NameTypeDescription
chassisstring
uuidstring
sku_numberstring
familystring

Device.Status.DeviceInfo.HardwareInformation.CPU.Processor Message

NameTypeDescription
vendorstring
modelstring
capabilitiesrepeated Device.Status.DeviceInfo.HardwareInformation.Capability
num_threadsuint32s
num_coresuint32s
num_enabled_coresuint32s
namestring
serialstring
frequency_mhzint64
max_frequency_mhzint64
cache_inforepeated Device.Status.DeviceInfo.HardwareInformation.CPU.Processor.Cache
driverstring
latencyint64
clockint64

Device.Status.DeviceInfo.HardwareInformation.CPU.Processor.Cache Message

NameTypeDescription
typestring
size_bytesint64

Device.Status.DeviceInfo.HardwareInformation.Block.Disk Message

NameTypeDescription
namestring
size_bytesint64
drive_typestring
vendorstring
modelstring
serial_numberstring
wwnstring
partitionsrepeated Device.Status.DeviceInfo.HardwareInformation.Block.Disk.Partition

Device.Status.DeviceInfo.HardwareInformation.Block.Disk.Partition Message

NameTypeDescription
namestring
size_bytesint64
mount_pointstring
typestring

Device.Status.DeviceInfo.HardwareInformation.Network.NIC Message

NameTypeDescription
namestring
mac_addressstring
virtualbool
descriptionstring
product_namestring
vendorstring
subvendorstring
settingmap<string, string>

Device.Status.DeviceInfo.HardwareInformation.GPU.GraphicCard Message

NameTypeDescription
indexint64
deviceDevice.Status.DeviceInfo.HardwareInformation.PCIDevice

Device.Status.DeviceInfo.HardwareInformation.MemoryInfo.Memory Message

NameTypeDescription
descriptionstring
size_bytesint64
memory_banksrepeated Device.Status.DeviceInfo.HardwareInformation.MemoryInfo.Memory.MemoryBank

Device.Status.DeviceInfo.HardwareInformation.MemoryInfo.Memory.MemoryBank Message

NameTypeDescription
descriptionstring
productstring
vendorstring
serialstring
slotstring
size_bytesint64
frequency_hzint64
width_bitsint32

Device.Status.DeviceInfo.HardwareInformation.HailoInfo.HailoModuleInfo Message

NameTypeDescription
dev_idstring
control_proto_versionstring
firmware_versionstring
logger_versionstring
board_namestring
serial_numberstring
part_numberstring
product_namestring
neural_network_core_clock_ratestring

Device.Status.DeviceInfo.HardwareInformation.NvidiaInfo.GpuInfo Message

NameTypeDescription
idstring
product_namestring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.RegistrationSettings Message

NameTypeDescription
drx_cyclestring
mico_modestring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.FiveGNr Message

NameTypeDescription
registration_settingsDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.RegistrationSettings

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.Settings Message

NameTypeDescription
apnstring
ip_typestring
passwordstring
userstring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.InitialBearer Message

NameTypeDescription
dbus_pathstring
settingsDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.Settings

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.Eps Message

NameTypeDescription
initial_bearerDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.InitialBearer
ue_mode_operationstring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.ThreeGpp Message

NameTypeDescription
fiveg_nrDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.FiveGNr
enabled_locksrepeated string
epsDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.Eps
imeistring
operator_codestring
operator_namestring
packet_service_statestring
pcostring
registration_statestring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.Cdma Message

NameTypeDescription
activation_statestring
cdma1x_registration_statestring
esnstring
evdo_registration_statestring
meidstring
nidstring
sidstring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalQuality Message

NameTypeDescription
recentstring
valuestring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.Generic Message

NameTypeDescription
access_technologiesrepeated string
bearersrepeated string
carrier_configurationstring
carrier_configuration_revisionstring
current_bandsrepeated string
current_capabilitiesrepeated string
current_modesstring
devicestring
device_identifierstring
driversrepeated string
equipment_identifierstring
hardware_revisionstring
manufacturerstring
modelstring
own_numbersrepeated string
pluginstring
portsrepeated string
power_statestring
primary_portstring
primary_sim_slotstring
revisionstring
signal_qualityDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalQuality
simstring
sim_slotsrepeated string
statestring
state_failed_reasonstring
supported_bandsrepeated string
supported_capabilitiesrepeated string
supported_ip_familiesrepeated string
supported_modesrepeated string
unlock_requiredstring
unlock_retriesrepeated string

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.Signal5g Message

NameTypeDescription
error_ratestring
rsrpstring
rsrqstring
snrstring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalCdma1x Message

NameTypeDescription
eciostring
error_ratestring
rssistring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalEvdo Message

NameTypeDescription
eciostring
error_ratestring
iostring
rssistring
sinrstring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalGsm Message

NameTypeDescription
error_ratestring
rssistring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalLte Message

NameTypeDescription
error_ratestring
rsrpstring
rsrqstring
rssistring
snrstring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalRefresh Message

NameTypeDescription
ratestring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalThreshold Message

NameTypeDescription
error_ratestring
rssistring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalUmts Message

NameTypeDescription
eciostring
error_ratestring
rscpstring
rssistring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.Signal Message

NameTypeDescription
five_gDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.Signal5g
cdma1xDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalCdma1x
evdoDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalEvdo
gsmDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalGsm
lte_signalDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalLte
refreshDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalRefresh
thresholdDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalThreshold
umtsDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalUmts

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SimStatus Message

NameTypeDescription
dbus_pathstring
activestring
eidstring
emergency_numbersrepeated string
esim_statusstring
gid1string
gid2string
iccidstring
imsistring
operator_codestring
operator_namestring
removabilitystring
sim_typestring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.Modem Message

NameTypeDescription
three_g_ppDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.ThreeGpp
cdmaDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.Cdma
dbus_pathstring
genericDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.Generic
signalDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.Signal
sim_statusmap<string, Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SimStatus>

Device.Status.DeviceInfo.NetworkInterface.ASInfo Message

NameTypeDescription
asnstringAS Number string example AS7018
namestringAS Owner name example AT&T Services, Inc.
domainstringDomain name example att.com
routesrepeated stringRoutes exported from this ASN example 12.128.0.0/9
asn_typestringASN Owner type example isp(AT&T) / hosting(google)/ business (Amazon)

Device.Status.DeviceInfo.NetworkInterface.Carrier Message

NameTypeDescription
namestringMobile network carrier name example AT&T
mobile_country_codestringMobile country code example 214
mobile_network_codestringMobile network code example 7
location_area_codestringMobile location area code example 2862

ListenForConnectionsRequest Message

Request message for method [ListenForConnections][ntt.devices.v1alpha2.ListenForConnections] Registers a new session listener (agent) to the endpoint. This method is used by agents on the device and not meant for use of users.

NameTypeDescription
register_listenerListenForConnectionsRequest.RegisterListenerThis is a hello message from the agent with its name.
channel_open_errorListenForConnectionsRequest.ChannelOpenErrorWhen the agent failed to open a requested channel, this message will be sent from the agent to the endpoint.
keep_aliveListenForConnectionsRequest.KeepAliveKeepAlive.

ListenForConnectionsRequest.RegisterListener Message

NameTypeDescription
devicestring (name of Device)The self-declared device name, used for authentication/authorization.

ListenForConnectionsRequest.ChannelOpenError Message

NameTypeDescription
channelstringID of the channel failed to open.
messagestringError message.

ListenForConnectionsRequest.KeepAlive Message

NameTypeDescription
nonenonenone

ListenForConnectionsResponse Message

Response message for method [ListenForConnections][ntt.devices.v1alpha2.ListenForConnections] Responses from the endpoint to session agents.

NameTypeDescription
channel_requestedListenForConnectionsResponse.ChannelRequestedNotifies a new channel has been requested by a client.
keep_aliveListenForConnectionsResponse.KeepAliveKeepalive

ListenForConnectionsResponse.ChannelRequested Message

NameTypeDescription
channelstringChannel ID
serviceBrokerServiceTypeDevice service;
argstringInitial argument (optional)

ListenForConnectionsResponse.KeepAlive Message

NameTypeDescription
nonenonenone

OpenConnectionChannelSocketRequest Message

Request message for method [OpenConnectionChannelSocket][ntt.devices.v1alpha2.OpenConnectionChannelSocket] Opens a new socket for a session by agent at an endpoint. This session is usually initiated by the agent who received a ChannelRequested message on a ListenForConnection session. The session is used for data plane to transfer data for a channel between the endpoint and the agent.

NameTypeDescription
register_socketOpenConnectionChannelSocketRequest.RegisterSocketRegisters a new socket on the endpoint.
databytesData from the agent to the endpoint (client).
errorbytesError from the agent to the endpoint (client).
ackAckAck from the agent to the endpoint (client)

OpenConnectionChannelSocketRequest.RegisterSocket Message

NameTypeDescription
devicestring (name of Device)Device name, to be authenticated/authorized.
channelstringChannel ID, requested by the endpoint in the ChannelRequested message.

OpenConnectionChannelSocketResponse Message

Response message for method [OpenConnectionChannelSocket][ntt.devices.v1alpha2.OpenConnectionChannelSocket]

NameTypeDescription
databytesData from the endpoint (client) to the agent.
ackAckAck from the client to the endpoint (device)

ConnectToDeviceRequest Message

Request message for method [ConnectToDevice][ntt.devices.v1alpha2.ConnectToDevice] ConnectToDevice connects a local service provided by a Device.

NameTypeDescription
open_requestConnectToDeviceRequest.OpenRequestThe initiation message to open a channel to a device.
databytesAny data sent to the device through the endpoint.
ackAckAck from the user to the endpoint (device)
keep_aliveConnectToDeviceRequest.KeepAlive

ConnectToDeviceRequest.OpenRequest Message

NameTypeDescription
devicestring (name of Device)Device name to connect.
serviceBrokerServiceTypeDevice service
argstringInitial argument (optional)

ConnectToDeviceRequest.KeepAlive Message

NameTypeDescription
nonenonenone

ConnectToDeviceResponse Message

Response message for method [ConnectToDevice][ntt.devices.v1alpha2.ConnectToDevice]

NameTypeDescription
open_responseConnectToDeviceResponse.OpenResponseNotification from the agent (endpoint) to the channel has been opened.
databytesAny data from the device (endpoint) to the client.
errorbytesAny error from the device (endpoint) to the client.
ackAckAck from the device to the endpoint (client)

ConnectToDeviceResponse.OpenResponse Message

NameTypeDescription
nonenonenone

GetDeviceRequest Message

A request message of the GetDevice method.

NameTypeDescription
namestring (name of Device)Name of ntt.devices.v1alpha2.Device
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetDevicesRequest Message

A request message of the BatchGetDevices method.

NameTypeDescription
namesrepeated string (name of Device)Names of Devices
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetDevicesResponse Message

A response message of the BatchGetDevices method.

NameTypeDescription
devicesrepeated Devicefound Devices
missingrepeated string (name of Device)list of not found Devices

ListDevicesRequest Message

A request message of the ListDevices method.

NameTypeDescription
parentstring (parent name of Device)Parent name of ntt.devices.v1alpha2.Device
page_sizeint32Requested page size. Server may return fewer Devices than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of Device)A token identifying a page of results the server should return. Typically, this is the value of ListDevicesResponse.next_page_token.
order_bystring (orderBy of Device)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of Device)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListDevicesResponse Message

A response message of the ListDevices method.

NameTypeDescription
devicesrepeated DeviceThe list of Devices
prev_page_tokenstring (cursor of Device)A token to retrieve previous page of results. Pass this value in the ListDevicesRequest.page_token.
next_page_tokenstring (cursor of Device)A token to retrieve next page of results. Pass this value in the ListDevicesRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total Devices across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchDeviceRequest Message

A request message of the WatchDevice method.

NameTypeDescription
namestring (name of Device)Name of ntt.devices.v1alpha2.Device
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchDeviceResponse Message

A response message of the WatchDevice method.

NameTypeDescription
changeDeviceChange

WatchDevicesRequest Message

A request message of the WatchDevices method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of Device)Parent name of ntt.devices.v1alpha2.Device
page_sizeint32Requested page size. Server may return fewer Devices than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of Device)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of Device)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of Device)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Device that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Device that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchDevicesResponse Message

A response message of the WatchDevices method.

NameTypeDescription
device_changesrepeated DeviceChangeChanges of Devices
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Devices will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchDevicesResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Devices will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchDevicesResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of Device)New token to retrieve previous page of results.
next_page_tokenstring (cursor of Device)New token to retrieve next page of results.

CreateDeviceRequest Message

A request message of the CreateDevice method.

NameTypeDescription
parentstring (parent name of Device)Parent name of ntt.devices.v1alpha2.Device
deviceDeviceDevice resource body
response_maskCreateDeviceRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateDeviceRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateDeviceRequest Message

A request message of the UpdateDevice method.

NameTypeDescription
deviceDeviceDevice resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateDeviceRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateDeviceRequest.ResponseMaskreduce message response size.

UpdateDeviceRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateDeviceConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateDeviceRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteDeviceRequest Message

A request message of the DeleteDevice method.

NameTypeDescription
namestring (name of Device)Name of ntt.devices.v1alpha2.Device
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

ProvisionServiceAccountToDeviceRequest Message

Request message for method [ProvisionServiceAccountToDevice][ntt.devices.v1alpha2.ProvisionServiceAccountToDevice]

NameTypeDescription
namestring (name of Device)Name of Device to provision service account. This method automatically generates a service account and a key for the device and assign the key to .Spec.ServiceAccount
external_pubkeystringexternal public key to use for service account for this device. If not present, a keypair will be generated by the server.

ProvisionServiceAccountToDeviceResponse Message

Response message for method [ProvisionServiceAccountToDevice][ntt.devices.v1alpha2.ProvisionServiceAccountToDevice]

NameTypeDescription
service_accountServiceAccountThe service account generated by the endpoint. Save the private key included.

RemoveServiceAccountFromDeviceRequest Message

Request message for method [RemoveServiceAccountFromDevice][ntt.devices.v1alpha2.RemoveServiceAccountFromDevice]

NameTypeDescription
namestring (name of Device)Name of the Device to remove its service account The service account and the key will be automatically deleted as well when they have been generated automatically by ProvisionServiceAccountToDevice action. Otherwise, the service account will be kept intact. The device will lost the access to the resources in the project.

RemoveServiceAccountFromDeviceResponse Message

Response message for method [RemoveServiceAccountFromDevice][ntt.devices.v1alpha2.RemoveServiceAccountFromDevice]

NameTypeDescription
nonenonenone

ListPublicDevicesRequest Message

Request message for method [ListPublicDevices][ntt.devices.v1alpha2.ListPublicDevices]

NameTypeDescription
parentstring (parent name of Device)Name of Device parent
page_sizeint32Requested page size. Server may return fewer Devices than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of Device)A token identifying a page of results the server should return. Typically, this is the value of [ListDevicesResponse.next_page_token][ntt.devices.v1alpha2.ListDevicesResponse.next_page_token]
order_bystring (orderBy of Device)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of Device)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be requested on top of those defined by request field View.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

ListPublicDevicesResponse Message

Response message for method [ListPublicDevices][ntt.devices.v1alpha2.ListPublicDevices]

NameTypeDescription
devicesrepeated DeviceThe list of Devices
prev_page_tokenstring (cursor of Device)A token to retrieve previous page of results. Pass this value in the [ListDevicesRequest.page_token][ntt.devices.v1alpha2.ListDevicesRequest.page_token]
next_page_tokenstring (cursor of Device)A token to retrieve next page of results. Pass this value in the [ListDevicesRequest.page_token][ntt.devices.v1alpha2.ListDevicesRequest.page_token]

Device Enumerations

Here is the list of Device resource enumerations:

Device.Spec.NetworkConfigMode Enumeration

MERGE or REPLACE the api netplan_config with the baked in config in the device

NameDescription
MERGE
REPLACE

Device.Status.NetworkConfigState.NetworkConfigSource Enumeration

NameDescription
UNKNOWN
DEFAULT_CONFIG
API_CONFIG
MERGED_DEFAULT_AND_API_CONFIG
PREVIOUS_MERGED_DEFAULT_AND_API_CONFIG
PREVIOUS_API_CONFIG

Device.Status.ProxyConfigStatus.ProxyConfigSource Enumeration

NameDescription
NO_CONFIG
DEFAULT_CONFIG
API_CONFIG

DeviceType Resource

DeviceType Resource

Name patterns:

  • deviceTypes/{device_type}

This section covers the methods and messages to interact with DeviceType resource.

DeviceType Methods

Here is the list of DeviceType resource methods:

GetDeviceType Method

GetDeviceType

rpc GetDeviceType(GetDeviceTypeRequest) returns (DeviceType)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceTypes.get

The equivalent REST API is:

GET /v1alpha2/{name=deviceTypes/*} 

BatchGetDeviceTypes Method

BatchGetDeviceTypes

rpc BatchGetDeviceTypes(BatchGetDeviceTypesRequest) returns (BatchGetDeviceTypesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceTypes.batchGet

The equivalent REST API is:

GET /v1alpha2/deviceTypes:batchGet 

ListDeviceTypes Method

ListDeviceTypes

rpc ListDeviceTypes(ListDeviceTypesRequest) returns (ListDeviceTypesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceTypes.list

The equivalent REST API is:

GET /v1alpha2/deviceTypes 

WatchDeviceType Method

WatchDeviceType

rpc WatchDeviceType(WatchDeviceTypeRequest) returns (WatchDeviceTypeResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceTypes.watch

The equivalent REST API is:

POST /v1alpha2/{name=deviceTypes/*}:watch 

WatchDeviceTypes Method

WatchDeviceTypes

rpc WatchDeviceTypes(WatchDeviceTypesRequest) returns (WatchDeviceTypesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceTypes.watch

The equivalent REST API is:

POST /v1alpha2/deviceTypes:watch 

CreateDeviceType Method

CreateDeviceType

rpc CreateDeviceType(CreateDeviceTypeRequest) returns (DeviceType)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceTypes.create

The equivalent REST API is:

POST /v1alpha2/deviceTypes (BODY: device_type)

UpdateDeviceType Method

UpdateDeviceType

rpc UpdateDeviceType(UpdateDeviceTypeRequest) returns (DeviceType)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceTypes.update

The equivalent REST API is:

PUT /v1alpha2/{device_type.name=deviceTypes/*} (BODY: device_type)

DeleteDeviceType Method

DeleteDeviceType

rpc DeleteDeviceType(DeleteDeviceTypeRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/deviceTypes.delete

The equivalent REST API is:

DELETE /v1alpha2/{name=deviceTypes/*} 

DeviceType Messages

Here is the list of DeviceType resource messages:

DeviceType Message

NameTypeDescription
namestring (name of DeviceType)Name of DeviceType When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMeta
display_namestringDisplay name of Device Type
hardwareDeviceType.Hardware
architectureDeviceType.Architecture
descriptionstringDescription of the Device Type

GetDeviceTypeRequest Message

A request message of the GetDeviceType method.

NameTypeDescription
namestring (name of DeviceType)Name of ntt.devices.v1alpha2.DeviceType
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetDeviceTypesRequest Message

A request message of the BatchGetDeviceTypes method.

NameTypeDescription
namesrepeated string (name of DeviceType)Names of DeviceTypes
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetDeviceTypesResponse Message

A response message of the BatchGetDeviceTypes method.

NameTypeDescription
device_typesrepeated DeviceTypefound DeviceTypes
missingrepeated string (name of DeviceType)list of not found DeviceTypes

ListDeviceTypesRequest Message

A request message of the ListDeviceTypes method.

NameTypeDescription
page_sizeint32Requested page size. Server may return fewer DeviceTypes than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of DeviceType)A token identifying a page of results the server should return. Typically, this is the value of ListDeviceTypesResponse.next_page_token.
order_bystring (orderBy of DeviceType)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of DeviceType)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListDeviceTypesResponse Message

A response message of the ListDeviceTypes method.

NameTypeDescription
device_typesrepeated DeviceTypeThe list of DeviceTypes
prev_page_tokenstring (cursor of DeviceType)A token to retrieve previous page of results. Pass this value in the ListDeviceTypesRequest.page_token.
next_page_tokenstring (cursor of DeviceType)A token to retrieve next page of results. Pass this value in the ListDeviceTypesRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total DeviceTypes across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchDeviceTypeRequest Message

A request message of the WatchDeviceType method.

NameTypeDescription
namestring (name of DeviceType)Name of ntt.devices.v1alpha2.DeviceType
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchDeviceTypeResponse Message

A response message of the WatchDeviceType method.

NameTypeDescription
changeDeviceTypeChange

WatchDeviceTypesRequest Message

A request message of the WatchDeviceTypes method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_sizeint32Requested page size. Server may return fewer DeviceTypes than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of DeviceType)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of DeviceType)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of DeviceType)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to DeviceType that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to DeviceType that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchDeviceTypesResponse Message

A response message of the WatchDeviceTypes method.

NameTypeDescription
device_type_changesrepeated DeviceTypeChangeChanges of DeviceTypes
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All DeviceTypes will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchDeviceTypesResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (DeviceTypes will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchDeviceTypesResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of DeviceType)New token to retrieve previous page of results.
next_page_tokenstring (cursor of DeviceType)New token to retrieve next page of results.

CreateDeviceTypeRequest Message

A request message of the CreateDeviceType method.

NameTypeDescription
device_typeDeviceTypeDeviceType resource body
response_maskCreateDeviceTypeRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateDeviceTypeRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateDeviceTypeRequest Message

A request message of the UpdateDeviceType method.

NameTypeDescription
device_typeDeviceTypeDeviceType resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateDeviceTypeRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateDeviceTypeRequest.ResponseMaskreduce message response size.

UpdateDeviceTypeRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateDeviceTypeConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateDeviceTypeRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteDeviceTypeRequest Message

A request message of the DeleteDeviceType method.

NameTypeDescription
namestring (name of DeviceType)Name of ntt.devices.v1alpha2.DeviceType
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

DeviceType Enumerations

Here is the list of DeviceType resource enumerations:

DeviceType.Hardware Enumeration

Hardware (e.g. Generic, Raspberry Pi)

NameDescription
HARDWARE_UNSPECIFIED
GENERIC
RASPBERRYPI

DeviceType.Architecture Enumeration

Architecture name (e.g. amd64)

NameDescription
ARCHITECTURE_UNSPECIFIED
AMD64
ARM64

OsImageProfile Resource

OsImageProfile Resource

Name patterns:

  • projects/{project}/regions/{region}/osImageProfiles/{os_image_profile}

Parent resources:

This section covers the methods and messages to interact with OsImageProfile resource.

OsImageProfile Methods

Here is the list of OsImageProfile resource methods:

GetOsImageProfile Method

GetOsImageProfile

rpc GetOsImageProfile(GetOsImageProfileRequest) returns (OsImageProfile)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osImageProfiles.get

The equivalent REST API is:

GET /v1alpha2/{name=projects/*/regions/*/osImageProfiles/*} 

BatchGetOsImageProfiles Method

BatchGetOsImageProfiles

rpc BatchGetOsImageProfiles(BatchGetOsImageProfilesRequest) returns (BatchGetOsImageProfilesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osImageProfiles.batchGet

The equivalent REST API is:

GET /v1alpha2/osImageProfiles:batchGet 

ListOsImageProfiles Method

ListOsImageProfiles

rpc ListOsImageProfiles(ListOsImageProfilesRequest) returns (ListOsImageProfilesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osImageProfiles.list

The equivalent REST API is:

GET /v1alpha2/{parent=projects/*/regions/*}/osImageProfiles 

WatchOsImageProfile Method

WatchOsImageProfile

rpc WatchOsImageProfile(WatchOsImageProfileRequest) returns (WatchOsImageProfileResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osImageProfiles.watch

The equivalent REST API is:

POST /v1alpha2/{name=projects/*/regions/*/osImageProfiles/*}:watch 

WatchOsImageProfiles Method

WatchOsImageProfiles

rpc WatchOsImageProfiles(WatchOsImageProfilesRequest) returns (WatchOsImageProfilesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osImageProfiles.watch

The equivalent REST API is:

POST /v1alpha2/{parent=projects/*/regions/*}/osImageProfiles:watch 

CreateOsImageProfile Method

CreateOsImageProfile

rpc CreateOsImageProfile(CreateOsImageProfileRequest) returns (OsImageProfile)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osImageProfiles.create

The equivalent REST API is:

POST /v1alpha2/{parent=projects/*/regions/*}/osImageProfiles (BODY: os_image_profile)

UpdateOsImageProfile Method

UpdateOsImageProfile

rpc UpdateOsImageProfile(UpdateOsImageProfileRequest) returns (OsImageProfile)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osImageProfiles.update

The equivalent REST API is:

PUT /v1alpha2/{os_image_profile.name=projects/*/regions/*/osImageProfiles/*} (BODY: os_image_profile)

DeleteOsImageProfile Method

DeleteOsImageProfile

rpc DeleteOsImageProfile(DeleteOsImageProfileRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osImageProfiles.delete

The equivalent REST API is:

DELETE /v1alpha2/{name=projects/*/regions/*/osImageProfiles/*} 

OsImageProfile Messages

Here is the list of OsImageProfile resource messages:

OsImageProfile Message

NameTypeDescription
namestring (name of OsImageProfile)Name of OsImageProfile When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMeta
display_namestringDisplay name of the profile
device_typestring (reference to DeviceType)Device type for the profile
install_ai_acceleratorboolInstall runtimes and drivers for Hailo-8 and NVIDIA CUDA.
encryptionboolEnable disk encryption
disk_mappingstringDisk Mapping YAML configuration.
network_agentstringNetwork Agent YAML configuration.
ntpstringNTP Server settings.
http_proxystringHTTP PROXY address
https_proxystringHTTPS PROXY address
no_proxystringNO Proxy addresses (comma separated).

GetOsImageProfileRequest Message

A request message of the GetOsImageProfile method.

NameTypeDescription
namestring (name of OsImageProfile)Name of ntt.devices.v1alpha2.OsImageProfile
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetOsImageProfilesRequest Message

A request message of the BatchGetOsImageProfiles method.

NameTypeDescription
namesrepeated string (name of OsImageProfile)Names of OsImageProfiles
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetOsImageProfilesResponse Message

A response message of the BatchGetOsImageProfiles method.

NameTypeDescription
os_image_profilesrepeated OsImageProfilefound OsImageProfiles
missingrepeated string (name of OsImageProfile)list of not found OsImageProfiles

ListOsImageProfilesRequest Message

A request message of the ListOsImageProfiles method.

NameTypeDescription
parentstring (parent name of OsImageProfile)Parent name of ntt.devices.v1alpha2.OsImageProfile
page_sizeint32Requested page size. Server may return fewer OsImageProfiles than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of OsImageProfile)A token identifying a page of results the server should return. Typically, this is the value of ListOsImageProfilesResponse.next_page_token.
order_bystring (orderBy of OsImageProfile)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of OsImageProfile)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListOsImageProfilesResponse Message

A response message of the ListOsImageProfiles method.

NameTypeDescription
os_image_profilesrepeated OsImageProfileThe list of OsImageProfiles
prev_page_tokenstring (cursor of OsImageProfile)A token to retrieve previous page of results. Pass this value in the ListOsImageProfilesRequest.page_token.
next_page_tokenstring (cursor of OsImageProfile)A token to retrieve next page of results. Pass this value in the ListOsImageProfilesRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total OsImageProfiles across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchOsImageProfileRequest Message

A request message of the WatchOsImageProfile method.

NameTypeDescription
namestring (name of OsImageProfile)Name of ntt.devices.v1alpha2.OsImageProfile
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchOsImageProfileResponse Message

A response message of the WatchOsImageProfile method.

NameTypeDescription
changeOsImageProfileChange

WatchOsImageProfilesRequest Message

A request message of the WatchOsImageProfiles method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of OsImageProfile)Parent name of ntt.devices.v1alpha2.OsImageProfile
page_sizeint32Requested page size. Server may return fewer OsImageProfiles than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of OsImageProfile)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of OsImageProfile)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of OsImageProfile)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to OsImageProfile that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to OsImageProfile that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchOsImageProfilesResponse Message

A response message of the WatchOsImageProfiles method.

NameTypeDescription
os_image_profile_changesrepeated OsImageProfileChangeChanges of OsImageProfiles
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All OsImageProfiles will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchOsImageProfilesResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (OsImageProfiles will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchOsImageProfilesResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of OsImageProfile)New token to retrieve previous page of results.
next_page_tokenstring (cursor of OsImageProfile)New token to retrieve next page of results.

CreateOsImageProfileRequest Message

A request message of the CreateOsImageProfile method.

NameTypeDescription
parentstring (parent name of OsImageProfile)Parent name of ntt.devices.v1alpha2.OsImageProfile
os_image_profileOsImageProfileOsImageProfile resource body
response_maskCreateOsImageProfileRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateOsImageProfileRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateOsImageProfileRequest Message

A request message of the UpdateOsImageProfile method.

NameTypeDescription
os_image_profileOsImageProfileOsImageProfile resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateOsImageProfileRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateOsImageProfileRequest.ResponseMaskreduce message response size.

UpdateOsImageProfileRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateOsImageProfileConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateOsImageProfileRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteOsImageProfileRequest Message

A request message of the DeleteOsImageProfile method.

NameTypeDescription
namestring (name of OsImageProfile)Name of ntt.devices.v1alpha2.OsImageProfile
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

OsVersion Resource

OsVersion Resource

Name patterns:

  • osVersions/{os_version}

This section covers the methods and messages to interact with OsVersion resource.

OsVersion Methods

Here is the list of OsVersion resource methods:

GetOsVersion Method

GetOsVersion

rpc GetOsVersion(GetOsVersionRequest) returns (OsVersion)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osVersions.get

The equivalent REST API is:

GET /v1alpha2/{name=osVersions/*} 

BatchGetOsVersions Method

BatchGetOsVersions

rpc BatchGetOsVersions(BatchGetOsVersionsRequest) returns (BatchGetOsVersionsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osVersions.batchGet

The equivalent REST API is:

GET /v1alpha2/osVersions:batchGet 

ListOsVersions Method

ListOsVersions

rpc ListOsVersions(ListOsVersionsRequest) returns (ListOsVersionsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osVersions.list

The equivalent REST API is:

GET /v1alpha2/osVersions 

WatchOsVersion Method

WatchOsVersion

rpc WatchOsVersion(WatchOsVersionRequest) returns (WatchOsVersionResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osVersions.watch

The equivalent REST API is:

POST /v1alpha2/{name=osVersions/*}:watch 

WatchOsVersions Method

WatchOsVersions

rpc WatchOsVersions(WatchOsVersionsRequest) returns (WatchOsVersionsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osVersions.watch

The equivalent REST API is:

POST /v1alpha2/osVersions:watch 

CreateOsVersion Method

CreateOsVersion

rpc CreateOsVersion(CreateOsVersionRequest) returns (OsVersion)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osVersions.create

The equivalent REST API is:

POST /v1alpha2/osVersions (BODY: os_version)

UpdateOsVersion Method

UpdateOsVersion

rpc UpdateOsVersion(UpdateOsVersionRequest) returns (OsVersion)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osVersions.update

The equivalent REST API is:

PUT /v1alpha2/{os_version.name=osVersions/*} (BODY: os_version)

DeleteOsVersion Method

DeleteOsVersion

rpc DeleteOsVersion(DeleteOsVersionRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/osVersions.delete

The equivalent REST API is:

DELETE /v1alpha2/{name=osVersions/*} 

OsVersion Messages

Here is the list of OsVersion resource messages:

OsVersion Message

NameTypeDescription
namestring (name of OsVersion)Name of OsVersion When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMeta
versionstringThe version name.
device_typestring (reference to DeviceType)Supported device type.
minimum_previous_versionstringThe minum previous OS version that is required to upgrade devices to the OS version.
channelOsVersion.Channel

GetOsVersionRequest Message

A request message of the GetOsVersion method.

NameTypeDescription
namestring (name of OsVersion)Name of ntt.devices.v1alpha2.OsVersion
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetOsVersionsRequest Message

A request message of the BatchGetOsVersions method.

NameTypeDescription
namesrepeated string (name of OsVersion)Names of OsVersions
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetOsVersionsResponse Message

A response message of the BatchGetOsVersions method.

NameTypeDescription
os_versionsrepeated OsVersionfound OsVersions
missingrepeated string (name of OsVersion)list of not found OsVersions

ListOsVersionsRequest Message

A request message of the ListOsVersions method.

NameTypeDescription
page_sizeint32Requested page size. Server may return fewer OsVersions than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of OsVersion)A token identifying a page of results the server should return. Typically, this is the value of ListOsVersionsResponse.next_page_token.
order_bystring (orderBy of OsVersion)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of OsVersion)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListOsVersionsResponse Message

A response message of the ListOsVersions method.

NameTypeDescription
os_versionsrepeated OsVersionThe list of OsVersions
prev_page_tokenstring (cursor of OsVersion)A token to retrieve previous page of results. Pass this value in the ListOsVersionsRequest.page_token.
next_page_tokenstring (cursor of OsVersion)A token to retrieve next page of results. Pass this value in the ListOsVersionsRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total OsVersions across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchOsVersionRequest Message

A request message of the WatchOsVersion method.

NameTypeDescription
namestring (name of OsVersion)Name of ntt.devices.v1alpha2.OsVersion
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchOsVersionResponse Message

A response message of the WatchOsVersion method.

NameTypeDescription
changeOsVersionChange

WatchOsVersionsRequest Message

A request message of the WatchOsVersions method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_sizeint32Requested page size. Server may return fewer OsVersions than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of OsVersion)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of OsVersion)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of OsVersion)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to OsVersion that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to OsVersion that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchOsVersionsResponse Message

A response message of the WatchOsVersions method.

NameTypeDescription
os_version_changesrepeated OsVersionChangeChanges of OsVersions
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All OsVersions will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchOsVersionsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (OsVersions will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchOsVersionsResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of OsVersion)New token to retrieve previous page of results.
next_page_tokenstring (cursor of OsVersion)New token to retrieve next page of results.

CreateOsVersionRequest Message

A request message of the CreateOsVersion method.

NameTypeDescription
os_versionOsVersionOsVersion resource body
response_maskCreateOsVersionRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateOsVersionRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateOsVersionRequest Message

A request message of the UpdateOsVersion method.

NameTypeDescription
os_versionOsVersionOsVersion resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateOsVersionRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateOsVersionRequest.ResponseMaskreduce message response size.

UpdateOsVersionRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateOsVersionConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateOsVersionRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteOsVersionRequest Message

A request message of the DeleteOsVersion method.

NameTypeDescription
namestring (name of OsVersion)Name of ntt.devices.v1alpha2.OsVersion
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

OsVersion Enumerations

Here is the list of OsVersion resource enumerations:

OsVersion.Channel Enumeration

NameDescription
CHANNEL_UNSPECIFIED
NORMAL
BETA

Project Resource

Project Resource

Name patterns:

  • projects/{project}

This section covers the methods and messages to interact with Project resource.

Project Methods

Here is the list of Project resource methods:

GetProject Method

GetProject

rpc GetProject(GetProjectRequest) returns (Project)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/projects.get

The equivalent REST API is:

GET /v1alpha2/{name=projects/*} 

BatchGetProjects Method

BatchGetProjects

rpc BatchGetProjects(BatchGetProjectsRequest) returns (BatchGetProjectsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/projects.batchGet

The equivalent REST API is:

GET /v1alpha2/projects:batchGet 

ListProjects Method

ListProjects

rpc ListProjects(ListProjectsRequest) returns (ListProjectsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/projects.list

The equivalent REST API is:

GET /v1alpha2/projects 

WatchProject Method

WatchProject

rpc WatchProject(WatchProjectRequest) returns (WatchProjectResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/projects.watch

The equivalent REST API is:

POST /v1alpha2/{name=projects/*}:watch 

WatchProjects Method

WatchProjects

rpc WatchProjects(WatchProjectsRequest) returns (WatchProjectsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/projects.watch

The equivalent REST API is:

POST /v1alpha2/projects:watch 

CreateProject Method

CreateProject

rpc CreateProject(CreateProjectRequest) returns (Project)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/projects.create

The equivalent REST API is:

POST /v1alpha2/projects (BODY: project)

UpdateProject Method

UpdateProject

rpc UpdateProject(UpdateProjectRequest) returns (Project)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/projects.update

The equivalent REST API is:

PUT /v1alpha2/{project.name=projects/*} (BODY: project)

DeleteProject Method

DeleteProject

rpc DeleteProject(DeleteProjectRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/projects.delete

The equivalent REST API is:

DELETE /v1alpha2/{name=projects/*} 

Project Messages

Here is the list of Project resource messages:

Project Message

NameTypeDescription
namestring (name of Project)Name of Project When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9-]{0,28}[a-z0-9]
metadataMetaMetadata
multi_region_policyMultiRegionPolicyMulti region policy

GetProjectRequest Message

A request message of the GetProject method.

NameTypeDescription
namestring (name of Project)Name of ntt.devices.v1alpha2.Project
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetProjectsRequest Message

A request message of the BatchGetProjects method.

NameTypeDescription
namesrepeated string (name of Project)Names of Projects
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetProjectsResponse Message

A response message of the BatchGetProjects method.

NameTypeDescription
projectsrepeated Projectfound Projects
missingrepeated string (name of Project)list of not found Projects

ListProjectsRequest Message

A request message of the ListProjects method.

NameTypeDescription
page_sizeint32Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of Project)A token identifying a page of results the server should return. Typically, this is the value of ListProjectsResponse.next_page_token.
order_bystring (orderBy of Project)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of Project)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListProjectsResponse Message

A response message of the ListProjects method.

NameTypeDescription
projectsrepeated ProjectThe list of Projects
prev_page_tokenstring (cursor of Project)A token to retrieve previous page of results. Pass this value in the ListProjectsRequest.page_token.
next_page_tokenstring (cursor of Project)A token to retrieve next page of results. Pass this value in the ListProjectsRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total Projects across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchProjectRequest Message

A request message of the WatchProject method.

NameTypeDescription
namestring (name of Project)Name of ntt.devices.v1alpha2.Project
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchProjectResponse Message

A response message of the WatchProject method.

NameTypeDescription
changeProjectChange

WatchProjectsRequest Message

A request message of the WatchProjects method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
page_sizeint32Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of Project)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of Project)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of Project)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Project that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Project that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchProjectsResponse Message

A response message of the WatchProjects method.

NameTypeDescription
project_changesrepeated ProjectChangeChanges of Projects
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Projects will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchProjectsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Projects will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchProjectsResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of Project)New token to retrieve previous page of results.
next_page_tokenstring (cursor of Project)New token to retrieve next page of results.

CreateProjectRequest Message

A request message of the CreateProject method.

NameTypeDescription
projectProjectProject resource body
response_maskCreateProjectRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateProjectRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateProjectRequest Message

A request message of the UpdateProject method.

NameTypeDescription
projectProjectProject resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateProjectRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateProjectRequest.ResponseMaskreduce message response size.

UpdateProjectRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateProjectConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateProjectRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteProjectRequest Message

A request message of the DeleteProject method.

NameTypeDescription
namestring (name of Project)Name of ntt.devices.v1alpha2.Project
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

ProvisioningApprovalRequest Resource

ProvisioningApprovalRequest Resource

Name patterns:

  • projects/{project}/regions/{region}/provisioningPolicies/{provisioning_policy}/provisioningApprovalRequests/{provisioning_approval_request}

Parent resources:

This section covers the methods and messages to interact with ProvisioningApprovalRequest resource.

ProvisioningApprovalRequest Methods

Here is the list of ProvisioningApprovalRequest resource methods:

GetProvisioningApprovalRequest Method

GetProvisioningApprovalRequest

rpc GetProvisioningApprovalRequest(GetProvisioningApprovalRequestRequest) returns (ProvisioningApprovalRequest)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningApprovalRequests.get

The equivalent REST API is:

GET /v1alpha2/{name=projects/*/regions/*/provisioningPolicies/*/provisioningApprovalRequests/*} 

BatchGetProvisioningApprovalRequests Method

BatchGetProvisioningApprovalRequests

rpc BatchGetProvisioningApprovalRequests(BatchGetProvisioningApprovalRequestsRequest) returns (BatchGetProvisioningApprovalRequestsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningApprovalRequests.batchGet

The equivalent REST API is:

GET /v1alpha2/provisioningApprovalRequests:batchGet 

ListProvisioningApprovalRequests Method

ListProvisioningApprovalRequests

rpc ListProvisioningApprovalRequests(ListProvisioningApprovalRequestsRequest) returns (ListProvisioningApprovalRequestsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningApprovalRequests.list

The equivalent REST API is:

GET /v1alpha2/{parent=projects/*/regions/*/provisioningPolicies/*}/provisioningApprovalRequests 

WatchProvisioningApprovalRequest Method

WatchProvisioningApprovalRequest

rpc WatchProvisioningApprovalRequest(WatchProvisioningApprovalRequestRequest) returns (WatchProvisioningApprovalRequestResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningApprovalRequests.watch

The equivalent REST API is:

POST /v1alpha2/{name=projects/*/regions/*/provisioningPolicies/*/provisioningApprovalRequests/*}:watch 

WatchProvisioningApprovalRequests Method

WatchProvisioningApprovalRequests

rpc WatchProvisioningApprovalRequests(WatchProvisioningApprovalRequestsRequest) returns (WatchProvisioningApprovalRequestsResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningApprovalRequests.watch

The equivalent REST API is:

POST /v1alpha2/{parent=projects/*/regions/*/provisioningPolicies/*}/provisioningApprovalRequests:watch 

CreateProvisioningApprovalRequest Method

CreateProvisioningApprovalRequest

rpc CreateProvisioningApprovalRequest(CreateProvisioningApprovalRequestRequest) returns (ProvisioningApprovalRequest)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningApprovalRequests.create

The equivalent REST API is:

POST /v1alpha2/{parent=projects/*/regions/*/provisioningPolicies/*}/provisioningApprovalRequests (BODY: provisioning_approval_request)

UpdateProvisioningApprovalRequest Method

UpdateProvisioningApprovalRequest

rpc UpdateProvisioningApprovalRequest(UpdateProvisioningApprovalRequestRequest) returns (ProvisioningApprovalRequest)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningApprovalRequests.update

The equivalent REST API is:

PUT /v1alpha2/{provisioning_approval_request.name=projects/*/regions/*/provisioningPolicies/*/provisioningApprovalRequests/*} (BODY: provisioning_approval_request)

DeleteProvisioningApprovalRequest Method

DeleteProvisioningApprovalRequest

rpc DeleteProvisioningApprovalRequest(DeleteProvisioningApprovalRequestRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningApprovalRequests.delete

The equivalent REST API is:

DELETE /v1alpha2/{name=projects/*/regions/*/provisioningPolicies/*/provisioningApprovalRequests/*} 

ProvisionDeviceForApprovedRequest Method

ProvisionDeviceForApprovedRequest

rpc ProvisionDeviceForApprovedRequest(ProvisionDeviceForApprovedRequestRequest) returns (ProvisionDeviceForApprovedRequestResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningApprovalRequests.provisionDeviceForApprovedRequest

The equivalent REST API is:

POST /v1alpha2/{name=projects/*/regions/*/provisioningPolicies/*/provisioningApprovalRequests/*}:provisionDeviceForApprovedRequest 

ProvisioningApprovalRequest Messages

Here is the list of ProvisioningApprovalRequest resource messages:

ProvisioningApprovalRequest Message

NameTypeDescription
namestring (name of ProvisioningApprovalRequest)Name of ProvisioningApprovalRequest When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9-]{0,28}[a-z0-9]
specProvisioningApprovalRequest.Spec
statusProvisioningApprovalRequest.Status
metadataMeta

ProvisioningApprovalRequest.Spec Message

NameTypeDescription
conclusionProvisioningApprovalRequest.Spec.ConclusionThe verdicit for the approval, approved or revoked.
service_accountstring (reference to ServiceAccount)System managed, this service account will be used by the Device resource once it’s approved. A device finds its pending request using this field.

ProvisioningApprovalRequest.Status Message

NameTypeDescription
nonenonenone

GetProvisioningApprovalRequestRequest Message

A request message of the GetProvisioningApprovalRequest method.

NameTypeDescription
namestring (name of ProvisioningApprovalRequest)Name of ntt.devices.v1alpha2.ProvisioningApprovalRequest
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetProvisioningApprovalRequestsRequest Message

A request message of the BatchGetProvisioningApprovalRequests method.

NameTypeDescription
namesrepeated string (name of ProvisioningApprovalRequest)Names of ProvisioningApprovalRequests
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetProvisioningApprovalRequestsResponse Message

A response message of the BatchGetProvisioningApprovalRequests method.

NameTypeDescription
provisioning_approval_requestsrepeated ProvisioningApprovalRequestfound ProvisioningApprovalRequests
missingrepeated string (name of ProvisioningApprovalRequest)list of not found ProvisioningApprovalRequests

ListProvisioningApprovalRequestsRequest Message

A request message of the ListProvisioningApprovalRequests method.

NameTypeDescription
parentstring (parent name of ProvisioningApprovalRequest)Parent name of ntt.devices.v1alpha2.ProvisioningApprovalRequest
page_sizeint32Requested page size. Server may return fewer ProvisioningApprovalRequests than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of ProvisioningApprovalRequest)A token identifying a page of results the server should return. Typically, this is the value of ListProvisioningApprovalRequestsResponse.next_page_token.
order_bystring (orderBy of ProvisioningApprovalRequest)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of ProvisioningApprovalRequest)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListProvisioningApprovalRequestsResponse Message

A response message of the ListProvisioningApprovalRequests method.

NameTypeDescription
provisioning_approval_requestsrepeated ProvisioningApprovalRequestThe list of ProvisioningApprovalRequests
prev_page_tokenstring (cursor of ProvisioningApprovalRequest)A token to retrieve previous page of results. Pass this value in the ListProvisioningApprovalRequestsRequest.page_token.
next_page_tokenstring (cursor of ProvisioningApprovalRequest)A token to retrieve next page of results. Pass this value in the ListProvisioningApprovalRequestsRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total ProvisioningApprovalRequests across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchProvisioningApprovalRequestRequest Message

A request message of the WatchProvisioningApprovalRequest method.

NameTypeDescription
namestring (name of ProvisioningApprovalRequest)Name of ntt.devices.v1alpha2.ProvisioningApprovalRequest
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchProvisioningApprovalRequestResponse Message

A response message of the WatchProvisioningApprovalRequest method.

NameTypeDescription
changeProvisioningApprovalRequestChange

WatchProvisioningApprovalRequestsRequest Message

A request message of the WatchProvisioningApprovalRequests method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of ProvisioningApprovalRequest)Parent name of ntt.devices.v1alpha2.ProvisioningApprovalRequest
page_sizeint32Requested page size. Server may return fewer ProvisioningApprovalRequests than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of ProvisioningApprovalRequest)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of ProvisioningApprovalRequest)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of ProvisioningApprovalRequest)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ProvisioningApprovalRequest that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ProvisioningApprovalRequest that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchProvisioningApprovalRequestsResponse Message

A response message of the WatchProvisioningApprovalRequests method.

NameTypeDescription
provisioning_approval_request_changesrepeated ProvisioningApprovalRequestChangeChanges of ProvisioningApprovalRequests
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ProvisioningApprovalRequests will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchProvisioningApprovalRequestsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ProvisioningApprovalRequests will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchProvisioningApprovalRequestsResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of ProvisioningApprovalRequest)New token to retrieve previous page of results.
next_page_tokenstring (cursor of ProvisioningApprovalRequest)New token to retrieve next page of results.

CreateProvisioningApprovalRequestRequest Message

A request message of the CreateProvisioningApprovalRequest method.

NameTypeDescription
parentstring (parent name of ProvisioningApprovalRequest)Parent name of ntt.devices.v1alpha2.ProvisioningApprovalRequest
provisioning_approval_requestProvisioningApprovalRequestProvisioningApprovalRequest resource body
response_maskCreateProvisioningApprovalRequestRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateProvisioningApprovalRequestRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateProvisioningApprovalRequestRequest Message

A request message of the UpdateProvisioningApprovalRequest method.

NameTypeDescription
provisioning_approval_requestProvisioningApprovalRequestProvisioningApprovalRequest resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateProvisioningApprovalRequestRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateProvisioningApprovalRequestRequest.ResponseMaskreduce message response size.

UpdateProvisioningApprovalRequestRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateProvisioningApprovalRequestConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateProvisioningApprovalRequestRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteProvisioningApprovalRequestRequest Message

A request message of the DeleteProvisioningApprovalRequest method.

NameTypeDescription
namestring (name of ProvisioningApprovalRequest)Name of ntt.devices.v1alpha2.ProvisioningApprovalRequest
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

ProvisionDeviceForApprovedRequestRequest Message

Request message for method [ProvisionDeviceForApprovedRequest][ntt.devices.v1alpha2.ProvisionDeviceForApprovedRequest]

NameTypeDescription
namestring (name of ProvisioningApprovalRequest)name of ntt.devices.v1alpha2.ProvisioningApprovalRequest
device_statusDevice.Status

ProvisionDeviceForApprovedRequestResponse Message

Response message for method [ProvisionDeviceForApprovedRequest][ntt.devices.v1alpha2.ProvisionDeviceForApprovedRequest]

NameTypeDescription
deviceDevice

ProvisioningApprovalRequest Enumerations

Here is the list of ProvisioningApprovalRequest resource enumerations:

ProvisioningApprovalRequest.Spec.Conclusion Enumeration

NameDescription
CONCLUSION_NOT_SPECIFIED
APPROVED
REVOKED

ProvisioningPolicy Resource

ProvisioningPolicy Resource

Name patterns:

  • projects/{project}/regions/{region}/provisioningPolicies/{provisioning_policy}

Parent resources:

This section covers the methods and messages to interact with ProvisioningPolicy resource.

ProvisioningPolicy Methods

Here is the list of ProvisioningPolicy resource methods:

GetProvisioningPolicy Method

GetProvisioningPolicy

rpc GetProvisioningPolicy(GetProvisioningPolicyRequest) returns (ProvisioningPolicy)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.get

The equivalent REST API is:

GET /v1alpha2/{name=projects/*/regions/*/provisioningPolicies/*} 

BatchGetProvisioningPolicies Method

BatchGetProvisioningPolicies

rpc BatchGetProvisioningPolicies(BatchGetProvisioningPoliciesRequest) returns (BatchGetProvisioningPoliciesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.batchGet

The equivalent REST API is:

GET /v1alpha2/provisioningPolicies:batchGet 

ListProvisioningPolicies Method

ListProvisioningPolicies

rpc ListProvisioningPolicies(ListProvisioningPoliciesRequest) returns (ListProvisioningPoliciesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.list

The equivalent REST API is:

GET /v1alpha2/{parent=projects/*/regions/*}/provisioningPolicies 

WatchProvisioningPolicy Method

WatchProvisioningPolicy

rpc WatchProvisioningPolicy(WatchProvisioningPolicyRequest) returns (WatchProvisioningPolicyResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.watch

The equivalent REST API is:

POST /v1alpha2/{name=projects/*/regions/*/provisioningPolicies/*}:watch 

WatchProvisioningPolicies Method

WatchProvisioningPolicies

rpc WatchProvisioningPolicies(WatchProvisioningPoliciesRequest) returns (WatchProvisioningPoliciesResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.watch

The equivalent REST API is:

POST /v1alpha2/{parent=projects/*/regions/*}/provisioningPolicies:watch 

CreateProvisioningPolicy Method

CreateProvisioningPolicy

rpc CreateProvisioningPolicy(CreateProvisioningPolicyRequest) returns (ProvisioningPolicy)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.create

The equivalent REST API is:

POST /v1alpha2/{parent=projects/*/regions/*}/provisioningPolicies (BODY: provisioning_policy)

UpdateProvisioningPolicy Method

UpdateProvisioningPolicy

rpc UpdateProvisioningPolicy(UpdateProvisioningPolicyRequest) returns (ProvisioningPolicy)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.update

The equivalent REST API is:

PUT /v1alpha2/{provisioning_policy.name=projects/*/regions/*/provisioningPolicies/*} (BODY: provisioning_policy)

DeleteProvisioningPolicy Method

DeleteProvisioningPolicy

rpc DeleteProvisioningPolicy(DeleteProvisioningPolicyRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.delete

The equivalent REST API is:

DELETE /v1alpha2/{name=projects/*/regions/*/provisioningPolicies/*} 

ProvisionServiceAccountToProvisioningPolicy Method

ProvisionServiceAccountToProvisioningPolicy

rpc ProvisionServiceAccountToProvisioningPolicy(ProvisionServiceAccountToProvisioningPolicyRequest) returns (ProvisionServiceAccountToProvisioningPolicyResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.provisionServiceAccountToProvisioningPolicy

The equivalent REST API is:

POST /v1alpha2/{name=projects/*/regions/*/provisioningPolicies/*}:provisionServiceAccountToProvisioningPolicy 

RemoveServiceAccountFromProvisioningPolicy Method

RemoveServiceAccountFromProvisioningPolicy

rpc RemoveServiceAccountFromProvisioningPolicy(RemoveServiceAccountFromProvisioningPolicyRequest) returns (RemoveServiceAccountFromProvisioningPolicyResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.removeServiceAccountFromProvisioningPolicy

The equivalent REST API is:

POST /v1alpha2/{name=projects/*/regions/*/provisioningPolicies/*}:removeServiceAccountFromProvisioningPolicy 

ProvisionDeviceViaPolicy Method

ProvisionDeviceViaPolicy

rpc ProvisionDeviceViaPolicy(ProvisionDeviceViaPolicyRequest) returns (ProvisionDeviceViaPolicyResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.provisionDeviceViaPolicy

The equivalent REST API is:

POST /v1alpha2/{name=projects/*/regions/*/provisioningPolicies/*}:provisionDeviceViaPolicy 

RequestProvisioningApproval Method

RequestProvisioningApproval

rpc RequestProvisioningApproval(RequestProvisioningApprovalRequest) returns (RequestProvisioningApprovalResponse)

with the following messages:

Required Permissions:

  • services/devices.edgelq.com/permissions/provisioningPolicies.requestProvisioningApproval

The equivalent REST API is:

POST /v1alpha2/{name=projects/*/regions/*/provisioningPolicies/*}:requestProvisioningApproval 

ProvisioningPolicy Messages

Here is the list of ProvisioningPolicy resource messages:

ProvisioningPolicy Message

NameTypeDescription
namestring (name of ProvisioningPolicy)Name of ProvisioningPolicy When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9-]{0,28}[a-z0-9]
display_namestringDisplay Name
specProvisioningPolicy.Spec
statusProvisioningPolicy.Status
metadataMeta

ProvisioningPolicy.Spec Message

NameTypeDescription
modeProvisioningPolicy.ModeProvisioning mode.
service_accountstring (reference to ServiceAccount)The service account associated with the policy. Devices have to have a key of this service account to conduct self-provisioning.
device_name_formatstringTemplate for device name.
labelsmap<string, string>Deprecated: Use template instead. labels that provisioned Device resources will have.
templateProvisioningPolicy.Spec.TemplateTemplate for Devices to be generated. Used only on Device resource creation, changing the value won’t affect existing Device resources.
identity_field_pathsrepeated stringDevice hardware identity paths (fields) to use for matching pre-existing device resources when provisioning.
rolestring (reference to Role)Role that the newly created service account should be bound to. If not specified, will use the default value of “roles/devices-device-agent”.
conditionstring (reference to Condition)Condition for the role binding for the default role. If not specified, will use the default value of “device-isolation”.

ProvisioningPolicy.Status Message

NameTypeDescription
nonenonenone

ProvisioningPolicy.Spec.Template Message

NameTypeDescription
metadataMeta
specDevice.Specservice_account will be ignored.
public_listing_specDevice.PublicListingSpec

GetProvisioningPolicyRequest Message

A request message of the GetProvisioningPolicy method.

NameTypeDescription
namestring (name of ProvisioningPolicy)Name of ntt.devices.v1alpha2.ProvisioningPolicy
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetProvisioningPoliciesRequest Message

A request message of the BatchGetProvisioningPolicies method.

NameTypeDescription
namesrepeated string (name of ProvisioningPolicy)Names of ProvisioningPolicies
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetProvisioningPoliciesResponse Message

A response message of the BatchGetProvisioningPolicies method.

NameTypeDescription
provisioning_policiesrepeated ProvisioningPolicyfound ProvisioningPolicies
missingrepeated string (name of ProvisioningPolicy)list of not found ProvisioningPolicies

ListProvisioningPoliciesRequest Message

A request message of the ListProvisioningPolicies method.

NameTypeDescription
parentstring (parent name of ProvisioningPolicy)Parent name of ntt.devices.v1alpha2.ProvisioningPolicy
page_sizeint32Requested page size. Server may return fewer ProvisioningPolicies than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of ProvisioningPolicy)A token identifying a page of results the server should return. Typically, this is the value of ListProvisioningPoliciesResponse.next_page_token.
order_bystring (orderBy of ProvisioningPolicy)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of ProvisioningPolicy)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListProvisioningPoliciesResponse Message

A response message of the ListProvisioningPolicies method.

NameTypeDescription
provisioning_policiesrepeated ProvisioningPolicyThe list of ProvisioningPolicies
prev_page_tokenstring (cursor of ProvisioningPolicy)A token to retrieve previous page of results. Pass this value in the ListProvisioningPoliciesRequest.page_token.
next_page_tokenstring (cursor of ProvisioningPolicy)A token to retrieve next page of results. Pass this value in the ListProvisioningPoliciesRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total ProvisioningPolicies across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchProvisioningPolicyRequest Message

A request message of the WatchProvisioningPolicy method.

NameTypeDescription
namestring (name of ProvisioningPolicy)Name of ntt.devices.v1alpha2.ProvisioningPolicy
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchProvisioningPolicyResponse Message

A response message of the WatchProvisioningPolicy method.

NameTypeDescription
changeProvisioningPolicyChange

WatchProvisioningPoliciesRequest Message

A request message of the WatchProvisioningPolicies method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of ProvisioningPolicy)Parent name of ntt.devices.v1alpha2.ProvisioningPolicy
page_sizeint32Requested page size. Server may return fewer ProvisioningPolicies than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of ProvisioningPolicy)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of ProvisioningPolicy)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of ProvisioningPolicy)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ProvisioningPolicy that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ProvisioningPolicy that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchProvisioningPoliciesResponse Message

A response message of the WatchProvisioningPolicies method.

NameTypeDescription
provisioning_policy_changesrepeated ProvisioningPolicyChangeChanges of ProvisioningPolicies
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ProvisioningPolicies will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchProvisioningPoliciesResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ProvisioningPolicies will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchProvisioningPoliciesResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of ProvisioningPolicy)New token to retrieve previous page of results.
next_page_tokenstring (cursor of ProvisioningPolicy)New token to retrieve next page of results.

CreateProvisioningPolicyRequest Message

A request message of the CreateProvisioningPolicy method.

NameTypeDescription
parentstring (parent name of ProvisioningPolicy)Parent name of ntt.devices.v1alpha2.ProvisioningPolicy
provisioning_policyProvisioningPolicyProvisioningPolicy resource body
response_maskCreateProvisioningPolicyRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateProvisioningPolicyRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateProvisioningPolicyRequest Message

A request message of the UpdateProvisioningPolicy method.

NameTypeDescription
provisioning_policyProvisioningPolicyProvisioningPolicy resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateProvisioningPolicyRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateProvisioningPolicyRequest.ResponseMaskreduce message response size.

UpdateProvisioningPolicyRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateProvisioningPolicyConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateProvisioningPolicyRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteProvisioningPolicyRequest Message

A request message of the DeleteProvisioningPolicy method.

NameTypeDescription
namestring (name of ProvisioningPolicy)Name of ntt.devices.v1alpha2.ProvisioningPolicy
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

ProvisionServiceAccountToProvisioningPolicyRequest Message

Request message for method [ProvisionServiceAccountToProvisioningPolicy][ntt.devices.v1alpha2.ProvisionServiceAccountToProvisioningPolicy]

NameTypeDescription
namestring (name of ProvisioningPolicy)Name of ntt.devices.v1alpha2.ProvisioningPolicy

ProvisionServiceAccountToProvisioningPolicyResponse Message

Response message for method [ProvisionServiceAccountToProvisioningPolicy][ntt.devices.v1alpha2.ProvisionServiceAccountToProvisioningPolicy]

NameTypeDescription
service_accountServiceAccount

RemoveServiceAccountFromProvisioningPolicyRequest Message

Request message for method [RemoveServiceAccountFromProvisioningPolicy][ntt.devices.v1alpha2.RemoveServiceAccountFromProvisioningPolicy]

NameTypeDescription
namestring (name of ProvisioningPolicy)Name of ntt.devices.v1alpha2.ProvisioningPolicy

RemoveServiceAccountFromProvisioningPolicyResponse Message

Response message for method [RemoveServiceAccountFromProvisioningPolicy][ntt.devices.v1alpha2.RemoveServiceAccountFromProvisioningPolicy]

NameTypeDescription
removedbool

ProvisionDeviceViaPolicyRequest Message

Request message for method [ProvisionDeviceViaPolicy][ntt.devices.v1alpha2.ProvisionDeviceViaPolicy]

NameTypeDescription
namestring (name of ProvisioningPolicy)Name of ntt.devices.v1alpha2.ProvisioningPolicy
device_statusDevice.Status
external_pubkeystringexternal public key to use for service account for this device. If not present, a keypair will be generated by the server.

ProvisionDeviceViaPolicyResponse Message

Response message for method [ProvisionDeviceViaPolicy][ntt.devices.v1alpha2.ProvisionDeviceViaPolicy]

NameTypeDescription
deviceDevice
service_accountServiceAccount

RequestProvisioningApprovalRequest Message

Request message for method [RequestProvisioningApproval][ntt.devices.v1alpha2.RequestProvisioningApproval]

NameTypeDescription
namestring (name of ProvisioningPolicy)Name of ntt.devices.v1alpha2.ProvisioningPolicy
external_pubkeystringexternal public key to use for service account for this device. If not present, a keypair will be generated by the server.

RequestProvisioningApprovalResponse Message

Response message for method [RequestProvisioningApproval][ntt.devices.v1alpha2.RequestProvisioningApproval]

NameTypeDescription
requestProvisioningApprovalRequest
service_accountServiceAccount

ProvisioningPolicy Enumerations

Here is the list of ProvisioningPolicy resource enumerations:

ProvisioningPolicy.Mode Enumeration

NameDescription
MODE_UNSPECIFIEDMode is not defined, devices will do nothing when the policy is configured in this mode.
UNATTENDEDDevices will create Device resources automatically without any human interaction.
MANUAL_APPROVALDevices will create ProvisioningApprovalRequests so that users can approve.

Devices Service Shared Methods and Messages

Devices Service Shared Messages

Here is the list of Devices service shared messages:

Ack Message

Ack message that contains how much data should have been processed

NameTypeDescription
processeduint64

CustomizedImageChange Message

CustomizedImageChange is used by Watch notifications Responses to describe change of single CustomizedImage One of Added, Modified, Removed

NameTypeDescription
addedCustomizedImageChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedCustomizedImageChange.ModifiedModified is returned when watched document is modified
currentCustomizedImageChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedCustomizedImageChange.RemovedRemoved is returned when CustomizedImage is deleted or leaves Query view

CustomizedImageChange.Added Message

CustomizedImage has been added to query view

NameTypeDescription
customized_imageCustomizedImage
view_indexint32Integer describing index of added CustomizedImage in resulting query view.

CustomizedImageChange.Current Message

CustomizedImage has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
customized_imageCustomizedImage

CustomizedImageChange.Modified Message

CustomizedImage changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of CustomizedImage)Name of modified CustomizedImage
customized_imageCustomizedImageNew version of CustomizedImage or masked difference, depending on mask_changes instrumentation of issued [WatchCustomizedImageRequest] or [WatchCustomizedImagesRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified CustomizedImage. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying CustomizedImage new index in resulting query view.

CustomizedImageChange.Removed Message

Removed is returned when CustomizedImage is deleted or leaves Query view

NameTypeDescription
namestring (name of CustomizedImage)
view_indexint32Integer specifying removed CustomizedImage index. Not populated in stateless watch type.

DeviceChange Message

DeviceChange is used by Watch notifications Responses to describe change of single Device One of Added, Modified, Removed

NameTypeDescription
addedDeviceChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedDeviceChange.ModifiedModified is returned when watched document is modified
currentDeviceChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedDeviceChange.RemovedRemoved is returned when Device is deleted or leaves Query view

DeviceChange.Added Message

Device has been added to query view

NameTypeDescription
deviceDevice
view_indexint32Integer describing index of added Device in resulting query view.

DeviceChange.Current Message

Device has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
deviceDevice

DeviceChange.Modified Message

Device changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of Device)Name of modified Device
deviceDeviceNew version of Device or masked difference, depending on mask_changes instrumentation of issued [WatchDeviceRequest] or [WatchDevicesRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified Device. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying Device new index in resulting query view.

DeviceChange.Removed Message

Removed is returned when Device is deleted or leaves Query view

NameTypeDescription
namestring (name of Device)
view_indexint32Integer specifying removed Device index. Not populated in stateless watch type.

DeviceTypeChange Message

DeviceTypeChange is used by Watch notifications Responses to describe change of single DeviceType One of Added, Modified, Removed

NameTypeDescription
addedDeviceTypeChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedDeviceTypeChange.ModifiedModified is returned when watched document is modified
currentDeviceTypeChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedDeviceTypeChange.RemovedRemoved is returned when DeviceType is deleted or leaves Query view

DeviceTypeChange.Added Message

DeviceType has been added to query view

NameTypeDescription
device_typeDeviceType
view_indexint32Integer describing index of added DeviceType in resulting query view.

DeviceTypeChange.Current Message

DeviceType has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
device_typeDeviceType

DeviceTypeChange.Modified Message

DeviceType changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of DeviceType)Name of modified DeviceType
device_typeDeviceTypeNew version of DeviceType or masked difference, depending on mask_changes instrumentation of issued [WatchDeviceTypeRequest] or [WatchDeviceTypesRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified DeviceType. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying DeviceType new index in resulting query view.

DeviceTypeChange.Removed Message

Removed is returned when DeviceType is deleted or leaves Query view

NameTypeDescription
namestring (name of DeviceType)
view_indexint32Integer specifying removed DeviceType index. Not populated in stateless watch type.

LogsService Message

NameTypeDescription
nonenonenone

LogsService.ToClient Message

Messages sent only to a client

NameTypeDescription
databytesLogs data

LogsService.ToDevice Message

Messages sent only to a device

NameTypeDescription
followboolLive follow the logs service
linesuint32sNumber of lines to get from the logs service
sourcestringSource of the logs service (e.g. docker container ID)

OsImageProfileChange Message

OsImageProfileChange is used by Watch notifications Responses to describe change of single OsImageProfile One of Added, Modified, Removed

NameTypeDescription
addedOsImageProfileChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedOsImageProfileChange.ModifiedModified is returned when watched document is modified
currentOsImageProfileChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedOsImageProfileChange.RemovedRemoved is returned when OsImageProfile is deleted or leaves Query view

OsImageProfileChange.Added Message

OsImageProfile has been added to query view

NameTypeDescription
os_image_profileOsImageProfile
view_indexint32Integer describing index of added OsImageProfile in resulting query view.

OsImageProfileChange.Current Message

OsImageProfile has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
os_image_profileOsImageProfile

OsImageProfileChange.Modified Message

OsImageProfile changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of OsImageProfile)Name of modified OsImageProfile
os_image_profileOsImageProfileNew version of OsImageProfile or masked difference, depending on mask_changes instrumentation of issued [WatchOsImageProfileRequest] or [WatchOsImageProfilesRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified OsImageProfile. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying OsImageProfile new index in resulting query view.

OsImageProfileChange.Removed Message

Removed is returned when OsImageProfile is deleted or leaves Query view

NameTypeDescription
namestring (name of OsImageProfile)
view_indexint32Integer specifying removed OsImageProfile index. Not populated in stateless watch type.

OsVersionChange Message

OsVersionChange is used by Watch notifications Responses to describe change of single OsVersion One of Added, Modified, Removed

NameTypeDescription
addedOsVersionChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedOsVersionChange.ModifiedModified is returned when watched document is modified
currentOsVersionChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedOsVersionChange.RemovedRemoved is returned when OsVersion is deleted or leaves Query view

OsVersionChange.Added Message

OsVersion has been added to query view

NameTypeDescription
os_versionOsVersion
view_indexint32Integer describing index of added OsVersion in resulting query view.

OsVersionChange.Current Message

OsVersion has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
os_versionOsVersion

OsVersionChange.Modified Message

OsVersion changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of OsVersion)Name of modified OsVersion
os_versionOsVersionNew version of OsVersion or masked difference, depending on mask_changes instrumentation of issued [WatchOsVersionRequest] or [WatchOsVersionsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified OsVersion. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying OsVersion new index in resulting query view.

OsVersionChange.Removed Message

Removed is returned when OsVersion is deleted or leaves Query view

NameTypeDescription
namestring (name of OsVersion)
view_indexint32Integer specifying removed OsVersion index. Not populated in stateless watch type.

PodManagementService Message

NameTypeDescription
commandPodManagementService.PodStatePod state command
podstringPod to execute the command on
servicestringService (container) name to execute the command on (empty = acts on the entire pod)

ProjectChange Message

ProjectChange is used by Watch notifications Responses to describe change of single Project One of Added, Modified, Removed

NameTypeDescription
addedProjectChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedProjectChange.ModifiedModified is returned when watched document is modified
currentProjectChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedProjectChange.RemovedRemoved is returned when Project is deleted or leaves Query view

ProjectChange.Added Message

Project has been added to query view

NameTypeDescription
projectProject
view_indexint32Integer describing index of added Project in resulting query view.

ProjectChange.Current Message

Project has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
projectProject

ProjectChange.Modified Message

Project changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of Project)Name of modified Project
projectProjectNew version of Project or masked difference, depending on mask_changes instrumentation of issued [WatchProjectRequest] or [WatchProjectsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified Project. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying Project new index in resulting query view.

ProjectChange.Removed Message

Removed is returned when Project is deleted or leaves Query view

NameTypeDescription
namestring (name of Project)
view_indexint32Integer specifying removed Project index. Not populated in stateless watch type.

ProvisioningApprovalRequestChange Message

ProvisioningApprovalRequestChange is used by Watch notifications Responses to describe change of single ProvisioningApprovalRequest One of Added, Modified, Removed

NameTypeDescription
addedProvisioningApprovalRequestChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedProvisioningApprovalRequestChange.ModifiedModified is returned when watched document is modified
currentProvisioningApprovalRequestChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedProvisioningApprovalRequestChange.RemovedRemoved is returned when ProvisioningApprovalRequest is deleted or leaves Query view

ProvisioningApprovalRequestChange.Added Message

ProvisioningApprovalRequest has been added to query view

NameTypeDescription
provisioning_approval_requestProvisioningApprovalRequest
view_indexint32Integer describing index of added ProvisioningApprovalRequest in resulting query view.

ProvisioningApprovalRequestChange.Current Message

ProvisioningApprovalRequest has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
provisioning_approval_requestProvisioningApprovalRequest

ProvisioningApprovalRequestChange.Modified Message

ProvisioningApprovalRequest changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of ProvisioningApprovalRequest)Name of modified ProvisioningApprovalRequest
provisioning_approval_requestProvisioningApprovalRequestNew version of ProvisioningApprovalRequest or masked difference, depending on mask_changes instrumentation of issued [WatchProvisioningApprovalRequestRequest] or [WatchProvisioningApprovalRequestsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified ProvisioningApprovalRequest. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying ProvisioningApprovalRequest new index in resulting query view.

ProvisioningApprovalRequestChange.Removed Message

Removed is returned when ProvisioningApprovalRequest is deleted or leaves Query view

NameTypeDescription
namestring (name of ProvisioningApprovalRequest)
view_indexint32Integer specifying removed ProvisioningApprovalRequest index. Not populated in stateless watch type.

ProvisioningPolicyChange Message

ProvisioningPolicyChange is used by Watch notifications Responses to describe change of single ProvisioningPolicy One of Added, Modified, Removed

NameTypeDescription
addedProvisioningPolicyChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedProvisioningPolicyChange.ModifiedModified is returned when watched document is modified
currentProvisioningPolicyChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedProvisioningPolicyChange.RemovedRemoved is returned when ProvisioningPolicy is deleted or leaves Query view

ProvisioningPolicyChange.Added Message

ProvisioningPolicy has been added to query view

NameTypeDescription
provisioning_policyProvisioningPolicy
view_indexint32Integer describing index of added ProvisioningPolicy in resulting query view.

ProvisioningPolicyChange.Current Message

ProvisioningPolicy has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
provisioning_policyProvisioningPolicy

ProvisioningPolicyChange.Modified Message

ProvisioningPolicy changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of ProvisioningPolicy)Name of modified ProvisioningPolicy
provisioning_policyProvisioningPolicyNew version of ProvisioningPolicy or masked difference, depending on mask_changes instrumentation of issued [WatchProvisioningPolicyRequest] or [WatchProvisioningPoliciesRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified ProvisioningPolicy. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying ProvisioningPolicy new index in resulting query view.

ProvisioningPolicyChange.Removed Message

Removed is returned when ProvisioningPolicy is deleted or leaves Query view

NameTypeDescription
namestring (name of ProvisioningPolicy)
view_indexint32Integer specifying removed ProvisioningPolicy index. Not populated in stateless watch type.

SCPService Message

NameTypeDescription
dirSCPService.CreateDirectoryRequest to create a directory
fileSCPService.CreateFileRequest to create a file
eotboolRequest to end SCP transfer
configSCPService.ConfigureRequest SCP configuration

SCPService.Configure Message

NameTypeDescription
recursivebool
directionSCPService.Configure.Direction
pathstring

SCPService.CreateDirectory Message

NameTypeDescription
pathstring
modeuint32s

SCPService.CreateFile Message

NameTypeDescription
initSCPService.CreateFile.InitializeRequest file initialization
databytesRequest file data
eofboolRequest to end file transfer

SCPService.CreateFile.Initialize Message

NameTypeDescription
pathstring
modeuint32s
sizeuint64

SSHService Message

Services on the device that the client connects to

NameTypeDescription
nonenonenone

SSHService.ClientIn Message

NameTypeDescription
databytes

SSHService.ClientOut Message

NameTypeDescription
databytes
ssh_helloSSHService.Hello
ssh_resize_terminalSSHService.TerminalSize

SSHService.Hello Message

NameTypeDescription
userstring
commandrepeated string
envmap<string, string>Environment (optional)

SSHService.TerminalSize Message

NameTypeDescription
widthuint32s
heightuint32s

SystemStateService Message

NameTypeDescription
nonenonenone

Devices Service Shared Enumerations

Here is the list of Devices service shared enumerations:

BrokerServiceType Enumeration

Broker dedicated messages

NameDescription
BROKER_SERVICE_UNSPECIFIEDService type not specified
BROKER_SERVICE_SSH_LEGACYSSH service
BROKER_SERVICE_SSH
BROKER_SERVICE_TCP_FORWARD_PORTTCP port forward service
BROKER_SERVICE_REBOOTReboot service
BROKER_SERVICE_SHUTDOWNShutdown service
BROKER_SERVICE_SCPSCP service
BROKER_SERVICE_SCP_LEGACY
BROKER_SYS_LOGSSystem Logs service
BROKER_APP_LOGSApplication (Container) Logs service
BROKER_POD_MANAGEMENTPod State Management service

PodManagementService.PodState Enumeration

Commands for pod state management

NameDescription
UNSPECIFIEDUnspecified pod state
STARTStart the pod
STOPStop the pod
RESTARTRestart the pod

SCPService.Configure.Direction Enumeration

NameDescription
DOWNLOAD
UPLOAD

SystemStateService.SystemState Enumeration

Commands for system state management

NameDescription
UNSPECIFIEDUnspecified system state
SHUTDOWNShutdown the system
REBOOTReboot the system