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

Name Type Description
name string (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]
metadata Meta Metadata 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).
spec CustomizedImage.Spec
status CustomizedImage.Status

CustomizedImage.Spec Message

Name Type Description
version string Deprecated. Use os_version instead. After a while, version and device_type are removed and os_version becomes required
device_type string
os_version string (reference to OsVersion)
provisioning_policy string Either provisioning_policy or service_account must be specified
service_account string (reference to ServiceAccount)
service_account_key string (reference to ServiceAccountKey)
password string Password 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
encryption bool
encryption_password string Unlike password field, encryption_password must be plain text This field will be set to "" after the image is ready
disk_mapping string
network_agent string
ntp string
http_proxy string
https_proxy string
no_proxy string

CustomizedImage.Status Message

Name Type Description
state CustomizedImage.Status.State State of the image.
log string Error log when state is ERROR.
file string TODO hide this from client
md5sum string base64 encoded

GetCustomizedImageRequest Message

A request message of the GetCustomizedImage method.

Name Type Description
name string (name of CustomizedImage) Name of ntt.devices.v1.CustomizedImage
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
names repeated string (name of CustomizedImage) Names of CustomizedImages
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
customized_images repeated CustomizedImage found CustomizedImages
missing repeated string (name of CustomizedImage) list of not found CustomizedImages

ListCustomizedImagesRequest Message

A request message of the ListCustomizedImages method.

Name Type Description
parent string (parent name of CustomizedImage) Parent name of ntt.devices.v1.CustomizedImage
page_size int32 Requested page size. Server may return fewer CustomizedImages than requested. If unspecified, server will pick an appropriate default.
page_token string (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_by string (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”
filter string (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.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_info bool Indicates 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.

Name Type Description
customized_images repeated CustomizedImage The list of CustomizedImages
prev_page_token string (cursor of CustomizedImage) A token to retrieve previous page of results. Pass this value in the ListCustomizedImagesRequest.page_token.
next_page_token string (cursor of CustomizedImage) A token to retrieve next page of results. Pass this value in the ListCustomizedImagesRequest.page_token.
current_offset int32 Current 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_count int32 Number 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.

Name Type Description
name string (name of CustomizedImage) Name of ntt.devices.v1.CustomizedImage
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
change CustomizedImageChange

WatchCustomizedImagesRequest Message

A request message of the WatchCustomizedImages method.

Name Type Description
type WatchType Type 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.
parent string (parent name of CustomizedImage) Parent name of ntt.devices.v1.CustomizedImage
page_size int32 Requested 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_token string (cursor of CustomizedImage) A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_by string (orderBy of CustomizedImage) Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_token string A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time .google.protobuf.Timestamp Point 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.
filter string (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.FieldMask A 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.
view View View 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_size int32 Maximum 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.

Name Type Description
customized_image_changes repeated CustomizedImageChange Changes of CustomizedImages
is_current bool If 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_change WatchCustomizedImagesResponse.PageTokenChange When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token string Token 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_size int64 Server 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_reset bool In 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_reset bool In 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

Name Type Description
prev_page_token string (cursor of CustomizedImage) New token to retrieve previous page of results.
next_page_token string (cursor of CustomizedImage) New token to retrieve next page of results.

CreateCustomizedImageRequest Message

A request message of the CreateCustomizedImage method.

Name Type Description
parent string (parent name of CustomizedImage) Parent name of ntt.devices.v1.CustomizedImage
customized_image CustomizedImage CustomizedImage resource body
response_mask CreateCustomizedImageRequest.ResponseMask Optional masking applied to response object to reduce message response size.

CreateCustomizedImageRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If this flag has value true, then response will contain just empty resource without any fields populated.
body_mask .google.protobuf.FieldMask If this field is populated, then resource in response will contain only specific fields.

UpdateCustomizedImageRequest Message

A request message of the UpdateCustomizedImage method.

Name Type Description
customized_image CustomizedImage CustomizedImage resource body
update_mask .google.protobuf.FieldMask FieldMask applied to request - change will be applied only for fields in the mask
cas UpdateCustomizedImageRequest.CAS Conditional 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_missing bool If 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_mask UpdateCustomizedImageRequest.ResponseMask reduce 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.

Name Type Description
conditional_state CustomizedImage Conditional desired state of a resource before update.
field_mask .google.protobuf.FieldMask Field paths from conditional state of resource server should check and compare.

UpdateCustomizedImageRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If 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_only bool Include 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.FieldMask If 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.

Name Type Description
name string (name of CustomizedImage) Name of ntt.devices.v1.CustomizedImage

RequestUrlRequest Message

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

Name Type Description
name string (name of CustomizedImage) name of ntt.devices.v1.CustomizedImage

RequestUrlResponse Message

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

Name Type Description
url string
headers repeated string

CustomizedImage Enumerations

Here is the list of CustomizedImage resource enumerations:

CustomizedImage.Status.State Enumeration

Name Description
STATE_UNSPECIFIED Initial state
IN_PROGRESS Backend is processing the customization request.
ERROR There was an error processing the customization request. Check the parameters and try again.
READY The 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/*} 

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

Name Type Description
name string (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]
metadata Meta Metadata 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_name string Display name for the device
description string Optional. Description of the Device.
spec Device.Spec Spec holds the expected state of the Device, meaning configurations.
status Device.Status Status of the Device reported from the actual device.
public_listing_spec Device.PublicListingSpec

Device.Spec Message

Name Type Description
service_account string (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_bucket string (reference to Bucket) Logging bucket associated with device
metrics_bucket string (reference to Bucket) Monitoring metrics bucket associated with device
os_version string The 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_config string
netplan_api_config_mode Device.Spec.NetworkConfigMode
os_image_url string The 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_config Device.Spec.SSHConfig
attestation_config Device.Spec.AttestationConfig
disable_device_discovery bool Disables 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_config Device.Spec.LoggingConfig
proxy_config Device.Spec.ProxyConfig
location Device.Spec.Location
usb_guard Device.Spec.USBGuard
health_checks repeated HealthCheckSpec Custom Health checks for device

Device.Status Message

Name Type Description
addresses repeated Device.Status.Address List of network addresses.
conditions repeated Device.Status.Condition List of conditions of the Device.
network_config_state Device.Status.NetworkConfigState
proxy_config_status Device.Status.ProxyConfigStatus
device_info Device.Status.DeviceInfo Device detailed information
attestation_status repeated PCR
normalized_address Device.Status.NormalizedAddress Normalized Address.
connection_status Device.Status.ConnectionStatus
connection_status_change_time .google.protobuf.Timestamp Last change of connection_status

Device.PublicListingSpec Message

Name Type Description
enabled bool
field_mask .google.protobuf.FieldMask

Device.Spec.SSHConfig Message

SSHConfig defines the ssh configuration for the Device.

Name Type Description
disable_ssh_server bool
disable_ssh_password bool
ssh_authorized repeated Device.Spec.SSHConfig.AuthKey
ip_allow_list repeated string
ip_deny_list repeated string
reject_period .google.protobuf.Duration
disable_ssh_authkey bool

Device.Spec.AttestationConfig Message

Name Type Description
attestation_expected bool If true, the droplet will try to attest itself.
attestation_domain string (reference to AttestationDomain) Attestation domain for device attestation.

Device.Spec.LoggingConfig Message

Name Type Description
priority int32 Log 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.
units repeated string List of systemd unit names to monitor for logs, e.g. NetworkManager.service, docker.service. Leave empty to export all journald logs.
enable_journal_export bool Whether the journald log exporter is enabled.
container_logging_config Device.Spec.LoggingConfig.ContainerLoggingConfig

Device.Spec.ProxyConfig Message

Name Type Description
http_proxy string
https_proxy string
no_proxy string
proxy_interfaces repeated string By 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.

Name Type Description
address string
placement string

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.

Name Type Description
enable bool Enable USB Guard service on the device.
white_list repeated Device.Spec.USBGuard.WhiteList This is array of white list of the USB devices.

Device.Spec.SSHConfig.AuthKey Message

Name Type Description
ssha_key string
cert_authority bool
command string
environment string
from string
no_agent_forwarding bool
no_port_forwarding bool
no_pty bool
no_user_rc bool
no_x11_forwarding bool
permitopen string
principals string
tunnel string
restrict bool

Device.Spec.LoggingConfig.ContainerLoggingConfig Message

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

Name Type Description
enable_container_log_export bool Enable container log export. Default is disabled

Device.Spec.USBGuard.Port Message

USB match operator for “via-port”.

Name Type Description
equals repeated string
one_of repeated string

Device.Spec.USBGuard.Interface Message

USB match operator for “with-interface”.

Name Type Description
equals repeated string
one_of repeated string

Device.Spec.USBGuard.WhiteList Message

This is array of white list of the USB devices.

Name Type Description
device_name string USB device name to be allowed to connect.
device_id string USB device id to be allowed to connect.
via_port Device.Spec.USBGuard.Port USB port to be allowed to connect.
with_interface Device.Spec.USBGuard.Interface USB interface to be allowed to connect.
with_connect_type string USB connect type to be allowed to connect.

Device.Status.Address Message

Interface addresses of the Device.

Name Type Description
address string IPv4 or IPv6 address such as 203.0.113.5 (no suffix for subnet)
type string Always InternalIP

Device.Status.Condition Message

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

Name Type Description
message string The message describes the status.
reason string The reason for the status.
status string The status name.
type string Type name of the status.
last_heart_beat_time .google.protobuf.Timestamp When the status has been updated last time. Deprecated
last_transition_time .google.protobuf.Timestamp When the status has tuned into the current value.

Device.Status.NetworkConfigState Message

Name Type Description
active_network_config_source Device.Status.NetworkConfigState.NetworkConfigSource
desired_network_config_source Device.Status.NetworkConfigState.NetworkConfigSource
desired_network_config_error string
default_netplan_config string
active_netplan_config string
desired_netplan_config string

Device.Status.ProxyConfigStatus Message

Name Type Description
active_config_source Device.Status.ProxyConfigStatus.ProxyConfigSource
desired_config_source Device.Status.ProxyConfigStatus.ProxyConfigSource
proxy_config_error string
default_config Device.Spec.ProxyConfig
active_config Device.Spec.ProxyConfig
api_config Device.Spec.ProxyConfig

Device.Status.DeviceInfo Message

Device Information

Name Type Description
architecture string The architecture of the CPU (and the software compilied for) (e.g. arm64)
hardware string The platform hardware (e.g. raspberry, generic)
operating_system string Base OS name (e.g. Linux)
kernel_version string OS kernel version
os_image string OS base Image name
container_runtime_version string Not used
os_version string Liquid OS version currently used.
driver string Container driver name (e.g. /var/lib/droplet/compose)
hardware_information Device.Status.DeviceInfo.HardwareInformation
network_interfaces map<string, Device.Status.DeviceInfo.NetworkInterface>
control_plane_interface_info Device.Status.DeviceInfo.ControlPlaneInterfaceInfo

Device.Status.NormalizedAddress Message

Name Type Description
postal_code string Postal code
country_code string Country code example US, JP
continent string Continent, e.g. North America, Asia
continent_id string
country string Country name example United States, Japan
country_id string
admin_area1 string Probe Location Administrative Area level 1 name, e.g. California (state), Chiba (prefecture)
admin_area1_id string
admin_area2 string Probe Location Administrative Area level 2 name, e.g. Santa Clara (county), Tateyama (town)
admin_area2_id string
admin_area3 string Probe Location Administrative Area level 3 name, e.g. Sunnyvale (city)
admin_area3_id string
admin_area4 string Probe Location Administrative Area level 4 name, e.g. Sunnyvale (city)
admin_area4_id string
address string Original address.
coordinates .google.type.LatLng coordinates
accuracy double location accuracy in meters

Device.Status.DeviceInfo.HardwareInformation Message

Name Type Description
os Device.Status.DeviceInfo.HardwareInformation.OS
bios Device.Status.DeviceInfo.HardwareInformation.BIOS
system Device.Status.DeviceInfo.HardwareInformation.System
cpu Device.Status.DeviceInfo.HardwareInformation.CPU
block Device.Status.DeviceInfo.HardwareInformation.Block
network Device.Status.DeviceInfo.HardwareInformation.Network
gpu Device.Status.DeviceInfo.HardwareInformation.GPU
memory_info Device.Status.DeviceInfo.HardwareInformation.MemoryInfo
hailo_info Device.Status.DeviceInfo.HardwareInformation.HailoInfo
nvidia_info Device.Status.DeviceInfo.HardwareInformation.NvidiaInfo
modem_status repeated Device.Status.DeviceInfo.HardwareInformation.ModemStatus

Device.Status.DeviceInfo.NetworkInterface Message

Network Interface

Name Type Description
interface_name string
ip_address_v4 repeated string
external_ip_address_v4 repeated string
ip_address_v6 repeated string
external_ip_address_v6 repeated string
as_info Device.Status.DeviceInfo.NetworkInterface.ASInfo Asinfo describes the ISP (ASN) details for the interface This is resolved automatically from the external_ip_address.
carrier Device.Status.DeviceInfo.NetworkInterface.Carrier Carrier.

Device.Status.DeviceInfo.ControlPlaneInterfaceInfo Message

Name Type Description
active_control_plane_interface string
usesProxy bool
is_fallback bool is_fallback would be true if droplet could not connect using the best default route and explicitly uses this interface to connect to api endpoint

Device.Status.DeviceInfo.HardwareInformation.Capability Message

Name Type Description
name string
description string

Device.Status.DeviceInfo.HardwareInformation.OS Message

Name Type Description
operating_system string
kernel_version string
os_image string
container_runtime_version string

Device.Status.DeviceInfo.HardwareInformation.BIOS Message

TODO: Add capabilities and size

Name Type Description
vendor string
bios_version string
release_date string

Device.Status.DeviceInfo.HardwareInformation.System Message

Name Type Description
manufacturer string
product_name string
version string
serial_number string
configuration Device.Status.DeviceInfo.HardwareInformation.System.Configuration

Device.Status.DeviceInfo.HardwareInformation.CPU Message

Name Type Description
processors repeated Device.Status.DeviceInfo.HardwareInformation.CPU.Processor

Device.Status.DeviceInfo.HardwareInformation.Block Message

Name Type Description
disks repeated Device.Status.DeviceInfo.HardwareInformation.Block.Disk

Device.Status.DeviceInfo.HardwareInformation.Network Message

Name Type Description
nics repeated Device.Status.DeviceInfo.HardwareInformation.Network.NIC

Device.Status.DeviceInfo.HardwareInformation.GPU Message

Name Type Description
graphic_cards repeated Device.Status.DeviceInfo.HardwareInformation.GPU.GraphicCard

Device.Status.DeviceInfo.HardwareInformation.PCIDevice Message

Revisit: May be just device ??

Name Type Description
address string
vendor string
product string
name string
subvendor string

Device.Status.DeviceInfo.HardwareInformation.MemoryInfo Message

Name Type Description
description string
size_bytes int64
memory_banks repeated Device.Status.DeviceInfo.HardwareInformation.MemoryInfo.MemoryBank

Device.Status.DeviceInfo.HardwareInformation.HailoInfo Message

Name Type Description
status string
cli_version string
modules repeated Device.Status.DeviceInfo.HardwareInformation.HailoInfo.HailoModuleInfo

Device.Status.DeviceInfo.HardwareInformation.NvidiaInfo Message

Name Type Description
status string
driver_version string
cuda_version string
gpus repeated Device.Status.DeviceInfo.HardwareInformation.NvidiaInfo.GpuInfo

Device.Status.DeviceInfo.HardwareInformation.ModemStatus Message

Name Type Description
modem Device.Status.DeviceInfo.HardwareInformation.ModemStatus.Modem

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

Name Type Description
chassis string
uuid string
sku_number string
family string

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

Name Type Description
vendor string
model string
capabilities repeated Device.Status.DeviceInfo.HardwareInformation.Capability
num_threads uint32s
num_cores uint32s
num_enabled_cores uint32s
name string
serial string
frequency_mhz int64
max_frequency_mhz int64
cache_info repeated Device.Status.DeviceInfo.HardwareInformation.CPU.Processor.Cache
driver string
latency int64
clock int64

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

Name Type Description
type string
size_bytes int64

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

Name Type Description
name string
size_bytes int64
drive_type string
vendor string
model string
serial_number string
wwn string
partitions repeated Device.Status.DeviceInfo.HardwareInformation.Block.Disk.Partition

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

Name Type Description
name string
size_bytes int64
mount_point string
type string

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

Name Type Description
name string
mac_address string
virtual bool
description string
product_name string
vendor string
subvendor string
setting map<string, string>

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

Name Type Description
index int64
device Device.Status.DeviceInfo.HardwareInformation.PCIDevice

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

Name Type Description
description string
product string
vendor string
serial string
slot string
size_bytes int64
frequency_hz int64
width_bits int32

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

Name Type Description
dev_id string
control_proto_version string
firmware_version string
logger_version string
board_name string
serial_number string
part_number string
product_name string
neural_network_core_clock_rate string

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

Name Type Description
id string
product_name string

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

Name Type Description
drx_cycle string
mico_mode string

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

Name Type Description
registration_settings Device.Status.DeviceInfo.HardwareInformation.ModemStatus.RegistrationSettings

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

Name Type Description
apn string
ip_type string
password string
user string

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

Name Type Description
dbus_path string
settings Device.Status.DeviceInfo.HardwareInformation.ModemStatus.Settings

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

Name Type Description
initial_bearer Device.Status.DeviceInfo.HardwareInformation.ModemStatus.InitialBearer
ue_mode_operation string

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

Name Type Description
fiveg_nr Device.Status.DeviceInfo.HardwareInformation.ModemStatus.FiveGNr
enabled_locks repeated string
eps Device.Status.DeviceInfo.HardwareInformation.ModemStatus.Eps
imei string
operator_code string
operator_name string
packet_service_state string
pco string
registration_state string

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

Name Type Description
activation_state string
cdma1x_registration_state string
esn string
evdo_registration_state string
meid string
nid string
sid string

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

Name Type Description
recent string
value string

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

Name Type Description
access_technologies repeated string
bearers repeated string
carrier_configuration string
carrier_configuration_revision string
current_bands repeated string
current_capabilities repeated string
current_modes string
device string
device_identifier string
drivers repeated string
equipment_identifier string
hardware_revision string
manufacturer string
model string
own_numbers repeated string
plugin string
ports repeated string
power_state string
primary_port string
primary_sim_slot string
revision string
signal_quality Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalQuality
sim string
sim_slots repeated string
state string
state_failed_reason string
supported_bands repeated string
supported_capabilities repeated string
supported_ip_families repeated string
supported_modes repeated string
unlock_required string
unlock_retries repeated string

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

Name Type Description
dbus_path string
active string
eid string
emergency_numbers repeated string
esim_status string
gid1 string
gid2 string
iccid string
imsi string
operator_code string
operator_name string
removability string
sim_type string

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

Name Type Description
three_g_pp Device.Status.DeviceInfo.HardwareInformation.ModemStatus.ThreeGpp
cdma Device.Status.DeviceInfo.HardwareInformation.ModemStatus.Cdma
dbus_path string
generic Device.Status.DeviceInfo.HardwareInformation.ModemStatus.Generic
sim_status map<string, Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SimStatus>

Device.Status.DeviceInfo.NetworkInterface.ASInfo Message

Name Type Description
asn string AS Number string example AS7018
name string AS Owner name example AT&T Services, Inc.
domain string Domain name example att.com
routes repeated string Routes exported from this ASN example 12.128.0.0/9
asn_type string ASN Owner type example isp(AT&T) / hosting(google)/ business (Amazon)

Device.Status.DeviceInfo.NetworkInterface.Carrier Message

Name Type Description
name string Mobile network carrier name example AT&T
mobile_country_code string Mobile country code example 214
mobile_network_code string Mobile network code example 7
location_area_code string Mobile location area code example 2862

GetDeviceRequest Message

A request message of the GetDevice method.

Name Type Description
name string (name of Device) Name of ntt.devices.v1.Device
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
names repeated string (name of Device) Names of Devices
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
devices repeated Device found Devices
missing repeated string (name of Device) list of not found Devices

ListDevicesRequest Message

A request message of the ListDevices method.

Name Type Description
parent string (parent name of Device) Parent name of ntt.devices.v1.Device
page_size int32 Requested page size. Server may return fewer Devices than requested. If unspecified, server will pick an appropriate default.
page_token string (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_by string (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”
filter string (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.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_info bool Indicates 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.

Name Type Description
devices repeated Device The list of Devices
prev_page_token string (cursor of Device) A token to retrieve previous page of results. Pass this value in the ListDevicesRequest.page_token.
next_page_token string (cursor of Device) A token to retrieve next page of results. Pass this value in the ListDevicesRequest.page_token.
current_offset int32 Current 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_count int32 Number 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.

Name Type Description
name string (name of Device) Name of ntt.devices.v1.Device
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
change DeviceChange

WatchDevicesRequest Message

A request message of the WatchDevices method.

Name Type Description
type WatchType Type 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.
parent string (parent name of Device) Parent name of ntt.devices.v1.Device
page_size int32 Requested 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_token string (cursor of Device) A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_by string (orderBy of Device) Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_token string A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time .google.protobuf.Timestamp Point 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.
filter string (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.FieldMask A 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.
view View View 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_size int32 Maximum 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.

Name Type Description
device_changes repeated DeviceChange Changes of Devices
is_current bool If 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_change WatchDevicesResponse.PageTokenChange When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token string Token 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_size int64 Server 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_reset bool In 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_reset bool In 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

Name Type Description
prev_page_token string (cursor of Device) New token to retrieve previous page of results.
next_page_token string (cursor of Device) New token to retrieve next page of results.

CreateDeviceRequest Message

A request message of the CreateDevice method.

Name Type Description
parent string (parent name of Device) Parent name of ntt.devices.v1.Device
device Device Device resource body
response_mask CreateDeviceRequest.ResponseMask Optional masking applied to response object to reduce message response size.

CreateDeviceRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If this flag has value true, then response will contain just empty resource without any fields populated.
body_mask .google.protobuf.FieldMask If this field is populated, then resource in response will contain only specific fields.

UpdateDeviceRequest Message

A request message of the UpdateDevice method.

Name Type Description
device Device Device resource body
update_mask .google.protobuf.FieldMask FieldMask applied to request - change will be applied only for fields in the mask
cas UpdateDeviceRequest.CAS Conditional 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_missing bool If 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_mask UpdateDeviceRequest.ResponseMask reduce 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.

Name Type Description
conditional_state Device Conditional desired state of a resource before update.
field_mask .google.protobuf.FieldMask Field paths from conditional state of resource server should check and compare.

UpdateDeviceRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If 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_only bool Include 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.FieldMask If 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.

Name Type Description
name string (name of Device) Name of ntt.devices.v1.Device

GetDedicatedEndpointsRequest Message

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

Name Type Description
name string (name of Device)

GetDedicatedEndpointsResponse Message

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

Name Type Description
endpoints repeated string

ProvisionServiceAccountToDeviceRequest Message

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

Name Type Description
name string (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_pubkey string external 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]

Name Type Description
service_account ServiceAccount The service account generated by the endpoint. Save the private key included.

RemoveServiceAccountFromDeviceRequest Message

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

Name Type Description
name string (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]

Name Type Description
none none none

HeartbeatMsg Message

Name Type Description
name string (name of Device)
register HeartbeatMsg.Register
heartbeat HeartbeatMsg.Heartbeat

HeartbeatMsg.Register Message

Name Type Description
none none none

HeartbeatMsg.Heartbeat Message

Name Type Description
none none none

HeartbeatResponse Message

Name Type Description
desired_heartbeat_interval .google.protobuf.Duration

ReportDeviceMetricsRequest Message

A request message of the ReportDeviceMetrics method.

Name Type Description
name string (name of Device) device_name abd region_id are required in first message for streaming
display_name string
serial_number string
device_metrics DeviceMetrics

ReportDeviceMetricsResponse Message

Name Type Description
ts_create_failed bool CreateTimeSeries call failed, likely a temporary issue. droplet can retry without closing the stream

ListPublicDevicesRequest Message

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

Name Type Description
parent string (parent name of Device) Parent name of ntt.devices.v1.Device
page_size int32 Requested page size. Server may return fewer Devices than requested. If unspecified, server will pick an appropriate default.
page_token string (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_by string (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”
filter string (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.FieldMask A list of extra fields to be requested on top of those defined by request field View.
view View View 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]

Name Type Description
devices repeated Device The list of Devices
prev_page_token string (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_token string (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

Name Description
MERGE
REPLACE

Device.Status.ConnectionStatus Enumeration

Name Description
CONNECTION_STATUS_UNSPECIFIED
CONNECTED
DISCONNECTED

Device.Status.NetworkConfigState.NetworkConfigSource Enumeration

Name Description
UNKNOWN
DEFAULT_CONFIG
API_CONFIG
MERGED_DEFAULT_AND_API_CONFIG
PREVIOUS_MERGED_DEFAULT_AND_API_CONFIG
PREVIOUS_API_CONFIG

Device.Status.ProxyConfigStatus.ProxyConfigSource Enumeration

Name Description
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

Name Type Description
name string (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]
metadata Meta Metadata 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_count int64
online_count int64

GetDeviceDistributionCounterRequest Message

A request message of the GetDeviceDistributionCounter method.

Name Type Description
name string (name of DeviceDistributionCounter) Name of ntt.devices.v1.DeviceDistributionCounter
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
names repeated string (name of DeviceDistributionCounter) Names of DeviceDistributionCounters
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
device_distribution_counters repeated DeviceDistributionCounter found DeviceDistributionCounters
missing repeated string (name of DeviceDistributionCounter) list of not found DeviceDistributionCounters

ListDeviceDistributionCountersRequest Message

A request message of the ListDeviceDistributionCounters method.

Name Type Description
parent string (parent name of DeviceDistributionCounter) Parent name of ntt.devices.v1.DeviceDistributionCounter
page_size int32 Requested page size. Server may return fewer DeviceDistributionCounters than requested. If unspecified, server will pick an appropriate default.
page_token string (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_by string (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”
filter string (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.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_info bool Indicates 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.

Name Type Description
device_distribution_counters repeated DeviceDistributionCounter The list of DeviceDistributionCounters
prev_page_token string (cursor of DeviceDistributionCounter) A token to retrieve previous page of results. Pass this value in the ListDeviceDistributionCountersRequest.page_token.
next_page_token string (cursor of DeviceDistributionCounter) A token to retrieve next page of results. Pass this value in the ListDeviceDistributionCountersRequest.page_token.
current_offset int32 Current 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_count int32 Number 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.

Name Type Description
name string (name of DeviceDistributionCounter) Name of ntt.devices.v1.DeviceDistributionCounter
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
change DeviceDistributionCounterChange

WatchDeviceDistributionCountersRequest Message

A request message of the WatchDeviceDistributionCounters method.

Name Type Description
type WatchType Type 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.
parent string (parent name of DeviceDistributionCounter) Parent name of ntt.devices.v1.DeviceDistributionCounter
page_size int32 Requested 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_token string (cursor of DeviceDistributionCounter) A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_by string (orderBy of DeviceDistributionCounter) Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_token string A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time .google.protobuf.Timestamp Point 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.
filter string (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.FieldMask A 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.
view View View 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_size int32 Maximum 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.

Name Type Description
device_distribution_counter_changes repeated DeviceDistributionCounterChange Changes of DeviceDistributionCounters
is_current bool If 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_change WatchDeviceDistributionCountersResponse.PageTokenChange When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token string Token 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_size int64 Server 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_reset bool In 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_reset bool In 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

Name Type Description
prev_page_token string (cursor of DeviceDistributionCounter) New token to retrieve previous page of results.
next_page_token string (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

Name Type Description
name string (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]
metadata Meta Metadata 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_name string
serial_number string
manufacturer string
product_name string Should be in the format “productname (sku)”
mac_address repeated string
sim_iccid string
imei string
associated_provisioning_policy_name string (reference to ProvisioningPolicy)
associated_device string (reference to Device)
status DeviceHardware.Status

DeviceHardware.Status Message

Name Type Description
provisioning_state DeviceHardware.Status.PROVISIONING_STATE

GetDeviceHardwareRequest Message

A request message of the GetDeviceHardware method.

Name Type Description
name string (name of DeviceHardware) Name of ntt.devices.v1.DeviceHardware
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
names repeated string (name of DeviceHardware) Names of DeviceHardwares
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
device_hardwares repeated DeviceHardware found DeviceHardwares
missing repeated string (name of DeviceHardware) list of not found DeviceHardwares

ListDeviceHardwaresRequest Message

A request message of the ListDeviceHardwares method.

Name Type Description
parent string (parent name of DeviceHardware) Parent name of ntt.devices.v1.DeviceHardware
page_size int32 Requested page size. Server may return fewer DeviceHardwares than requested. If unspecified, server will pick an appropriate default.
page_token string (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_by string (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”
filter string (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.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_info bool Indicates 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.

Name Type Description
device_hardwares repeated DeviceHardware The list of DeviceHardwares
prev_page_token string (cursor of DeviceHardware) A token to retrieve previous page of results. Pass this value in the ListDeviceHardwaresRequest.page_token.
next_page_token string (cursor of DeviceHardware) A token to retrieve next page of results. Pass this value in the ListDeviceHardwaresRequest.page_token.
current_offset int32 Current 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_count int32 Number 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.

Name Type Description
name string (name of DeviceHardware) Name of ntt.devices.v1.DeviceHardware
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
change DeviceHardwareChange

WatchDeviceHardwaresRequest Message

A request message of the WatchDeviceHardwares method.

Name Type Description
type WatchType Type 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.
parent string (parent name of DeviceHardware) Parent name of ntt.devices.v1.DeviceHardware
page_size int32 Requested 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_token string (cursor of DeviceHardware) A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_by string (orderBy of DeviceHardware) Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_token string A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time .google.protobuf.Timestamp Point 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.
filter string (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.FieldMask A 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.
view View View 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_size int32 Maximum 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.

Name Type Description
device_hardware_changes repeated DeviceHardwareChange Changes of DeviceHardwares
is_current bool If 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_change WatchDeviceHardwaresResponse.PageTokenChange When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token string Token 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_size int64 Server 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_reset bool In 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_reset bool In 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

Name Type Description
prev_page_token string (cursor of DeviceHardware) New token to retrieve previous page of results.
next_page_token string (cursor of DeviceHardware) New token to retrieve next page of results.

CreateDeviceHardwareRequest Message

A request message of the CreateDeviceHardware method.

Name Type Description
parent string (parent name of DeviceHardware) Parent name of ntt.devices.v1.DeviceHardware
device_hardware DeviceHardware DeviceHardware resource body
response_mask CreateDeviceHardwareRequest.ResponseMask Optional masking applied to response object to reduce message response size.

CreateDeviceHardwareRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If this flag has value true, then response will contain just empty resource without any fields populated.
body_mask .google.protobuf.FieldMask If this field is populated, then resource in response will contain only specific fields.

UpdateDeviceHardwareRequest Message

A request message of the UpdateDeviceHardware method.

Name Type Description
device_hardware DeviceHardware DeviceHardware resource body
update_mask .google.protobuf.FieldMask FieldMask applied to request - change will be applied only for fields in the mask
cas UpdateDeviceHardwareRequest.CAS Conditional 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_missing bool If 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_mask UpdateDeviceHardwareRequest.ResponseMask reduce 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.

Name Type Description
conditional_state DeviceHardware Conditional desired state of a resource before update.
field_mask .google.protobuf.FieldMask Field paths from conditional state of resource server should check and compare.

UpdateDeviceHardwareRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If 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_only bool Include 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.FieldMask If 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.

Name Type Description
name string (name of DeviceHardware) Name of ntt.devices.v1.DeviceHardware

DeregisterRequest Message

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

Name Type Description
name string (name of DeviceHardware) Name of ntt.devices.v1.DeviceHardware

DeregisterResponse Message

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

Name Type Description
none none none

DeviceHardware Enumerations

Here is the list of DeviceHardware resource enumerations:

DeviceHardware.Status.PROVISIONING_STATE Enumeration

Name Description
UNKNOWN Hardware was deregistered, so device state cannot be tracked
NOT_PROVISIONED Device has not tried to provision or provisioning could have failed
PROVISIONED Device passed attestation and service account is created Could be either provisioning policy scope for device scope account
REVOKED For 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

Name Type Description
name string (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_name string
metadata Meta Metadata 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.Timestamp Start time, if not set, current time will be used
expiration_time .google.protobuf.Timestamp Expiration time, if not set, will be set to 1 week from now
user_email string Email address of the user who will register the hardware Only used to send an email. Not used for identity/authorization
inviter_email string Inviter Email, automatically set from token, not accepted as input
language_code string Email ISO language code. Defaults to “en-us” (American English).
extras map<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_name string (reference to ProvisioningPolicy) Provisioning Policy name to register hardware one of provisioning_policy_name or device_name is required
device_name string (reference to Device) Device name to register hardware
single_use bool If true, only one hardware can be registered using this session If false, multiple hardwares can be registered using this session
token string auto-generated
status DeviceHardwareRegisterSession.Status

DeviceHardwareRegisterSession.Status Message

Name Type Description
device_hardwares repeated 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.

Name Type Description
name string (name of DeviceHardwareRegisterSession) Name of ntt.devices.v1.DeviceHardwareRegisterSession
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
names repeated string (name of DeviceHardwareRegisterSession) Names of DeviceHardwareRegisterSessions
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
device_hardware_register_sessions repeated DeviceHardwareRegisterSession found DeviceHardwareRegisterSessions
missing repeated string (name of DeviceHardwareRegisterSession) list of not found DeviceHardwareRegisterSessions

ListDeviceHardwareRegisterSessionsRequest Message

A request message of the ListDeviceHardwareRegisterSessions method.

Name Type Description
parent string (parent name of DeviceHardwareRegisterSession) Parent name of ntt.devices.v1.DeviceHardwareRegisterSession
page_size int32 Requested page size. Server may return fewer DeviceHardwareRegisterSessions than requested. If unspecified, server will pick an appropriate default.
page_token string (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_by string (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”
filter string (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.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_info bool Indicates 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.

Name Type Description
device_hardware_register_sessions repeated DeviceHardwareRegisterSession The list of DeviceHardwareRegisterSessions
prev_page_token string (cursor of DeviceHardwareRegisterSession) A token to retrieve previous page of results. Pass this value in the ListDeviceHardwareRegisterSessionsRequest.page_token.
next_page_token string (cursor of DeviceHardwareRegisterSession) A token to retrieve next page of results. Pass this value in the ListDeviceHardwareRegisterSessionsRequest.page_token.
current_offset int32 Current 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_count int32 Number 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.

Name Type Description
name string (name of DeviceHardwareRegisterSession) Name of ntt.devices.v1.DeviceHardwareRegisterSession
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
change DeviceHardwareRegisterSessionChange

WatchDeviceHardwareRegisterSessionsRequest Message

A request message of the WatchDeviceHardwareRegisterSessions method.

Name Type Description
type WatchType Type 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.
parent string (parent name of DeviceHardwareRegisterSession) Parent name of ntt.devices.v1.DeviceHardwareRegisterSession
page_size int32 Requested 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_token string (cursor of DeviceHardwareRegisterSession) A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_by string (orderBy of DeviceHardwareRegisterSession) Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_token string A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time .google.protobuf.Timestamp Point 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.
filter string (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.FieldMask A 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.
view View View 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_size int32 Maximum 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.

Name Type Description
device_hardware_register_session_changes repeated DeviceHardwareRegisterSessionChange Changes of DeviceHardwareRegisterSessions
is_current bool If 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_change WatchDeviceHardwareRegisterSessionsResponse.PageTokenChange When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token string Token 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_size int64 Server 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_reset bool In 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_reset bool In 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

Name Type Description
prev_page_token string (cursor of DeviceHardwareRegisterSession) New token to retrieve previous page of results.
next_page_token string (cursor of DeviceHardwareRegisterSession) New token to retrieve next page of results.

CreateDeviceHardwareRegisterSessionRequest Message

A request message of the CreateDeviceHardwareRegisterSession method.

Name Type Description
parent string (parent name of DeviceHardwareRegisterSession) Parent name of ntt.devices.v1.DeviceHardwareRegisterSession
device_hardware_register_session DeviceHardwareRegisterSession DeviceHardwareRegisterSession resource body
response_mask CreateDeviceHardwareRegisterSessionRequest.ResponseMask Optional masking applied to response object to reduce message response size.

CreateDeviceHardwareRegisterSessionRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If this flag has value true, then response will contain just empty resource without any fields populated.
body_mask .google.protobuf.FieldMask If this field is populated, then resource in response will contain only specific fields.

UpdateDeviceHardwareRegisterSessionRequest Message

A request message of the UpdateDeviceHardwareRegisterSession method.

Name Type Description
device_hardware_register_session DeviceHardwareRegisterSession DeviceHardwareRegisterSession resource body
update_mask .google.protobuf.FieldMask FieldMask applied to request - change will be applied only for fields in the mask
cas UpdateDeviceHardwareRegisterSessionRequest.CAS Conditional 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_missing bool If 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_mask UpdateDeviceHardwareRegisterSessionRequest.ResponseMask reduce 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.

Name Type Description
conditional_state DeviceHardwareRegisterSession Conditional desired state of a resource before update.
field_mask .google.protobuf.FieldMask Field paths from conditional state of resource server should check and compare.

UpdateDeviceHardwareRegisterSessionRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If 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_only bool Include 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.FieldMask If 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.

Name Type Description
name string (name of DeviceHardwareRegisterSession) Name of ntt.devices.v1.DeviceHardwareRegisterSession

GetDeviceHardwareRegisterSessionFromTokenRequest Message

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

Name Type Description
token string token from hardware_register_session

GetDeviceHardwareRegisterSessionFromTokenResponse Message

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

Name Type Description
device_hardware_register_session DeviceHardwareRegisterSession
project_display_name string Used for showing project name in hardware registration dashboard

RegisterHardwareRequest Message

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

Name Type Description
token string token from hardware_register_session
serial_number string
manufacturer string
product_name string Should be in the format “productname (sku)”, required field
mac_address repeated string
sim_iccid string
imei string
md5_hmac_digest string MD5 HMAC of ‘{“ICCID”:"<>",“MODEL”:"<>",“SN”:"<>"}’

RegisterHardwareResponse Message

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

Name Type Description
hardware DeviceHardware

HardwareStatusRequest Message

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

Name Type Description
token string token for hardware_register_session
serial_number string
manufacturer string manufacturer is typically not required, only required in case of serial number conflict with different vendors
product_name string product_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]

Name Type Description
device_hardwares repeated 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

Name Type Description
name string (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]
metadata Meta Metadata 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_name string Display name of Device Type
hardware DeviceType.Hardware
architecture DeviceType.Architecture
description string Description of the Device Type

GetDeviceTypeRequest Message

A request message of the GetDeviceType method.

Name Type Description
name string (name of DeviceType) Name of ntt.devices.v1.DeviceType
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
names repeated string (name of DeviceType) Names of DeviceTypes
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
device_types repeated DeviceType found DeviceTypes
missing repeated string (name of DeviceType) list of not found DeviceTypes

ListDeviceTypesRequest Message

A request message of the ListDeviceTypes method.

Name Type Description
page_size int32 Requested page size. Server may return fewer DeviceTypes than requested. If unspecified, server will pick an appropriate default.
page_token string (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_by string (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”
filter string (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.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_info bool Indicates 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.

Name Type Description
device_types repeated DeviceType The list of DeviceTypes
prev_page_token string (cursor of DeviceType) A token to retrieve previous page of results. Pass this value in the ListDeviceTypesRequest.page_token.
next_page_token string (cursor of DeviceType) A token to retrieve next page of results. Pass this value in the ListDeviceTypesRequest.page_token.
current_offset int32 Current 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_count int32 Number 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.

Name Type Description
name string (name of DeviceType) Name of ntt.devices.v1.DeviceType
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
change DeviceTypeChange

WatchDeviceTypesRequest Message

A request message of the WatchDeviceTypes method.

Name Type Description
type WatchType Type 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_size int32 Requested 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_token string (cursor of DeviceType) A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_by string (orderBy of DeviceType) Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_token string A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time .google.protobuf.Timestamp Point 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.
filter string (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.FieldMask A 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.
view View View 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_size int32 Maximum 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.

Name Type Description
device_type_changes repeated DeviceTypeChange Changes of DeviceTypes
is_current bool If 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_change WatchDeviceTypesResponse.PageTokenChange When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token string Token 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_size int64 Server 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_reset bool In 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_reset bool In 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

Name Type Description
prev_page_token string (cursor of DeviceType) New token to retrieve previous page of results.
next_page_token string (cursor of DeviceType) New token to retrieve next page of results.

CreateDeviceTypeRequest Message

A request message of the CreateDeviceType method.

Name Type Description
device_type DeviceType DeviceType resource body
response_mask CreateDeviceTypeRequest.ResponseMask Optional masking applied to response object to reduce message response size.

CreateDeviceTypeRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If this flag has value true, then response will contain just empty resource without any fields populated.
body_mask .google.protobuf.FieldMask If this field is populated, then resource in response will contain only specific fields.

UpdateDeviceTypeRequest Message

A request message of the UpdateDeviceType method.

Name Type Description
device_type DeviceType DeviceType resource body
update_mask .google.protobuf.FieldMask FieldMask applied to request - change will be applied only for fields in the mask
cas UpdateDeviceTypeRequest.CAS Conditional 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_missing bool If 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_mask UpdateDeviceTypeRequest.ResponseMask reduce 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.

Name Type Description
conditional_state DeviceType Conditional desired state of a resource before update.
field_mask .google.protobuf.FieldMask Field paths from conditional state of resource server should check and compare.

UpdateDeviceTypeRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If 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_only bool Include 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.FieldMask If 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.

Name Type Description
name string (name of DeviceType) Name of ntt.devices.v1.DeviceType

DeviceType Enumerations

Here is the list of DeviceType resource enumerations:

DeviceType.Hardware Enumeration

Hardware (e.g. Generic, Raspberry Pi)

Name Description
HARDWARE_UNSPECIFIED
GENERIC
RASPBERRYPI

DeviceType.Architecture Enumeration

Architecture name (e.g. amd64)

Name Description
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

Name Type Description
name string (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]
metadata Meta Metadata 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_name string Display name of the profile
description string Optional. Description of the profile.
device_type string (reference to DeviceType) Device type for the profile
install_ai_accelerator bool Install runtimes and drivers for Hailo-8 and NVIDIA CUDA.
encryption bool Enable disk encryption
disk_mapping string Disk Mapping YAML configuration.
network_agent string Network Agent YAML configuration.
ntp string NTP Server settings.
http_proxy string HTTP PROXY address
https_proxy string HTTPS PROXY address
no_proxy string NO Proxy addresses (comma separated).

GetOsImageProfileRequest Message

A request message of the GetOsImageProfile method.

Name Type Description
name string (name of OsImageProfile) Name of ntt.devices.v1.OsImageProfile
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
names repeated string (name of OsImageProfile) Names of OsImageProfiles
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
os_image_profiles repeated OsImageProfile found OsImageProfiles
missing repeated string (name of OsImageProfile) list of not found OsImageProfiles

ListOsImageProfilesRequest Message

A request message of the ListOsImageProfiles method.

Name Type Description
parent string (parent name of OsImageProfile) Parent name of ntt.devices.v1.OsImageProfile
page_size int32 Requested page size. Server may return fewer OsImageProfiles than requested. If unspecified, server will pick an appropriate default.
page_token string (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_by string (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”
filter string (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.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_info bool Indicates 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.

Name Type Description
os_image_profiles repeated OsImageProfile The list of OsImageProfiles
prev_page_token string (cursor of OsImageProfile) A token to retrieve previous page of results. Pass this value in the ListOsImageProfilesRequest.page_token.
next_page_token string (cursor of OsImageProfile) A token to retrieve next page of results. Pass this value in the ListOsImageProfilesRequest.page_token.
current_offset int32 Current 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_count int32 Number 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.

Name Type Description
name string (name of OsImageProfile) Name of ntt.devices.v1.OsImageProfile
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
change OsImageProfileChange

WatchOsImageProfilesRequest Message

A request message of the WatchOsImageProfiles method.

Name Type Description
type WatchType Type 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.
parent string (parent name of OsImageProfile) Parent name of ntt.devices.v1.OsImageProfile
page_size int32 Requested 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_token string (cursor of OsImageProfile) A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_by string (orderBy of OsImageProfile) Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_token string A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time .google.protobuf.Timestamp Point 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.
filter string (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.FieldMask A 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.
view View View 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_size int32 Maximum 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.

Name Type Description
os_image_profile_changes repeated OsImageProfileChange Changes of OsImageProfiles
is_current bool If 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_change WatchOsImageProfilesResponse.PageTokenChange When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token string Token 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_size int64 Server 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_reset bool In 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_reset bool In 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

Name Type Description
prev_page_token string (cursor of OsImageProfile) New token to retrieve previous page of results.
next_page_token string (cursor of OsImageProfile) New token to retrieve next page of results.

CreateOsImageProfileRequest Message

A request message of the CreateOsImageProfile method.

Name Type Description
parent string (parent name of OsImageProfile) Parent name of ntt.devices.v1.OsImageProfile
os_image_profile OsImageProfile OsImageProfile resource body
response_mask CreateOsImageProfileRequest.ResponseMask Optional masking applied to response object to reduce message response size.

CreateOsImageProfileRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If this flag has value true, then response will contain just empty resource without any fields populated.
body_mask .google.protobuf.FieldMask If this field is populated, then resource in response will contain only specific fields.

UpdateOsImageProfileRequest Message

A request message of the UpdateOsImageProfile method.

Name Type Description
os_image_profile OsImageProfile OsImageProfile resource body
update_mask .google.protobuf.FieldMask FieldMask applied to request - change will be applied only for fields in the mask
cas UpdateOsImageProfileRequest.CAS Conditional 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_missing bool If 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_mask UpdateOsImageProfileRequest.ResponseMask reduce 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.

Name Type Description
conditional_state OsImageProfile Conditional desired state of a resource before update.
field_mask .google.protobuf.FieldMask Field paths from conditional state of resource server should check and compare.

UpdateOsImageProfileRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If 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_only bool Include 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.FieldMask If 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.

Name Type Description
name string (name of OsImageProfile) Name of ntt.devices.v1.OsImageProfile

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

Name Type Description
name string (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]
metadata Meta Metadata 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).
version string The version name.
device_type string (reference to DeviceType) Supported device type.
minimum_previous_version string The minum previous OS version that is required to upgrade devices to the OS version.
channel OsVersion.Channel

GetOsVersionRequest Message

A request message of the GetOsVersion method.

Name Type Description
name string (name of OsVersion) Name of ntt.devices.v1.OsVersion
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
names repeated string (name of OsVersion) Names of OsVersions
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
os_versions repeated OsVersion found OsVersions
missing repeated string (name of OsVersion) list of not found OsVersions

ListOsVersionsRequest Message

A request message of the ListOsVersions method.

Name Type Description
page_size int32 Requested page size. Server may return fewer OsVersions than requested. If unspecified, server will pick an appropriate default.
page_token string (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_by string (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”
filter string (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.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_info bool Indicates 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.

Name Type Description
os_versions repeated OsVersion The list of OsVersions
prev_page_token string (cursor of OsVersion) A token to retrieve previous page of results. Pass this value in the ListOsVersionsRequest.page_token.
next_page_token string (cursor of OsVersion) A token to retrieve next page of results. Pass this value in the ListOsVersionsRequest.page_token.
current_offset int32 Current 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_count int32 Number 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.

Name Type Description
name string (name of OsVersion) Name of ntt.devices.v1.OsVersion
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
change OsVersionChange

WatchOsVersionsRequest Message

A request message of the WatchOsVersions method.

Name Type Description
type WatchType Type 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_size int32 Requested 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_token string (cursor of OsVersion) A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_by string (orderBy of OsVersion) Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_token string A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time .google.protobuf.Timestamp Point 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.
filter string (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.FieldMask A 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.
view View View 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_size int32 Maximum 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.

Name Type Description
os_version_changes repeated OsVersionChange Changes of OsVersions
is_current bool If 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_change WatchOsVersionsResponse.PageTokenChange When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token string Token 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_size int64 Server 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_reset bool In 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_reset bool In 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

Name Type Description
prev_page_token string (cursor of OsVersion) New token to retrieve previous page of results.
next_page_token string (cursor of OsVersion) New token to retrieve next page of results.

CreateOsVersionRequest Message

A request message of the CreateOsVersion method.

Name Type Description
os_version OsVersion OsVersion resource body
response_mask CreateOsVersionRequest.ResponseMask Optional masking applied to response object to reduce message response size.

CreateOsVersionRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If this flag has value true, then response will contain just empty resource without any fields populated.
body_mask .google.protobuf.FieldMask If this field is populated, then resource in response will contain only specific fields.

UpdateOsVersionRequest Message

A request message of the UpdateOsVersion method.

Name Type Description
os_version OsVersion OsVersion resource body
update_mask .google.protobuf.FieldMask FieldMask applied to request - change will be applied only for fields in the mask
cas UpdateOsVersionRequest.CAS Conditional 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_missing bool If 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_mask UpdateOsVersionRequest.ResponseMask reduce 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.

Name Type Description
conditional_state OsVersion Conditional desired state of a resource before update.
field_mask .google.protobuf.FieldMask Field paths from conditional state of resource server should check and compare.

UpdateOsVersionRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If 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_only bool Include 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.FieldMask If 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.

Name Type Description
name string (name of OsVersion) Name of ntt.devices.v1.OsVersion

OsVersion Enumerations

Here is the list of OsVersion resource enumerations:

OsVersion.Channel Enumeration

Name Description
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

Name Type Description
name string (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]
metadata Meta Metadata 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_policy MultiRegionPolicy Multi 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.

Name Type Description
name string (name of Project) Name of ntt.devices.v1.Project
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
names repeated string (name of Project) Names of Projects
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
projects repeated Project found Projects
missing repeated string (name of Project) list of not found Projects

ListProjectsRequest Message

A request message of the ListProjects method.

Name Type Description
page_size int32 Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default.
page_token string (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_by string (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”
filter string (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.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_info bool Indicates 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.

Name Type Description
projects repeated Project The list of Projects
prev_page_token string (cursor of Project) A token to retrieve previous page of results. Pass this value in the ListProjectsRequest.page_token.
next_page_token string (cursor of Project) A token to retrieve next page of results. Pass this value in the ListProjectsRequest.page_token.
current_offset int32 Current 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_count int32 Number 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.

Name Type Description
name string (name of Project) Name of ntt.devices.v1.Project
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
change ProjectChange

WatchProjectsRequest Message

A request message of the WatchProjects method.

Name Type Description
type WatchType Type 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_size int32 Requested 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_token string (cursor of Project) A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_by string (orderBy of Project) Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_token string A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time .google.protobuf.Timestamp Point 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.
filter string (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.FieldMask A 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.
view View View 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_size int32 Maximum 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.

Name Type Description
project_changes repeated ProjectChange Changes of Projects
is_current bool If 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_change WatchProjectsResponse.PageTokenChange When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token string Token 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_size int64 Server 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_reset bool In 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_reset bool In 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

Name Type Description
prev_page_token string (cursor of Project) New token to retrieve previous page of results.
next_page_token string (cursor of Project) New token to retrieve next page of results.

CreateProjectRequest Message

A request message of the CreateProject method.

Name Type Description
project Project Project resource body
response_mask CreateProjectRequest.ResponseMask Optional masking applied to response object to reduce message response size.

CreateProjectRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If this flag has value true, then response will contain just empty resource without any fields populated.
body_mask .google.protobuf.FieldMask If this field is populated, then resource in response will contain only specific fields.

UpdateProjectRequest Message

A request message of the UpdateProject method.

Name Type Description
project Project Project resource body
update_mask .google.protobuf.FieldMask FieldMask applied to request - change will be applied only for fields in the mask
cas UpdateProjectRequest.CAS Conditional 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_missing bool If 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_mask UpdateProjectRequest.ResponseMask reduce 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.

Name Type Description
conditional_state Project Conditional desired state of a resource before update.
field_mask .google.protobuf.FieldMask Field paths from conditional state of resource server should check and compare.

UpdateProjectRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If 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_only bool Include 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.FieldMask If 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.

Name Type Description
name string (name of Project) Name of ntt.devices.v1.Project

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

Name Type Description
name string (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]
metadata Meta Metadata 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).
spec ProvisioningApprovalRequest.Spec
status ProvisioningApprovalRequest.Status

ProvisioningApprovalRequest.Spec Message

Name Type Description
conclusion ProvisioningApprovalRequest.Spec.Conclusion The verdicit for the approval, approved or revoked.
service_account string (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

Name Type Description
none none none

GetProvisioningApprovalRequestRequest Message

A request message of the GetProvisioningApprovalRequest method.

Name Type Description
name string (name of ProvisioningApprovalRequest) Name of ntt.devices.v1.ProvisioningApprovalRequest
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
names repeated string (name of ProvisioningApprovalRequest) Names of ProvisioningApprovalRequests
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
provisioning_approval_requests repeated ProvisioningApprovalRequest found ProvisioningApprovalRequests
missing repeated string (name of ProvisioningApprovalRequest) list of not found ProvisioningApprovalRequests

ListProvisioningApprovalRequestsRequest Message

A request message of the ListProvisioningApprovalRequests method.

Name Type Description
parent string (parent name of ProvisioningApprovalRequest) Parent name of ntt.devices.v1.ProvisioningApprovalRequest
page_size int32 Requested page size. Server may return fewer ProvisioningApprovalRequests than requested. If unspecified, server will pick an appropriate default.
page_token string (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_by string (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”
filter string (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.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_info bool Indicates 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.

Name Type Description
provisioning_approval_requests repeated ProvisioningApprovalRequest The list of ProvisioningApprovalRequests
prev_page_token string (cursor of ProvisioningApprovalRequest) A token to retrieve previous page of results. Pass this value in the ListProvisioningApprovalRequestsRequest.page_token.
next_page_token string (cursor of ProvisioningApprovalRequest) A token to retrieve next page of results. Pass this value in the ListProvisioningApprovalRequestsRequest.page_token.
current_offset int32 Current 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_count int32 Number 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.

Name Type Description
name string (name of ProvisioningApprovalRequest) Name of ntt.devices.v1.ProvisioningApprovalRequest
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
change ProvisioningApprovalRequestChange

WatchProvisioningApprovalRequestsRequest Message

A request message of the WatchProvisioningApprovalRequests method.

Name Type Description
type WatchType Type 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.
parent string (parent name of ProvisioningApprovalRequest) Parent name of ntt.devices.v1.ProvisioningApprovalRequest
page_size int32 Requested 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_token string (cursor of ProvisioningApprovalRequest) A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_by string (orderBy of ProvisioningApprovalRequest) Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_token string A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time .google.protobuf.Timestamp Point 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.
filter string (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.FieldMask A 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.
view View View 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_size int32 Maximum 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.

Name Type Description
provisioning_approval_request_changes repeated ProvisioningApprovalRequestChange Changes of ProvisioningApprovalRequests
is_current bool If 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_change WatchProvisioningApprovalRequestsResponse.PageTokenChange When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token string Token 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_size int64 Server 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_reset bool In 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_reset bool In 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

Name Type Description
prev_page_token string (cursor of ProvisioningApprovalRequest) New token to retrieve previous page of results.
next_page_token string (cursor of ProvisioningApprovalRequest) New token to retrieve next page of results.

CreateProvisioningApprovalRequestRequest Message

A request message of the CreateProvisioningApprovalRequest method.

Name Type Description
parent string (parent name of ProvisioningApprovalRequest) Parent name of ntt.devices.v1.ProvisioningApprovalRequest
provisioning_approval_request ProvisioningApprovalRequest ProvisioningApprovalRequest resource body
response_mask CreateProvisioningApprovalRequestRequest.ResponseMask Optional masking applied to response object to reduce message response size.

CreateProvisioningApprovalRequestRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If this flag has value true, then response will contain just empty resource without any fields populated.
body_mask .google.protobuf.FieldMask If this field is populated, then resource in response will contain only specific fields.

UpdateProvisioningApprovalRequestRequest Message

A request message of the UpdateProvisioningApprovalRequest method.

Name Type Description
provisioning_approval_request ProvisioningApprovalRequest ProvisioningApprovalRequest resource body
update_mask .google.protobuf.FieldMask FieldMask applied to request - change will be applied only for fields in the mask
cas UpdateProvisioningApprovalRequestRequest.CAS Conditional 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_missing bool If 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_mask UpdateProvisioningApprovalRequestRequest.ResponseMask reduce 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.

Name Type Description
conditional_state ProvisioningApprovalRequest Conditional desired state of a resource before update.
field_mask .google.protobuf.FieldMask Field paths from conditional state of resource server should check and compare.

UpdateProvisioningApprovalRequestRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If 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_only bool Include 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.FieldMask If 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.

Name Type Description
name string (name of ProvisioningApprovalRequest) Name of ntt.devices.v1.ProvisioningApprovalRequest

ProvisionDeviceForApprovedRequestRequest Message

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

Name Type Description
name string (name of ProvisioningApprovalRequest) name of ntt.devices.v1.ProvisioningApprovalRequest
device_status Device.Status

ProvisionDeviceForApprovedRequestResponse Message

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

Name Type Description
device Device

ProvisioningApprovalRequest Enumerations

Here is the list of ProvisioningApprovalRequest resource enumerations:

ProvisioningApprovalRequest.Spec.Conclusion Enumeration

Name Description
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/*} 

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

Name Type Description
name string (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]
metadata Meta Metadata 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_name string Display Name
description string Description
spec ProvisioningPolicy.Spec
status ProvisioningPolicy.Status

ProvisioningPolicy.Spec Message

Name Type Description
mode ProvisioningPolicy.Mode Provisioning mode.
service_account string (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_format string Template for device name.
device_display_name_format string Template for device display name.
labels map<string, string> Deprecated: Use template instead. labels that provisioned Device resources will have.
template ProvisioningPolicy.Spec.Template Template for Devices to be generated. Used only on Device resource creation, changing the value won’t affect existing Device resources.
identity_field_paths repeated string Device hardware identity paths (fields) to use for matching pre-existing device resources when provisioning.
role string (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_params repeated ScopeParam List of scope params to add IF role is specified. Ignored if role is empty.
condition string (reference to Condition) Optional condition for the role binding. DEPRECATED, use extra_conditions
condition_params .google.protobuf.Struct Condition params DEPRECATED, use extra_conditions
extra_conditions repeated ExecutableCondition Optional extra conditions to be attached for a role.

ProvisioningPolicy.Status Message

Name Type Description
none none none

ProvisioningPolicy.Spec.Template Message

Name Type Description
metadata Meta
spec Device.Spec service_account will be ignored.
public_listing_spec Device.PublicListingSpec

GetProvisioningPolicyRequest Message

A request message of the GetProvisioningPolicy method.

Name Type Description
name string (name of ProvisioningPolicy) Name of ntt.devices.v1.ProvisioningPolicy
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
names repeated string (name of ProvisioningPolicy) Names of ProvisioningPolicies
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
provisioning_policies repeated ProvisioningPolicy found ProvisioningPolicies
missing repeated string (name of ProvisioningPolicy) list of not found ProvisioningPolicies

ListProvisioningPoliciesRequest Message

A request message of the ListProvisioningPolicies method.

Name Type Description
parent string (parent name of ProvisioningPolicy) Parent name of ntt.devices.v1.ProvisioningPolicy
page_size int32 Requested page size. Server may return fewer ProvisioningPolicies than requested. If unspecified, server will pick an appropriate default.
page_token string (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_by string (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”
filter string (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.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_info bool Indicates 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.

Name Type Description
provisioning_policies repeated ProvisioningPolicy The list of ProvisioningPolicies
prev_page_token string (cursor of ProvisioningPolicy) A token to retrieve previous page of results. Pass this value in the ListProvisioningPoliciesRequest.page_token.
next_page_token string (cursor of ProvisioningPolicy) A token to retrieve next page of results. Pass this value in the ListProvisioningPoliciesRequest.page_token.
current_offset int32 Current 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_count int32 Number 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.

Name Type Description
name string (name of ProvisioningPolicy) Name of ntt.devices.v1.ProvisioningPolicy
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
change ProvisioningPolicyChange

WatchProvisioningPoliciesRequest Message

A request message of the WatchProvisioningPolicies method.

Name Type Description
type WatchType Type 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.
parent string (parent name of ProvisioningPolicy) Parent name of ntt.devices.v1.ProvisioningPolicy
page_size int32 Requested 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_token string (cursor of ProvisioningPolicy) A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_by string (orderBy of ProvisioningPolicy) Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_token string A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time .google.protobuf.Timestamp Point 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.
filter string (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.FieldMask A 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.
view View View 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_size int32 Maximum 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.

Name Type Description
provisioning_policy_changes repeated ProvisioningPolicyChange Changes of ProvisioningPolicies
is_current bool If 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_change WatchProvisioningPoliciesResponse.PageTokenChange When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token string Token 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_size int64 Server 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_reset bool In 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_reset bool In 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

Name Type Description
prev_page_token string (cursor of ProvisioningPolicy) New token to retrieve previous page of results.
next_page_token string (cursor of ProvisioningPolicy) New token to retrieve next page of results.

CreateProvisioningPolicyRequest Message

A request message of the CreateProvisioningPolicy method.

Name Type Description
parent string (parent name of ProvisioningPolicy) Parent name of ntt.devices.v1.ProvisioningPolicy
provisioning_policy ProvisioningPolicy ProvisioningPolicy resource body
response_mask CreateProvisioningPolicyRequest.ResponseMask Optional masking applied to response object to reduce message response size.

CreateProvisioningPolicyRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If this flag has value true, then response will contain just empty resource without any fields populated.
body_mask .google.protobuf.FieldMask If this field is populated, then resource in response will contain only specific fields.

UpdateProvisioningPolicyRequest Message

A request message of the UpdateProvisioningPolicy method.

Name Type Description
provisioning_policy ProvisioningPolicy ProvisioningPolicy resource body
update_mask .google.protobuf.FieldMask FieldMask applied to request - change will be applied only for fields in the mask
cas UpdateProvisioningPolicyRequest.CAS Conditional 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_missing bool If 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_mask UpdateProvisioningPolicyRequest.ResponseMask reduce 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.

Name Type Description
conditional_state ProvisioningPolicy Conditional desired state of a resource before update.
field_mask .google.protobuf.FieldMask Field paths from conditional state of resource server should check and compare.

UpdateProvisioningPolicyRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If 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_only bool Include 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.FieldMask If 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.

Name Type Description
name string (name of ProvisioningPolicy) Name of ntt.devices.v1.ProvisioningPolicy

ProvisionServiceAccountToProvisioningPolicyRequest Message

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

Name Type Description
name string (name of ProvisioningPolicy) Name of ntt.devices.v1.ProvisioningPolicy

ProvisionServiceAccountToProvisioningPolicyResponse Message

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

Name Type Description
service_account ServiceAccount

RemoveServiceAccountFromProvisioningPolicyRequest Message

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

Name Type Description
name string (name of ProvisioningPolicy) Name of ntt.devices.v1.ProvisioningPolicy

RemoveServiceAccountFromProvisioningPolicyResponse Message

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

Name Type Description
removed bool

ProvisionDeviceViaPolicyRequest Message

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

Name Type Description
name string (name of ProvisioningPolicy) Name of ntt.devices.v1.ProvisioningPolicy
device_status Device.Status
external_pubkey string external 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]

Name Type Description
device Device
service_account ServiceAccount

RequestProvisioningApprovalRequest Message

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

Name Type Description
name string (name of ProvisioningPolicy) Name of ntt.devices.v1.ProvisioningPolicy
device_status Device.Status Device status to get serial number.
external_pubkey string external 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]

Name Type Description
request ProvisioningApprovalRequest
service_account ServiceAccount

ProvisioningPolicy Enumerations

Here is the list of ProvisioningPolicy resource enumerations:

ProvisioningPolicy.Mode Enumeration

Name Description
MODE_UNSPECIFIED Mode is not defined, devices will do nothing when the policy is configured in this mode.
UNATTENDED Devices will create Device resources automatically without any human interaction.
MANUAL_APPROVAL Devices 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

Name Type Description
name string (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]
metadata Meta Metadata 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_name string
manufacturer string
product_name string Should be in the format “productname (sku)”
tpm_manufacturer_ca_cert string
idevid_issuer_ca_cert string
ldevid_issuer_ca_cert string

GetTpmAttestationCertRequest Message

A request message of the GetTpmAttestationCert method.

Name Type Description
name string (name of TpmAttestationCert) Name of ntt.devices.v1.TpmAttestationCert
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
names repeated string (name of TpmAttestationCert) Names of TpmAttestationCerts
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
tpm_attestation_certs repeated TpmAttestationCert found TpmAttestationCerts
missing repeated string (name of TpmAttestationCert) list of not found TpmAttestationCerts

ListTpmAttestationCertsRequest Message

A request message of the ListTpmAttestationCerts method.

Name Type Description
parent string (parent name of TpmAttestationCert) Parent name of ntt.devices.v1.TpmAttestationCert
page_size int32 Requested page size. Server may return fewer TpmAttestationCerts than requested. If unspecified, server will pick an appropriate default.
page_token string (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_by string (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”
filter string (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.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_info bool Indicates 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.

Name Type Description
tpm_attestation_certs repeated TpmAttestationCert The list of TpmAttestationCerts
prev_page_token string (cursor of TpmAttestationCert) A token to retrieve previous page of results. Pass this value in the ListTpmAttestationCertsRequest.page_token.
next_page_token string (cursor of TpmAttestationCert) A token to retrieve next page of results. Pass this value in the ListTpmAttestationCertsRequest.page_token.
current_offset int32 Current 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_count int32 Number 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.

Name Type Description
name string (name of TpmAttestationCert) Name of ntt.devices.v1.TpmAttestationCert
field_mask .google.protobuf.FieldMask A list of extra fields to be obtained for each response item on top of fields defined by request field view
view View View 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.

Name Type Description
change TpmAttestationCertChange

WatchTpmAttestationCertsRequest Message

A request message of the WatchTpmAttestationCerts method.

Name Type Description
type WatchType Type 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.
parent string (parent name of TpmAttestationCert) Parent name of ntt.devices.v1.TpmAttestationCert
page_size int32 Requested 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_token string (cursor of TpmAttestationCert) A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_by string (orderBy of TpmAttestationCert) Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_token string A token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time .google.protobuf.Timestamp Point 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.
filter string (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.FieldMask A 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.
view View View 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_size int32 Maximum 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.

Name Type Description
tpm_attestation_cert_changes repeated TpmAttestationCertChange Changes of TpmAttestationCerts
is_current bool If 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_change WatchTpmAttestationCertsResponse.PageTokenChange When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_token string Token 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_size int64 Server 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_reset bool In 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_reset bool In 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

Name Type Description
prev_page_token string (cursor of TpmAttestationCert) New token to retrieve previous page of results.
next_page_token string (cursor of TpmAttestationCert) New token to retrieve next page of results.

CreateTpmAttestationCertRequest Message

A request message of the CreateTpmAttestationCert method.

Name Type Description
parent string (parent name of TpmAttestationCert) Parent name of ntt.devices.v1.TpmAttestationCert
tpm_attestation_cert TpmAttestationCert TpmAttestationCert resource body
response_mask CreateTpmAttestationCertRequest.ResponseMask Optional masking applied to response object to reduce message response size.

CreateTpmAttestationCertRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If this flag has value true, then response will contain just empty resource without any fields populated.
body_mask .google.protobuf.FieldMask If this field is populated, then resource in response will contain only specific fields.

UpdateTpmAttestationCertRequest Message

A request message of the UpdateTpmAttestationCert method.

Name Type Description
tpm_attestation_cert TpmAttestationCert TpmAttestationCert resource body
update_mask .google.protobuf.FieldMask FieldMask applied to request - change will be applied only for fields in the mask
cas UpdateTpmAttestationCertRequest.CAS Conditional 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_missing bool If 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_mask UpdateTpmAttestationCertRequest.ResponseMask reduce 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.

Name Type Description
conditional_state TpmAttestationCert Conditional desired state of a resource before update.
field_mask .google.protobuf.FieldMask Field paths from conditional state of resource server should check and compare.

UpdateTpmAttestationCertRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

Name Type Description
skip_entire_response_body bool If 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_only bool Include 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.FieldMask If 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.

Name Type Description
name string (name of TpmAttestationCert) Name of ntt.devices.v1.TpmAttestationCert

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

Name Type Description
added CustomizedImageChange.Added Added is returned when watched document is added, either created or enters Query view
modified CustomizedImageChange.Modified Modified is returned when watched document is modified
current CustomizedImageChange.Current Current is returned in stateless watch when document enters query view or is modified within.
removed CustomizedImageChange.Removed Removed is returned when CustomizedImage is deleted or leaves Query view

CustomizedImageChange.Added Message

CustomizedImage has been added to query view

Name Type Description
customized_image CustomizedImage
view_index int32 Integer 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

Name Type Description
customized_image CustomizedImage

CustomizedImageChange.Modified Message

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

Name Type Description
name string (name of CustomizedImage) Name of modified CustomizedImage
customized_image CustomizedImage New version of CustomizedImage or masked difference, depending on mask_changes instrumentation of issued [WatchCustomizedImageRequest] or [WatchCustomizedImagesRequest]
field_mask .google.protobuf.FieldMask Used when mask_changes is set, contains field paths of modified properties.
previous_view_index int32 Previous view index specifies previous position of modified CustomizedImage. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index int32 Integer specifying CustomizedImage new index in resulting query view.

CustomizedImageChange.Removed Message

Removed is returned when CustomizedImage is deleted or leaves Query view

Name Type Description
name string (name of CustomizedImage)
view_index int32 Integer 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

Name Type Description
added DeviceChange.Added Added is returned when watched document is added, either created or enters Query view
modified DeviceChange.Modified Modified is returned when watched document is modified
current DeviceChange.Current Current is returned in stateless watch when document enters query view or is modified within.
removed DeviceChange.Removed Removed is returned when Device is deleted or leaves Query view

DeviceChange.Added Message

Device has been added to query view

Name Type Description
device Device
view_index int32 Integer 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

Name Type Description
device Device

DeviceChange.Modified Message

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

Name Type Description
name string (name of Device) Name of modified Device
device Device New version of Device or masked difference, depending on mask_changes instrumentation of issued [WatchDeviceRequest] or [WatchDevicesRequest]
field_mask .google.protobuf.FieldMask Used when mask_changes is set, contains field paths of modified properties.
previous_view_index int32 Previous view index specifies previous position of modified Device. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index int32 Integer specifying Device new index in resulting query view.

DeviceChange.Removed Message

Removed is returned when Device is deleted or leaves Query view

Name Type Description
name string (name of Device)
view_index int32 Integer 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

Name Type Description
added DeviceDistributionCounterChange.Added Added is returned when watched document is added, either created or enters Query view
modified DeviceDistributionCounterChange.Modified Modified is returned when watched document is modified
current DeviceDistributionCounterChange.Current Current is returned in stateless watch when document enters query view or is modified within.
removed DeviceDistributionCounterChange.Removed Removed is returned when DeviceDistributionCounter is deleted or leaves Query view

DeviceDistributionCounterChange.Added Message

DeviceDistributionCounter has been added to query view

Name Type Description
device_distribution_counter DeviceDistributionCounter
view_index int32 Integer 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

Name Type Description
device_distribution_counter DeviceDistributionCounter

DeviceDistributionCounterChange.Modified Message

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

Name Type Description
name string (name of DeviceDistributionCounter) Name of modified DeviceDistributionCounter
device_distribution_counter DeviceDistributionCounter New version of DeviceDistributionCounter or masked difference, depending on mask_changes instrumentation of issued [WatchDeviceDistributionCounterRequest] or [WatchDeviceDistributionCountersRequest]
field_mask .google.protobuf.FieldMask Used when mask_changes is set, contains field paths of modified properties.
previous_view_index int32 Previous view index specifies previous position of modified DeviceDistributionCounter. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index int32 Integer specifying DeviceDistributionCounter new index in resulting query view.

DeviceDistributionCounterChange.Removed Message

Removed is returned when DeviceDistributionCounter is deleted or leaves Query view

Name Type Description
name string (name of DeviceDistributionCounter)
view_index int32 Integer 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

Name Type Description
added DeviceHardwareChange.Added Added is returned when watched document is added, either created or enters Query view
modified DeviceHardwareChange.Modified Modified is returned when watched document is modified
current DeviceHardwareChange.Current Current is returned in stateless watch when document enters query view or is modified within.
removed DeviceHardwareChange.Removed Removed is returned when DeviceHardware is deleted or leaves Query view

DeviceHardwareChange.Added Message

DeviceHardware has been added to query view

Name Type Description
device_hardware DeviceHardware
view_index int32 Integer 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

Name Type Description
device_hardware DeviceHardware

DeviceHardwareChange.Modified Message

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

Name Type Description
name string (name of DeviceHardware) Name of modified DeviceHardware
device_hardware DeviceHardware New version of DeviceHardware or masked difference, depending on mask_changes instrumentation of issued [WatchDeviceHardwareRequest] or [WatchDeviceHardwaresRequest]
field_mask .google.protobuf.FieldMask Used when mask_changes is set, contains field paths of modified properties.
previous_view_index int32 Previous view index specifies previous position of modified DeviceHardware. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index int32 Integer specifying DeviceHardware new index in resulting query view.

DeviceHardwareChange.Removed Message

Removed is returned when DeviceHardware is deleted or leaves Query view

Name Type Description
name string (name of DeviceHardware)
view_index int32 Integer 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

Name Type Description
added DeviceHardwareRegisterSessionChange.Added Added is returned when watched document is added, either created or enters Query view
modified DeviceHardwareRegisterSessionChange.Modified Modified is returned when watched document is modified
current DeviceHardwareRegisterSessionChange.Current Current is returned in stateless watch when document enters query view or is modified within.
removed DeviceHardwareRegisterSessionChange.Removed Removed is returned when DeviceHardwareRegisterSession is deleted or leaves Query view

DeviceHardwareRegisterSessionChange.Added Message

DeviceHardwareRegisterSession has been added to query view

Name Type Description
device_hardware_register_session DeviceHardwareRegisterSession
view_index int32 Integer 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

Name Type Description
device_hardware_register_session DeviceHardwareRegisterSession

DeviceHardwareRegisterSessionChange.Modified Message

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

Name Type Description
name string (name of DeviceHardwareRegisterSession) Name of modified DeviceHardwareRegisterSession
device_hardware_register_session DeviceHardwareRegisterSession New version of DeviceHardwareRegisterSession or masked difference, depending on mask_changes instrumentation of issued [WatchDeviceHardwareRegisterSessionRequest] or [WatchDeviceHardwareRegisterSessionsRequest]
field_mask .google.protobuf.FieldMask Used when mask_changes is set, contains field paths of modified properties.
previous_view_index int32 Previous view index specifies previous position of modified DeviceHardwareRegisterSession. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index int32 Integer specifying DeviceHardwareRegisterSession new index in resulting query view.

DeviceHardwareRegisterSessionChange.Removed Message

Removed is returned when DeviceHardwareRegisterSession is deleted or leaves Query view

Name Type Description
name string (name of DeviceHardwareRegisterSession)
view_index int32 Integer specifying removed DeviceHardwareRegisterSession index. Not populated in stateless watch type.

DeviceMetrics Message

Name Type Description
uptime uint64
memory_usage_bytes uint64
memory_utilization_percent float
load_average_1m float
memory_stats DeviceMetrics.MemoryStats
cpu_stats repeated DeviceMetrics.CpuCoreStats
disk_metrics repeated DeviceMetrics.DiskMetric should match order in repeated DiskMetricsLabel
hardware_metrics repeated DeviceMetrics.HardwareMetric should match order in repeated DiskMetricsLabel
modem_metrics map<uint32s, DeviceMetrics.ModemMetric> should match order in repeated ModemMetricLabel
per_antenna_signal DeviceMetrics.PerAntennaSignal
container_metrics map<uint32s, DeviceMetrics.ContainerMetric> should match order in repeated ContainerMetricLabel
pod_metrics repeated DeviceMetrics.PodMetric should match order in repeated PodMetricLabel
metrics_time .google.protobuf.Timestamp
disk_labels repeated DeviceMetrics.DiskMetricsLabel optional - only required when something changes or in first time the metric is sent
hardware_metrics_labels repeated DeviceMetrics.HardwareMetricsLabel optional - only required when something changes or in first time the metric is sent
modem_metrics_labels repeated DeviceMetrics.ModemMetricLabel optional - only required when something changes or in first time the metric is sent
container_metrics_labels repeated DeviceMetrics.ContainerMetricLabel optional - only required when something changes or in first time the metric is sent
pod_metrics_labels repeated DeviceMetrics.PodMetricLabel optional - only required when something changes or in first time the metric is sent
health_check_metric_labels repeated DeviceMetrics.HealthCheckMetricLabel
health_check_metrics map<uint32s, DeviceMetrics.HealthCheckMetric> should match order in health_check_metric_labels

DeviceMetrics.ContainerMetric Message

Name Type Description
cpu_utilization float
memory_utilization float
memory_usage_bytes uint64

DeviceMetrics.ContainerMetricLabel Message

Name Type Description
pod_id string
container_id string

DeviceMetrics.CpuCoreStats Message

Name Type Description
user float
system float
idle float
nice float
iowait float
irq float
softirq float
steal float

DeviceMetrics.DiskMetric Message

Name Type Description
disk_usage_bytes uint64
disk_utilization_percent float

DeviceMetrics.DiskMetricsLabel Message

Name Type Description
mount_point string
partition_label string
partition string

DeviceMetrics.HardwareMetric Message

Name Type Description
fan_speed uint64
temperature int64
voltage float
power float

DeviceMetrics.HardwareMetricsLabel Message

Name Type Description
sensor_tag string
chip_tag string

DeviceMetrics.HealthCheckMetric Message

Name Type Description
is_succeessful bool
http_response_time_micro_seconds uint64
rtt_microseconds uint64

DeviceMetrics.HealthCheckMetricLabel Message

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

Name Type Description
health_check_name string
status_summary string
destination_host string
container_name string
pod_id string

DeviceMetrics.MemoryStats Message

Name Type Description
buffered_memory uint64
cached_memory uint64
free_memory uint64
used_memory uint64
available_memory uint64
shared_memory uint64

DeviceMetrics.ModemMetric Message

Name Type Description
rssi sint32
rsrp sint32
rsrq float
snr float

DeviceMetrics.ModemMetricLabel Message

Name Type Description
cell_type MobileNetworkType
cell_id uint64
physical_cell_id uint64
tac uint64
earfcn uint64

DeviceMetrics.PerAntennaSignal Message

Name Type Description
fiveg_rsrps repeated sint32
fiveg_rsrqs repeated float
lte_rsrps repeated sint32
lte_rsrqs repeated float

DeviceMetrics.PodMetric Message

Name Type Description
pod_status uint64
is_healthy bool

DeviceMetrics.PodMetricLabel Message

Name Type Description
pod_id string

DeviceTypeChange Message

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

Name Type Description
added DeviceTypeChange.Added Added is returned when watched document is added, either created or enters Query view
modified DeviceTypeChange.Modified Modified is returned when watched document is modified
current DeviceTypeChange.Current Current is returned in stateless watch when document enters query view or is modified within.
removed DeviceTypeChange.Removed Removed is returned when DeviceType is deleted or leaves Query view

DeviceTypeChange.Added Message

DeviceType has been added to query view

Name Type Description
device_type DeviceType
view_index int32 Integer 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

Name Type Description
device_type DeviceType

DeviceTypeChange.Modified Message

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

Name Type Description
name string (name of DeviceType) Name of modified DeviceType
device_type DeviceType New version of DeviceType or masked difference, depending on mask_changes instrumentation of issued [WatchDeviceTypeRequest] or [WatchDeviceTypesRequest]
field_mask .google.protobuf.FieldMask Used when mask_changes is set, contains field paths of modified properties.
previous_view_index int32 Previous view index specifies previous position of modified DeviceType. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index int32 Integer specifying DeviceType new index in resulting query view.

DeviceTypeChange.Removed Message

Removed is returned when DeviceType is deleted or leaves Query view

Name Type Description
name string (name of DeviceType)
view_index int32 Integer specifying removed DeviceType index. Not populated in stateless watch type.

LogsService Message

Name Type Description
none none none

LogsService.ToClient Message

Messages sent only to a client

Name Type Description
data bytes Logs data

LogsService.ToDevice Message

Messages sent only to a device

Name Type Description
follow bool Live follow the logs service
lines uint32s Number of lines to get from the logs service
source string Source 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

Name Type Description
added OsImageProfileChange.Added Added is returned when watched document is added, either created or enters Query view
modified OsImageProfileChange.Modified Modified is returned when watched document is modified
current OsImageProfileChange.Current Current is returned in stateless watch when document enters query view or is modified within.
removed OsImageProfileChange.Removed Removed is returned when OsImageProfile is deleted or leaves Query view

OsImageProfileChange.Added Message

OsImageProfile has been added to query view

Name Type Description
os_image_profile OsImageProfile
view_index int32 Integer 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

Name Type Description
os_image_profile OsImageProfile

OsImageProfileChange.Modified Message

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

Name Type Description
name string (name of OsImageProfile) Name of modified OsImageProfile
os_image_profile OsImageProfile New version of OsImageProfile or masked difference, depending on mask_changes instrumentation of issued [WatchOsImageProfileRequest] or [WatchOsImageProfilesRequest]
field_mask .google.protobuf.FieldMask Used when mask_changes is set, contains field paths of modified properties.
previous_view_index int32 Previous view index specifies previous position of modified OsImageProfile. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index int32 Integer specifying OsImageProfile new index in resulting query view.

OsImageProfileChange.Removed Message

Removed is returned when OsImageProfile is deleted or leaves Query view

Name Type Description
name string (name of OsImageProfile)
view_index int32 Integer 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

Name Type Description
added OsVersionChange.Added Added is returned when watched document is added, either created or enters Query view
modified OsVersionChange.Modified Modified is returned when watched document is modified
current OsVersionChange.Current Current is returned in stateless watch when document enters query view or is modified within.
removed OsVersionChange.Removed Removed is returned when OsVersion is deleted or leaves Query view

OsVersionChange.Added Message

OsVersion has been added to query view

Name Type Description
os_version OsVersion
view_index int32 Integer 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

Name Type Description
os_version OsVersion

OsVersionChange.Modified Message

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

Name Type Description
name string (name of OsVersion) Name of modified OsVersion
os_version OsVersion New version of OsVersion or masked difference, depending on mask_changes instrumentation of issued [WatchOsVersionRequest] or [WatchOsVersionsRequest]
field_mask .google.protobuf.FieldMask Used when mask_changes is set, contains field paths of modified properties.
previous_view_index int32 Previous view index specifies previous position of modified OsVersion. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index int32 Integer specifying OsVersion new index in resulting query view.

OsVersionChange.Removed Message

Removed is returned when OsVersion is deleted or leaves Query view

Name Type Description
name string (name of OsVersion)
view_index int32 Integer specifying removed OsVersion index. Not populated in stateless watch type.

PodManagementService Message

Name Type Description
command PodManagementService.PodState Pod state command
pod string Pod to execute the command on
service string Service (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

Name Type Description
added ProjectChange.Added Added is returned when watched document is added, either created or enters Query view
modified ProjectChange.Modified Modified is returned when watched document is modified
current ProjectChange.Current Current is returned in stateless watch when document enters query view or is modified within.
removed ProjectChange.Removed Removed is returned when Project is deleted or leaves Query view

ProjectChange.Added Message

Project has been added to query view

Name Type Description
project Project
view_index int32 Integer 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

Name Type Description
project Project

ProjectChange.Modified Message

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

Name Type Description
name string (name of Project) Name of modified Project
project Project New version of Project or masked difference, depending on mask_changes instrumentation of issued [WatchProjectRequest] or [WatchProjectsRequest]
field_mask .google.protobuf.FieldMask Used when mask_changes is set, contains field paths of modified properties.
previous_view_index int32 Previous view index specifies previous position of modified Project. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index int32 Integer specifying Project new index in resulting query view.

ProjectChange.Removed Message

Removed is returned when Project is deleted or leaves Query view

Name Type Description
name string (name of Project)
view_index int32 Integer specifying removed Project index. Not populated in stateless watch type.

ProvisionHardwareRequest Message

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

Name Type Description
provisioning_target ProvisionHardwareRequest.ProvisioningTarget
identify DeviceIdentity
challenge_response IdentityChallengeResponse

ProvisionHardwareRequest.ProvisioningTarget Message

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

Name Type Description
provisioning_policy_name string (name of ProvisioningPolicy) one of provisioning_policy_name or device_name is required
device_name string (name of Device)

ProvisionHardwareResponse Message

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

Name Type Description
identity_challenge IdentityChallenge
provisioning_response ProvisionHardwareResponse.ProvisioningResponse

ProvisionHardwareResponse.ProvisioningResponse Message

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

Name Type Description
service_account ServiceAccount
provisioning_policy_name string (name of ProvisioningPolicy)
device_name string (name of Device)

ProvisioningApprovalRequestChange Message

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

Name Type Description
added ProvisioningApprovalRequestChange.Added Added is returned when watched document is added, either created or enters Query view
modified ProvisioningApprovalRequestChange.Modified Modified is returned when watched document is modified
current ProvisioningApprovalRequestChange.Current Current is returned in stateless watch when document enters query view or is modified within.
removed ProvisioningApprovalRequestChange.Removed Removed is returned when ProvisioningApprovalRequest is deleted or leaves Query view

ProvisioningApprovalRequestChange.Added Message

ProvisioningApprovalRequest has been added to query view

Name Type Description
provisioning_approval_request ProvisioningApprovalRequest
view_index int32 Integer 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

Name Type Description
provisioning_approval_request ProvisioningApprovalRequest

ProvisioningApprovalRequestChange.Modified Message

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

Name Type Description
name string (name of ProvisioningApprovalRequest) Name of modified ProvisioningApprovalRequest
provisioning_approval_request ProvisioningApprovalRequest New version of ProvisioningApprovalRequest or masked difference, depending on mask_changes instrumentation of issued [WatchProvisioningApprovalRequestRequest] or [WatchProvisioningApprovalRequestsRequest]
field_mask .google.protobuf.FieldMask Used when mask_changes is set, contains field paths of modified properties.
previous_view_index int32 Previous view index specifies previous position of modified ProvisioningApprovalRequest. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index int32 Integer specifying ProvisioningApprovalRequest new index in resulting query view.

ProvisioningApprovalRequestChange.Removed Message

Removed is returned when ProvisioningApprovalRequest is deleted or leaves Query view

Name Type Description
name string (name of ProvisioningApprovalRequest)
view_index int32 Integer 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

Name Type Description
added ProvisioningPolicyChange.Added Added is returned when watched document is added, either created or enters Query view
modified ProvisioningPolicyChange.Modified Modified is returned when watched document is modified
current ProvisioningPolicyChange.Current Current is returned in stateless watch when document enters query view or is modified within.
removed ProvisioningPolicyChange.Removed Removed is returned when ProvisioningPolicy is deleted or leaves Query view

ProvisioningPolicyChange.Added Message

ProvisioningPolicy has been added to query view

Name Type Description
provisioning_policy ProvisioningPolicy
view_index int32 Integer 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

Name Type Description
provisioning_policy ProvisioningPolicy

ProvisioningPolicyChange.Modified Message

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

Name Type Description
name string (name of ProvisioningPolicy) Name of modified ProvisioningPolicy
provisioning_policy ProvisioningPolicy New version of ProvisioningPolicy or masked difference, depending on mask_changes instrumentation of issued [WatchProvisioningPolicyRequest] or [WatchProvisioningPoliciesRequest]
field_mask .google.protobuf.FieldMask Used when mask_changes is set, contains field paths of modified properties.
previous_view_index int32 Previous view index specifies previous position of modified ProvisioningPolicy. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index int32 Integer specifying ProvisioningPolicy new index in resulting query view.

ProvisioningPolicyChange.Removed Message

Removed is returned when ProvisioningPolicy is deleted or leaves Query view

Name Type Description
name string (name of ProvisioningPolicy)
view_index int32 Integer specifying removed ProvisioningPolicy index. Not populated in stateless watch type.

SCPService Message

Name Type Description
dir SCPService.CreateDirectory Request to create a directory
file SCPService.CreateFile Request to create a file
eot bool Request to end SCP transfer
config SCPService.Configure Request SCP configuration

SCPService.Configure Message

Name Type Description
recursive bool
direction SCPService.Configure.Direction
path string

SCPService.CreateDirectory Message

Name Type Description
path string
mode uint32s

SCPService.CreateFile Message

Name Type Description
init SCPService.CreateFile.Initialize Request file initialization
data bytes Request file data
eof bool Request to end file transfer

SCPService.CreateFile.Initialize Message

Name Type Description
path string
mode uint32s
size uint64

SSHService Message

Services on the device that the client connects to

Name Type Description
none none none

SSHService.ClientIn Message

Name Type Description
data bytes

SSHService.ClientOut Message

Name Type Description
data bytes
ssh_hello SSHService.Hello
ssh_resize_terminal SSHService.TerminalSize

SSHService.Hello Message

Name Type Description
user string
command repeated string
env map<string, string> Environment (optional)

SSHService.TerminalSize Message

Name Type Description
width uint32s
height uint32s

SystemStateService Message

Name Type Description
none none none

TpmAttestationCertChange Message

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

Name Type Description
added TpmAttestationCertChange.Added Added is returned when watched document is added, either created or enters Query view
modified TpmAttestationCertChange.Modified Modified is returned when watched document is modified
current TpmAttestationCertChange.Current Current is returned in stateless watch when document enters query view or is modified within.
removed TpmAttestationCertChange.Removed Removed is returned when TpmAttestationCert is deleted or leaves Query view

TpmAttestationCertChange.Added Message

TpmAttestationCert has been added to query view

Name Type Description
tpm_attestation_cert TpmAttestationCert
view_index int32 Integer 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

Name Type Description
tpm_attestation_cert TpmAttestationCert

TpmAttestationCertChange.Modified Message

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

Name Type Description
name string (name of TpmAttestationCert) Name of modified TpmAttestationCert
tpm_attestation_cert TpmAttestationCert New version of TpmAttestationCert or masked difference, depending on mask_changes instrumentation of issued [WatchTpmAttestationCertRequest] or [WatchTpmAttestationCertsRequest]
field_mask .google.protobuf.FieldMask Used when mask_changes is set, contains field paths of modified properties.
previous_view_index int32 Previous view index specifies previous position of modified TpmAttestationCert. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_index int32 Integer specifying TpmAttestationCert new index in resulting query view.

TpmAttestationCertChange.Removed Message

Removed is returned when TpmAttestationCert is deleted or leaves Query view

Name Type Description
name string (name of TpmAttestationCert)
view_index int32 Integer 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

Name Description
BROKER_SERVICE_UNSPECIFIED Service type not specified
BROKER_SERVICE_SSH_LEGACY SSH service
BROKER_SERVICE_SSH
BROKER_SERVICE_TCP_FORWARD_PORT TCP port forward service
BROKER_SERVICE_REBOOT Reboot service
BROKER_SERVICE_SHUTDOWN Shutdown service
BROKER_SERVICE_SCP SCP service
BROKER_SERVICE_SCP_LEGACY
BROKER_SYS_LOGS System Logs service
BROKER_APP_LOGS Application (Container) Logs service
BROKER_POD_MANAGEMENT Pod State Management service

MobileNetworkType Enumeration

Name Description
FiveGNR
LTE
UMTS

PodManagementService.PodState Enumeration

Commands for pod state management

Name Description
UNSPECIFIED Unspecified pod state
START Start the pod
STOP Stop the pod
RESTART Restart the pod

SCPService.Configure.Direction Enumeration

Name Description
DOWNLOAD
UPLOAD

SystemStateService.SystemState Enumeration

Commands for system state management

Name Description
UNSPECIFIED Unspecified system state
SHUTDOWN Shutdown the system
REBOOT Reboot the system