mirror of
https://github.com/titanscouting/tra-analysis.git
synced 2025-09-06 23:17:22 +00:00
push all website files
This commit is contained in:
419
website/functions/node_modules/google-proto-files/google/cloud/iot/v1/device_manager.proto
generated
vendored
Normal file
419
website/functions/node_modules/google-proto-files/google/cloud/iot/v1/device_manager.proto
generated
vendored
Normal file
@@ -0,0 +1,419 @@
|
||||
// Copyright 2018 Google Inc.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.cloud.iot.v1;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/cloud/iot/v1/resources.proto";
|
||||
import "google/iam/v1/iam_policy.proto";
|
||||
import "google/iam/v1/policy.proto";
|
||||
import "google/protobuf/duration.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "google/protobuf/field_mask.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
option cc_enable_arenas = true;
|
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/iot/v1;iot";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "DeviceManagerProto";
|
||||
option java_package = "com.google.cloud.iot.v1";
|
||||
|
||||
|
||||
// Internet of things (IoT) service. Allows to manipulate device registry
|
||||
// instances and the registration of devices (Things) to the cloud.
|
||||
service DeviceManager {
|
||||
// Creates a device registry that contains devices.
|
||||
rpc CreateDeviceRegistry(CreateDeviceRegistryRequest) returns (DeviceRegistry) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{parent=projects/*/locations/*}/registries"
|
||||
body: "device_registry"
|
||||
};
|
||||
}
|
||||
|
||||
// Gets a device registry configuration.
|
||||
rpc GetDeviceRegistry(GetDeviceRegistryRequest) returns (DeviceRegistry) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{name=projects/*/locations/*/registries/*}"
|
||||
};
|
||||
}
|
||||
|
||||
// Updates a device registry configuration.
|
||||
rpc UpdateDeviceRegistry(UpdateDeviceRegistryRequest) returns (DeviceRegistry) {
|
||||
option (google.api.http) = {
|
||||
patch: "/v1/{device_registry.name=projects/*/locations/*/registries/*}"
|
||||
body: "device_registry"
|
||||
};
|
||||
}
|
||||
|
||||
// Deletes a device registry configuration.
|
||||
rpc DeleteDeviceRegistry(DeleteDeviceRegistryRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete: "/v1/{name=projects/*/locations/*/registries/*}"
|
||||
};
|
||||
}
|
||||
|
||||
// Lists device registries.
|
||||
rpc ListDeviceRegistries(ListDeviceRegistriesRequest) returns (ListDeviceRegistriesResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{parent=projects/*/locations/*}/registries"
|
||||
};
|
||||
}
|
||||
|
||||
// Creates a device in a device registry.
|
||||
rpc CreateDevice(CreateDeviceRequest) returns (Device) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{parent=projects/*/locations/*/registries/*}/devices"
|
||||
body: "device"
|
||||
};
|
||||
}
|
||||
|
||||
// Gets details about a device.
|
||||
rpc GetDevice(GetDeviceRequest) returns (Device) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{name=projects/*/locations/*/registries/*/devices/*}"
|
||||
additional_bindings {
|
||||
get: "/v1/{name=projects/*/locations/*/registries/*/groups/*/devices/*}"
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Updates a device.
|
||||
rpc UpdateDevice(UpdateDeviceRequest) returns (Device) {
|
||||
option (google.api.http) = {
|
||||
patch: "/v1/{device.name=projects/*/locations/*/registries/*/devices/*}"
|
||||
body: "device"
|
||||
additional_bindings {
|
||||
patch: "/v1/{device.name=projects/*/locations/*/registries/*/groups/*/devices/*}"
|
||||
body: "device"
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Deletes a device.
|
||||
rpc DeleteDevice(DeleteDeviceRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete: "/v1/{name=projects/*/locations/*/registries/*/devices/*}"
|
||||
additional_bindings {
|
||||
delete: "/v1/{name=projects/*/locations/*/registries/*/groups/*/devices/*}"
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// List devices in a device registry.
|
||||
rpc ListDevices(ListDevicesRequest) returns (ListDevicesResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{parent=projects/*/locations/*/registries/*}/devices"
|
||||
additional_bindings {
|
||||
get: "/v1/{parent=projects/*/locations/*/groups/*}/devices"
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Modifies the configuration for the device, which is eventually sent from
|
||||
// the Cloud IoT Core servers. Returns the modified configuration version and
|
||||
// its metadata.
|
||||
rpc ModifyCloudToDeviceConfig(ModifyCloudToDeviceConfigRequest) returns (DeviceConfig) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{name=projects/*/locations/*/registries/*/devices/*}:modifyCloudToDeviceConfig"
|
||||
body: "*"
|
||||
additional_bindings {
|
||||
post: "/v1/{name=projects/*/locations/*/registries/*/groups/*/devices/*}:modifyCloudToDeviceConfig"
|
||||
body: "*"
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Lists the last few versions of the device configuration in descending
|
||||
// order (i.e.: newest first).
|
||||
rpc ListDeviceConfigVersions(ListDeviceConfigVersionsRequest) returns (ListDeviceConfigVersionsResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{name=projects/*/locations/*/registries/*/devices/*}/configVersions"
|
||||
additional_bindings {
|
||||
get: "/v1/{name=projects/*/locations/*/registries/*/groups/*/devices/*}/configVersions"
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Lists the last few versions of the device state in descending order (i.e.:
|
||||
// newest first).
|
||||
rpc ListDeviceStates(ListDeviceStatesRequest) returns (ListDeviceStatesResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{name=projects/*/locations/*/registries/*/devices/*}/states"
|
||||
additional_bindings {
|
||||
get: "/v1/{name=projects/*/locations/*/registries/*/groups/*/devices/*}/states"
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Sets the access control policy on the specified resource. Replaces any
|
||||
// existing policy.
|
||||
rpc SetIamPolicy(google.iam.v1.SetIamPolicyRequest) returns (google.iam.v1.Policy) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{resource=projects/*/locations/*/registries/*}:setIamPolicy"
|
||||
body: "*"
|
||||
additional_bindings {
|
||||
post: "/v1/{resource=projects/*/locations/*/registries/*/groups/*}:setIamPolicy"
|
||||
body: "*"
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Gets the access control policy for a resource.
|
||||
// Returns an empty policy if the resource exists and does not have a policy
|
||||
// set.
|
||||
rpc GetIamPolicy(google.iam.v1.GetIamPolicyRequest) returns (google.iam.v1.Policy) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{resource=projects/*/locations/*/registries/*}:getIamPolicy"
|
||||
body: "*"
|
||||
additional_bindings {
|
||||
post: "/v1/{resource=projects/*/locations/*/registries/*/groups/*}:getIamPolicy"
|
||||
body: "*"
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Returns permissions that a caller has on the specified resource.
|
||||
// If the resource does not exist, this will return an empty set of
|
||||
// permissions, not a NOT_FOUND error.
|
||||
rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{resource=projects/*/locations/*/registries/*}:testIamPermissions"
|
||||
body: "*"
|
||||
additional_bindings {
|
||||
post: "/v1/{resource=projects/*/locations/*/registries/*/groups/*}:testIamPermissions"
|
||||
body: "*"
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// Request for `CreateDeviceRegistry`.
|
||||
message CreateDeviceRegistryRequest {
|
||||
// The project and cloud region where this device registry must be created.
|
||||
// For example, `projects/example-project/locations/us-central1`.
|
||||
string parent = 1;
|
||||
|
||||
// The device registry. The field `name` must be empty. The server will
|
||||
// generate that field from the device registry `id` provided and the
|
||||
// `parent` field.
|
||||
DeviceRegistry device_registry = 2;
|
||||
}
|
||||
|
||||
// Request for `GetDeviceRegistry`.
|
||||
message GetDeviceRegistryRequest {
|
||||
// The name of the device registry. For example,
|
||||
// `projects/example-project/locations/us-central1/registries/my-registry`.
|
||||
string name = 1;
|
||||
}
|
||||
|
||||
// Request for `DeleteDeviceRegistry`.
|
||||
message DeleteDeviceRegistryRequest {
|
||||
// The name of the device registry. For example,
|
||||
// `projects/example-project/locations/us-central1/registries/my-registry`.
|
||||
string name = 1;
|
||||
}
|
||||
|
||||
// Request for `UpdateDeviceRegistry`.
|
||||
message UpdateDeviceRegistryRequest {
|
||||
// The new values for the device registry. The `id` field must be empty, and
|
||||
// the `name` field must indicate the path of the resource. For example,
|
||||
// `projects/example-project/locations/us-central1/registries/my-registry`.
|
||||
DeviceRegistry device_registry = 1;
|
||||
|
||||
// Only updates the `device_registry` fields indicated by this mask.
|
||||
// The field mask must not be empty, and it must not contain fields that
|
||||
// are immutable or only set by the server.
|
||||
// Mutable top-level fields: `event_notification_config`, `http_config`,
|
||||
// `mqtt_config`, and `state_notification_config`.
|
||||
google.protobuf.FieldMask update_mask = 2;
|
||||
}
|
||||
|
||||
// Request for `ListDeviceRegistries`.
|
||||
message ListDeviceRegistriesRequest {
|
||||
// The project and cloud region path. For example,
|
||||
// `projects/example-project/locations/us-central1`.
|
||||
string parent = 1;
|
||||
|
||||
// The maximum number of registries to return in the response. If this value
|
||||
// is zero, the service will select a default size. A call may return fewer
|
||||
// objects than requested, but if there is a non-empty `page_token`, it
|
||||
// indicates that more entries are available.
|
||||
int32 page_size = 2;
|
||||
|
||||
// The value returned by the last `ListDeviceRegistriesResponse`; indicates
|
||||
// that this is a continuation of a prior `ListDeviceRegistries` call, and
|
||||
// that the system should return the next page of data.
|
||||
string page_token = 3;
|
||||
}
|
||||
|
||||
// Response for `ListDeviceRegistries`.
|
||||
message ListDeviceRegistriesResponse {
|
||||
// The registries that matched the query.
|
||||
repeated DeviceRegistry device_registries = 1;
|
||||
|
||||
// If not empty, indicates that there may be more registries that match the
|
||||
// request; this value should be passed in a new
|
||||
// `ListDeviceRegistriesRequest`.
|
||||
string next_page_token = 2;
|
||||
}
|
||||
|
||||
// Request for `CreateDevice`.
|
||||
message CreateDeviceRequest {
|
||||
// The name of the device registry where this device should be created.
|
||||
// For example,
|
||||
// `projects/example-project/locations/us-central1/registries/my-registry`.
|
||||
string parent = 1;
|
||||
|
||||
// The device registration details. The field `name` must be empty. The server
|
||||
// will generate that field from the device registry `id` provided and the
|
||||
// `parent` field.
|
||||
Device device = 2;
|
||||
}
|
||||
|
||||
// Request for `GetDevice`.
|
||||
message GetDeviceRequest {
|
||||
// The name of the device. For example,
|
||||
// `projects/p0/locations/us-central1/registries/registry0/devices/device0` or
|
||||
// `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.
|
||||
string name = 1;
|
||||
|
||||
// The fields of the `Device` resource to be returned in the response. If the
|
||||
// field mask is unset or empty, all fields are returned.
|
||||
google.protobuf.FieldMask field_mask = 2;
|
||||
}
|
||||
|
||||
// Request for `UpdateDevice`.
|
||||
message UpdateDeviceRequest {
|
||||
// The new values for the device registry. The `id` and `num_id` fields must
|
||||
// be empty, and the field `name` must specify the name path. For example,
|
||||
// `projects/p0/locations/us-central1/registries/registry0/devices/device0`or
|
||||
// `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.
|
||||
Device device = 2;
|
||||
|
||||
// Only updates the `device` fields indicated by this mask.
|
||||
// The field mask must not be empty, and it must not contain fields that
|
||||
// are immutable or only set by the server.
|
||||
// Mutable top-level fields: `credentials`, `blocked`, and `metadata`
|
||||
google.protobuf.FieldMask update_mask = 3;
|
||||
}
|
||||
|
||||
// Request for `DeleteDevice`.
|
||||
message DeleteDeviceRequest {
|
||||
// The name of the device. For example,
|
||||
// `projects/p0/locations/us-central1/registries/registry0/devices/device0` or
|
||||
// `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.
|
||||
string name = 1;
|
||||
}
|
||||
|
||||
// Request for `ListDevices`.
|
||||
message ListDevicesRequest {
|
||||
// The device registry path. Required. For example,
|
||||
// `projects/my-project/locations/us-central1/registries/my-registry`.
|
||||
string parent = 1;
|
||||
|
||||
// A list of device numerical ids. If empty, it will ignore this field. This
|
||||
// field cannot hold more than 10,000 entries.
|
||||
repeated uint64 device_num_ids = 2;
|
||||
|
||||
// A list of device string identifiers. If empty, it will ignore this field.
|
||||
// For example, `['device0', 'device12']`. This field cannot hold more than
|
||||
// 10,000 entries.
|
||||
repeated string device_ids = 3;
|
||||
|
||||
// The fields of the `Device` resource to be returned in the response. The
|
||||
// fields `id`, and `num_id` are always returned by default, along with any
|
||||
// other fields specified.
|
||||
google.protobuf.FieldMask field_mask = 4;
|
||||
|
||||
// The maximum number of devices to return in the response. If this value
|
||||
// is zero, the service will select a default size. A call may return fewer
|
||||
// objects than requested, but if there is a non-empty `page_token`, it
|
||||
// indicates that more entries are available.
|
||||
int32 page_size = 100;
|
||||
|
||||
// The value returned by the last `ListDevicesResponse`; indicates
|
||||
// that this is a continuation of a prior `ListDevices` call, and
|
||||
// that the system should return the next page of data.
|
||||
string page_token = 101;
|
||||
}
|
||||
|
||||
// Response for `ListDevices`.
|
||||
message ListDevicesResponse {
|
||||
// The devices that match the request.
|
||||
repeated Device devices = 1;
|
||||
|
||||
// If not empty, indicates that there may be more devices that match the
|
||||
// request; this value should be passed in a new `ListDevicesRequest`.
|
||||
string next_page_token = 2;
|
||||
}
|
||||
|
||||
// Request for `ModifyCloudToDeviceConfig`.
|
||||
message ModifyCloudToDeviceConfigRequest {
|
||||
// The name of the device. For example,
|
||||
// `projects/p0/locations/us-central1/registries/registry0/devices/device0` or
|
||||
// `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.
|
||||
string name = 1;
|
||||
|
||||
// The version number to update. If this value is zero, it will not check the
|
||||
// version number of the server and will always update the current version;
|
||||
// otherwise, this update will fail if the version number found on the server
|
||||
// does not match this version number. This is used to support multiple
|
||||
// simultaneous updates without losing data.
|
||||
int64 version_to_update = 2;
|
||||
|
||||
// The configuration data for the device.
|
||||
bytes binary_data = 3;
|
||||
}
|
||||
|
||||
// Request for `ListDeviceConfigVersions`.
|
||||
message ListDeviceConfigVersionsRequest {
|
||||
// The name of the device. For example,
|
||||
// `projects/p0/locations/us-central1/registries/registry0/devices/device0` or
|
||||
// `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.
|
||||
string name = 1;
|
||||
|
||||
// The number of versions to list. Versions are listed in decreasing order of
|
||||
// the version number. The maximum number of versions retained is 10. If this
|
||||
// value is zero, it will return all the versions available.
|
||||
int32 num_versions = 2;
|
||||
}
|
||||
|
||||
// Response for `ListDeviceConfigVersions`.
|
||||
message ListDeviceConfigVersionsResponse {
|
||||
// The device configuration for the last few versions. Versions are listed
|
||||
// in decreasing order, starting from the most recent one.
|
||||
repeated DeviceConfig device_configs = 1;
|
||||
}
|
||||
|
||||
// Request for `ListDeviceStates`.
|
||||
message ListDeviceStatesRequest {
|
||||
// The name of the device. For example,
|
||||
// `projects/p0/locations/us-central1/registries/registry0/devices/device0` or
|
||||
// `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.
|
||||
string name = 1;
|
||||
|
||||
// The number of states to list. States are listed in descending order of
|
||||
// update time. The maximum number of states retained is 10. If this
|
||||
// value is zero, it will return all the states available.
|
||||
int32 num_states = 2;
|
||||
}
|
||||
|
||||
// Response for `ListDeviceStates`.
|
||||
message ListDeviceStatesResponse {
|
||||
// The last few device states. States are listed in descending order of server
|
||||
// update time, starting from the most recent one.
|
||||
repeated DeviceState device_states = 1;
|
||||
}
|
385
website/functions/node_modules/google-proto-files/google/cloud/iot/v1/resources.proto
generated
vendored
Normal file
385
website/functions/node_modules/google-proto-files/google/cloud/iot/v1/resources.proto
generated
vendored
Normal file
@@ -0,0 +1,385 @@
|
||||
// Copyright 2018 Google Inc.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.cloud.iot.v1;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/rpc/status.proto";
|
||||
|
||||
option cc_enable_arenas = true;
|
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/iot/v1;iot";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "ResourcesProto";
|
||||
option java_package = "com.google.cloud.iot.v1";
|
||||
|
||||
|
||||
// The device resource.
|
||||
message Device {
|
||||
// The user-defined device identifier. The device ID must be unique
|
||||
// within a device registry.
|
||||
string id = 1;
|
||||
|
||||
// The resource path name. For example,
|
||||
// `projects/p1/locations/us-central1/registries/registry0/devices/dev0` or
|
||||
// `projects/p1/locations/us-central1/registries/registry0/devices/{num_id}`.
|
||||
// When `name` is populated as a response from the service, it always ends
|
||||
// in the device numeric ID.
|
||||
string name = 2;
|
||||
|
||||
// [Output only] A server-defined unique numeric ID for the device. This is a
|
||||
// more compact way to identify devices, and it is globally unique.
|
||||
uint64 num_id = 3;
|
||||
|
||||
// The credentials used to authenticate this device. To allow credential
|
||||
// rotation without interruption, multiple device credentials can be bound to
|
||||
// this device. No more than 3 credentials can be bound to a single device at
|
||||
// a time. When new credentials are added to a device, they are verified
|
||||
// against the registry credentials. For details, see the description of the
|
||||
// `DeviceRegistry.credentials` field.
|
||||
repeated DeviceCredential credentials = 12;
|
||||
|
||||
// [Output only] The last time an MQTT `PINGREQ` was received. This field
|
||||
// applies only to devices connecting through MQTT. MQTT clients usually only
|
||||
// send `PINGREQ` messages if the connection is idle, and no other messages
|
||||
// have been sent. Timestamps are periodically collected and written to
|
||||
// storage; they may be stale by a few minutes.
|
||||
google.protobuf.Timestamp last_heartbeat_time = 7;
|
||||
|
||||
// [Output only] The last time a telemetry event was received. Timestamps are
|
||||
// periodically collected and written to storage; they may be stale by a few
|
||||
// minutes.
|
||||
google.protobuf.Timestamp last_event_time = 8;
|
||||
|
||||
// [Output only] The last time a state event was received. Timestamps are
|
||||
// periodically collected and written to storage; they may be stale by a few
|
||||
// minutes.
|
||||
google.protobuf.Timestamp last_state_time = 20;
|
||||
|
||||
// [Output only] The last time a cloud-to-device config version acknowledgment
|
||||
// was received from the device. This field is only for configurations
|
||||
// sent through MQTT.
|
||||
google.protobuf.Timestamp last_config_ack_time = 14;
|
||||
|
||||
// [Output only] The last time a cloud-to-device config version was sent to
|
||||
// the device.
|
||||
google.protobuf.Timestamp last_config_send_time = 18;
|
||||
|
||||
// If a device is blocked, connections or requests from this device will fail.
|
||||
// Can be used to temporarily prevent the device from connecting if, for
|
||||
// example, the sensor is generating bad data and needs maintenance.
|
||||
bool blocked = 19;
|
||||
|
||||
// [Output only] The time the most recent error occurred, such as a failure to
|
||||
// publish to Cloud Pub/Sub. This field is the timestamp of
|
||||
// 'last_error_status'.
|
||||
google.protobuf.Timestamp last_error_time = 10;
|
||||
|
||||
// [Output only] The error message of the most recent error, such as a failure
|
||||
// to publish to Cloud Pub/Sub. 'last_error_time' is the timestamp of this
|
||||
// field. If no errors have occurred, this field has an empty message
|
||||
// and the status code 0 == OK. Otherwise, this field is expected to have a
|
||||
// status code other than OK.
|
||||
google.rpc.Status last_error_status = 11;
|
||||
|
||||
// The most recent device configuration, which is eventually sent from
|
||||
// Cloud IoT Core to the device. If not present on creation, the
|
||||
// configuration will be initialized with an empty payload and version value
|
||||
// of `1`. To update this field after creation, use the
|
||||
// `DeviceManager.ModifyCloudToDeviceConfig` method.
|
||||
DeviceConfig config = 13;
|
||||
|
||||
// [Output only] The state most recently received from the device. If no state
|
||||
// has been reported, this field is not present.
|
||||
DeviceState state = 16;
|
||||
|
||||
// The metadata key-value pairs assigned to the device. This metadata is not
|
||||
// interpreted or indexed by Cloud IoT Core. It can be used to add contextual
|
||||
// information for the device.
|
||||
//
|
||||
// Keys must conform to the regular expression [a-zA-Z][a-zA-Z0-9-_.+~%]+ and
|
||||
// be less than 128 bytes in length.
|
||||
//
|
||||
// Values are free-form strings. Each value must be less than or equal to 32
|
||||
// KB in size.
|
||||
//
|
||||
// The total size of all keys and values must be less than 256 KB, and the
|
||||
// maximum number of key-value pairs is 500.
|
||||
map<string, string> metadata = 17;
|
||||
}
|
||||
|
||||
// A container for a group of devices.
|
||||
message DeviceRegistry {
|
||||
// The identifier of this device registry. For example, `myRegistry`.
|
||||
string id = 1;
|
||||
|
||||
// The resource path name. For example,
|
||||
// `projects/example-project/locations/us-central1/registries/my-registry`.
|
||||
string name = 2;
|
||||
|
||||
// The configuration for notification of telemetry events received from the
|
||||
// device. All telemetry events that were successfully published by the
|
||||
// device and acknowledged by Cloud IoT Core are guaranteed to be
|
||||
// delivered to Cloud Pub/Sub. If multiple configurations match a message,
|
||||
// only the first matching configuration is used. If you try to publish a
|
||||
// device telemetry event using MQTT without specifying a Cloud Pub/Sub topic
|
||||
// for the device's registry, the connection closes automatically. If you try
|
||||
// to do so using an HTTP connection, an error is returned. Up to 10
|
||||
// configurations may be provided.
|
||||
repeated EventNotificationConfig event_notification_configs = 10;
|
||||
|
||||
// The configuration for notification of new states received from the device.
|
||||
// State updates are guaranteed to be stored in the state history, but
|
||||
// notifications to Cloud Pub/Sub are not guaranteed. For example, if
|
||||
// permissions are misconfigured or the specified topic doesn't exist, no
|
||||
// notification will be published but the state will still be stored in Cloud
|
||||
// IoT Core.
|
||||
StateNotificationConfig state_notification_config = 7;
|
||||
|
||||
// The MQTT configuration for this device registry.
|
||||
MqttConfig mqtt_config = 4;
|
||||
|
||||
// The DeviceService (HTTP) configuration for this device registry.
|
||||
HttpConfig http_config = 9;
|
||||
|
||||
// The credentials used to verify the device credentials. No more than 10
|
||||
// credentials can be bound to a single registry at a time. The verification
|
||||
// process occurs at the time of device creation or update. If this field is
|
||||
// empty, no verification is performed. Otherwise, the credentials of a newly
|
||||
// created device or added credentials of an updated device should be signed
|
||||
// with one of these registry credentials.
|
||||
//
|
||||
// Note, however, that existing devices will never be affected by
|
||||
// modifications to this list of credentials: after a device has been
|
||||
// successfully created in a registry, it should be able to connect even if
|
||||
// its registry credentials are revoked, deleted, or modified.
|
||||
repeated RegistryCredential credentials = 8;
|
||||
}
|
||||
|
||||
// The configuration of MQTT for a device registry.
|
||||
message MqttConfig {
|
||||
// If enabled, allows connections using the MQTT protocol. Otherwise, MQTT
|
||||
// connections to this registry will fail.
|
||||
MqttState mqtt_enabled_state = 1;
|
||||
}
|
||||
|
||||
// The configuration of the HTTP bridge for a device registry.
|
||||
message HttpConfig {
|
||||
// If enabled, allows devices to use DeviceService via the HTTP protocol.
|
||||
// Otherwise, any requests to DeviceService will fail for this registry.
|
||||
HttpState http_enabled_state = 1;
|
||||
}
|
||||
|
||||
// The configuration for forwarding telemetry events.
|
||||
message EventNotificationConfig {
|
||||
// If the subfolder name matches this string exactly, this configuration will
|
||||
// be used. The string must not include the leading '/' character. If empty,
|
||||
// all strings are matched. This field is used only for telemetry events;
|
||||
// subfolders are not supported for state changes.
|
||||
string subfolder_matches = 2;
|
||||
|
||||
// A Cloud Pub/Sub topic name. For example,
|
||||
// `projects/myProject/topics/deviceEvents`.
|
||||
string pubsub_topic_name = 1;
|
||||
}
|
||||
|
||||
// The configuration for notification of new states received from the device.
|
||||
message StateNotificationConfig {
|
||||
// A Cloud Pub/Sub topic name. For example,
|
||||
// `projects/myProject/topics/deviceEvents`.
|
||||
string pubsub_topic_name = 1;
|
||||
}
|
||||
|
||||
// A server-stored registry credential used to validate device credentials.
|
||||
message RegistryCredential {
|
||||
// The credential data. Reserved for expansion in the future.
|
||||
oneof credential {
|
||||
// A public key certificate used to verify the device credentials.
|
||||
PublicKeyCertificate public_key_certificate = 1;
|
||||
}
|
||||
}
|
||||
|
||||
// Details of an X.509 certificate. For informational purposes only.
|
||||
message X509CertificateDetails {
|
||||
// The entity that signed the certificate.
|
||||
string issuer = 1;
|
||||
|
||||
// The entity the certificate and public key belong to.
|
||||
string subject = 2;
|
||||
|
||||
// The time the certificate becomes valid.
|
||||
google.protobuf.Timestamp start_time = 3;
|
||||
|
||||
// The time the certificate becomes invalid.
|
||||
google.protobuf.Timestamp expiry_time = 4;
|
||||
|
||||
// The algorithm used to sign the certificate.
|
||||
string signature_algorithm = 5;
|
||||
|
||||
// The type of public key in the certificate.
|
||||
string public_key_type = 6;
|
||||
}
|
||||
|
||||
// A public key certificate format and data.
|
||||
message PublicKeyCertificate {
|
||||
// The certificate format.
|
||||
PublicKeyCertificateFormat format = 1;
|
||||
|
||||
// The certificate data.
|
||||
string certificate = 2;
|
||||
|
||||
// [Output only] The certificate details. Used only for X.509 certificates.
|
||||
X509CertificateDetails x509_details = 3;
|
||||
}
|
||||
|
||||
// A server-stored device credential used for authentication.
|
||||
message DeviceCredential {
|
||||
// The credential data. Reserved for expansion in the future.
|
||||
oneof credential {
|
||||
// A public key used to verify the signature of JSON Web Tokens (JWTs).
|
||||
// When adding a new device credential, either via device creation or via
|
||||
// modifications, this public key credential may be required to be signed by
|
||||
// one of the registry level certificates. More specifically, if the
|
||||
// registry contains at least one certificate, any new device credential
|
||||
// must be signed by one of the registry certificates. As a result,
|
||||
// when the registry contains certificates, only X.509 certificates are
|
||||
// accepted as device credentials. However, if the registry does
|
||||
// not contain a certificate, self-signed certificates and public keys will
|
||||
// be accepted. New device credentials must be different from every
|
||||
// registry-level certificate.
|
||||
PublicKeyCredential public_key = 2;
|
||||
}
|
||||
|
||||
// [Optional] The time at which this credential becomes invalid. This
|
||||
// credential will be ignored for new client authentication requests after
|
||||
// this timestamp; however, it will not be automatically deleted.
|
||||
google.protobuf.Timestamp expiration_time = 6;
|
||||
}
|
||||
|
||||
// A public key format and data.
|
||||
message PublicKeyCredential {
|
||||
// The format of the key.
|
||||
PublicKeyFormat format = 1;
|
||||
|
||||
// The key data.
|
||||
string key = 2;
|
||||
}
|
||||
|
||||
// The device configuration. Eventually delivered to devices.
|
||||
message DeviceConfig {
|
||||
// [Output only] The version of this update. The version number is assigned by
|
||||
// the server, and is always greater than 0 after device creation. The
|
||||
// version must be 0 on the `CreateDevice` request if a `config` is
|
||||
// specified; the response of `CreateDevice` will always have a value of 1.
|
||||
int64 version = 1;
|
||||
|
||||
// [Output only] The time at which this configuration version was updated in
|
||||
// Cloud IoT Core. This timestamp is set by the server.
|
||||
google.protobuf.Timestamp cloud_update_time = 2;
|
||||
|
||||
// [Output only] The time at which Cloud IoT Core received the
|
||||
// acknowledgment from the device, indicating that the device has received
|
||||
// this configuration version. If this field is not present, the device has
|
||||
// not yet acknowledged that it received this version. Note that when
|
||||
// the config was sent to the device, many config versions may have been
|
||||
// available in Cloud IoT Core while the device was disconnected, and on
|
||||
// connection, only the latest version is sent to the device. Some
|
||||
// versions may never be sent to the device, and therefore are never
|
||||
// acknowledged. This timestamp is set by Cloud IoT Core.
|
||||
google.protobuf.Timestamp device_ack_time = 3;
|
||||
|
||||
// The device configuration data.
|
||||
bytes binary_data = 4;
|
||||
}
|
||||
|
||||
// The device state, as reported by the device.
|
||||
message DeviceState {
|
||||
// [Output only] The time at which this state version was updated in Cloud
|
||||
// IoT Core.
|
||||
google.protobuf.Timestamp update_time = 1;
|
||||
|
||||
// The device state data.
|
||||
bytes binary_data = 2;
|
||||
}
|
||||
|
||||
// Indicates whether an MQTT connection is enabled or disabled. See the field
|
||||
// description for details.
|
||||
enum MqttState {
|
||||
// No MQTT state specified. If not specified, MQTT will be enabled by default.
|
||||
MQTT_STATE_UNSPECIFIED = 0;
|
||||
|
||||
// Enables a MQTT connection.
|
||||
MQTT_ENABLED = 1;
|
||||
|
||||
// Disables a MQTT connection.
|
||||
MQTT_DISABLED = 2;
|
||||
}
|
||||
|
||||
// Indicates whether DeviceService (HTTP) is enabled or disabled for the
|
||||
// registry. See the field description for details.
|
||||
enum HttpState {
|
||||
// No HTTP state specified. If not specified, DeviceService will be
|
||||
// enabled by default.
|
||||
HTTP_STATE_UNSPECIFIED = 0;
|
||||
|
||||
// Enables DeviceService (HTTP) service for the registry.
|
||||
HTTP_ENABLED = 1;
|
||||
|
||||
// Disables DeviceService (HTTP) service for the registry.
|
||||
HTTP_DISABLED = 2;
|
||||
}
|
||||
|
||||
// The supported formats for the public key.
|
||||
enum PublicKeyCertificateFormat {
|
||||
// The format has not been specified. This is an invalid default value and
|
||||
// must not be used.
|
||||
UNSPECIFIED_PUBLIC_KEY_CERTIFICATE_FORMAT = 0;
|
||||
|
||||
// An X.509v3 certificate ([RFC5280](https://www.ietf.org/rfc/rfc5280.txt)),
|
||||
// encoded in base64, and wrapped by `-----BEGIN CERTIFICATE-----` and
|
||||
// `-----END CERTIFICATE-----`.
|
||||
X509_CERTIFICATE_PEM = 1;
|
||||
}
|
||||
|
||||
// The supported formats for the public key.
|
||||
enum PublicKeyFormat {
|
||||
// The format has not been specified. This is an invalid default value and
|
||||
// must not be used.
|
||||
UNSPECIFIED_PUBLIC_KEY_FORMAT = 0;
|
||||
|
||||
// An RSA public key encoded in base64, and wrapped by
|
||||
// `-----BEGIN PUBLIC KEY-----` and `-----END PUBLIC KEY-----`. This can be
|
||||
// used to verify `RS256` signatures in JWT tokens ([RFC7518](
|
||||
// https://www.ietf.org/rfc/rfc7518.txt)).
|
||||
RSA_PEM = 3;
|
||||
|
||||
// As RSA_PEM, but wrapped in an X.509v3 certificate ([RFC5280](
|
||||
// https://www.ietf.org/rfc/rfc5280.txt)), encoded in base64, and wrapped by
|
||||
// `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----`.
|
||||
RSA_X509_PEM = 1;
|
||||
|
||||
// Public key for the ECDSA algorithm using P-256 and SHA-256, encoded in
|
||||
// base64, and wrapped by `-----BEGIN PUBLIC KEY-----` and `-----END
|
||||
// PUBLIC KEY-----`. This can be used to verify JWT tokens with the `ES256`
|
||||
// algorithm ([RFC7518](https://www.ietf.org/rfc/rfc7518.txt)). This curve is
|
||||
// defined in [OpenSSL](https://www.openssl.org/) as the `prime256v1` curve.
|
||||
ES256_PEM = 2;
|
||||
|
||||
// As ES256_PEM, but wrapped in an X.509v3 certificate ([RFC5280](
|
||||
// https://www.ietf.org/rfc/rfc5280.txt)), encoded in base64, and wrapped by
|
||||
// `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----`.
|
||||
ES256_X509_PEM = 4;
|
||||
}
|
Reference in New Issue
Block a user