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

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

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

CustomizedImage Resource

CustomizedImage Resource

Name patterns:

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

Parent resources:

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

CustomizedImage Methods

Here is the list of CustomizedImage resource methods:

GetCustomizedImage Method

GetCustomizedImage

rpc GetCustomizedImage(GetCustomizedImageRequest) returns (CustomizedImage)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

BatchGetCustomizedImages Method

BatchGetCustomizedImages

rpc BatchGetCustomizedImages(BatchGetCustomizedImagesRequest) returns (BatchGetCustomizedImagesResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

GET /v1alpha2/customizedImages:batchGet 

ListCustomizedImages Method

ListCustomizedImages

rpc ListCustomizedImages(ListCustomizedImagesRequest) returns (ListCustomizedImagesResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

WatchCustomizedImage Method

WatchCustomizedImage

rpc WatchCustomizedImage(WatchCustomizedImageRequest) returns (WatchCustomizedImageResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

WatchCustomizedImages Method

WatchCustomizedImages

rpc WatchCustomizedImages(WatchCustomizedImagesRequest) returns (WatchCustomizedImagesResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

CreateCustomizedImage Method

CreateCustomizedImage

rpc CreateCustomizedImage(CreateCustomizedImageRequest) returns (CustomizedImage)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

UpdateCustomizedImage Method

UpdateCustomizedImage

rpc UpdateCustomizedImage(UpdateCustomizedImageRequest) returns (CustomizedImage)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

DeleteCustomizedImage Method

DeleteCustomizedImage

rpc DeleteCustomizedImage(DeleteCustomizedImageRequest) returns (Empty)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

RequestUrl Method

RequestUrl

rpc RequestUrl(RequestUrlRequest) returns (RequestUrlResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

CustomizedImage Messages

Here is the list of CustomizedImage resource messages:

CustomizedImage Message

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

CustomizedImage.Spec Message

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

CustomizedImage.Status Message

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

GetCustomizedImageRequest Message

A request message of the GetCustomizedImage method.

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

BatchGetCustomizedImagesRequest Message

A request message of the BatchGetCustomizedImages method.

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

BatchGetCustomizedImagesResponse Message

A response message of the BatchGetCustomizedImages method.

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

ListCustomizedImagesRequest Message

A request message of the ListCustomizedImages method.

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

ListCustomizedImagesResponse Message

A response message of the ListCustomizedImages method.

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

WatchCustomizedImageRequest Message

A request message of the WatchCustomizedImage method.

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

WatchCustomizedImageResponse Message

A response message of the WatchCustomizedImage method.

NameTypeDescription
changeCustomizedImageChange

WatchCustomizedImagesRequest Message

A request message of the WatchCustomizedImages method.

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

WatchCustomizedImagesResponse Message

A response message of the WatchCustomizedImages method.

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

WatchCustomizedImagesResponse.PageTokenChange Message

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

CreateCustomizedImageRequest Message

A request message of the CreateCustomizedImage method.

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

CreateCustomizedImageRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

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

UpdateCustomizedImageRequest Message

A request message of the UpdateCustomizedImage method.

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

UpdateCustomizedImageRequest.CAS Message

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

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

UpdateCustomizedImageRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

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

DeleteCustomizedImageRequest Message

A request message of the DeleteCustomizedImage method.

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

RequestUrlRequest Message

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

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

RequestUrlResponse Message

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

NameTypeDescription
urlstring
headersrepeated string

CustomizedImage Enumerations

Here is the list of CustomizedImage resource enumerations:

CustomizedImage.Status.State Enumeration

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

Device Resource

Device Resource

Name patterns:

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

Parent resources:

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

Device Methods

Here is the list of Device resource methods:

ListenForConnections Method

ListenForConnections

rpc ListenForConnections(ListenForConnectionsRequest) returns (ListenForConnectionsResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

OpenConnectionChannelSocket Method

OpenConnectionChannelSocket

rpc OpenConnectionChannelSocket(OpenConnectionChannelSocketRequest) returns (OpenConnectionChannelSocketResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

ConnectToDevice Method

ConnectToDevice

rpc ConnectToDevice(ConnectToDeviceRequest) returns (ConnectToDeviceResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

GetDevice Method

GetDevice

rpc GetDevice(GetDeviceRequest) returns (Device)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

BatchGetDevices Method

BatchGetDevices

rpc BatchGetDevices(BatchGetDevicesRequest) returns (BatchGetDevicesResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

GET /v1alpha2/devices:batchGet 

ListDevices Method

ListDevices

rpc ListDevices(ListDevicesRequest) returns (ListDevicesResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

WatchDevice Method

WatchDevice

rpc WatchDevice(WatchDeviceRequest) returns (WatchDeviceResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

WatchDevices Method

WatchDevices

rpc WatchDevices(WatchDevicesRequest) returns (WatchDevicesResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

CreateDevice Method

CreateDevice

rpc CreateDevice(CreateDeviceRequest) returns (Device)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

UpdateDevice Method

UpdateDevice

rpc UpdateDevice(UpdateDeviceRequest) returns (Device)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

DeleteDevice Method

DeleteDevice

rpc DeleteDevice(DeleteDeviceRequest) returns (Empty)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

ProvisionServiceAccountToDevice Method

ProvisionServiceAccountToDevice

rpc ProvisionServiceAccountToDevice(ProvisionServiceAccountToDeviceRequest) returns (ProvisionServiceAccountToDeviceResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

RemoveServiceAccountFromDevice Method

RemoveServiceAccountFromDevice

rpc RemoveServiceAccountFromDevice(RemoveServiceAccountFromDeviceRequest) returns (RemoveServiceAccountFromDeviceResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

ListPublicDevices Method

ListPublicDevices

rpc ListPublicDevices(ListPublicDevicesRequest) returns (ListPublicDevicesResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

Device Messages

Here is the list of Device resource messages:

Device Message

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

Device.Spec Message

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

Device.Status Message

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

Device.PublicListingSpec Message

NameTypeDescription
enabledbool
field_mask.google.protobuf.FieldMask

Device.Spec.NetworkingConfig Message

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

Device.Spec.NetplanConfig Message

NameTypeDescription
networkDevice.Spec.NetworkingConfig

Device.Spec.SSHConfig Message

SSHConfig defines the ssh configuration for the Device.

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

Device.Spec.AttestationConfig Message

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

Device.Spec.LoggingConfig Message

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

Device.Spec.ProxyConfig Message

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

Device.Spec.Location Message

Device location of the device.

NameTypeDescription
addressstring
placementstring

Device.Spec.NetworkingConfig.CommonOpts Message

NameTypeDescription
nonenonenone

Device.Spec.NetworkingConfig.EthOpts Message

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

Device.Spec.NetworkingConfig.WifiOpts Message

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

Device.Spec.NetworkingConfig.BridgesOpts Message

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

Device.Spec.NetworkingConfig.BondsOpts Message

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

Device.Spec.NetworkingConfig.TunnelsOpts Message

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

Device.Spec.NetworkingConfig.VlansOpts Message

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

Device.Spec.NetworkingConfig.ModemOpts Message

NameTypeDescription
apnstring
usernamestring
passwordstring
numberstring
network_idstring
device_idstring
pinstring
sim_idstring
sim_operator_idstring
auto_configbool
rendererstring
dhcp4bool
dhcp6bool
ipv6_privacybool
link_localrepeated string
criticalbool
dhcp_identifierstring
dhcp4_overridesDevice.Spec.NetworkingConfig.CommonOpts.DHCPOverrides
dhcp6_overridesDevice.Spec.NetworkingConfig.CommonOpts.DHCPOverrides
accept_rabool
addressesrepeated string
nameserversDevice.Spec.NetworkingConfig.CommonOpts.Nameservers
macaddressstring
mtuint32
optionalbool
optional_addressesrepeated string
routesrepeated Device.Spec.NetworkingConfig.CommonOpts.Routes
routing_policyDevice.Spec.NetworkingConfig.CommonOpts.RoutingPolicy
authDevice.Spec.NetworkingConfig.CommonOpts.Auth
gateway4stringDeprecated
gateway6stringDeprecated

Device.Spec.NetworkingConfig.CommonOpts.DHCPOverrides Message

NameTypeDescription
use_dnsbool
use_ntpbool
send_hostnamebool
use_hostnamebool
use_mtubool
hostnamestring
use_routesbool
route_metricint32

Device.Spec.NetworkingConfig.CommonOpts.Nameservers Message

NameTypeDescription
searchrepeated string
addressesrepeated string

Device.Spec.NetworkingConfig.CommonOpts.Routes Message

NameTypeDescription
fromstring
tostring
viastring
on_linkbool
metricint32
typestring
scopestring
tableint32

Device.Spec.NetworkingConfig.CommonOpts.RoutingPolicy Message

NameTypeDescription
fromstring
tostring
tableint32
priorityint32
markint32
type_of_serviceint32

Device.Spec.NetworkingConfig.CommonOpts.Auth Message

NameTypeDescription
key_managementstring
passwordstring
methodstring
identitystring
anonymous_identitystring
ca_certificatestring
client_certificatestring
client_keystring
client_key_passwordstring
phase2_authstring

Device.Spec.NetworkingConfig.EthOpts.Match Message

NameTypeDescription
namestring
macaddressstring
driverstring

Device.Spec.NetworkingConfig.WifiOpts.Match Message

NameTypeDescription
namestring
macaddressstring
driverstring

Device.Spec.NetworkingConfig.WifiOpts.AccessPoint Message

NameTypeDescription
passwordstringSetting password here is equivalent to using auth with key-management: psk
modestring
bssidstring
bandstring
channelstring
hiddenstring
authDevice.Spec.NetworkingConfig.CommonOpts.Auth

Device.Spec.NetworkingConfig.BridgesOpts.Parameters Message

NameTypeDescription
ageing_timeint32
priorityint32
port_priorityint32
forward_delayint32
hello_timeint32
max_ageint32
path_costint32
stpbool

Device.Spec.NetworkingConfig.BondsOpts.Parameters Message

NameTypeDescription
modestring
lacp_rateint32
mii_monitor_intervalint32
min_linksint32
transmit_hash_policyint32
ad_selectint32
all_slaves_activeint32
arp_ip_targetsbool
arp_validatestring
arp_all_targetsstring
up_delaystring
fail_over_mac_policystring
gratuitous_arpint32
packets_per_slavestring
primary_reselect_policystring
resend_igmpstring
learn_packet_intervalstring
primarystring

Device.Spec.NetworkingConfig.TunnelsOpts.Key Message

NameTypeDescription
inputint32
outputint32

Device.Spec.SSHConfig.AuthKey Message

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

Device.Status.Address Message

Interface addresses of the Device.

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

Device.Status.Condition Message

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

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

Device.Status.NetworkConfigState Message

NameTypeDescription
active_network_config_sourceDevice.Status.NetworkConfigState.NetworkConfigSource
desired_network_config_sourceDevice.Status.NetworkConfigState.NetworkConfigSource
desired_network_config_errorstring
default_configDevice.Spec.NetplanConfig
active_configDevice.Spec.NetplanConfig
desired_configDevice.Spec.NetplanConfig

Device.Status.ProxyConfigStatus Message

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

Device.Status.DeviceInfo Message

Device Information

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

Device.Status.NormalizedAddress Message

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

Device.Status.DeviceInfo.HardwareInformation Message

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

Device.Status.DeviceInfo.NetworkInterface Message

Network Interface

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

Device.Status.DeviceInfo.ControlPlaneInterfaceInfo Message

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

Device.Status.DeviceInfo.HardwareInformation.Capability Message

NameTypeDescription
namestring
descriptionstring

Device.Status.DeviceInfo.HardwareInformation.OS Message

NameTypeDescription
operating_systemstring
kernel_versionstring
os_imagestring
container_runtime_versionstring

Device.Status.DeviceInfo.HardwareInformation.BIOS Message

TODO: Add capabilities and size

NameTypeDescription
vendorstring
bios_versionstring
release_datestring

Device.Status.DeviceInfo.HardwareInformation.System Message

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

Device.Status.DeviceInfo.HardwareInformation.CPU Message

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

Device.Status.DeviceInfo.HardwareInformation.Block Message

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

Device.Status.DeviceInfo.HardwareInformation.Network Message

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

Device.Status.DeviceInfo.HardwareInformation.GPU Message

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

Device.Status.DeviceInfo.HardwareInformation.PCIDevice Message

Revisit: May be just device ??

NameTypeDescription
addressstring
vendorstring
productstring
namestring
subvendorstring

Device.Status.DeviceInfo.HardwareInformation.MemoryInfo Message

NameTypeDescription
memoryrepeated Device.Status.DeviceInfo.HardwareInformation.MemoryInfo.Memory

Device.Status.DeviceInfo.HardwareInformation.HailoInfo Message

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

Device.Status.DeviceInfo.HardwareInformation.NvidiaInfo Message

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

Device.Status.DeviceInfo.HardwareInformation.ModemStatus Message

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

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

NameTypeDescription
chassisstring
uuidstring
sku_numberstring
familystring

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

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

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

NameTypeDescription
typestring
size_bytesint64

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

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

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

NameTypeDescription
namestring
size_bytesint64
mount_pointstring
typestring

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

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

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

NameTypeDescription
indexint64
deviceDevice.Status.DeviceInfo.HardwareInformation.PCIDevice

Device.Status.DeviceInfo.HardwareInformation.MemoryInfo.Memory Message

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

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

NameTypeDescription
descriptionstring
productstring
vendorstring
serialstring
slotstring
size_bytesint64
frequency_hzint64
width_bitsint32

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

NameTypeDescription
dev_idstring
control_proto_versionstring
firmware_versionstring
logger_versionstring
board_namestring
serial_numberstring
part_numberstring
product_namestring
neural_network_core_clock_ratestring

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

NameTypeDescription
idstring
product_namestring

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

NameTypeDescription
drx_cyclestring
mico_modestring

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

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

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

NameTypeDescription
apnstring
ip_typestring
passwordstring
userstring

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

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

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

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

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

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

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

NameTypeDescription
activation_statestring
cdma1x_registration_statestring
esnstring
evdo_registration_statestring
meidstring
nidstring
sidstring

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

NameTypeDescription
recentstring
valuestring

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

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

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.Signal5g Message

NameTypeDescription
error_ratestring
rsrpstring
rsrqstring
snrstring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalCdma1x Message

NameTypeDescription
eciostring
error_ratestring
rssistring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalEvdo Message

NameTypeDescription
eciostring
error_ratestring
iostring
rssistring
sinrstring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalGsm Message

NameTypeDescription
error_ratestring
rssistring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalLte Message

NameTypeDescription
error_ratestring
rsrpstring
rsrqstring
rssistring
snrstring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalRefresh Message

NameTypeDescription
ratestring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalThreshold Message

NameTypeDescription
error_ratestring
rssistring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalUmts Message

NameTypeDescription
eciostring
error_ratestring
rscpstring
rssistring

Device.Status.DeviceInfo.HardwareInformation.ModemStatus.Signal Message

NameTypeDescription
five_gDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.Signal5g
cdma1xDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalCdma1x
evdoDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalEvdo
gsmDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalGsm
lte_signalDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalLte
refreshDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalRefresh
thresholdDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalThreshold
umtsDevice.Status.DeviceInfo.HardwareInformation.ModemStatus.SignalUmts

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

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

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

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

Device.Status.DeviceInfo.NetworkInterface.ASInfo Message

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

Device.Status.DeviceInfo.NetworkInterface.Carrier Message

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

ListenForConnectionsRequest Message

Request message for method [ListenForConnections][ntt.devices.v1alpha2.ListenForConnections] Registers a new session listener (agent) to the endpoint. This method is used by agents on the device and not meant for use of users.

NameTypeDescription
register_listenerListenForConnectionsRequest.RegisterListenerThis is a hello message from the agent with its name.
channel_open_errorListenForConnectionsRequest.ChannelOpenErrorWhen the agent failed to open a requested channel, this message will be sent from the agent to the endpoint.
keep_aliveListenForConnectionsRequest.KeepAliveKeepAlive.

ListenForConnectionsRequest.RegisterListener Message

NameTypeDescription
devicestring (name of Device)The self-declared device name, used for authentication/authorization.

ListenForConnectionsRequest.ChannelOpenError Message

NameTypeDescription
channelstringID of the channel failed to open.
messagestringError message.

ListenForConnectionsRequest.KeepAlive Message

NameTypeDescription
nonenonenone

ListenForConnectionsResponse Message

Response message for method [ListenForConnections][ntt.devices.v1alpha2.ListenForConnections] Responses from the endpoint to session agents.

NameTypeDescription
channel_requestedListenForConnectionsResponse.ChannelRequestedNotifies a new channel has been requested by a client.
keep_aliveListenForConnectionsResponse.KeepAliveKeepalive

ListenForConnectionsResponse.ChannelRequested Message

NameTypeDescription
channelstringChannel ID
serviceBrokerServiceTypeDevice service;
argstringInitial argument (optional)

ListenForConnectionsResponse.KeepAlive Message

NameTypeDescription
nonenonenone

OpenConnectionChannelSocketRequest Message

Request message for method [OpenConnectionChannelSocket][ntt.devices.v1alpha2.OpenConnectionChannelSocket] Opens a new socket for a session by agent at an endpoint. This session is usually initiated by the agent who received a ChannelRequested message on a ListenForConnection session. The session is used for data plane to transfer data for a channel between the endpoint and the agent.

NameTypeDescription
register_socketOpenConnectionChannelSocketRequest.RegisterSocketRegisters a new socket on the endpoint.
databytesData from the agent to the endpoint (client).
errorbytesError from the agent to the endpoint (client).
ackAckAck from the agent to the endpoint (client)

OpenConnectionChannelSocketRequest.RegisterSocket Message

NameTypeDescription
devicestring (name of Device)Device name, to be authenticated/authorized.
channelstringChannel ID, requested by the endpoint in the ChannelRequested message.

OpenConnectionChannelSocketResponse Message

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

NameTypeDescription
databytesData from the endpoint (client) to the agent.
ackAckAck from the client to the endpoint (device)

ConnectToDeviceRequest Message

Request message for method [ConnectToDevice][ntt.devices.v1alpha2.ConnectToDevice] ConnectToDevice connects a local service provided by a Device.

NameTypeDescription
open_requestConnectToDeviceRequest.OpenRequestThe initiation message to open a channel to a device.
databytesAny data sent to the device through the endpoint.
ackAckAck from the user to the endpoint (device)
keep_aliveConnectToDeviceRequest.KeepAlive

ConnectToDeviceRequest.OpenRequest Message

NameTypeDescription
devicestring (name of Device)Device name to connect.
serviceBrokerServiceTypeDevice service
argstringInitial argument (optional)

ConnectToDeviceRequest.KeepAlive Message

NameTypeDescription
nonenonenone

ConnectToDeviceResponse Message

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

NameTypeDescription
open_responseConnectToDeviceResponse.OpenResponseNotification from the agent (endpoint) to the channel has been opened.
databytesAny data from the device (endpoint) to the client.
errorbytesAny error from the device (endpoint) to the client.
ackAckAck from the device to the endpoint (client)

ConnectToDeviceResponse.OpenResponse Message

NameTypeDescription
nonenonenone

GetDeviceRequest Message

A request message of the GetDevice method.

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

BatchGetDevicesRequest Message

A request message of the BatchGetDevices method.

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

BatchGetDevicesResponse Message

A response message of the BatchGetDevices method.

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

ListDevicesRequest Message

A request message of the ListDevices method.

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

ListDevicesResponse Message

A response message of the ListDevices method.

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

WatchDeviceRequest Message

A request message of the WatchDevice method.

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

WatchDeviceResponse Message

A response message of the WatchDevice method.

NameTypeDescription
changeDeviceChange

WatchDevicesRequest Message

A request message of the WatchDevices method.

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

WatchDevicesResponse Message

A response message of the WatchDevices method.

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

WatchDevicesResponse.PageTokenChange Message

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

CreateDeviceRequest Message

A request message of the CreateDevice method.

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

CreateDeviceRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

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

UpdateDeviceRequest Message

A request message of the UpdateDevice method.

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

UpdateDeviceRequest.CAS Message

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

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

UpdateDeviceRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

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

DeleteDeviceRequest Message

A request message of the DeleteDevice method.

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

ProvisionServiceAccountToDeviceRequest Message

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

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

ProvisionServiceAccountToDeviceResponse Message

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

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

RemoveServiceAccountFromDeviceRequest Message

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

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

RemoveServiceAccountFromDeviceResponse Message

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

NameTypeDescription
nonenonenone

ListPublicDevicesRequest Message

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

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

ListPublicDevicesResponse Message

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

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

Device Enumerations

Here is the list of Device resource enumerations:

Device.Spec.NetworkConfigMode Enumeration

MERGE or REPLACE the api netplan_config with the baked in config in the device

NameDescription
MERGE
REPLACE

Device.Status.NetworkConfigState.NetworkConfigSource Enumeration

NameDescription
UNKNOWN
DEFAULT_CONFIG
API_CONFIG
MERGED_DEFAULT_AND_API_CONFIG
PREVIOUS_MERGED_DEFAULT_AND_API_CONFIG
PREVIOUS_API_CONFIG

Device.Status.ProxyConfigStatus.ProxyConfigSource Enumeration

NameDescription
NO_CONFIG
DEFAULT_CONFIG
API_CONFIG

DeviceType Resource

DeviceType Resource

Name patterns:

  • deviceTypes/{device_type}

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

DeviceType Methods

Here is the list of DeviceType resource methods:

GetDeviceType Method

GetDeviceType

rpc GetDeviceType(GetDeviceTypeRequest) returns (DeviceType)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

GET /v1alpha2/{name=deviceTypes/*} 

BatchGetDeviceTypes Method

BatchGetDeviceTypes

rpc BatchGetDeviceTypes(BatchGetDeviceTypesRequest) returns (BatchGetDeviceTypesResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

GET /v1alpha2/deviceTypes:batchGet 

ListDeviceTypes Method

ListDeviceTypes

rpc ListDeviceTypes(ListDeviceTypesRequest) returns (ListDeviceTypesResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

GET /v1alpha2/deviceTypes 

WatchDeviceType Method

WatchDeviceType

rpc WatchDeviceType(WatchDeviceTypeRequest) returns (WatchDeviceTypeResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

WatchDeviceTypes Method

WatchDeviceTypes

rpc WatchDeviceTypes(WatchDeviceTypesRequest) returns (WatchDeviceTypesResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

POST /v1alpha2/deviceTypes:watch 

CreateDeviceType Method

CreateDeviceType

rpc CreateDeviceType(CreateDeviceTypeRequest) returns (DeviceType)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

POST /v1alpha2/deviceTypes (BODY: device_type)

UpdateDeviceType Method

UpdateDeviceType

rpc UpdateDeviceType(UpdateDeviceTypeRequest) returns (DeviceType)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

DeleteDeviceType Method

DeleteDeviceType

rpc DeleteDeviceType(DeleteDeviceTypeRequest) returns (Empty)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

DELETE /v1alpha2/{name=deviceTypes/*} 

DeviceType Messages

Here is the list of DeviceType resource messages:

DeviceType Message

NameTypeDescription
namestring (name of DeviceType)Name of DeviceType When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMeta
display_namestringDisplay name of Device Type
hardwareDeviceType.Hardware
architectureDeviceType.Architecture
descriptionstringDescription of the Device Type

GetDeviceTypeRequest Message

A request message of the GetDeviceType method.

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

BatchGetDeviceTypesRequest Message

A request message of the BatchGetDeviceTypes method.

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

BatchGetDeviceTypesResponse Message

A response message of the BatchGetDeviceTypes method.

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

ListDeviceTypesRequest Message

A request message of the ListDeviceTypes method.

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

ListDeviceTypesResponse Message

A response message of the ListDeviceTypes method.

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

WatchDeviceTypeRequest Message

A request message of the WatchDeviceType method.

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

WatchDeviceTypeResponse Message

A response message of the WatchDeviceType method.

NameTypeDescription
changeDeviceTypeChange

WatchDeviceTypesRequest Message

A request message of the WatchDeviceTypes method.

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

WatchDeviceTypesResponse Message

A response message of the WatchDeviceTypes method.

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

WatchDeviceTypesResponse.PageTokenChange Message

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

CreateDeviceTypeRequest Message

A request message of the CreateDeviceType method.

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

CreateDeviceTypeRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

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

UpdateDeviceTypeRequest Message

A request message of the UpdateDeviceType method.

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

UpdateDeviceTypeRequest.CAS Message

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

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

UpdateDeviceTypeRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

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

DeleteDeviceTypeRequest Message

A request message of the DeleteDeviceType method.

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

DeviceType Enumerations

Here is the list of DeviceType resource enumerations:

DeviceType.Hardware Enumeration

Hardware (e.g. Generic, Raspberry Pi)

NameDescription
HARDWARE_UNSPECIFIED
GENERIC
RASPBERRYPI

DeviceType.Architecture Enumeration

Architecture name (e.g. amd64)

NameDescription
ARCHITECTURE_UNSPECIFIED
AMD64
ARM64

OsImageProfile Resource

OsImageProfile Resource

Name patterns:

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

Parent resources:

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

OsImageProfile Methods

Here is the list of OsImageProfile resource methods:

GetOsImageProfile Method

GetOsImageProfile

rpc GetOsImageProfile(GetOsImageProfileRequest) returns (OsImageProfile)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

BatchGetOsImageProfiles Method

BatchGetOsImageProfiles

rpc BatchGetOsImageProfiles(BatchGetOsImageProfilesRequest) returns (BatchGetOsImageProfilesResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

GET /v1alpha2/osImageProfiles:batchGet 

ListOsImageProfiles Method

ListOsImageProfiles

rpc ListOsImageProfiles(ListOsImageProfilesRequest) returns (ListOsImageProfilesResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

WatchOsImageProfile Method

WatchOsImageProfile

rpc WatchOsImageProfile(WatchOsImageProfileRequest) returns (WatchOsImageProfileResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

WatchOsImageProfiles Method

WatchOsImageProfiles

rpc WatchOsImageProfiles(WatchOsImageProfilesRequest) returns (WatchOsImageProfilesResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

CreateOsImageProfile Method

CreateOsImageProfile

rpc CreateOsImageProfile(CreateOsImageProfileRequest) returns (OsImageProfile)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

UpdateOsImageProfile Method

UpdateOsImageProfile

rpc UpdateOsImageProfile(UpdateOsImageProfileRequest) returns (OsImageProfile)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

DeleteOsImageProfile Method

DeleteOsImageProfile

rpc DeleteOsImageProfile(DeleteOsImageProfileRequest) returns (Empty)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

OsImageProfile Messages

Here is the list of OsImageProfile resource messages:

OsImageProfile Message

NameTypeDescription
namestring (name of OsImageProfile)Name of OsImageProfile When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMeta
display_namestringDisplay name of the profile
device_typestring (reference to DeviceType)Device type for the profile
install_ai_acceleratorboolInstall runtimes and drivers for Hailo-8 and NVIDIA CUDA.
encryptionboolEnable disk encryption
disk_mappingstringDisk Mapping YAML configuration.
network_agentstringNetwork Agent YAML configuration.
ntpstringNTP Server settings.
http_proxystringHTTP PROXY address
https_proxystringHTTPS PROXY address
no_proxystringNO Proxy addresses (comma separated).

GetOsImageProfileRequest Message

A request message of the GetOsImageProfile method.

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

BatchGetOsImageProfilesRequest Message

A request message of the BatchGetOsImageProfiles method.

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

BatchGetOsImageProfilesResponse Message

A response message of the BatchGetOsImageProfiles method.

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

ListOsImageProfilesRequest Message

A request message of the ListOsImageProfiles method.

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

ListOsImageProfilesResponse Message

A response message of the ListOsImageProfiles method.

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

WatchOsImageProfileRequest Message

A request message of the WatchOsImageProfile method.

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

WatchOsImageProfileResponse Message

A response message of the WatchOsImageProfile method.

NameTypeDescription
changeOsImageProfileChange

WatchOsImageProfilesRequest Message

A request message of the WatchOsImageProfiles method.

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

WatchOsImageProfilesResponse Message

A response message of the WatchOsImageProfiles method.

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

WatchOsImageProfilesResponse.PageTokenChange Message

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

CreateOsImageProfileRequest Message

A request message of the CreateOsImageProfile method.

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

CreateOsImageProfileRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

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

UpdateOsImageProfileRequest Message

A request message of the UpdateOsImageProfile method.

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

UpdateOsImageProfileRequest.CAS Message

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

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

UpdateOsImageProfileRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

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

DeleteOsImageProfileRequest Message

A request message of the DeleteOsImageProfile method.

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

OsVersion Resource

OsVersion Resource

Name patterns:

  • osVersions/{os_version}

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

OsVersion Methods

Here is the list of OsVersion resource methods:

GetOsVersion Method

GetOsVersion

rpc GetOsVersion(GetOsVersionRequest) returns (OsVersion)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

GET /v1alpha2/{name=osVersions/*} 

BatchGetOsVersions Method

BatchGetOsVersions

rpc BatchGetOsVersions(BatchGetOsVersionsRequest) returns (BatchGetOsVersionsResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

GET /v1alpha2/osVersions:batchGet 

ListOsVersions Method

ListOsVersions

rpc ListOsVersions(ListOsVersionsRequest) returns (ListOsVersionsResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

GET /v1alpha2/osVersions 

WatchOsVersion Method

WatchOsVersion

rpc WatchOsVersion(WatchOsVersionRequest) returns (WatchOsVersionResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

WatchOsVersions Method

WatchOsVersions

rpc WatchOsVersions(WatchOsVersionsRequest) returns (WatchOsVersionsResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

POST /v1alpha2/osVersions:watch 

CreateOsVersion Method

CreateOsVersion

rpc CreateOsVersion(CreateOsVersionRequest) returns (OsVersion)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

POST /v1alpha2/osVersions (BODY: os_version)

UpdateOsVersion Method

UpdateOsVersion

rpc UpdateOsVersion(UpdateOsVersionRequest) returns (OsVersion)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

DeleteOsVersion Method

DeleteOsVersion

rpc DeleteOsVersion(DeleteOsVersionRequest) returns (Empty)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

DELETE /v1alpha2/{name=osVersions/*} 

OsVersion Messages

Here is the list of OsVersion resource messages:

OsVersion Message

NameTypeDescription
namestring (name of OsVersion)Name of OsVersion When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMeta
versionstringThe version name.
device_typestring (reference to DeviceType)Supported device type.
minimum_previous_versionstringThe minum previous OS version that is required to upgrade devices to the OS version.
channelOsVersion.Channel

GetOsVersionRequest Message

A request message of the GetOsVersion method.

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

BatchGetOsVersionsRequest Message

A request message of the BatchGetOsVersions method.

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

BatchGetOsVersionsResponse Message

A response message of the BatchGetOsVersions method.

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

ListOsVersionsRequest Message

A request message of the ListOsVersions method.

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

ListOsVersionsResponse Message

A response message of the ListOsVersions method.

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

WatchOsVersionRequest Message

A request message of the WatchOsVersion method.

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

WatchOsVersionResponse Message

A response message of the WatchOsVersion method.

NameTypeDescription
changeOsVersionChange

WatchOsVersionsRequest Message

A request message of the WatchOsVersions method.

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

WatchOsVersionsResponse Message

A response message of the WatchOsVersions method.

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

WatchOsVersionsResponse.PageTokenChange Message

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

CreateOsVersionRequest Message

A request message of the CreateOsVersion method.

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

CreateOsVersionRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

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

UpdateOsVersionRequest Message

A request message of the UpdateOsVersion method.

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

UpdateOsVersionRequest.CAS Message

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

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

UpdateOsVersionRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

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

DeleteOsVersionRequest Message

A request message of the DeleteOsVersion method.

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

OsVersion Enumerations

Here is the list of OsVersion resource enumerations:

OsVersion.Channel Enumeration

NameDescription
CHANNEL_UNSPECIFIED
NORMAL
BETA

Project Resource

Project Resource

Name patterns:

  • projects/{project}

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

Project Methods

Here is the list of Project resource methods:

GetProject Method

GetProject

rpc GetProject(GetProjectRequest) returns (Project)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

GET /v1alpha2/{name=projects/*} 

BatchGetProjects Method

BatchGetProjects

rpc BatchGetProjects(BatchGetProjectsRequest) returns (BatchGetProjectsResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

GET /v1alpha2/projects:batchGet 

ListProjects Method

ListProjects

rpc ListProjects(ListProjectsRequest) returns (ListProjectsResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

GET /v1alpha2/projects 

WatchProject Method

WatchProject

rpc WatchProject(WatchProjectRequest) returns (WatchProjectResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

WatchProjects Method

WatchProjects

rpc WatchProjects(WatchProjectsRequest) returns (WatchProjectsResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

POST /v1alpha2/projects:watch 

CreateProject Method

CreateProject

rpc CreateProject(CreateProjectRequest) returns (Project)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

POST /v1alpha2/projects (BODY: project)

UpdateProject Method

UpdateProject

rpc UpdateProject(UpdateProjectRequest) returns (Project)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

DeleteProject Method

DeleteProject

rpc DeleteProject(DeleteProjectRequest) returns (Empty)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

DELETE /v1alpha2/{name=projects/*} 

Project Messages

Here is the list of Project resource messages:

Project Message

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

GetProjectRequest Message

A request message of the GetProject method.

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

BatchGetProjectsRequest Message

A request message of the BatchGetProjects method.

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

BatchGetProjectsResponse Message

A response message of the BatchGetProjects method.

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

ListProjectsRequest Message

A request message of the ListProjects method.

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

ListProjectsResponse Message

A response message of the ListProjects method.

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

WatchProjectRequest Message

A request message of the WatchProject method.

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

WatchProjectResponse Message

A response message of the WatchProject method.

NameTypeDescription
changeProjectChange

WatchProjectsRequest Message

A request message of the WatchProjects method.

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

WatchProjectsResponse Message

A response message of the WatchProjects method.

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

WatchProjectsResponse.PageTokenChange Message

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

CreateProjectRequest Message

A request message of the CreateProject method.

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

CreateProjectRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

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

UpdateProjectRequest Message

A request message of the UpdateProject method.

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

UpdateProjectRequest.CAS Message

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

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

UpdateProjectRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

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

DeleteProjectRequest Message

A request message of the DeleteProject method.

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

ProvisioningApprovalRequest Resource

ProvisioningApprovalRequest Resource

Name patterns:

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

Parent resources:

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

ProvisioningApprovalRequest Methods

Here is the list of ProvisioningApprovalRequest resource methods:

GetProvisioningApprovalRequest Method

GetProvisioningApprovalRequest

rpc GetProvisioningApprovalRequest(GetProvisioningApprovalRequestRequest) returns (ProvisioningApprovalRequest)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

BatchGetProvisioningApprovalRequests Method

BatchGetProvisioningApprovalRequests

rpc BatchGetProvisioningApprovalRequests(BatchGetProvisioningApprovalRequestsRequest) returns (BatchGetProvisioningApprovalRequestsResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

GET /v1alpha2/provisioningApprovalRequests:batchGet 

ListProvisioningApprovalRequests Method

ListProvisioningApprovalRequests

rpc ListProvisioningApprovalRequests(ListProvisioningApprovalRequestsRequest) returns (ListProvisioningApprovalRequestsResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

WatchProvisioningApprovalRequest Method

WatchProvisioningApprovalRequest

rpc WatchProvisioningApprovalRequest(WatchProvisioningApprovalRequestRequest) returns (WatchProvisioningApprovalRequestResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

WatchProvisioningApprovalRequests Method

WatchProvisioningApprovalRequests

rpc WatchProvisioningApprovalRequests(WatchProvisioningApprovalRequestsRequest) returns (WatchProvisioningApprovalRequestsResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

CreateProvisioningApprovalRequest Method

CreateProvisioningApprovalRequest

rpc CreateProvisioningApprovalRequest(CreateProvisioningApprovalRequestRequest) returns (ProvisioningApprovalRequest)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

UpdateProvisioningApprovalRequest Method

UpdateProvisioningApprovalRequest

rpc UpdateProvisioningApprovalRequest(UpdateProvisioningApprovalRequestRequest) returns (ProvisioningApprovalRequest)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

DeleteProvisioningApprovalRequest Method

DeleteProvisioningApprovalRequest

rpc DeleteProvisioningApprovalRequest(DeleteProvisioningApprovalRequestRequest) returns (Empty)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

ProvisionDeviceForApprovedRequest Method

ProvisionDeviceForApprovedRequest

rpc ProvisionDeviceForApprovedRequest(ProvisionDeviceForApprovedRequestRequest) returns (ProvisionDeviceForApprovedRequestResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

ProvisioningApprovalRequest Messages

Here is the list of ProvisioningApprovalRequest resource messages:

ProvisioningApprovalRequest Message

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

ProvisioningApprovalRequest.Spec Message

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

ProvisioningApprovalRequest.Status Message

NameTypeDescription
nonenonenone

GetProvisioningApprovalRequestRequest Message

A request message of the GetProvisioningApprovalRequest method.

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

BatchGetProvisioningApprovalRequestsRequest Message

A request message of the BatchGetProvisioningApprovalRequests method.

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

BatchGetProvisioningApprovalRequestsResponse Message

A response message of the BatchGetProvisioningApprovalRequests method.

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

ListProvisioningApprovalRequestsRequest Message

A request message of the ListProvisioningApprovalRequests method.

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

ListProvisioningApprovalRequestsResponse Message

A response message of the ListProvisioningApprovalRequests method.

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

WatchProvisioningApprovalRequestRequest Message

A request message of the WatchProvisioningApprovalRequest method.

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

WatchProvisioningApprovalRequestResponse Message

A response message of the WatchProvisioningApprovalRequest method.

NameTypeDescription
changeProvisioningApprovalRequestChange

WatchProvisioningApprovalRequestsRequest Message

A request message of the WatchProvisioningApprovalRequests method.

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

WatchProvisioningApprovalRequestsResponse Message

A response message of the WatchProvisioningApprovalRequests method.

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

WatchProvisioningApprovalRequestsResponse.PageTokenChange Message

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

CreateProvisioningApprovalRequestRequest Message

A request message of the CreateProvisioningApprovalRequest method.

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

CreateProvisioningApprovalRequestRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

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

UpdateProvisioningApprovalRequestRequest Message

A request message of the UpdateProvisioningApprovalRequest method.

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

UpdateProvisioningApprovalRequestRequest.CAS Message

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

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

UpdateProvisioningApprovalRequestRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

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

DeleteProvisioningApprovalRequestRequest Message

A request message of the DeleteProvisioningApprovalRequest method.

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

ProvisionDeviceForApprovedRequestRequest Message

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

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

ProvisionDeviceForApprovedRequestResponse Message

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

NameTypeDescription
deviceDevice

ProvisioningApprovalRequest Enumerations

Here is the list of ProvisioningApprovalRequest resource enumerations:

ProvisioningApprovalRequest.Spec.Conclusion Enumeration

NameDescription
CONCLUSION_NOT_SPECIFIED
APPROVED
REVOKED

ProvisioningPolicy Resource

ProvisioningPolicy Resource

Name patterns:

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

Parent resources:

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

ProvisioningPolicy Methods

Here is the list of ProvisioningPolicy resource methods:

GetProvisioningPolicy Method

GetProvisioningPolicy

rpc GetProvisioningPolicy(GetProvisioningPolicyRequest) returns (ProvisioningPolicy)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

BatchGetProvisioningPolicies Method

BatchGetProvisioningPolicies

rpc BatchGetProvisioningPolicies(BatchGetProvisioningPoliciesRequest) returns (BatchGetProvisioningPoliciesResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

GET /v1alpha2/provisioningPolicies:batchGet 

ListProvisioningPolicies Method

ListProvisioningPolicies

rpc ListProvisioningPolicies(ListProvisioningPoliciesRequest) returns (ListProvisioningPoliciesResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

WatchProvisioningPolicy Method

WatchProvisioningPolicy

rpc WatchProvisioningPolicy(WatchProvisioningPolicyRequest) returns (WatchProvisioningPolicyResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

WatchProvisioningPolicies Method

WatchProvisioningPolicies

rpc WatchProvisioningPolicies(WatchProvisioningPoliciesRequest) returns (WatchProvisioningPoliciesResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

CreateProvisioningPolicy Method

CreateProvisioningPolicy

rpc CreateProvisioningPolicy(CreateProvisioningPolicyRequest) returns (ProvisioningPolicy)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

UpdateProvisioningPolicy Method

UpdateProvisioningPolicy

rpc UpdateProvisioningPolicy(UpdateProvisioningPolicyRequest) returns (ProvisioningPolicy)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

DeleteProvisioningPolicy Method

DeleteProvisioningPolicy

rpc DeleteProvisioningPolicy(DeleteProvisioningPolicyRequest) returns (Empty)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

ProvisionServiceAccountToProvisioningPolicy Method

ProvisionServiceAccountToProvisioningPolicy

rpc ProvisionServiceAccountToProvisioningPolicy(ProvisionServiceAccountToProvisioningPolicyRequest) returns (ProvisionServiceAccountToProvisioningPolicyResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

RemoveServiceAccountFromProvisioningPolicy Method

RemoveServiceAccountFromProvisioningPolicy

rpc RemoveServiceAccountFromProvisioningPolicy(RemoveServiceAccountFromProvisioningPolicyRequest) returns (RemoveServiceAccountFromProvisioningPolicyResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

ProvisionDeviceViaPolicy Method

ProvisionDeviceViaPolicy

rpc ProvisionDeviceViaPolicy(ProvisionDeviceViaPolicyRequest) returns (ProvisionDeviceViaPolicyResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

RequestProvisioningApproval Method

RequestProvisioningApproval

rpc RequestProvisioningApproval(RequestProvisioningApprovalRequest) returns (RequestProvisioningApprovalResponse)

with the following messages:

Required Permissions:

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

The equivalent REST API is:

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

ProvisioningPolicy Messages

Here is the list of ProvisioningPolicy resource messages:

ProvisioningPolicy Message

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

ProvisioningPolicy.Spec Message

NameTypeDescription
modeProvisioningPolicy.ModeProvisioning mode.
service_accountstring (reference to ServiceAccount)The service account associated with the policy. Devices have to have a key of this service account to conduct self-provisioning.
device_name_formatstringTemplate for device name.
labelsmap<string, string>Deprecated: Use template instead. labels that provisioned Device resources will have.
templateProvisioningPolicy.Spec.TemplateTemplate for Devices to be generated. Used only on Device resource creation, changing the value won’t affect existing Device resources.
identity_field_pathsrepeated stringDevice hardware identity paths (fields) to use for matching pre-existing device resources when provisioning.
rolestring (reference to Role)Role that the newly created service account should be bound to. If not specified, will use the default value of “roles/devices-device-agent”.
conditionstring (reference to Condition)Condition for the role binding for the default role. If not specified, will use the default value of “device-isolation”.

ProvisioningPolicy.Status Message

NameTypeDescription
nonenonenone

ProvisioningPolicy.Spec.Template Message

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

GetProvisioningPolicyRequest Message

A request message of the GetProvisioningPolicy method.

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

BatchGetProvisioningPoliciesRequest Message

A request message of the BatchGetProvisioningPolicies method.

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

BatchGetProvisioningPoliciesResponse Message

A response message of the BatchGetProvisioningPolicies method.

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

ListProvisioningPoliciesRequest Message

A request message of the ListProvisioningPolicies method.

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

ListProvisioningPoliciesResponse Message

A response message of the ListProvisioningPolicies method.

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

WatchProvisioningPolicyRequest Message

A request message of the WatchProvisioningPolicy method.

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

WatchProvisioningPolicyResponse Message

A response message of the WatchProvisioningPolicy method.

NameTypeDescription
changeProvisioningPolicyChange

WatchProvisioningPoliciesRequest Message

A request message of the WatchProvisioningPolicies method.

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

WatchProvisioningPoliciesResponse Message

A response message of the WatchProvisioningPolicies method.

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

WatchProvisioningPoliciesResponse.PageTokenChange Message

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

CreateProvisioningPolicyRequest Message

A request message of the CreateProvisioningPolicy method.

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

CreateProvisioningPolicyRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

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

UpdateProvisioningPolicyRequest Message

A request message of the UpdateProvisioningPolicy method.

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

UpdateProvisioningPolicyRequest.CAS Message

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

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

UpdateProvisioningPolicyRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

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

DeleteProvisioningPolicyRequest Message

A request message of the DeleteProvisioningPolicy method.

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

ProvisionServiceAccountToProvisioningPolicyRequest Message

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

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

ProvisionServiceAccountToProvisioningPolicyResponse Message

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

NameTypeDescription
service_accountServiceAccount

RemoveServiceAccountFromProvisioningPolicyRequest Message

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

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

RemoveServiceAccountFromProvisioningPolicyResponse Message

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

NameTypeDescription
removedbool

ProvisionDeviceViaPolicyRequest Message

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

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

ProvisionDeviceViaPolicyResponse Message

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

NameTypeDescription
deviceDevice
service_accountServiceAccount

RequestProvisioningApprovalRequest Message

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

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

RequestProvisioningApprovalResponse Message

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

NameTypeDescription
requestProvisioningApprovalRequest
service_accountServiceAccount

ProvisioningPolicy Enumerations

Here is the list of ProvisioningPolicy resource enumerations:

ProvisioningPolicy.Mode Enumeration

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

Devices Service Shared Methods and Messages

Devices Service Shared Messages

Here is the list of Devices service shared messages:

Ack Message

Ack message that contains how much data should have been processed

NameTypeDescription
processeduint64

CustomizedImageChange Message

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

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

CustomizedImageChange.Added Message

CustomizedImage has been added to query view

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

CustomizedImageChange.Current Message

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

NameTypeDescription
customized_imageCustomizedImage

CustomizedImageChange.Modified Message

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

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

CustomizedImageChange.Removed Message

Removed is returned when CustomizedImage is deleted or leaves Query view

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

DeviceChange Message

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

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

DeviceChange.Added Message

Device has been added to query view

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

DeviceChange.Current Message

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

NameTypeDescription
deviceDevice

DeviceChange.Modified Message

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

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

DeviceChange.Removed Message

Removed is returned when Device is deleted or leaves Query view

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

DeviceTypeChange Message

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

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

DeviceTypeChange.Added Message

DeviceType has been added to query view

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

DeviceTypeChange.Current Message

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

NameTypeDescription
device_typeDeviceType

DeviceTypeChange.Modified Message

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

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

DeviceTypeChange.Removed Message

Removed is returned when DeviceType is deleted or leaves Query view

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

LogsService Message

NameTypeDescription
nonenonenone

LogsService.ToClient Message

Messages sent only to a client

NameTypeDescription
databytesLogs data

LogsService.ToDevice Message

Messages sent only to a device

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

OsImageProfileChange Message

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

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

OsImageProfileChange.Added Message

OsImageProfile has been added to query view

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

OsImageProfileChange.Current Message

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

NameTypeDescription
os_image_profileOsImageProfile

OsImageProfileChange.Modified Message

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

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

OsImageProfileChange.Removed Message

Removed is returned when OsImageProfile is deleted or leaves Query view

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

OsVersionChange Message

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

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

OsVersionChange.Added Message

OsVersion has been added to query view

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

OsVersionChange.Current Message

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

NameTypeDescription
os_versionOsVersion

OsVersionChange.Modified Message

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

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

OsVersionChange.Removed Message

Removed is returned when OsVersion is deleted or leaves Query view

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

PodManagementService Message

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

ProjectChange Message

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

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

ProjectChange.Added Message

Project has been added to query view

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

ProjectChange.Current Message

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

NameTypeDescription
projectProject

ProjectChange.Modified Message

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

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

ProjectChange.Removed Message

Removed is returned when Project is deleted or leaves Query view

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

ProvisioningApprovalRequestChange Message

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

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

ProvisioningApprovalRequestChange.Added Message

ProvisioningApprovalRequest has been added to query view

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

ProvisioningApprovalRequestChange.Current Message

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

NameTypeDescription
provisioning_approval_requestProvisioningApprovalRequest

ProvisioningApprovalRequestChange.Modified Message

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

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

ProvisioningApprovalRequestChange.Removed Message

Removed is returned when ProvisioningApprovalRequest is deleted or leaves Query view

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

ProvisioningPolicyChange Message

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

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

ProvisioningPolicyChange.Added Message

ProvisioningPolicy has been added to query view

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

ProvisioningPolicyChange.Current Message

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

NameTypeDescription
provisioning_policyProvisioningPolicy

ProvisioningPolicyChange.Modified Message

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

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

ProvisioningPolicyChange.Removed Message

Removed is returned when ProvisioningPolicy is deleted or leaves Query view

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

SCPService Message

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

SCPService.Configure Message

NameTypeDescription
recursivebool
directionSCPService.Configure.Direction
pathstring

SCPService.CreateDirectory Message

NameTypeDescription
pathstring
modeuint32s

SCPService.CreateFile Message

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

SCPService.CreateFile.Initialize Message

NameTypeDescription
pathstring
modeuint32s
sizeuint64

SSHService Message

Services on the device that the client connects to

NameTypeDescription
nonenonenone

SSHService.ClientIn Message

NameTypeDescription
databytes

SSHService.ClientOut Message

NameTypeDescription
databytes
ssh_helloSSHService.Hello
ssh_resize_terminalSSHService.TerminalSize

SSHService.Hello Message

NameTypeDescription
userstring
commandrepeated string
envmap<string, string>Environment (optional)

SSHService.TerminalSize Message

NameTypeDescription
widthuint32s
heightuint32s

SystemStateService Message

NameTypeDescription
nonenonenone

Devices Service Shared Enumerations

Here is the list of Devices service shared enumerations:

BrokerServiceType Enumeration

Broker dedicated messages

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

PodManagementService.PodState Enumeration

Commands for pod state management

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

SCPService.Configure.Direction Enumeration

NameDescription
DOWNLOAD
UPLOAD

SystemStateService.SystemState Enumeration

Commands for system state management

NameDescription
UNSPECIFIEDUnspecified system state
SHUTDOWNShutdown the system
REBOOTReboot the system