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