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