1// Code generated by protoc-gen-go. DO NOT EDIT. 2// source: google/cloud/iot/v1/resources.proto 3 4package iot // import "google.golang.org/genproto/googleapis/cloud/iot/v1" 5 6import proto "github.com/golang/protobuf/proto" 7import fmt "fmt" 8import math "math" 9import timestamp "github.com/golang/protobuf/ptypes/timestamp" 10import _ "google.golang.org/genproto/googleapis/api/annotations" 11import status "google.golang.org/genproto/googleapis/rpc/status" 12 13// Reference imports to suppress errors if they are not otherwise used. 14var _ = proto.Marshal 15var _ = fmt.Errorf 16var _ = math.Inf 17 18// This is a compile-time assertion to ensure that this generated file 19// is compatible with the proto package it is being compiled against. 20// A compilation error at this line likely means your copy of the 21// proto package needs to be updated. 22const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package 23 24// Indicates whether an MQTT connection is enabled or disabled. See the field 25// description for details. 26type MqttState int32 27 28const ( 29 // No MQTT state specified. If not specified, MQTT will be enabled by default. 30 MqttState_MQTT_STATE_UNSPECIFIED MqttState = 0 31 // Enables a MQTT connection. 32 MqttState_MQTT_ENABLED MqttState = 1 33 // Disables a MQTT connection. 34 MqttState_MQTT_DISABLED MqttState = 2 35) 36 37var MqttState_name = map[int32]string{ 38 0: "MQTT_STATE_UNSPECIFIED", 39 1: "MQTT_ENABLED", 40 2: "MQTT_DISABLED", 41} 42var MqttState_value = map[string]int32{ 43 "MQTT_STATE_UNSPECIFIED": 0, 44 "MQTT_ENABLED": 1, 45 "MQTT_DISABLED": 2, 46} 47 48func (x MqttState) String() string { 49 return proto.EnumName(MqttState_name, int32(x)) 50} 51func (MqttState) EnumDescriptor() ([]byte, []int) { 52 return fileDescriptor_resources_adeeda409206dfbb, []int{0} 53} 54 55// Indicates whether DeviceService (HTTP) is enabled or disabled for the 56// registry. See the field description for details. 57type HttpState int32 58 59const ( 60 // No HTTP state specified. If not specified, DeviceService will be 61 // enabled by default. 62 HttpState_HTTP_STATE_UNSPECIFIED HttpState = 0 63 // Enables DeviceService (HTTP) service for the registry. 64 HttpState_HTTP_ENABLED HttpState = 1 65 // Disables DeviceService (HTTP) service for the registry. 66 HttpState_HTTP_DISABLED HttpState = 2 67) 68 69var HttpState_name = map[int32]string{ 70 0: "HTTP_STATE_UNSPECIFIED", 71 1: "HTTP_ENABLED", 72 2: "HTTP_DISABLED", 73} 74var HttpState_value = map[string]int32{ 75 "HTTP_STATE_UNSPECIFIED": 0, 76 "HTTP_ENABLED": 1, 77 "HTTP_DISABLED": 2, 78} 79 80func (x HttpState) String() string { 81 return proto.EnumName(HttpState_name, int32(x)) 82} 83func (HttpState) EnumDescriptor() ([]byte, []int) { 84 return fileDescriptor_resources_adeeda409206dfbb, []int{1} 85} 86 87// The supported formats for the public key. 88type PublicKeyCertificateFormat int32 89 90const ( 91 // The format has not been specified. This is an invalid default value and 92 // must not be used. 93 PublicKeyCertificateFormat_UNSPECIFIED_PUBLIC_KEY_CERTIFICATE_FORMAT PublicKeyCertificateFormat = 0 94 // An X.509v3 certificate ([RFC5280](https://www.ietf.org/rfc/rfc5280.txt)), 95 // encoded in base64, and wrapped by `-----BEGIN CERTIFICATE-----` and 96 // `-----END CERTIFICATE-----`. 97 PublicKeyCertificateFormat_X509_CERTIFICATE_PEM PublicKeyCertificateFormat = 1 98) 99 100var PublicKeyCertificateFormat_name = map[int32]string{ 101 0: "UNSPECIFIED_PUBLIC_KEY_CERTIFICATE_FORMAT", 102 1: "X509_CERTIFICATE_PEM", 103} 104var PublicKeyCertificateFormat_value = map[string]int32{ 105 "UNSPECIFIED_PUBLIC_KEY_CERTIFICATE_FORMAT": 0, 106 "X509_CERTIFICATE_PEM": 1, 107} 108 109func (x PublicKeyCertificateFormat) String() string { 110 return proto.EnumName(PublicKeyCertificateFormat_name, int32(x)) 111} 112func (PublicKeyCertificateFormat) EnumDescriptor() ([]byte, []int) { 113 return fileDescriptor_resources_adeeda409206dfbb, []int{2} 114} 115 116// The supported formats for the public key. 117type PublicKeyFormat int32 118 119const ( 120 // The format has not been specified. This is an invalid default value and 121 // must not be used. 122 PublicKeyFormat_UNSPECIFIED_PUBLIC_KEY_FORMAT PublicKeyFormat = 0 123 // An RSA public key encoded in base64, and wrapped by 124 // `-----BEGIN PUBLIC KEY-----` and `-----END PUBLIC KEY-----`. This can be 125 // used to verify `RS256` signatures in JWT tokens ([RFC7518]( 126 // https://www.ietf.org/rfc/rfc7518.txt)). 127 PublicKeyFormat_RSA_PEM PublicKeyFormat = 3 128 // As RSA_PEM, but wrapped in an X.509v3 certificate ([RFC5280]( 129 // https://www.ietf.org/rfc/rfc5280.txt)), encoded in base64, and wrapped by 130 // `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----`. 131 PublicKeyFormat_RSA_X509_PEM PublicKeyFormat = 1 132 // Public key for the ECDSA algorithm using P-256 and SHA-256, encoded in 133 // base64, and wrapped by `-----BEGIN PUBLIC KEY-----` and `-----END 134 // PUBLIC KEY-----`. This can be used to verify JWT tokens with the `ES256` 135 // algorithm ([RFC7518](https://www.ietf.org/rfc/rfc7518.txt)). This curve is 136 // defined in [OpenSSL](https://www.openssl.org/) as the `prime256v1` curve. 137 PublicKeyFormat_ES256_PEM PublicKeyFormat = 2 138 // As ES256_PEM, but wrapped in an X.509v3 certificate ([RFC5280]( 139 // https://www.ietf.org/rfc/rfc5280.txt)), encoded in base64, and wrapped by 140 // `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----`. 141 PublicKeyFormat_ES256_X509_PEM PublicKeyFormat = 4 142) 143 144var PublicKeyFormat_name = map[int32]string{ 145 0: "UNSPECIFIED_PUBLIC_KEY_FORMAT", 146 3: "RSA_PEM", 147 1: "RSA_X509_PEM", 148 2: "ES256_PEM", 149 4: "ES256_X509_PEM", 150} 151var PublicKeyFormat_value = map[string]int32{ 152 "UNSPECIFIED_PUBLIC_KEY_FORMAT": 0, 153 "RSA_PEM": 3, 154 "RSA_X509_PEM": 1, 155 "ES256_PEM": 2, 156 "ES256_X509_PEM": 4, 157} 158 159func (x PublicKeyFormat) String() string { 160 return proto.EnumName(PublicKeyFormat_name, int32(x)) 161} 162func (PublicKeyFormat) EnumDescriptor() ([]byte, []int) { 163 return fileDescriptor_resources_adeeda409206dfbb, []int{3} 164} 165 166// The device resource. 167type Device struct { 168 // The user-defined device identifier. The device ID must be unique 169 // within a device registry. 170 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` 171 // The resource path name. For example, 172 // `projects/p1/locations/us-central1/registries/registry0/devices/dev0` or 173 // `projects/p1/locations/us-central1/registries/registry0/devices/{num_id}`. 174 // When `name` is populated as a response from the service, it always ends 175 // in the device numeric ID. 176 Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` 177 // [Output only] A server-defined unique numeric ID for the device. This is a 178 // more compact way to identify devices, and it is globally unique. 179 NumId uint64 `protobuf:"varint,3,opt,name=num_id,json=numId,proto3" json:"num_id,omitempty"` 180 // The credentials used to authenticate this device. To allow credential 181 // rotation without interruption, multiple device credentials can be bound to 182 // this device. No more than 3 credentials can be bound to a single device at 183 // a time. When new credentials are added to a device, they are verified 184 // against the registry credentials. For details, see the description of the 185 // `DeviceRegistry.credentials` field. 186 Credentials []*DeviceCredential `protobuf:"bytes,12,rep,name=credentials,proto3" json:"credentials,omitempty"` 187 // [Output only] The last time an MQTT `PINGREQ` was received. This field 188 // applies only to devices connecting through MQTT. MQTT clients usually only 189 // send `PINGREQ` messages if the connection is idle, and no other messages 190 // have been sent. Timestamps are periodically collected and written to 191 // storage; they may be stale by a few minutes. 192 LastHeartbeatTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=last_heartbeat_time,json=lastHeartbeatTime,proto3" json:"last_heartbeat_time,omitempty"` 193 // [Output only] The last time a telemetry event was received. Timestamps are 194 // periodically collected and written to storage; they may be stale by a few 195 // minutes. 196 LastEventTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=last_event_time,json=lastEventTime,proto3" json:"last_event_time,omitempty"` 197 // [Output only] The last time a state event was received. Timestamps are 198 // periodically collected and written to storage; they may be stale by a few 199 // minutes. 200 LastStateTime *timestamp.Timestamp `protobuf:"bytes,20,opt,name=last_state_time,json=lastStateTime,proto3" json:"last_state_time,omitempty"` 201 // [Output only] The last time a cloud-to-device config version acknowledgment 202 // was received from the device. This field is only for configurations 203 // sent through MQTT. 204 LastConfigAckTime *timestamp.Timestamp `protobuf:"bytes,14,opt,name=last_config_ack_time,json=lastConfigAckTime,proto3" json:"last_config_ack_time,omitempty"` 205 // [Output only] The last time a cloud-to-device config version was sent to 206 // the device. 207 LastConfigSendTime *timestamp.Timestamp `protobuf:"bytes,18,opt,name=last_config_send_time,json=lastConfigSendTime,proto3" json:"last_config_send_time,omitempty"` 208 // If a device is blocked, connections or requests from this device will fail. 209 // Can be used to temporarily prevent the device from connecting if, for 210 // example, the sensor is generating bad data and needs maintenance. 211 Blocked bool `protobuf:"varint,19,opt,name=blocked,proto3" json:"blocked,omitempty"` 212 // [Output only] The time the most recent error occurred, such as a failure to 213 // publish to Cloud Pub/Sub. This field is the timestamp of 214 // 'last_error_status'. 215 LastErrorTime *timestamp.Timestamp `protobuf:"bytes,10,opt,name=last_error_time,json=lastErrorTime,proto3" json:"last_error_time,omitempty"` 216 // [Output only] The error message of the most recent error, such as a failure 217 // to publish to Cloud Pub/Sub. 'last_error_time' is the timestamp of this 218 // field. If no errors have occurred, this field has an empty message 219 // and the status code 0 == OK. Otherwise, this field is expected to have a 220 // status code other than OK. 221 LastErrorStatus *status.Status `protobuf:"bytes,11,opt,name=last_error_status,json=lastErrorStatus,proto3" json:"last_error_status,omitempty"` 222 // The most recent device configuration, which is eventually sent from 223 // Cloud IoT Core to the device. If not present on creation, the 224 // configuration will be initialized with an empty payload and version value 225 // of `1`. To update this field after creation, use the 226 // `DeviceManager.ModifyCloudToDeviceConfig` method. 227 Config *DeviceConfig `protobuf:"bytes,13,opt,name=config,proto3" json:"config,omitempty"` 228 // [Output only] The state most recently received from the device. If no state 229 // has been reported, this field is not present. 230 State *DeviceState `protobuf:"bytes,16,opt,name=state,proto3" json:"state,omitempty"` 231 // The metadata key-value pairs assigned to the device. This metadata is not 232 // interpreted or indexed by Cloud IoT Core. It can be used to add contextual 233 // information for the device. 234 // 235 // Keys must conform to the regular expression [a-zA-Z][a-zA-Z0-9-_.+~%]+ and 236 // be less than 128 bytes in length. 237 // 238 // Values are free-form strings. Each value must be less than or equal to 32 239 // KB in size. 240 // 241 // The total size of all keys and values must be less than 256 KB, and the 242 // maximum number of key-value pairs is 500. 243 Metadata map[string]string `protobuf:"bytes,17,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 244 XXX_NoUnkeyedLiteral struct{} `json:"-"` 245 XXX_unrecognized []byte `json:"-"` 246 XXX_sizecache int32 `json:"-"` 247} 248 249func (m *Device) Reset() { *m = Device{} } 250func (m *Device) String() string { return proto.CompactTextString(m) } 251func (*Device) ProtoMessage() {} 252func (*Device) Descriptor() ([]byte, []int) { 253 return fileDescriptor_resources_adeeda409206dfbb, []int{0} 254} 255func (m *Device) XXX_Unmarshal(b []byte) error { 256 return xxx_messageInfo_Device.Unmarshal(m, b) 257} 258func (m *Device) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 259 return xxx_messageInfo_Device.Marshal(b, m, deterministic) 260} 261func (dst *Device) XXX_Merge(src proto.Message) { 262 xxx_messageInfo_Device.Merge(dst, src) 263} 264func (m *Device) XXX_Size() int { 265 return xxx_messageInfo_Device.Size(m) 266} 267func (m *Device) XXX_DiscardUnknown() { 268 xxx_messageInfo_Device.DiscardUnknown(m) 269} 270 271var xxx_messageInfo_Device proto.InternalMessageInfo 272 273func (m *Device) GetId() string { 274 if m != nil { 275 return m.Id 276 } 277 return "" 278} 279 280func (m *Device) GetName() string { 281 if m != nil { 282 return m.Name 283 } 284 return "" 285} 286 287func (m *Device) GetNumId() uint64 { 288 if m != nil { 289 return m.NumId 290 } 291 return 0 292} 293 294func (m *Device) GetCredentials() []*DeviceCredential { 295 if m != nil { 296 return m.Credentials 297 } 298 return nil 299} 300 301func (m *Device) GetLastHeartbeatTime() *timestamp.Timestamp { 302 if m != nil { 303 return m.LastHeartbeatTime 304 } 305 return nil 306} 307 308func (m *Device) GetLastEventTime() *timestamp.Timestamp { 309 if m != nil { 310 return m.LastEventTime 311 } 312 return nil 313} 314 315func (m *Device) GetLastStateTime() *timestamp.Timestamp { 316 if m != nil { 317 return m.LastStateTime 318 } 319 return nil 320} 321 322func (m *Device) GetLastConfigAckTime() *timestamp.Timestamp { 323 if m != nil { 324 return m.LastConfigAckTime 325 } 326 return nil 327} 328 329func (m *Device) GetLastConfigSendTime() *timestamp.Timestamp { 330 if m != nil { 331 return m.LastConfigSendTime 332 } 333 return nil 334} 335 336func (m *Device) GetBlocked() bool { 337 if m != nil { 338 return m.Blocked 339 } 340 return false 341} 342 343func (m *Device) GetLastErrorTime() *timestamp.Timestamp { 344 if m != nil { 345 return m.LastErrorTime 346 } 347 return nil 348} 349 350func (m *Device) GetLastErrorStatus() *status.Status { 351 if m != nil { 352 return m.LastErrorStatus 353 } 354 return nil 355} 356 357func (m *Device) GetConfig() *DeviceConfig { 358 if m != nil { 359 return m.Config 360 } 361 return nil 362} 363 364func (m *Device) GetState() *DeviceState { 365 if m != nil { 366 return m.State 367 } 368 return nil 369} 370 371func (m *Device) GetMetadata() map[string]string { 372 if m != nil { 373 return m.Metadata 374 } 375 return nil 376} 377 378// A container for a group of devices. 379type DeviceRegistry struct { 380 // The identifier of this device registry. For example, `myRegistry`. 381 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` 382 // The resource path name. For example, 383 // `projects/example-project/locations/us-central1/registries/my-registry`. 384 Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` 385 // The configuration for notification of telemetry events received from the 386 // device. All telemetry events that were successfully published by the 387 // device and acknowledged by Cloud IoT Core are guaranteed to be 388 // delivered to Cloud Pub/Sub. If multiple configurations match a message, 389 // only the first matching configuration is used. If you try to publish a 390 // device telemetry event using MQTT without specifying a Cloud Pub/Sub topic 391 // for the device's registry, the connection closes automatically. If you try 392 // to do so using an HTTP connection, an error is returned. Up to 10 393 // configurations may be provided. 394 EventNotificationConfigs []*EventNotificationConfig `protobuf:"bytes,10,rep,name=event_notification_configs,json=eventNotificationConfigs,proto3" json:"event_notification_configs,omitempty"` 395 // The configuration for notification of new states received from the device. 396 // State updates are guaranteed to be stored in the state history, but 397 // notifications to Cloud Pub/Sub are not guaranteed. For example, if 398 // permissions are misconfigured or the specified topic doesn't exist, no 399 // notification will be published but the state will still be stored in Cloud 400 // IoT Core. 401 StateNotificationConfig *StateNotificationConfig `protobuf:"bytes,7,opt,name=state_notification_config,json=stateNotificationConfig,proto3" json:"state_notification_config,omitempty"` 402 // The MQTT configuration for this device registry. 403 MqttConfig *MqttConfig `protobuf:"bytes,4,opt,name=mqtt_config,json=mqttConfig,proto3" json:"mqtt_config,omitempty"` 404 // The DeviceService (HTTP) configuration for this device registry. 405 HttpConfig *HttpConfig `protobuf:"bytes,9,opt,name=http_config,json=httpConfig,proto3" json:"http_config,omitempty"` 406 // The credentials used to verify the device credentials. No more than 10 407 // credentials can be bound to a single registry at a time. The verification 408 // process occurs at the time of device creation or update. If this field is 409 // empty, no verification is performed. Otherwise, the credentials of a newly 410 // created device or added credentials of an updated device should be signed 411 // with one of these registry credentials. 412 // 413 // Note, however, that existing devices will never be affected by 414 // modifications to this list of credentials: after a device has been 415 // successfully created in a registry, it should be able to connect even if 416 // its registry credentials are revoked, deleted, or modified. 417 Credentials []*RegistryCredential `protobuf:"bytes,8,rep,name=credentials,proto3" json:"credentials,omitempty"` 418 XXX_NoUnkeyedLiteral struct{} `json:"-"` 419 XXX_unrecognized []byte `json:"-"` 420 XXX_sizecache int32 `json:"-"` 421} 422 423func (m *DeviceRegistry) Reset() { *m = DeviceRegistry{} } 424func (m *DeviceRegistry) String() string { return proto.CompactTextString(m) } 425func (*DeviceRegistry) ProtoMessage() {} 426func (*DeviceRegistry) Descriptor() ([]byte, []int) { 427 return fileDescriptor_resources_adeeda409206dfbb, []int{1} 428} 429func (m *DeviceRegistry) XXX_Unmarshal(b []byte) error { 430 return xxx_messageInfo_DeviceRegistry.Unmarshal(m, b) 431} 432func (m *DeviceRegistry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 433 return xxx_messageInfo_DeviceRegistry.Marshal(b, m, deterministic) 434} 435func (dst *DeviceRegistry) XXX_Merge(src proto.Message) { 436 xxx_messageInfo_DeviceRegistry.Merge(dst, src) 437} 438func (m *DeviceRegistry) XXX_Size() int { 439 return xxx_messageInfo_DeviceRegistry.Size(m) 440} 441func (m *DeviceRegistry) XXX_DiscardUnknown() { 442 xxx_messageInfo_DeviceRegistry.DiscardUnknown(m) 443} 444 445var xxx_messageInfo_DeviceRegistry proto.InternalMessageInfo 446 447func (m *DeviceRegistry) GetId() string { 448 if m != nil { 449 return m.Id 450 } 451 return "" 452} 453 454func (m *DeviceRegistry) GetName() string { 455 if m != nil { 456 return m.Name 457 } 458 return "" 459} 460 461func (m *DeviceRegistry) GetEventNotificationConfigs() []*EventNotificationConfig { 462 if m != nil { 463 return m.EventNotificationConfigs 464 } 465 return nil 466} 467 468func (m *DeviceRegistry) GetStateNotificationConfig() *StateNotificationConfig { 469 if m != nil { 470 return m.StateNotificationConfig 471 } 472 return nil 473} 474 475func (m *DeviceRegistry) GetMqttConfig() *MqttConfig { 476 if m != nil { 477 return m.MqttConfig 478 } 479 return nil 480} 481 482func (m *DeviceRegistry) GetHttpConfig() *HttpConfig { 483 if m != nil { 484 return m.HttpConfig 485 } 486 return nil 487} 488 489func (m *DeviceRegistry) GetCredentials() []*RegistryCredential { 490 if m != nil { 491 return m.Credentials 492 } 493 return nil 494} 495 496// The configuration of MQTT for a device registry. 497type MqttConfig struct { 498 // If enabled, allows connections using the MQTT protocol. Otherwise, MQTT 499 // connections to this registry will fail. 500 MqttEnabledState MqttState `protobuf:"varint,1,opt,name=mqtt_enabled_state,json=mqttEnabledState,proto3,enum=google.cloud.iot.v1.MqttState" json:"mqtt_enabled_state,omitempty"` 501 XXX_NoUnkeyedLiteral struct{} `json:"-"` 502 XXX_unrecognized []byte `json:"-"` 503 XXX_sizecache int32 `json:"-"` 504} 505 506func (m *MqttConfig) Reset() { *m = MqttConfig{} } 507func (m *MqttConfig) String() string { return proto.CompactTextString(m) } 508func (*MqttConfig) ProtoMessage() {} 509func (*MqttConfig) Descriptor() ([]byte, []int) { 510 return fileDescriptor_resources_adeeda409206dfbb, []int{2} 511} 512func (m *MqttConfig) XXX_Unmarshal(b []byte) error { 513 return xxx_messageInfo_MqttConfig.Unmarshal(m, b) 514} 515func (m *MqttConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 516 return xxx_messageInfo_MqttConfig.Marshal(b, m, deterministic) 517} 518func (dst *MqttConfig) XXX_Merge(src proto.Message) { 519 xxx_messageInfo_MqttConfig.Merge(dst, src) 520} 521func (m *MqttConfig) XXX_Size() int { 522 return xxx_messageInfo_MqttConfig.Size(m) 523} 524func (m *MqttConfig) XXX_DiscardUnknown() { 525 xxx_messageInfo_MqttConfig.DiscardUnknown(m) 526} 527 528var xxx_messageInfo_MqttConfig proto.InternalMessageInfo 529 530func (m *MqttConfig) GetMqttEnabledState() MqttState { 531 if m != nil { 532 return m.MqttEnabledState 533 } 534 return MqttState_MQTT_STATE_UNSPECIFIED 535} 536 537// The configuration of the HTTP bridge for a device registry. 538type HttpConfig struct { 539 // If enabled, allows devices to use DeviceService via the HTTP protocol. 540 // Otherwise, any requests to DeviceService will fail for this registry. 541 HttpEnabledState HttpState `protobuf:"varint,1,opt,name=http_enabled_state,json=httpEnabledState,proto3,enum=google.cloud.iot.v1.HttpState" json:"http_enabled_state,omitempty"` 542 XXX_NoUnkeyedLiteral struct{} `json:"-"` 543 XXX_unrecognized []byte `json:"-"` 544 XXX_sizecache int32 `json:"-"` 545} 546 547func (m *HttpConfig) Reset() { *m = HttpConfig{} } 548func (m *HttpConfig) String() string { return proto.CompactTextString(m) } 549func (*HttpConfig) ProtoMessage() {} 550func (*HttpConfig) Descriptor() ([]byte, []int) { 551 return fileDescriptor_resources_adeeda409206dfbb, []int{3} 552} 553func (m *HttpConfig) XXX_Unmarshal(b []byte) error { 554 return xxx_messageInfo_HttpConfig.Unmarshal(m, b) 555} 556func (m *HttpConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 557 return xxx_messageInfo_HttpConfig.Marshal(b, m, deterministic) 558} 559func (dst *HttpConfig) XXX_Merge(src proto.Message) { 560 xxx_messageInfo_HttpConfig.Merge(dst, src) 561} 562func (m *HttpConfig) XXX_Size() int { 563 return xxx_messageInfo_HttpConfig.Size(m) 564} 565func (m *HttpConfig) XXX_DiscardUnknown() { 566 xxx_messageInfo_HttpConfig.DiscardUnknown(m) 567} 568 569var xxx_messageInfo_HttpConfig proto.InternalMessageInfo 570 571func (m *HttpConfig) GetHttpEnabledState() HttpState { 572 if m != nil { 573 return m.HttpEnabledState 574 } 575 return HttpState_HTTP_STATE_UNSPECIFIED 576} 577 578// The configuration for forwarding telemetry events. 579type EventNotificationConfig struct { 580 // If the subfolder name matches this string exactly, this configuration will 581 // be used. The string must not include the leading '/' character. If empty, 582 // all strings are matched. This field is used only for telemetry events; 583 // subfolders are not supported for state changes. 584 SubfolderMatches string `protobuf:"bytes,2,opt,name=subfolder_matches,json=subfolderMatches,proto3" json:"subfolder_matches,omitempty"` 585 // A Cloud Pub/Sub topic name. For example, 586 // `projects/myProject/topics/deviceEvents`. 587 PubsubTopicName string `protobuf:"bytes,1,opt,name=pubsub_topic_name,json=pubsubTopicName,proto3" json:"pubsub_topic_name,omitempty"` 588 XXX_NoUnkeyedLiteral struct{} `json:"-"` 589 XXX_unrecognized []byte `json:"-"` 590 XXX_sizecache int32 `json:"-"` 591} 592 593func (m *EventNotificationConfig) Reset() { *m = EventNotificationConfig{} } 594func (m *EventNotificationConfig) String() string { return proto.CompactTextString(m) } 595func (*EventNotificationConfig) ProtoMessage() {} 596func (*EventNotificationConfig) Descriptor() ([]byte, []int) { 597 return fileDescriptor_resources_adeeda409206dfbb, []int{4} 598} 599func (m *EventNotificationConfig) XXX_Unmarshal(b []byte) error { 600 return xxx_messageInfo_EventNotificationConfig.Unmarshal(m, b) 601} 602func (m *EventNotificationConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 603 return xxx_messageInfo_EventNotificationConfig.Marshal(b, m, deterministic) 604} 605func (dst *EventNotificationConfig) XXX_Merge(src proto.Message) { 606 xxx_messageInfo_EventNotificationConfig.Merge(dst, src) 607} 608func (m *EventNotificationConfig) XXX_Size() int { 609 return xxx_messageInfo_EventNotificationConfig.Size(m) 610} 611func (m *EventNotificationConfig) XXX_DiscardUnknown() { 612 xxx_messageInfo_EventNotificationConfig.DiscardUnknown(m) 613} 614 615var xxx_messageInfo_EventNotificationConfig proto.InternalMessageInfo 616 617func (m *EventNotificationConfig) GetSubfolderMatches() string { 618 if m != nil { 619 return m.SubfolderMatches 620 } 621 return "" 622} 623 624func (m *EventNotificationConfig) GetPubsubTopicName() string { 625 if m != nil { 626 return m.PubsubTopicName 627 } 628 return "" 629} 630 631// The configuration for notification of new states received from the device. 632type StateNotificationConfig struct { 633 // A Cloud Pub/Sub topic name. For example, 634 // `projects/myProject/topics/deviceEvents`. 635 PubsubTopicName string `protobuf:"bytes,1,opt,name=pubsub_topic_name,json=pubsubTopicName,proto3" json:"pubsub_topic_name,omitempty"` 636 XXX_NoUnkeyedLiteral struct{} `json:"-"` 637 XXX_unrecognized []byte `json:"-"` 638 XXX_sizecache int32 `json:"-"` 639} 640 641func (m *StateNotificationConfig) Reset() { *m = StateNotificationConfig{} } 642func (m *StateNotificationConfig) String() string { return proto.CompactTextString(m) } 643func (*StateNotificationConfig) ProtoMessage() {} 644func (*StateNotificationConfig) Descriptor() ([]byte, []int) { 645 return fileDescriptor_resources_adeeda409206dfbb, []int{5} 646} 647func (m *StateNotificationConfig) XXX_Unmarshal(b []byte) error { 648 return xxx_messageInfo_StateNotificationConfig.Unmarshal(m, b) 649} 650func (m *StateNotificationConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 651 return xxx_messageInfo_StateNotificationConfig.Marshal(b, m, deterministic) 652} 653func (dst *StateNotificationConfig) XXX_Merge(src proto.Message) { 654 xxx_messageInfo_StateNotificationConfig.Merge(dst, src) 655} 656func (m *StateNotificationConfig) XXX_Size() int { 657 return xxx_messageInfo_StateNotificationConfig.Size(m) 658} 659func (m *StateNotificationConfig) XXX_DiscardUnknown() { 660 xxx_messageInfo_StateNotificationConfig.DiscardUnknown(m) 661} 662 663var xxx_messageInfo_StateNotificationConfig proto.InternalMessageInfo 664 665func (m *StateNotificationConfig) GetPubsubTopicName() string { 666 if m != nil { 667 return m.PubsubTopicName 668 } 669 return "" 670} 671 672// A server-stored registry credential used to validate device credentials. 673type RegistryCredential struct { 674 // The credential data. Reserved for expansion in the future. 675 // 676 // Types that are valid to be assigned to Credential: 677 // *RegistryCredential_PublicKeyCertificate 678 Credential isRegistryCredential_Credential `protobuf_oneof:"credential"` 679 XXX_NoUnkeyedLiteral struct{} `json:"-"` 680 XXX_unrecognized []byte `json:"-"` 681 XXX_sizecache int32 `json:"-"` 682} 683 684func (m *RegistryCredential) Reset() { *m = RegistryCredential{} } 685func (m *RegistryCredential) String() string { return proto.CompactTextString(m) } 686func (*RegistryCredential) ProtoMessage() {} 687func (*RegistryCredential) Descriptor() ([]byte, []int) { 688 return fileDescriptor_resources_adeeda409206dfbb, []int{6} 689} 690func (m *RegistryCredential) XXX_Unmarshal(b []byte) error { 691 return xxx_messageInfo_RegistryCredential.Unmarshal(m, b) 692} 693func (m *RegistryCredential) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 694 return xxx_messageInfo_RegistryCredential.Marshal(b, m, deterministic) 695} 696func (dst *RegistryCredential) XXX_Merge(src proto.Message) { 697 xxx_messageInfo_RegistryCredential.Merge(dst, src) 698} 699func (m *RegistryCredential) XXX_Size() int { 700 return xxx_messageInfo_RegistryCredential.Size(m) 701} 702func (m *RegistryCredential) XXX_DiscardUnknown() { 703 xxx_messageInfo_RegistryCredential.DiscardUnknown(m) 704} 705 706var xxx_messageInfo_RegistryCredential proto.InternalMessageInfo 707 708type isRegistryCredential_Credential interface { 709 isRegistryCredential_Credential() 710} 711 712type RegistryCredential_PublicKeyCertificate struct { 713 PublicKeyCertificate *PublicKeyCertificate `protobuf:"bytes,1,opt,name=public_key_certificate,json=publicKeyCertificate,proto3,oneof"` 714} 715 716func (*RegistryCredential_PublicKeyCertificate) isRegistryCredential_Credential() {} 717 718func (m *RegistryCredential) GetCredential() isRegistryCredential_Credential { 719 if m != nil { 720 return m.Credential 721 } 722 return nil 723} 724 725func (m *RegistryCredential) GetPublicKeyCertificate() *PublicKeyCertificate { 726 if x, ok := m.GetCredential().(*RegistryCredential_PublicKeyCertificate); ok { 727 return x.PublicKeyCertificate 728 } 729 return nil 730} 731 732// XXX_OneofFuncs is for the internal use of the proto package. 733func (*RegistryCredential) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { 734 return _RegistryCredential_OneofMarshaler, _RegistryCredential_OneofUnmarshaler, _RegistryCredential_OneofSizer, []interface{}{ 735 (*RegistryCredential_PublicKeyCertificate)(nil), 736 } 737} 738 739func _RegistryCredential_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { 740 m := msg.(*RegistryCredential) 741 // credential 742 switch x := m.Credential.(type) { 743 case *RegistryCredential_PublicKeyCertificate: 744 b.EncodeVarint(1<<3 | proto.WireBytes) 745 if err := b.EncodeMessage(x.PublicKeyCertificate); err != nil { 746 return err 747 } 748 case nil: 749 default: 750 return fmt.Errorf("RegistryCredential.Credential has unexpected type %T", x) 751 } 752 return nil 753} 754 755func _RegistryCredential_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { 756 m := msg.(*RegistryCredential) 757 switch tag { 758 case 1: // credential.public_key_certificate 759 if wire != proto.WireBytes { 760 return true, proto.ErrInternalBadWireType 761 } 762 msg := new(PublicKeyCertificate) 763 err := b.DecodeMessage(msg) 764 m.Credential = &RegistryCredential_PublicKeyCertificate{msg} 765 return true, err 766 default: 767 return false, nil 768 } 769} 770 771func _RegistryCredential_OneofSizer(msg proto.Message) (n int) { 772 m := msg.(*RegistryCredential) 773 // credential 774 switch x := m.Credential.(type) { 775 case *RegistryCredential_PublicKeyCertificate: 776 s := proto.Size(x.PublicKeyCertificate) 777 n += 1 // tag and wire 778 n += proto.SizeVarint(uint64(s)) 779 n += s 780 case nil: 781 default: 782 panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) 783 } 784 return n 785} 786 787// Details of an X.509 certificate. For informational purposes only. 788type X509CertificateDetails struct { 789 // The entity that signed the certificate. 790 Issuer string `protobuf:"bytes,1,opt,name=issuer,proto3" json:"issuer,omitempty"` 791 // The entity the certificate and public key belong to. 792 Subject string `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"` 793 // The time the certificate becomes valid. 794 StartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 795 // The time the certificate becomes invalid. 796 ExpiryTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=expiry_time,json=expiryTime,proto3" json:"expiry_time,omitempty"` 797 // The algorithm used to sign the certificate. 798 SignatureAlgorithm string `protobuf:"bytes,5,opt,name=signature_algorithm,json=signatureAlgorithm,proto3" json:"signature_algorithm,omitempty"` 799 // The type of public key in the certificate. 800 PublicKeyType string `protobuf:"bytes,6,opt,name=public_key_type,json=publicKeyType,proto3" json:"public_key_type,omitempty"` 801 XXX_NoUnkeyedLiteral struct{} `json:"-"` 802 XXX_unrecognized []byte `json:"-"` 803 XXX_sizecache int32 `json:"-"` 804} 805 806func (m *X509CertificateDetails) Reset() { *m = X509CertificateDetails{} } 807func (m *X509CertificateDetails) String() string { return proto.CompactTextString(m) } 808func (*X509CertificateDetails) ProtoMessage() {} 809func (*X509CertificateDetails) Descriptor() ([]byte, []int) { 810 return fileDescriptor_resources_adeeda409206dfbb, []int{7} 811} 812func (m *X509CertificateDetails) XXX_Unmarshal(b []byte) error { 813 return xxx_messageInfo_X509CertificateDetails.Unmarshal(m, b) 814} 815func (m *X509CertificateDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 816 return xxx_messageInfo_X509CertificateDetails.Marshal(b, m, deterministic) 817} 818func (dst *X509CertificateDetails) XXX_Merge(src proto.Message) { 819 xxx_messageInfo_X509CertificateDetails.Merge(dst, src) 820} 821func (m *X509CertificateDetails) XXX_Size() int { 822 return xxx_messageInfo_X509CertificateDetails.Size(m) 823} 824func (m *X509CertificateDetails) XXX_DiscardUnknown() { 825 xxx_messageInfo_X509CertificateDetails.DiscardUnknown(m) 826} 827 828var xxx_messageInfo_X509CertificateDetails proto.InternalMessageInfo 829 830func (m *X509CertificateDetails) GetIssuer() string { 831 if m != nil { 832 return m.Issuer 833 } 834 return "" 835} 836 837func (m *X509CertificateDetails) GetSubject() string { 838 if m != nil { 839 return m.Subject 840 } 841 return "" 842} 843 844func (m *X509CertificateDetails) GetStartTime() *timestamp.Timestamp { 845 if m != nil { 846 return m.StartTime 847 } 848 return nil 849} 850 851func (m *X509CertificateDetails) GetExpiryTime() *timestamp.Timestamp { 852 if m != nil { 853 return m.ExpiryTime 854 } 855 return nil 856} 857 858func (m *X509CertificateDetails) GetSignatureAlgorithm() string { 859 if m != nil { 860 return m.SignatureAlgorithm 861 } 862 return "" 863} 864 865func (m *X509CertificateDetails) GetPublicKeyType() string { 866 if m != nil { 867 return m.PublicKeyType 868 } 869 return "" 870} 871 872// A public key certificate format and data. 873type PublicKeyCertificate struct { 874 // The certificate format. 875 Format PublicKeyCertificateFormat `protobuf:"varint,1,opt,name=format,proto3,enum=google.cloud.iot.v1.PublicKeyCertificateFormat" json:"format,omitempty"` 876 // The certificate data. 877 Certificate string `protobuf:"bytes,2,opt,name=certificate,proto3" json:"certificate,omitempty"` 878 // [Output only] The certificate details. Used only for X.509 certificates. 879 X509Details *X509CertificateDetails `protobuf:"bytes,3,opt,name=x509_details,json=x509Details,proto3" json:"x509_details,omitempty"` 880 XXX_NoUnkeyedLiteral struct{} `json:"-"` 881 XXX_unrecognized []byte `json:"-"` 882 XXX_sizecache int32 `json:"-"` 883} 884 885func (m *PublicKeyCertificate) Reset() { *m = PublicKeyCertificate{} } 886func (m *PublicKeyCertificate) String() string { return proto.CompactTextString(m) } 887func (*PublicKeyCertificate) ProtoMessage() {} 888func (*PublicKeyCertificate) Descriptor() ([]byte, []int) { 889 return fileDescriptor_resources_adeeda409206dfbb, []int{8} 890} 891func (m *PublicKeyCertificate) XXX_Unmarshal(b []byte) error { 892 return xxx_messageInfo_PublicKeyCertificate.Unmarshal(m, b) 893} 894func (m *PublicKeyCertificate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 895 return xxx_messageInfo_PublicKeyCertificate.Marshal(b, m, deterministic) 896} 897func (dst *PublicKeyCertificate) XXX_Merge(src proto.Message) { 898 xxx_messageInfo_PublicKeyCertificate.Merge(dst, src) 899} 900func (m *PublicKeyCertificate) XXX_Size() int { 901 return xxx_messageInfo_PublicKeyCertificate.Size(m) 902} 903func (m *PublicKeyCertificate) XXX_DiscardUnknown() { 904 xxx_messageInfo_PublicKeyCertificate.DiscardUnknown(m) 905} 906 907var xxx_messageInfo_PublicKeyCertificate proto.InternalMessageInfo 908 909func (m *PublicKeyCertificate) GetFormat() PublicKeyCertificateFormat { 910 if m != nil { 911 return m.Format 912 } 913 return PublicKeyCertificateFormat_UNSPECIFIED_PUBLIC_KEY_CERTIFICATE_FORMAT 914} 915 916func (m *PublicKeyCertificate) GetCertificate() string { 917 if m != nil { 918 return m.Certificate 919 } 920 return "" 921} 922 923func (m *PublicKeyCertificate) GetX509Details() *X509CertificateDetails { 924 if m != nil { 925 return m.X509Details 926 } 927 return nil 928} 929 930// A server-stored device credential used for authentication. 931type DeviceCredential struct { 932 // The credential data. Reserved for expansion in the future. 933 // 934 // Types that are valid to be assigned to Credential: 935 // *DeviceCredential_PublicKey 936 Credential isDeviceCredential_Credential `protobuf_oneof:"credential"` 937 // [Optional] The time at which this credential becomes invalid. This 938 // credential will be ignored for new client authentication requests after 939 // this timestamp; however, it will not be automatically deleted. 940 ExpirationTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=expiration_time,json=expirationTime,proto3" json:"expiration_time,omitempty"` 941 XXX_NoUnkeyedLiteral struct{} `json:"-"` 942 XXX_unrecognized []byte `json:"-"` 943 XXX_sizecache int32 `json:"-"` 944} 945 946func (m *DeviceCredential) Reset() { *m = DeviceCredential{} } 947func (m *DeviceCredential) String() string { return proto.CompactTextString(m) } 948func (*DeviceCredential) ProtoMessage() {} 949func (*DeviceCredential) Descriptor() ([]byte, []int) { 950 return fileDescriptor_resources_adeeda409206dfbb, []int{9} 951} 952func (m *DeviceCredential) XXX_Unmarshal(b []byte) error { 953 return xxx_messageInfo_DeviceCredential.Unmarshal(m, b) 954} 955func (m *DeviceCredential) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 956 return xxx_messageInfo_DeviceCredential.Marshal(b, m, deterministic) 957} 958func (dst *DeviceCredential) XXX_Merge(src proto.Message) { 959 xxx_messageInfo_DeviceCredential.Merge(dst, src) 960} 961func (m *DeviceCredential) XXX_Size() int { 962 return xxx_messageInfo_DeviceCredential.Size(m) 963} 964func (m *DeviceCredential) XXX_DiscardUnknown() { 965 xxx_messageInfo_DeviceCredential.DiscardUnknown(m) 966} 967 968var xxx_messageInfo_DeviceCredential proto.InternalMessageInfo 969 970type isDeviceCredential_Credential interface { 971 isDeviceCredential_Credential() 972} 973 974type DeviceCredential_PublicKey struct { 975 PublicKey *PublicKeyCredential `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3,oneof"` 976} 977 978func (*DeviceCredential_PublicKey) isDeviceCredential_Credential() {} 979 980func (m *DeviceCredential) GetCredential() isDeviceCredential_Credential { 981 if m != nil { 982 return m.Credential 983 } 984 return nil 985} 986 987func (m *DeviceCredential) GetPublicKey() *PublicKeyCredential { 988 if x, ok := m.GetCredential().(*DeviceCredential_PublicKey); ok { 989 return x.PublicKey 990 } 991 return nil 992} 993 994func (m *DeviceCredential) GetExpirationTime() *timestamp.Timestamp { 995 if m != nil { 996 return m.ExpirationTime 997 } 998 return nil 999} 1000 1001// XXX_OneofFuncs is for the internal use of the proto package. 1002func (*DeviceCredential) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { 1003 return _DeviceCredential_OneofMarshaler, _DeviceCredential_OneofUnmarshaler, _DeviceCredential_OneofSizer, []interface{}{ 1004 (*DeviceCredential_PublicKey)(nil), 1005 } 1006} 1007 1008func _DeviceCredential_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { 1009 m := msg.(*DeviceCredential) 1010 // credential 1011 switch x := m.Credential.(type) { 1012 case *DeviceCredential_PublicKey: 1013 b.EncodeVarint(2<<3 | proto.WireBytes) 1014 if err := b.EncodeMessage(x.PublicKey); err != nil { 1015 return err 1016 } 1017 case nil: 1018 default: 1019 return fmt.Errorf("DeviceCredential.Credential has unexpected type %T", x) 1020 } 1021 return nil 1022} 1023 1024func _DeviceCredential_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { 1025 m := msg.(*DeviceCredential) 1026 switch tag { 1027 case 2: // credential.public_key 1028 if wire != proto.WireBytes { 1029 return true, proto.ErrInternalBadWireType 1030 } 1031 msg := new(PublicKeyCredential) 1032 err := b.DecodeMessage(msg) 1033 m.Credential = &DeviceCredential_PublicKey{msg} 1034 return true, err 1035 default: 1036 return false, nil 1037 } 1038} 1039 1040func _DeviceCredential_OneofSizer(msg proto.Message) (n int) { 1041 m := msg.(*DeviceCredential) 1042 // credential 1043 switch x := m.Credential.(type) { 1044 case *DeviceCredential_PublicKey: 1045 s := proto.Size(x.PublicKey) 1046 n += 1 // tag and wire 1047 n += proto.SizeVarint(uint64(s)) 1048 n += s 1049 case nil: 1050 default: 1051 panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) 1052 } 1053 return n 1054} 1055 1056// A public key format and data. 1057type PublicKeyCredential struct { 1058 // The format of the key. 1059 Format PublicKeyFormat `protobuf:"varint,1,opt,name=format,proto3,enum=google.cloud.iot.v1.PublicKeyFormat" json:"format,omitempty"` 1060 // The key data. 1061 Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` 1062 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1063 XXX_unrecognized []byte `json:"-"` 1064 XXX_sizecache int32 `json:"-"` 1065} 1066 1067func (m *PublicKeyCredential) Reset() { *m = PublicKeyCredential{} } 1068func (m *PublicKeyCredential) String() string { return proto.CompactTextString(m) } 1069func (*PublicKeyCredential) ProtoMessage() {} 1070func (*PublicKeyCredential) Descriptor() ([]byte, []int) { 1071 return fileDescriptor_resources_adeeda409206dfbb, []int{10} 1072} 1073func (m *PublicKeyCredential) XXX_Unmarshal(b []byte) error { 1074 return xxx_messageInfo_PublicKeyCredential.Unmarshal(m, b) 1075} 1076func (m *PublicKeyCredential) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1077 return xxx_messageInfo_PublicKeyCredential.Marshal(b, m, deterministic) 1078} 1079func (dst *PublicKeyCredential) XXX_Merge(src proto.Message) { 1080 xxx_messageInfo_PublicKeyCredential.Merge(dst, src) 1081} 1082func (m *PublicKeyCredential) XXX_Size() int { 1083 return xxx_messageInfo_PublicKeyCredential.Size(m) 1084} 1085func (m *PublicKeyCredential) XXX_DiscardUnknown() { 1086 xxx_messageInfo_PublicKeyCredential.DiscardUnknown(m) 1087} 1088 1089var xxx_messageInfo_PublicKeyCredential proto.InternalMessageInfo 1090 1091func (m *PublicKeyCredential) GetFormat() PublicKeyFormat { 1092 if m != nil { 1093 return m.Format 1094 } 1095 return PublicKeyFormat_UNSPECIFIED_PUBLIC_KEY_FORMAT 1096} 1097 1098func (m *PublicKeyCredential) GetKey() string { 1099 if m != nil { 1100 return m.Key 1101 } 1102 return "" 1103} 1104 1105// The device configuration. Eventually delivered to devices. 1106type DeviceConfig struct { 1107 // [Output only] The version of this update. The version number is assigned by 1108 // the server, and is always greater than 0 after device creation. The 1109 // version must be 0 on the `CreateDevice` request if a `config` is 1110 // specified; the response of `CreateDevice` will always have a value of 1. 1111 Version int64 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` 1112 // [Output only] The time at which this configuration version was updated in 1113 // Cloud IoT Core. This timestamp is set by the server. 1114 CloudUpdateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=cloud_update_time,json=cloudUpdateTime,proto3" json:"cloud_update_time,omitempty"` 1115 // [Output only] The time at which Cloud IoT Core received the 1116 // acknowledgment from the device, indicating that the device has received 1117 // this configuration version. If this field is not present, the device has 1118 // not yet acknowledged that it received this version. Note that when 1119 // the config was sent to the device, many config versions may have been 1120 // available in Cloud IoT Core while the device was disconnected, and on 1121 // connection, only the latest version is sent to the device. Some 1122 // versions may never be sent to the device, and therefore are never 1123 // acknowledged. This timestamp is set by Cloud IoT Core. 1124 DeviceAckTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=device_ack_time,json=deviceAckTime,proto3" json:"device_ack_time,omitempty"` 1125 // The device configuration data. 1126 BinaryData []byte `protobuf:"bytes,4,opt,name=binary_data,json=binaryData,proto3" json:"binary_data,omitempty"` 1127 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1128 XXX_unrecognized []byte `json:"-"` 1129 XXX_sizecache int32 `json:"-"` 1130} 1131 1132func (m *DeviceConfig) Reset() { *m = DeviceConfig{} } 1133func (m *DeviceConfig) String() string { return proto.CompactTextString(m) } 1134func (*DeviceConfig) ProtoMessage() {} 1135func (*DeviceConfig) Descriptor() ([]byte, []int) { 1136 return fileDescriptor_resources_adeeda409206dfbb, []int{11} 1137} 1138func (m *DeviceConfig) XXX_Unmarshal(b []byte) error { 1139 return xxx_messageInfo_DeviceConfig.Unmarshal(m, b) 1140} 1141func (m *DeviceConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1142 return xxx_messageInfo_DeviceConfig.Marshal(b, m, deterministic) 1143} 1144func (dst *DeviceConfig) XXX_Merge(src proto.Message) { 1145 xxx_messageInfo_DeviceConfig.Merge(dst, src) 1146} 1147func (m *DeviceConfig) XXX_Size() int { 1148 return xxx_messageInfo_DeviceConfig.Size(m) 1149} 1150func (m *DeviceConfig) XXX_DiscardUnknown() { 1151 xxx_messageInfo_DeviceConfig.DiscardUnknown(m) 1152} 1153 1154var xxx_messageInfo_DeviceConfig proto.InternalMessageInfo 1155 1156func (m *DeviceConfig) GetVersion() int64 { 1157 if m != nil { 1158 return m.Version 1159 } 1160 return 0 1161} 1162 1163func (m *DeviceConfig) GetCloudUpdateTime() *timestamp.Timestamp { 1164 if m != nil { 1165 return m.CloudUpdateTime 1166 } 1167 return nil 1168} 1169 1170func (m *DeviceConfig) GetDeviceAckTime() *timestamp.Timestamp { 1171 if m != nil { 1172 return m.DeviceAckTime 1173 } 1174 return nil 1175} 1176 1177func (m *DeviceConfig) GetBinaryData() []byte { 1178 if m != nil { 1179 return m.BinaryData 1180 } 1181 return nil 1182} 1183 1184// The device state, as reported by the device. 1185type DeviceState struct { 1186 // [Output only] The time at which this state version was updated in Cloud 1187 // IoT Core. 1188 UpdateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 1189 // The device state data. 1190 BinaryData []byte `protobuf:"bytes,2,opt,name=binary_data,json=binaryData,proto3" json:"binary_data,omitempty"` 1191 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1192 XXX_unrecognized []byte `json:"-"` 1193 XXX_sizecache int32 `json:"-"` 1194} 1195 1196func (m *DeviceState) Reset() { *m = DeviceState{} } 1197func (m *DeviceState) String() string { return proto.CompactTextString(m) } 1198func (*DeviceState) ProtoMessage() {} 1199func (*DeviceState) Descriptor() ([]byte, []int) { 1200 return fileDescriptor_resources_adeeda409206dfbb, []int{12} 1201} 1202func (m *DeviceState) XXX_Unmarshal(b []byte) error { 1203 return xxx_messageInfo_DeviceState.Unmarshal(m, b) 1204} 1205func (m *DeviceState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1206 return xxx_messageInfo_DeviceState.Marshal(b, m, deterministic) 1207} 1208func (dst *DeviceState) XXX_Merge(src proto.Message) { 1209 xxx_messageInfo_DeviceState.Merge(dst, src) 1210} 1211func (m *DeviceState) XXX_Size() int { 1212 return xxx_messageInfo_DeviceState.Size(m) 1213} 1214func (m *DeviceState) XXX_DiscardUnknown() { 1215 xxx_messageInfo_DeviceState.DiscardUnknown(m) 1216} 1217 1218var xxx_messageInfo_DeviceState proto.InternalMessageInfo 1219 1220func (m *DeviceState) GetUpdateTime() *timestamp.Timestamp { 1221 if m != nil { 1222 return m.UpdateTime 1223 } 1224 return nil 1225} 1226 1227func (m *DeviceState) GetBinaryData() []byte { 1228 if m != nil { 1229 return m.BinaryData 1230 } 1231 return nil 1232} 1233 1234func init() { 1235 proto.RegisterType((*Device)(nil), "google.cloud.iot.v1.Device") 1236 proto.RegisterMapType((map[string]string)(nil), "google.cloud.iot.v1.Device.MetadataEntry") 1237 proto.RegisterType((*DeviceRegistry)(nil), "google.cloud.iot.v1.DeviceRegistry") 1238 proto.RegisterType((*MqttConfig)(nil), "google.cloud.iot.v1.MqttConfig") 1239 proto.RegisterType((*HttpConfig)(nil), "google.cloud.iot.v1.HttpConfig") 1240 proto.RegisterType((*EventNotificationConfig)(nil), "google.cloud.iot.v1.EventNotificationConfig") 1241 proto.RegisterType((*StateNotificationConfig)(nil), "google.cloud.iot.v1.StateNotificationConfig") 1242 proto.RegisterType((*RegistryCredential)(nil), "google.cloud.iot.v1.RegistryCredential") 1243 proto.RegisterType((*X509CertificateDetails)(nil), "google.cloud.iot.v1.X509CertificateDetails") 1244 proto.RegisterType((*PublicKeyCertificate)(nil), "google.cloud.iot.v1.PublicKeyCertificate") 1245 proto.RegisterType((*DeviceCredential)(nil), "google.cloud.iot.v1.DeviceCredential") 1246 proto.RegisterType((*PublicKeyCredential)(nil), "google.cloud.iot.v1.PublicKeyCredential") 1247 proto.RegisterType((*DeviceConfig)(nil), "google.cloud.iot.v1.DeviceConfig") 1248 proto.RegisterType((*DeviceState)(nil), "google.cloud.iot.v1.DeviceState") 1249 proto.RegisterEnum("google.cloud.iot.v1.MqttState", MqttState_name, MqttState_value) 1250 proto.RegisterEnum("google.cloud.iot.v1.HttpState", HttpState_name, HttpState_value) 1251 proto.RegisterEnum("google.cloud.iot.v1.PublicKeyCertificateFormat", PublicKeyCertificateFormat_name, PublicKeyCertificateFormat_value) 1252 proto.RegisterEnum("google.cloud.iot.v1.PublicKeyFormat", PublicKeyFormat_name, PublicKeyFormat_value) 1253} 1254 1255func init() { 1256 proto.RegisterFile("google/cloud/iot/v1/resources.proto", fileDescriptor_resources_adeeda409206dfbb) 1257} 1258 1259var fileDescriptor_resources_adeeda409206dfbb = []byte{ 1260 // 1348 bytes of a gzipped FileDescriptorProto 1261 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x57, 0xdd, 0x52, 0xdb, 0xc6, 1262 0x17, 0x47, 0x06, 0x0c, 0x1c, 0x03, 0xb6, 0x17, 0x02, 0xfa, 0x7b, 0xfe, 0x6d, 0x1c, 0xf7, 0x8b, 1263 0x24, 0xad, 0x9d, 0xd0, 0x49, 0xa6, 0x34, 0x9d, 0x4e, 0xc1, 0x88, 0xe0, 0x06, 0x53, 0x57, 0x76, 1264 0x66, 0xda, 0xdc, 0x68, 0xd6, 0xd2, 0x62, 0x14, 0x6c, 0x49, 0x91, 0x56, 0x9e, 0xf8, 0x01, 0xfa, 1265 0x00, 0xbd, 0xee, 0x4b, 0xf4, 0x55, 0x7a, 0xd1, 0x8b, 0xbe, 0x49, 0x2f, 0x3b, 0x7b, 0x56, 0x92, 1266 0x3f, 0x2a, 0x63, 0x7a, 0xa7, 0x3d, 0xe7, 0xfc, 0x7e, 0x67, 0xcf, 0xd7, 0xee, 0x0a, 0x3e, 0xea, 1267 0xb9, 0x6e, 0xaf, 0xcf, 0x6a, 0x66, 0xdf, 0x0d, 0xad, 0x9a, 0xed, 0xf2, 0xda, 0xf0, 0x69, 0xcd, 1268 0x67, 0x81, 0x1b, 0xfa, 0x26, 0x0b, 0xaa, 0x9e, 0xef, 0x72, 0x97, 0xec, 0x48, 0xa3, 0x2a, 0x1a, 1269 0x55, 0x6d, 0x97, 0x57, 0x87, 0x4f, 0x4b, 0xff, 0x8f, 0x90, 0xd4, 0xb3, 0x6b, 0xd4, 0x71, 0x5c, 1270 0x4e, 0xb9, 0xed, 0x3a, 0x11, 0xa4, 0x74, 0x3f, 0xd2, 0xe2, 0xaa, 0x1b, 0x5e, 0xd5, 0xb8, 0x3d, 1271 0x60, 0x01, 0xa7, 0x03, 0x2f, 0x32, 0xd8, 0x8f, 0x0c, 0x7c, 0xcf, 0xac, 0x05, 0x9c, 0xf2, 0x30, 1272 0x42, 0x56, 0x7e, 0x5d, 0x83, 0xec, 0x29, 0x1b, 0xda, 0x26, 0x23, 0xdb, 0x90, 0xb1, 0x2d, 0x55, 1273 0x29, 0x2b, 0x07, 0x1b, 0x7a, 0xc6, 0xb6, 0x08, 0x81, 0x15, 0x87, 0x0e, 0x98, 0x9a, 0x41, 0x09, 1274 0x7e, 0x93, 0x7b, 0x90, 0x75, 0xc2, 0x81, 0x61, 0x5b, 0xea, 0x72, 0x59, 0x39, 0x58, 0xd1, 0x57, 1275 0x9d, 0x70, 0xd0, 0xb0, 0xc8, 0x4b, 0xc8, 0x99, 0x3e, 0xb3, 0x98, 0xc3, 0x6d, 0xda, 0x0f, 0xd4, 1276 0xcd, 0xf2, 0xf2, 0x41, 0xee, 0xf0, 0x93, 0x6a, 0x4a, 0x20, 0x55, 0xe9, 0xac, 0x9e, 0x58, 0xeb, 1277 0x93, 0x48, 0xf2, 0x3d, 0xec, 0xf4, 0x69, 0xc0, 0x8d, 0x6b, 0x46, 0x7d, 0xde, 0x65, 0x94, 0x1b, 1278 0x22, 0x12, 0x75, 0xad, 0xac, 0x1c, 0xe4, 0x0e, 0x4b, 0x31, 0x61, 0x1c, 0x66, 0xb5, 0x13, 0x87, 1279 0xa9, 0x17, 0x05, 0xec, 0x3c, 0x46, 0x09, 0x39, 0x39, 0x81, 0x3c, 0x72, 0xb1, 0x21, 0x73, 0x22, 1280 0x9e, 0xf5, 0x85, 0x3c, 0x5b, 0x02, 0xa2, 0x09, 0xc4, 0x14, 0x87, 0xc8, 0x19, 0x93, 0x1c, 0xbb, 1281 0x77, 0xe3, 0x68, 0x0b, 0x04, 0x72, 0xbc, 0x82, 0x5d, 0xe4, 0x30, 0x5d, 0xe7, 0xca, 0xee, 0x19, 1282 0xd4, 0xbc, 0x91, 0x44, 0xdb, 0x77, 0x0b, 0xaa, 0x8e, 0xb0, 0x63, 0xf3, 0x06, 0xc9, 0x9a, 0x70, 1283 0x6f, 0x92, 0x2c, 0x60, 0x8e, 0x25, 0xd9, 0xc8, 0x42, 0x36, 0x32, 0x66, 0x6b, 0x33, 0xc7, 0x42, 1284 0x3a, 0x15, 0xd6, 0xba, 0x7d, 0xd7, 0xbc, 0x61, 0x96, 0xba, 0x53, 0x56, 0x0e, 0xd6, 0xf5, 0x78, 1285 0x39, 0xce, 0x9e, 0xef, 0xbb, 0xbe, 0x74, 0x01, 0x77, 0xcc, 0x9e, 0x40, 0x20, 0xfb, 0xb7, 0x50, 1286 0x9c, 0xe0, 0x90, 0x7d, 0xa7, 0xe6, 0x90, 0x85, 0xc4, 0x2c, 0xbe, 0x67, 0x56, 0xdb, 0xa8, 0xd1, 1287 0xf3, 0x09, 0x5a, 0x0a, 0xc8, 0x11, 0x64, 0x65, 0x9c, 0xea, 0x16, 0x82, 0x1e, 0xdc, 0xd6, 0x51, 1288 0x68, 0xa8, 0x47, 0x00, 0xf2, 0x1c, 0x56, 0xb1, 0x66, 0x6a, 0x01, 0x91, 0xe5, 0x5b, 0x90, 0x58, 1289 0x29, 0x5d, 0x9a, 0x13, 0x0d, 0xd6, 0x07, 0x8c, 0x53, 0x8b, 0x72, 0xaa, 0x16, 0xb1, 0x8d, 0x1f, 1290 0xde, 0x02, 0xad, 0x36, 0x23, 0x5b, 0xcd, 0xe1, 0xfe, 0x48, 0x4f, 0xa0, 0xa5, 0x17, 0xb0, 0x35, 1291 0xa5, 0x22, 0x05, 0x58, 0xbe, 0x61, 0xa3, 0x68, 0xba, 0xc4, 0x27, 0xd9, 0x85, 0xd5, 0x21, 0xed, 1292 0x87, 0xf1, 0x7c, 0xc9, 0xc5, 0xd7, 0x99, 0xaf, 0x94, 0xca, 0x5f, 0xcb, 0xb0, 0x2d, 0xf9, 0x75, 1293 0xd6, 0xb3, 0x03, 0x01, 0xbf, 0xcb, 0x6c, 0xbe, 0x85, 0x92, 0x6c, 0x75, 0xc7, 0xe5, 0xf6, 0x95, 1294 0x6d, 0xe2, 0x09, 0x11, 0x35, 0x4a, 0xa0, 0x02, 0x06, 0xf3, 0x79, 0x6a, 0x30, 0xd8, 0xef, 0x97, 1295 0x13, 0xa8, 0x28, 0x99, 0x2a, 0x4b, 0x57, 0x04, 0xe4, 0x1a, 0xfe, 0x27, 0x47, 0x22, 0xc5, 0x57, 1296 0x34, 0xad, 0xe9, 0xae, 0x30, 0xd9, 0x29, 0xae, 0xf6, 0x83, 0x74, 0x05, 0xf9, 0x0e, 0x72, 0x83, 1297 0x77, 0x3c, 0x6e, 0x78, 0x75, 0x05, 0xb9, 0xef, 0xa7, 0x72, 0x37, 0xdf, 0xf1, 0xa8, 0xbf, 0x75, 1298 0x18, 0x24, 0xdf, 0x82, 0xe1, 0x9a, 0x73, 0x2f, 0x66, 0xd8, 0xb8, 0x85, 0xe1, 0x9c, 0x73, 0x2f, 1299 0x66, 0xb8, 0x4e, 0xbe, 0x49, 0x63, 0xfa, 0x78, 0x5b, 0xc7, 0x54, 0x7e, 0x96, 0xca, 0x10, 0x57, 1300 0x6c, 0xce, 0x01, 0x57, 0x79, 0x03, 0x30, 0xde, 0x26, 0xb9, 0x00, 0x82, 0xc1, 0x31, 0x87, 0x76, 1301 0xfb, 0xcc, 0x92, 0xc7, 0x0c, 0x96, 0x79, 0xfb, 0xf0, 0xc3, 0xb9, 0x31, 0xca, 0x86, 0x2d, 0x08, 1302 0xa4, 0x26, 0x81, 0x28, 0x11, 0xdc, 0xe3, 0x00, 0x04, 0x37, 0x86, 0x7d, 0x77, 0x6e, 0x01, 0x8e, 1303 0xb8, 0x05, 0x72, 0x8a, 0xdb, 0x87, 0xfd, 0x39, 0x5d, 0x42, 0x1e, 0x43, 0x31, 0x08, 0xbb, 0x57, 1304 0x6e, 0xdf, 0x62, 0xbe, 0x31, 0xa0, 0xdc, 0xbc, 0x66, 0x41, 0xd4, 0x98, 0x85, 0x44, 0xd1, 0x94, 1305 0x72, 0xf2, 0x08, 0x8a, 0x5e, 0xd8, 0x0d, 0xc2, 0xae, 0xc1, 0x5d, 0xcf, 0x36, 0x0d, 0xec, 0x62, 1306 0xd9, 0xd7, 0x79, 0xa9, 0xe8, 0x08, 0xf9, 0x25, 0x1d, 0xb0, 0x8a, 0x06, 0xfb, 0x73, 0xda, 0xe5, 1307 0x3f, 0xd1, 0xfc, 0xa2, 0x00, 0xf9, 0x77, 0x59, 0x08, 0x85, 0x3d, 0x2f, 0xec, 0xf6, 0x6d, 0xd3, 1308 0xb8, 0x61, 0x23, 0xc3, 0x64, 0x7e, 0xe4, 0x44, 0xf2, 0xcc, 0x9b, 0xfb, 0x16, 0x42, 0x5e, 0xb1, 1309 0x51, 0x7d, 0x0c, 0x38, 0x5f, 0xd2, 0x77, 0xbd, 0x14, 0xf9, 0xc9, 0x26, 0xc0, 0xb8, 0xf6, 0x95, 1310 0xdf, 0x32, 0xb0, 0xf7, 0xd3, 0xb3, 0x27, 0x47, 0x13, 0x16, 0xa7, 0x8c, 0x53, 0xbb, 0x1f, 0x90, 1311 0x3d, 0xc8, 0xda, 0x41, 0x10, 0x32, 0x3f, 0x8a, 0x21, 0x5a, 0x89, 0xe3, 0x39, 0x08, 0xbb, 0x6f, 1312 0x99, 0xc9, 0xa3, 0x84, 0xc6, 0x4b, 0x72, 0x04, 0x10, 0x70, 0xea, 0x47, 0xf7, 0xda, 0xf2, 0xc2, 1313 0x93, 0x79, 0x03, 0xad, 0xf1, 0x54, 0x7e, 0x01, 0x39, 0xf6, 0xde, 0xb3, 0xfd, 0x91, 0xc4, 0xae, 1314 0x2c, 0xc4, 0x82, 0x34, 0x47, 0x70, 0x0d, 0x76, 0x02, 0xbb, 0xe7, 0x50, 0x1e, 0xfa, 0xcc, 0xa0, 1315 0xfd, 0x9e, 0xeb, 0xdb, 0xfc, 0x7a, 0xa0, 0xae, 0xe2, 0xee, 0x48, 0xa2, 0x3a, 0x8e, 0x35, 0xe4, 1316 0x53, 0xc8, 0x4f, 0xa4, 0x99, 0x8f, 0x3c, 0xa6, 0x66, 0xd1, 0x78, 0x2b, 0x49, 0x59, 0x67, 0xe4, 1317 0xb1, 0xca, 0x1f, 0x0a, 0xec, 0xa6, 0x25, 0x97, 0xbc, 0x84, 0xec, 0x95, 0xeb, 0x0f, 0x28, 0x8f, 1318 0x7a, 0xb7, 0x76, 0xe7, 0xba, 0x9c, 0x21, 0x4c, 0x8f, 0xe0, 0xa4, 0x0c, 0xb9, 0xc9, 0x2a, 0xcb, 1319 0x84, 0x4e, 0x8a, 0xc8, 0x25, 0x6c, 0xbe, 0x7f, 0xf6, 0xe4, 0xc8, 0xb0, 0x64, 0x59, 0xa2, 0xb4, 1320 0x3e, 0x4e, 0x75, 0x98, 0x5e, 0x49, 0x3d, 0x27, 0x08, 0xa2, 0x45, 0xe5, 0x77, 0x05, 0x0a, 0xb3, 1321 0xef, 0x1d, 0xd2, 0x00, 0x18, 0x27, 0x04, 0x77, 0x91, 0x3b, 0x3c, 0x58, 0x10, 0x53, 0x82, 0x3e, 1322 0x5f, 0xd2, 0x37, 0x92, 0xbc, 0x91, 0x3a, 0xe4, 0xb1, 0x34, 0xf2, 0xf4, 0xc5, 0x6a, 0x66, 0x17, 1323 0x56, 0x73, 0x7b, 0x0c, 0x11, 0xc2, 0x99, 0x26, 0x65, 0xb0, 0x93, 0xe2, 0x96, 0x7c, 0x33, 0x53, 1324 0x84, 0x8f, 0x6f, 0xdf, 0xf0, 0x4c, 0xe6, 0xa3, 0xcb, 0x2f, 0x93, 0x5c, 0x7e, 0x95, 0x3f, 0x15, 1325 0xd8, 0x9c, 0xbc, 0xb7, 0x45, 0xa7, 0x0f, 0x99, 0x1f, 0xd8, 0xae, 0x83, 0x1e, 0x96, 0xf5, 0x78, 1326 0x49, 0xce, 0xa0, 0x88, 0x4e, 0x8c, 0xd0, 0xb3, 0x92, 0x47, 0x58, 0x66, 0x61, 0x98, 0x79, 0x04, 1327 0xbd, 0x46, 0x4c, 0xfc, 0x94, 0xb3, 0xd0, 0xe3, 0xf8, 0x05, 0xb6, 0x78, 0x6c, 0xb6, 0x24, 0x24, 1328 0x7e, 0x7d, 0xdd, 0x87, 0x5c, 0xd7, 0x76, 0xa8, 0x3f, 0x32, 0xf0, 0x81, 0x20, 0x46, 0x67, 0x53, 1329 0x07, 0x29, 0x3a, 0xa5, 0x9c, 0x56, 0x6e, 0x20, 0x37, 0xf1, 0xa8, 0x10, 0xa3, 0x36, 0xb9, 0x6b, 1330 0x65, 0xf1, 0xa8, 0x85, 0xe3, 0x0d, 0xcf, 0x38, 0xcb, 0xcc, 0x3a, 0x7b, 0x74, 0x01, 0x1b, 0xc9, 1331 0x75, 0x40, 0x4a, 0xb0, 0xd7, 0xfc, 0xb1, 0xd3, 0x31, 0xda, 0x9d, 0xe3, 0x8e, 0x66, 0xbc, 0xbe, 1332 0x6c, 0xb7, 0xb4, 0x7a, 0xe3, 0xac, 0xa1, 0x9d, 0x16, 0x96, 0x48, 0x01, 0x36, 0x51, 0xa7, 0x5d, 1333 0x1e, 0x9f, 0x5c, 0x68, 0xa7, 0x05, 0x85, 0x14, 0x61, 0x0b, 0x25, 0xa7, 0x8d, 0xb6, 0x14, 0x65, 1334 0x04, 0x5b, 0x72, 0x01, 0x08, 0xb6, 0xf3, 0x4e, 0xa7, 0x35, 0x8f, 0x0d, 0x75, 0x53, 0x6c, 0x28, 1335 0x99, 0x60, 0x63, 0x50, 0x9a, 0x3f, 0x92, 0xe4, 0x0b, 0x78, 0x38, 0xc1, 0x69, 0xb4, 0x5e, 0x9f, 1336 0x5c, 0x34, 0xea, 0xc6, 0x2b, 0xed, 0x67, 0xa3, 0xae, 0xe9, 0x9d, 0xc6, 0x59, 0xa3, 0x2e, 0xdc, 1337 0x9e, 0xfd, 0xa0, 0x37, 0x8f, 0x3b, 0x85, 0x25, 0xa2, 0xc2, 0xae, 0x18, 0xb7, 0x29, 0x65, 0x4b, 1338 0x6b, 0x16, 0x94, 0x47, 0x43, 0xc8, 0xcf, 0x34, 0x1d, 0x79, 0x00, 0x1f, 0xcc, 0xe1, 0x4e, 0xf8, 1339 0x72, 0xb0, 0xa6, 0xb7, 0x8f, 0x91, 0x62, 0x59, 0x84, 0x23, 0x16, 0xe8, 0x00, 0x49, 0xc9, 0x16, 1340 0x6c, 0x68, 0xed, 0xc3, 0x67, 0xcf, 0x71, 0x99, 0x21, 0x04, 0xb6, 0xe5, 0x32, 0x31, 0x59, 0x39, 1341 0xb9, 0x82, 0x7d, 0xd3, 0x1d, 0xa4, 0x0d, 0xc1, 0xc9, 0xb6, 0x1e, 0xff, 0xcf, 0xb5, 0x44, 0x7d, 1342 0x5b, 0xca, 0x9b, 0xe7, 0x91, 0x59, 0xcf, 0xed, 0x53, 0xa7, 0x57, 0x75, 0xfd, 0x5e, 0xad, 0xc7, 1343 0x1c, 0xac, 0x7e, 0x4d, 0xaa, 0xa8, 0x67, 0x07, 0x53, 0x3f, 0x85, 0x2f, 0x6c, 0x97, 0xff, 0xad, 1344 0x28, 0xdd, 0x2c, 0x5a, 0x7d, 0xf9, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd0, 0xd7, 0xe3, 0xef, 1345 0x39, 0x0e, 0x00, 0x00, 1346} 1347