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