google-api-client 0.14.4 → 0.14.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +41 -0
  3. data/generated/google/apis/analyticsreporting_v4.rb +1 -1
  4. data/generated/google/apis/androidmanagement_v1.rb +1 -1
  5. data/generated/google/apis/androidmanagement_v1/classes.rb +2 -2
  6. data/generated/google/apis/appengine_v1.rb +1 -1
  7. data/generated/google/apis/appengine_v1/classes.rb +111 -0
  8. data/generated/google/apis/appengine_v1/representations.rb +59 -0
  9. data/generated/google/apis/appengine_v1/service.rb +220 -0
  10. data/generated/google/apis/bigquerydatatransfer_v1.rb +1 -1
  11. data/generated/google/apis/classroom_v1.rb +7 -1
  12. data/generated/google/apis/classroom_v1/classes.rb +361 -0
  13. data/generated/google/apis/classroom_v1/representations.rb +161 -0
  14. data/generated/google/apis/classroom_v1/service.rb +426 -0
  15. data/generated/google/apis/cloudfunctions_v1beta2.rb +1 -1
  16. data/generated/google/apis/cloudfunctions_v1beta2/classes.rb +3 -3
  17. data/generated/google/apis/cloudiot_v1.rb +38 -0
  18. data/generated/google/apis/cloudiot_v1/classes.rb +1197 -0
  19. data/generated/google/apis/cloudiot_v1/representations.rb +473 -0
  20. data/generated/google/apis/cloudiot_v1/service.rb +657 -0
  21. data/generated/google/apis/cloudiot_v1beta1.rb +38 -0
  22. data/generated/google/apis/cloudiot_v1beta1/classes.rb +1064 -0
  23. data/generated/google/apis/cloudiot_v1beta1/representations.rb +442 -0
  24. data/generated/google/apis/cloudiot_v1beta1/service.rb +725 -0
  25. data/generated/google/apis/cloudtasks_v2beta2.rb +1 -1
  26. data/generated/google/apis/cloudtasks_v2beta2/classes.rb +4 -4
  27. data/generated/google/apis/cloudtrace_v1.rb +1 -1
  28. data/generated/google/apis/cloudtrace_v2.rb +1 -1
  29. data/generated/google/apis/cloudtrace_v2/classes.rb +1 -1
  30. data/generated/google/apis/cloudtrace_v2/service.rb +1 -1
  31. data/generated/google/apis/container_v1.rb +1 -1
  32. data/generated/google/apis/container_v1/classes.rb +34 -4
  33. data/generated/google/apis/container_v1/representations.rb +15 -0
  34. data/generated/google/apis/container_v1beta1.rb +1 -1
  35. data/generated/google/apis/container_v1beta1/classes.rb +34 -4
  36. data/generated/google/apis/container_v1beta1/representations.rb +15 -0
  37. data/generated/google/apis/content_v2.rb +1 -1
  38. data/generated/google/apis/content_v2/classes.rb +91 -9
  39. data/generated/google/apis/content_v2/representations.rb +20 -0
  40. data/generated/google/apis/content_v2/service.rb +1 -2
  41. data/generated/google/apis/content_v2sandbox.rb +1 -1
  42. data/generated/google/apis/content_v2sandbox/classes.rb +90 -8
  43. data/generated/google/apis/content_v2sandbox/representations.rb +20 -0
  44. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  45. data/generated/google/apis/dataflow_v1b3/classes.rb +53 -3
  46. data/generated/google/apis/dataflow_v1b3/representations.rb +16 -0
  47. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  48. data/generated/google/apis/dataproc_v1beta2/classes.rb +461 -0
  49. data/generated/google/apis/dataproc_v1beta2/representations.rb +194 -0
  50. data/generated/google/apis/dataproc_v1beta2/service.rb +452 -0
  51. data/generated/google/apis/deploymentmanager_alpha.rb +1 -1
  52. data/generated/google/apis/deploymentmanager_alpha/classes.rb +30 -1
  53. data/generated/google/apis/deploymentmanager_alpha/representations.rb +8 -0
  54. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  55. data/generated/google/apis/deploymentmanager_v2/classes.rb +2 -1
  56. data/generated/google/apis/deploymentmanager_v2beta.rb +1 -1
  57. data/generated/google/apis/deploymentmanager_v2beta/classes.rb +2 -1
  58. data/generated/google/apis/dlp_v2beta1.rb +1 -1
  59. data/generated/google/apis/dlp_v2beta1/classes.rb +2 -2
  60. data/generated/google/apis/firebaserules_v1.rb +1 -1
  61. data/generated/google/apis/firebaserules_v1/classes.rb +44 -0
  62. data/generated/google/apis/firebaserules_v1/representations.rb +17 -0
  63. data/generated/google/apis/firebaserules_v1/service.rb +35 -0
  64. data/generated/google/apis/fitness_v1.rb +1 -1
  65. data/generated/google/apis/fitness_v1/classes.rb +3 -3
  66. data/generated/google/apis/fitness_v1/service.rb +4 -4
  67. data/generated/google/apis/iam_v1.rb +1 -1
  68. data/generated/google/apis/iam_v1/classes.rb +14 -14
  69. data/generated/google/apis/iam_v1/service.rb +29 -29
  70. data/generated/google/apis/kgsearch_v1.rb +1 -1
  71. data/generated/google/apis/logging_v2.rb +1 -1
  72. data/generated/google/apis/logging_v2/classes.rb +11 -9
  73. data/generated/google/apis/logging_v2beta1.rb +1 -1
  74. data/generated/google/apis/logging_v2beta1/classes.rb +11 -9
  75. data/generated/google/apis/ml_v1.rb +1 -1
  76. data/generated/google/apis/ml_v1/classes.rb +5 -4
  77. data/generated/google/apis/oslogin_v1alpha.rb +1 -1
  78. data/generated/google/apis/oslogin_v1beta.rb +1 -1
  79. data/generated/google/apis/pubsub_v1.rb +1 -1
  80. data/generated/google/apis/pubsub_v1/classes.rb +2 -1
  81. data/generated/google/apis/script_v1.rb +2 -2
  82. data/generated/google/apis/script_v1/service.rb +1 -1
  83. data/generated/google/apis/servicecontrol_v1.rb +1 -1
  84. data/generated/google/apis/servicecontrol_v1/classes.rb +19 -23
  85. data/generated/google/apis/servicecontrol_v1/representations.rb +1 -1
  86. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  87. data/generated/google/apis/servicemanagement_v1/classes.rb +106 -0
  88. data/generated/google/apis/servicemanagement_v1/representations.rb +32 -0
  89. data/generated/google/apis/serviceuser_v1.rb +1 -1
  90. data/generated/google/apis/serviceuser_v1/classes.rb +92 -92
  91. data/generated/google/apis/serviceuser_v1/representations.rb +27 -15
  92. data/generated/google/apis/streetviewpublish_v1.rb +1 -1
  93. data/generated/google/apis/streetviewpublish_v1/service.rb +7 -0
  94. data/generated/google/apis/toolresults_v1beta3.rb +1 -1
  95. data/generated/google/apis/toolresults_v1beta3/classes.rb +2 -2
  96. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  97. data/generated/google/apis/youtube_partner_v1/classes.rb +53 -0
  98. data/generated/google/apis/youtube_partner_v1/representations.rb +29 -0
  99. data/generated/google/apis/youtube_partner_v1/service.rb +37 -0
  100. data/lib/google/apis/version.rb +1 -1
  101. metadata +10 -2
@@ -26,7 +26,7 @@ module Google
26
26
  # @see https://cloud.google.com/functions
27
27
  module CloudfunctionsV1beta2
28
28
  VERSION = 'V1beta2'
29
- REVISION = '20170914'
29
+ REVISION = '20170926'
30
30
 
31
31
  # View and manage your data across Google Cloud Platform services
32
32
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -146,11 +146,11 @@ module Google
146
146
  # To refer to a specific commit:
147
147
  # `https://source.developers.google.com/projects/*/repos/*/revisions/*/paths/*`
148
148
  # To refer to a moveable alias (branch):
149
- # `https://source.developers.google.com/projects/*/repos/*/aliases/movable/*/
149
+ # `https://source.developers.google.com/projects/*/repos/*/moveable-aliases/*/
150
150
  # paths/*`
151
151
  # In particular, to refer to HEAD use `master` moveable alias.
152
152
  # To refer to a specific fixed alias (tag):
153
- # `https://source.developers.google.com/projects/*/repos/*/aliases/fixed/*/paths/
153
+ # `https://source.developers.google.com/projects/*/repos/*/fixed-aliases/*/paths/
154
154
  # *`
155
155
  # You may omit `paths/*` if you want to use the main directory.
156
156
  # Corresponds to the JSON property `sourceRepositoryUrl`
@@ -217,7 +217,7 @@ module Google
217
217
  # Handle an object changing in Google Cloud Storage
218
218
  # `providers/cloud.storage/eventTypes/object.change`
219
219
  # Handle a write to the Firebase Realtime Database
220
- # `providers/firebase.database/eventTypes/data.write`
220
+ # `providers/google.firebase.database/eventTypes/ref.write`
221
221
  # Corresponds to the JSON property `eventType`
222
222
  # @return [String]
223
223
  attr_accessor :event_type
@@ -0,0 +1,38 @@
1
+ # Copyright 2015 Google Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'google/apis/cloudiot_v1/service.rb'
16
+ require 'google/apis/cloudiot_v1/classes.rb'
17
+ require 'google/apis/cloudiot_v1/representations.rb'
18
+
19
+ module Google
20
+ module Apis
21
+ # Google Cloud IoT API
22
+ #
23
+ # Registers and manages IoT (Internet of Things) devices that connect to the
24
+ # Google Cloud Platform.
25
+ #
26
+ # @see https://cloud.google.com/iot
27
+ module CloudiotV1
28
+ VERSION = 'V1'
29
+ REVISION = '20170922'
30
+
31
+ # View and manage your data across Google Cloud Platform services
32
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
33
+
34
+ # Register and manage devices in the Google Cloud IoT service
35
+ AUTH_CLOUDIOT = 'https://www.googleapis.com/auth/cloudiot'
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,1197 @@
1
+ # Copyright 2015 Google Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module CloudiotV1
24
+
25
+ # Specifies the audit configuration for a service.
26
+ # The configuration determines which permission types are logged, and what
27
+ # identities, if any, are exempted from logging.
28
+ # An AuditConfig must have one or more AuditLogConfigs.
29
+ # If there are AuditConfigs for both `allServices` and a specific service,
30
+ # the union of the two AuditConfigs is used for that service: the log_types
31
+ # specified in each AuditConfig are enabled, and the exempted_members in each
32
+ # AuditConfig are exempted.
33
+ # Example Policy with multiple AuditConfigs:
34
+ # `
35
+ # "audit_configs": [
36
+ # `
37
+ # "service": "allServices"
38
+ # "audit_log_configs": [
39
+ # `
40
+ # "log_type": "DATA_READ",
41
+ # "exempted_members": [
42
+ # "user:foo@gmail.com"
43
+ # ]
44
+ # `,
45
+ # `
46
+ # "log_type": "DATA_WRITE",
47
+ # `,
48
+ # `
49
+ # "log_type": "ADMIN_READ",
50
+ # `
51
+ # ]
52
+ # `,
53
+ # `
54
+ # "service": "fooservice.googleapis.com"
55
+ # "audit_log_configs": [
56
+ # `
57
+ # "log_type": "DATA_READ",
58
+ # `,
59
+ # `
60
+ # "log_type": "DATA_WRITE",
61
+ # "exempted_members": [
62
+ # "user:bar@gmail.com"
63
+ # ]
64
+ # `
65
+ # ]
66
+ # `
67
+ # ]
68
+ # `
69
+ # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
70
+ # logging. It also exempts foo@gmail.com from DATA_READ logging, and
71
+ # bar@gmail.com from DATA_WRITE logging.
72
+ class AuditConfig
73
+ include Google::Apis::Core::Hashable
74
+
75
+ # The configuration for logging of each type of permission.
76
+ # Next ID: 4
77
+ # Corresponds to the JSON property `auditLogConfigs`
78
+ # @return [Array<Google::Apis::CloudiotV1::AuditLogConfig>]
79
+ attr_accessor :audit_log_configs
80
+
81
+ #
82
+ # Corresponds to the JSON property `exemptedMembers`
83
+ # @return [Array<String>]
84
+ attr_accessor :exempted_members
85
+
86
+ # Specifies a service that will be enabled for audit logging.
87
+ # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
88
+ # `allServices` is a special value that covers all services.
89
+ # Corresponds to the JSON property `service`
90
+ # @return [String]
91
+ attr_accessor :service
92
+
93
+ def initialize(**args)
94
+ update!(**args)
95
+ end
96
+
97
+ # Update properties of this object
98
+ def update!(**args)
99
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
100
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
101
+ @service = args[:service] if args.key?(:service)
102
+ end
103
+ end
104
+
105
+ # Provides the configuration for logging a type of permissions.
106
+ # Example:
107
+ # `
108
+ # "audit_log_configs": [
109
+ # `
110
+ # "log_type": "DATA_READ",
111
+ # "exempted_members": [
112
+ # "user:foo@gmail.com"
113
+ # ]
114
+ # `,
115
+ # `
116
+ # "log_type": "DATA_WRITE",
117
+ # `
118
+ # ]
119
+ # `
120
+ # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
121
+ # foo@gmail.com from DATA_READ logging.
122
+ class AuditLogConfig
123
+ include Google::Apis::Core::Hashable
124
+
125
+ # Specifies the identities that do not cause logging for this type of
126
+ # permission.
127
+ # Follows the same format of Binding.members.
128
+ # Corresponds to the JSON property `exemptedMembers`
129
+ # @return [Array<String>]
130
+ attr_accessor :exempted_members
131
+
132
+ # The log type that this config enables.
133
+ # Corresponds to the JSON property `logType`
134
+ # @return [String]
135
+ attr_accessor :log_type
136
+
137
+ def initialize(**args)
138
+ update!(**args)
139
+ end
140
+
141
+ # Update properties of this object
142
+ def update!(**args)
143
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
144
+ @log_type = args[:log_type] if args.key?(:log_type)
145
+ end
146
+ end
147
+
148
+ # Associates `members` with a `role`.
149
+ class Binding
150
+ include Google::Apis::Core::Hashable
151
+
152
+ # Represents an expression text. Example:
153
+ # title: "User account presence"
154
+ # description: "Determines whether the request has a user account"
155
+ # expression: "size(request.user) > 0"
156
+ # Corresponds to the JSON property `condition`
157
+ # @return [Google::Apis::CloudiotV1::Expr]
158
+ attr_accessor :condition
159
+
160
+ # Specifies the identities requesting access for a Cloud Platform resource.
161
+ # `members` can have the following values:
162
+ # * `allUsers`: A special identifier that represents anyone who is
163
+ # on the internet; with or without a Google account.
164
+ # * `allAuthenticatedUsers`: A special identifier that represents anyone
165
+ # who is authenticated with a Google account or a service account.
166
+ # * `user:`emailid``: An email address that represents a specific Google
167
+ # account. For example, `alice@gmail.com` or `joe@example.com`.
168
+ # * `serviceAccount:`emailid``: An email address that represents a service
169
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`.
170
+ # * `group:`emailid``: An email address that represents a Google group.
171
+ # For example, `admins@example.com`.
172
+ # * `domain:`domain``: A Google Apps domain name that represents all the
173
+ # users of that domain. For example, `google.com` or `example.com`.
174
+ # Corresponds to the JSON property `members`
175
+ # @return [Array<String>]
176
+ attr_accessor :members
177
+
178
+ # Role that is assigned to `members`.
179
+ # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
180
+ # Required
181
+ # Corresponds to the JSON property `role`
182
+ # @return [String]
183
+ attr_accessor :role
184
+
185
+ def initialize(**args)
186
+ update!(**args)
187
+ end
188
+
189
+ # Update properties of this object
190
+ def update!(**args)
191
+ @condition = args[:condition] if args.key?(:condition)
192
+ @members = args[:members] if args.key?(:members)
193
+ @role = args[:role] if args.key?(:role)
194
+ end
195
+ end
196
+
197
+ # The device resource.
198
+ class Device
199
+ include Google::Apis::Core::Hashable
200
+
201
+ # If a device is blocked, connections or requests from this device will fail.
202
+ # Can be used to temporarily prevent the device from connecting if, for
203
+ # example, the sensor is generating bad data and needs maintenance.
204
+ # Corresponds to the JSON property `blocked`
205
+ # @return [Boolean]
206
+ attr_accessor :blocked
207
+ alias_method :blocked?, :blocked
208
+
209
+ # The device configuration. Eventually delivered to devices.
210
+ # Corresponds to the JSON property `config`
211
+ # @return [Google::Apis::CloudiotV1::DeviceConfig]
212
+ attr_accessor :config
213
+
214
+ # The credentials used to authenticate this device. To allow credential
215
+ # rotation without interruption, multiple device credentials can be bound to
216
+ # this device. No more than 3 credentials can be bound to a single device at
217
+ # a time. When new credentials are added to a device, they are verified
218
+ # against the registry credentials. For details, see the description of the
219
+ # `DeviceRegistry.credentials` field.
220
+ # Corresponds to the JSON property `credentials`
221
+ # @return [Array<Google::Apis::CloudiotV1::DeviceCredential>]
222
+ attr_accessor :credentials
223
+
224
+ # The user-defined device identifier. The device ID must be unique
225
+ # within a device registry.
226
+ # Corresponds to the JSON property `id`
227
+ # @return [String]
228
+ attr_accessor :id
229
+
230
+ # [Output only] The last time a cloud-to-device config version acknowledgment
231
+ # was received from the device. This field is only for configurations
232
+ # sent through MQTT.
233
+ # Corresponds to the JSON property `lastConfigAckTime`
234
+ # @return [String]
235
+ attr_accessor :last_config_ack_time
236
+
237
+ # [Output only] The last time a cloud-to-device config version was sent to
238
+ # the device.
239
+ # Corresponds to the JSON property `lastConfigSendTime`
240
+ # @return [String]
241
+ attr_accessor :last_config_send_time
242
+
243
+ # The `Status` type defines a logical error model that is suitable for different
244
+ # programming environments, including REST APIs and RPC APIs. It is used by
245
+ # [gRPC](https://github.com/grpc). The error model is designed to be:
246
+ # - Simple to use and understand for most users
247
+ # - Flexible enough to meet unexpected needs
248
+ # # Overview
249
+ # The `Status` message contains three pieces of data: error code, error message,
250
+ # and error details. The error code should be an enum value of
251
+ # google.rpc.Code, but it may accept additional error codes if needed. The
252
+ # error message should be a developer-facing English message that helps
253
+ # developers *understand* and *resolve* the error. If a localized user-facing
254
+ # error message is needed, put the localized message in the error details or
255
+ # localize it in the client. The optional error details may contain arbitrary
256
+ # information about the error. There is a predefined set of error detail types
257
+ # in the package `google.rpc` that can be used for common error conditions.
258
+ # # Language mapping
259
+ # The `Status` message is the logical representation of the error model, but it
260
+ # is not necessarily the actual wire format. When the `Status` message is
261
+ # exposed in different client libraries and different wire protocols, it can be
262
+ # mapped differently. For example, it will likely be mapped to some exceptions
263
+ # in Java, but more likely mapped to some error codes in C.
264
+ # # Other uses
265
+ # The error model and the `Status` message can be used in a variety of
266
+ # environments, either with or without APIs, to provide a
267
+ # consistent developer experience across different environments.
268
+ # Example uses of this error model include:
269
+ # - Partial errors. If a service needs to return partial errors to the client,
270
+ # it may embed the `Status` in the normal response to indicate the partial
271
+ # errors.
272
+ # - Workflow errors. A typical workflow has multiple steps. Each step may
273
+ # have a `Status` message for error reporting.
274
+ # - Batch operations. If a client uses batch request and batch response, the
275
+ # `Status` message should be used directly inside batch response, one for
276
+ # each error sub-response.
277
+ # - Asynchronous operations. If an API call embeds asynchronous operation
278
+ # results in its response, the status of those operations should be
279
+ # represented directly using the `Status` message.
280
+ # - Logging. If some API errors are stored in logs, the message `Status` could
281
+ # be used directly after any stripping needed for security/privacy reasons.
282
+ # Corresponds to the JSON property `lastErrorStatus`
283
+ # @return [Google::Apis::CloudiotV1::Status]
284
+ attr_accessor :last_error_status
285
+
286
+ # [Output only] The time the most recent error occurred, such as a failure to
287
+ # publish to Cloud Pub/Sub. This field is the timestamp of
288
+ # 'last_error_status'.
289
+ # Corresponds to the JSON property `lastErrorTime`
290
+ # @return [String]
291
+ attr_accessor :last_error_time
292
+
293
+ # [Output only] The last time a telemetry event was received. Timestamps are
294
+ # periodically collected and written to storage; they may be stale by a few
295
+ # minutes.
296
+ # Corresponds to the JSON property `lastEventTime`
297
+ # @return [String]
298
+ attr_accessor :last_event_time
299
+
300
+ # [Output only] The last time a heartbeat was received. Timestamps are
301
+ # periodically collected and written to storage; they may be stale by a few
302
+ # minutes. This field is only for devices connecting through MQTT.
303
+ # Corresponds to the JSON property `lastHeartbeatTime`
304
+ # @return [String]
305
+ attr_accessor :last_heartbeat_time
306
+
307
+ # [Output only] The last time a state event was received. Timestamps are
308
+ # periodically collected and written to storage; they may be stale by a few
309
+ # minutes.
310
+ # Corresponds to the JSON property `lastStateTime`
311
+ # @return [String]
312
+ attr_accessor :last_state_time
313
+
314
+ # The metadata key-value pairs assigned to the device. This metadata is not
315
+ # interpreted or indexed by Cloud IoT Core. It can be used to add contextual
316
+ # information for the device.
317
+ # Keys must conform to the regular expression [a-zA-Z0-9-_]+ and be less than
318
+ # 128 bytes in length.
319
+ # Values are free-form strings. Each value must be less than or equal to 32
320
+ # KB in size.
321
+ # The total size of all keys and values must be less than 256 KB, and the
322
+ # maximum number of key-value pairs is 500.
323
+ # Corresponds to the JSON property `metadata`
324
+ # @return [Hash<String,String>]
325
+ attr_accessor :metadata
326
+
327
+ # The resource path name. For example,
328
+ # `projects/p1/locations/us-central1/registries/registry0/devices/dev0` or
329
+ # `projects/p1/locations/us-central1/registries/registry0/devices/`num_id``.
330
+ # When `name` is populated as a response from the service, it always ends
331
+ # in the device numeric ID.
332
+ # Corresponds to the JSON property `name`
333
+ # @return [String]
334
+ attr_accessor :name
335
+
336
+ # [Output only] A server-defined unique numeric ID for the device. This is a
337
+ # more compact way to identify devices, and it is globally unique.
338
+ # Corresponds to the JSON property `numId`
339
+ # @return [Fixnum]
340
+ attr_accessor :num_id
341
+
342
+ # The device state, as reported by the device.
343
+ # Corresponds to the JSON property `state`
344
+ # @return [Google::Apis::CloudiotV1::DeviceState]
345
+ attr_accessor :state
346
+
347
+ def initialize(**args)
348
+ update!(**args)
349
+ end
350
+
351
+ # Update properties of this object
352
+ def update!(**args)
353
+ @blocked = args[:blocked] if args.key?(:blocked)
354
+ @config = args[:config] if args.key?(:config)
355
+ @credentials = args[:credentials] if args.key?(:credentials)
356
+ @id = args[:id] if args.key?(:id)
357
+ @last_config_ack_time = args[:last_config_ack_time] if args.key?(:last_config_ack_time)
358
+ @last_config_send_time = args[:last_config_send_time] if args.key?(:last_config_send_time)
359
+ @last_error_status = args[:last_error_status] if args.key?(:last_error_status)
360
+ @last_error_time = args[:last_error_time] if args.key?(:last_error_time)
361
+ @last_event_time = args[:last_event_time] if args.key?(:last_event_time)
362
+ @last_heartbeat_time = args[:last_heartbeat_time] if args.key?(:last_heartbeat_time)
363
+ @last_state_time = args[:last_state_time] if args.key?(:last_state_time)
364
+ @metadata = args[:metadata] if args.key?(:metadata)
365
+ @name = args[:name] if args.key?(:name)
366
+ @num_id = args[:num_id] if args.key?(:num_id)
367
+ @state = args[:state] if args.key?(:state)
368
+ end
369
+ end
370
+
371
+ # The device configuration. Eventually delivered to devices.
372
+ class DeviceConfig
373
+ include Google::Apis::Core::Hashable
374
+
375
+ # The device configuration data.
376
+ # Corresponds to the JSON property `binaryData`
377
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
378
+ # @return [String]
379
+ attr_accessor :binary_data
380
+
381
+ # [Output only] The time at which this configuration version was updated in
382
+ # Cloud IoT Core. This timestamp is set by the server.
383
+ # Corresponds to the JSON property `cloudUpdateTime`
384
+ # @return [String]
385
+ attr_accessor :cloud_update_time
386
+
387
+ # [Output only] The time at which Cloud IoT Core received the
388
+ # acknowledgment from the device, indicating that the device has received
389
+ # this configuration version. If this field is not present, the device has
390
+ # not yet acknowledged that it received this version. Note that when
391
+ # the config was sent to the device, many config versions may have been
392
+ # available in Cloud IoT Core while the device was disconnected, and on
393
+ # connection, only the latest version is sent to the device. Some
394
+ # versions may never be sent to the device, and therefore are never
395
+ # acknowledged. This timestamp is set by Cloud IoT Core.
396
+ # Corresponds to the JSON property `deviceAckTime`
397
+ # @return [String]
398
+ attr_accessor :device_ack_time
399
+
400
+ # [Output only] The version of this update. The version number is assigned by
401
+ # the server, and is always greater than 0 after device creation. The
402
+ # version must be 0 on the `CreateDevice` request if a `config` is
403
+ # specified; the response of `CreateDevice` will always have a value of 1.
404
+ # Corresponds to the JSON property `version`
405
+ # @return [Fixnum]
406
+ attr_accessor :version
407
+
408
+ def initialize(**args)
409
+ update!(**args)
410
+ end
411
+
412
+ # Update properties of this object
413
+ def update!(**args)
414
+ @binary_data = args[:binary_data] if args.key?(:binary_data)
415
+ @cloud_update_time = args[:cloud_update_time] if args.key?(:cloud_update_time)
416
+ @device_ack_time = args[:device_ack_time] if args.key?(:device_ack_time)
417
+ @version = args[:version] if args.key?(:version)
418
+ end
419
+ end
420
+
421
+ # A server-stored device credential used for authentication.
422
+ class DeviceCredential
423
+ include Google::Apis::Core::Hashable
424
+
425
+ # [Optional] The time at which this credential becomes invalid. This
426
+ # credential will be ignored for new client authentication requests after
427
+ # this timestamp; however, it will not be automatically deleted.
428
+ # Corresponds to the JSON property `expirationTime`
429
+ # @return [String]
430
+ attr_accessor :expiration_time
431
+
432
+ # A public key format and data.
433
+ # Corresponds to the JSON property `publicKey`
434
+ # @return [Google::Apis::CloudiotV1::PublicKeyCredential]
435
+ attr_accessor :public_key
436
+
437
+ def initialize(**args)
438
+ update!(**args)
439
+ end
440
+
441
+ # Update properties of this object
442
+ def update!(**args)
443
+ @expiration_time = args[:expiration_time] if args.key?(:expiration_time)
444
+ @public_key = args[:public_key] if args.key?(:public_key)
445
+ end
446
+ end
447
+
448
+ # A container for a group of devices.
449
+ class DeviceRegistry
450
+ include Google::Apis::Core::Hashable
451
+
452
+ # The credentials used to verify the device credentials. No more than 10
453
+ # credentials can be bound to a single registry at a time. The verification
454
+ # process occurs at the time of device creation or update. If this field is
455
+ # empty, no verification is performed. Otherwise, the credentials of a newly
456
+ # created device or added credentials of an updated device should be signed
457
+ # with one of these registry credentials.
458
+ # Note, however, that existing devices will never be affected by
459
+ # modifications to this list of credentials: after a device has been
460
+ # successfully created in a registry, it should be able to connect even if
461
+ # its registry credentials are revoked, deleted, or modified.
462
+ # Corresponds to the JSON property `credentials`
463
+ # @return [Array<Google::Apis::CloudiotV1::RegistryCredential>]
464
+ attr_accessor :credentials
465
+
466
+ # The configuration for notification of telemetry events received from the
467
+ # device. All telemetry events that were successfully published by the
468
+ # device and acknowledged by Cloud IoT Core are guaranteed to be
469
+ # delivered to Cloud Pub/Sub. Only the first configuration is used.
470
+ # Corresponds to the JSON property `eventNotificationConfigs`
471
+ # @return [Array<Google::Apis::CloudiotV1::EventNotificationConfig>]
472
+ attr_accessor :event_notification_configs
473
+
474
+ # The configuration of the HTTP bridge for a device registry.
475
+ # Corresponds to the JSON property `httpConfig`
476
+ # @return [Google::Apis::CloudiotV1::HttpConfig]
477
+ attr_accessor :http_config
478
+
479
+ # The identifier of this device registry. For example, `myRegistry`.
480
+ # Corresponds to the JSON property `id`
481
+ # @return [String]
482
+ attr_accessor :id
483
+
484
+ # The configuration of MQTT for a device registry.
485
+ # Corresponds to the JSON property `mqttConfig`
486
+ # @return [Google::Apis::CloudiotV1::MqttConfig]
487
+ attr_accessor :mqtt_config
488
+
489
+ # The resource path name. For example,
490
+ # `projects/example-project/locations/us-central1/registries/my-registry`.
491
+ # Corresponds to the JSON property `name`
492
+ # @return [String]
493
+ attr_accessor :name
494
+
495
+ # The configuration for notification of new states received from the device.
496
+ # Corresponds to the JSON property `stateNotificationConfig`
497
+ # @return [Google::Apis::CloudiotV1::StateNotificationConfig]
498
+ attr_accessor :state_notification_config
499
+
500
+ def initialize(**args)
501
+ update!(**args)
502
+ end
503
+
504
+ # Update properties of this object
505
+ def update!(**args)
506
+ @credentials = args[:credentials] if args.key?(:credentials)
507
+ @event_notification_configs = args[:event_notification_configs] if args.key?(:event_notification_configs)
508
+ @http_config = args[:http_config] if args.key?(:http_config)
509
+ @id = args[:id] if args.key?(:id)
510
+ @mqtt_config = args[:mqtt_config] if args.key?(:mqtt_config)
511
+ @name = args[:name] if args.key?(:name)
512
+ @state_notification_config = args[:state_notification_config] if args.key?(:state_notification_config)
513
+ end
514
+ end
515
+
516
+ # The device state, as reported by the device.
517
+ class DeviceState
518
+ include Google::Apis::Core::Hashable
519
+
520
+ # The device state data.
521
+ # Corresponds to the JSON property `binaryData`
522
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
523
+ # @return [String]
524
+ attr_accessor :binary_data
525
+
526
+ # [Output only] The time at which this state version was updated in Cloud
527
+ # IoT Core.
528
+ # Corresponds to the JSON property `updateTime`
529
+ # @return [String]
530
+ attr_accessor :update_time
531
+
532
+ def initialize(**args)
533
+ update!(**args)
534
+ end
535
+
536
+ # Update properties of this object
537
+ def update!(**args)
538
+ @binary_data = args[:binary_data] if args.key?(:binary_data)
539
+ @update_time = args[:update_time] if args.key?(:update_time)
540
+ end
541
+ end
542
+
543
+ # A generic empty message that you can re-use to avoid defining duplicated
544
+ # empty messages in your APIs. A typical example is to use it as the request
545
+ # or the response type of an API method. For instance:
546
+ # service Foo `
547
+ # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
548
+ # `
549
+ # The JSON representation for `Empty` is empty JSON object ````.
550
+ class Empty
551
+ include Google::Apis::Core::Hashable
552
+
553
+ def initialize(**args)
554
+ update!(**args)
555
+ end
556
+
557
+ # Update properties of this object
558
+ def update!(**args)
559
+ end
560
+ end
561
+
562
+ # The configuration to forward telemetry events.
563
+ class EventNotificationConfig
564
+ include Google::Apis::Core::Hashable
565
+
566
+ # A Cloud Pub/Sub topic name. For example,
567
+ # `projects/myProject/topics/deviceEvents`.
568
+ # Corresponds to the JSON property `pubsubTopicName`
569
+ # @return [String]
570
+ attr_accessor :pubsub_topic_name
571
+
572
+ def initialize(**args)
573
+ update!(**args)
574
+ end
575
+
576
+ # Update properties of this object
577
+ def update!(**args)
578
+ @pubsub_topic_name = args[:pubsub_topic_name] if args.key?(:pubsub_topic_name)
579
+ end
580
+ end
581
+
582
+ # Represents an expression text. Example:
583
+ # title: "User account presence"
584
+ # description: "Determines whether the request has a user account"
585
+ # expression: "size(request.user) > 0"
586
+ class Expr
587
+ include Google::Apis::Core::Hashable
588
+
589
+ # An optional description of the expression. This is a longer text which
590
+ # describes the expression, e.g. when hovered over it in a UI.
591
+ # Corresponds to the JSON property `description`
592
+ # @return [String]
593
+ attr_accessor :description
594
+
595
+ # Textual representation of an expression in
596
+ # Common Expression Language syntax.
597
+ # The application context of the containing message determines which
598
+ # well-known feature set of CEL is supported.
599
+ # Corresponds to the JSON property `expression`
600
+ # @return [String]
601
+ attr_accessor :expression
602
+
603
+ # An optional string indicating the location of the expression for error
604
+ # reporting, e.g. a file name and a position in the file.
605
+ # Corresponds to the JSON property `location`
606
+ # @return [String]
607
+ attr_accessor :location
608
+
609
+ # An optional title for the expression, i.e. a short string describing
610
+ # its purpose. This can be used e.g. in UIs which allow to enter the
611
+ # expression.
612
+ # Corresponds to the JSON property `title`
613
+ # @return [String]
614
+ attr_accessor :title
615
+
616
+ def initialize(**args)
617
+ update!(**args)
618
+ end
619
+
620
+ # Update properties of this object
621
+ def update!(**args)
622
+ @description = args[:description] if args.key?(:description)
623
+ @expression = args[:expression] if args.key?(:expression)
624
+ @location = args[:location] if args.key?(:location)
625
+ @title = args[:title] if args.key?(:title)
626
+ end
627
+ end
628
+
629
+ # Request message for `GetIamPolicy` method.
630
+ class GetIamPolicyRequest
631
+ include Google::Apis::Core::Hashable
632
+
633
+ def initialize(**args)
634
+ update!(**args)
635
+ end
636
+
637
+ # Update properties of this object
638
+ def update!(**args)
639
+ end
640
+ end
641
+
642
+ # The configuration of the HTTP bridge for a device registry.
643
+ class HttpConfig
644
+ include Google::Apis::Core::Hashable
645
+
646
+ # If enabled, allows devices to use DeviceService via the HTTP protocol.
647
+ # Otherwise, any requests to DeviceService will fail for this registry.
648
+ # Corresponds to the JSON property `httpEnabledState`
649
+ # @return [String]
650
+ attr_accessor :http_enabled_state
651
+
652
+ def initialize(**args)
653
+ update!(**args)
654
+ end
655
+
656
+ # Update properties of this object
657
+ def update!(**args)
658
+ @http_enabled_state = args[:http_enabled_state] if args.key?(:http_enabled_state)
659
+ end
660
+ end
661
+
662
+ # Response for `ListDeviceConfigVersions`.
663
+ class ListDeviceConfigVersionsResponse
664
+ include Google::Apis::Core::Hashable
665
+
666
+ # The device configuration for the last few versions. Versions are listed
667
+ # in decreasing order, starting from the most recent one.
668
+ # Corresponds to the JSON property `deviceConfigs`
669
+ # @return [Array<Google::Apis::CloudiotV1::DeviceConfig>]
670
+ attr_accessor :device_configs
671
+
672
+ def initialize(**args)
673
+ update!(**args)
674
+ end
675
+
676
+ # Update properties of this object
677
+ def update!(**args)
678
+ @device_configs = args[:device_configs] if args.key?(:device_configs)
679
+ end
680
+ end
681
+
682
+ # Response for `ListDeviceRegistries`.
683
+ class ListDeviceRegistriesResponse
684
+ include Google::Apis::Core::Hashable
685
+
686
+ # The registries that matched the query.
687
+ # Corresponds to the JSON property `deviceRegistries`
688
+ # @return [Array<Google::Apis::CloudiotV1::DeviceRegistry>]
689
+ attr_accessor :device_registries
690
+
691
+ # If not empty, indicates that there may be more registries that match the
692
+ # request; this value should be passed in a new
693
+ # `ListDeviceRegistriesRequest`.
694
+ # Corresponds to the JSON property `nextPageToken`
695
+ # @return [String]
696
+ attr_accessor :next_page_token
697
+
698
+ def initialize(**args)
699
+ update!(**args)
700
+ end
701
+
702
+ # Update properties of this object
703
+ def update!(**args)
704
+ @device_registries = args[:device_registries] if args.key?(:device_registries)
705
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
706
+ end
707
+ end
708
+
709
+ # Response for `ListDeviceStates`.
710
+ class ListDeviceStatesResponse
711
+ include Google::Apis::Core::Hashable
712
+
713
+ # The last few device states. States are listed in descending order of server
714
+ # update time, starting from the most recent one.
715
+ # Corresponds to the JSON property `deviceStates`
716
+ # @return [Array<Google::Apis::CloudiotV1::DeviceState>]
717
+ attr_accessor :device_states
718
+
719
+ def initialize(**args)
720
+ update!(**args)
721
+ end
722
+
723
+ # Update properties of this object
724
+ def update!(**args)
725
+ @device_states = args[:device_states] if args.key?(:device_states)
726
+ end
727
+ end
728
+
729
+ # Response for `ListDevices`.
730
+ class ListDevicesResponse
731
+ include Google::Apis::Core::Hashable
732
+
733
+ # The devices that match the request.
734
+ # Corresponds to the JSON property `devices`
735
+ # @return [Array<Google::Apis::CloudiotV1::Device>]
736
+ attr_accessor :devices
737
+
738
+ # If not empty, indicates that there may be more devices that match the
739
+ # request; this value should be passed in a new `ListDevicesRequest`.
740
+ # Corresponds to the JSON property `nextPageToken`
741
+ # @return [String]
742
+ attr_accessor :next_page_token
743
+
744
+ def initialize(**args)
745
+ update!(**args)
746
+ end
747
+
748
+ # Update properties of this object
749
+ def update!(**args)
750
+ @devices = args[:devices] if args.key?(:devices)
751
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
752
+ end
753
+ end
754
+
755
+ # Request for `ModifyCloudToDeviceConfig`.
756
+ class ModifyCloudToDeviceConfigRequest
757
+ include Google::Apis::Core::Hashable
758
+
759
+ # The configuration data for the device.
760
+ # Corresponds to the JSON property `binaryData`
761
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
762
+ # @return [String]
763
+ attr_accessor :binary_data
764
+
765
+ # The version number to update. If this value is zero, it will not check the
766
+ # version number of the server and will always update the current version;
767
+ # otherwise, this update will fail if the version number found on the server
768
+ # does not match this version number. This is used to support multiple
769
+ # simultaneous updates without losing data.
770
+ # Corresponds to the JSON property `versionToUpdate`
771
+ # @return [Fixnum]
772
+ attr_accessor :version_to_update
773
+
774
+ def initialize(**args)
775
+ update!(**args)
776
+ end
777
+
778
+ # Update properties of this object
779
+ def update!(**args)
780
+ @binary_data = args[:binary_data] if args.key?(:binary_data)
781
+ @version_to_update = args[:version_to_update] if args.key?(:version_to_update)
782
+ end
783
+ end
784
+
785
+ # The configuration of MQTT for a device registry.
786
+ class MqttConfig
787
+ include Google::Apis::Core::Hashable
788
+
789
+ # If enabled, allows connections using the MQTT protocol. Otherwise, MQTT
790
+ # connections to this registry will fail.
791
+ # Corresponds to the JSON property `mqttEnabledState`
792
+ # @return [String]
793
+ attr_accessor :mqtt_enabled_state
794
+
795
+ def initialize(**args)
796
+ update!(**args)
797
+ end
798
+
799
+ # Update properties of this object
800
+ def update!(**args)
801
+ @mqtt_enabled_state = args[:mqtt_enabled_state] if args.key?(:mqtt_enabled_state)
802
+ end
803
+ end
804
+
805
+ # Defines an Identity and Access Management (IAM) policy. It is used to
806
+ # specify access control policies for Cloud Platform resources.
807
+ # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
808
+ # `members` to a `role`, where the members can be user accounts, Google groups,
809
+ # Google domains, and service accounts. A `role` is a named list of permissions
810
+ # defined by IAM.
811
+ # **Example**
812
+ # `
813
+ # "bindings": [
814
+ # `
815
+ # "role": "roles/owner",
816
+ # "members": [
817
+ # "user:mike@example.com",
818
+ # "group:admins@example.com",
819
+ # "domain:google.com",
820
+ # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
821
+ # ]
822
+ # `,
823
+ # `
824
+ # "role": "roles/viewer",
825
+ # "members": ["user:sean@example.com"]
826
+ # `
827
+ # ]
828
+ # `
829
+ # For a description of IAM and its features, see the
830
+ # [IAM developer's guide](https://cloud.google.com/iam).
831
+ class Policy
832
+ include Google::Apis::Core::Hashable
833
+
834
+ # Specifies cloud audit logging configuration for this policy.
835
+ # Corresponds to the JSON property `auditConfigs`
836
+ # @return [Array<Google::Apis::CloudiotV1::AuditConfig>]
837
+ attr_accessor :audit_configs
838
+
839
+ # Associates a list of `members` to a `role`.
840
+ # `bindings` with no members will result in an error.
841
+ # Corresponds to the JSON property `bindings`
842
+ # @return [Array<Google::Apis::CloudiotV1::Binding>]
843
+ attr_accessor :bindings
844
+
845
+ # `etag` is used for optimistic concurrency control as a way to help
846
+ # prevent simultaneous updates of a policy from overwriting each other.
847
+ # It is strongly suggested that systems make use of the `etag` in the
848
+ # read-modify-write cycle to perform policy updates in order to avoid race
849
+ # conditions: An `etag` is returned in the response to `getIamPolicy`, and
850
+ # systems are expected to put that etag in the request to `setIamPolicy` to
851
+ # ensure that their change will be applied to the same version of the policy.
852
+ # If no `etag` is provided in the call to `setIamPolicy`, then the existing
853
+ # policy is overwritten blindly.
854
+ # Corresponds to the JSON property `etag`
855
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
856
+ # @return [String]
857
+ attr_accessor :etag
858
+
859
+ #
860
+ # Corresponds to the JSON property `iamOwned`
861
+ # @return [Boolean]
862
+ attr_accessor :iam_owned
863
+ alias_method :iam_owned?, :iam_owned
864
+
865
+ # Version of the `Policy`. The default version is 0.
866
+ # Corresponds to the JSON property `version`
867
+ # @return [Fixnum]
868
+ attr_accessor :version
869
+
870
+ def initialize(**args)
871
+ update!(**args)
872
+ end
873
+
874
+ # Update properties of this object
875
+ def update!(**args)
876
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
877
+ @bindings = args[:bindings] if args.key?(:bindings)
878
+ @etag = args[:etag] if args.key?(:etag)
879
+ @iam_owned = args[:iam_owned] if args.key?(:iam_owned)
880
+ @version = args[:version] if args.key?(:version)
881
+ end
882
+ end
883
+
884
+ # A public key certificate format and data.
885
+ class PublicKeyCertificate
886
+ include Google::Apis::Core::Hashable
887
+
888
+ # The certificate data.
889
+ # Corresponds to the JSON property `certificate`
890
+ # @return [String]
891
+ attr_accessor :certificate
892
+
893
+ # The certificate format.
894
+ # Corresponds to the JSON property `format`
895
+ # @return [String]
896
+ attr_accessor :format
897
+
898
+ # Details of an X.509 certificate. For informational purposes only.
899
+ # Corresponds to the JSON property `x509Details`
900
+ # @return [Google::Apis::CloudiotV1::X509CertificateDetails]
901
+ attr_accessor :x509_details
902
+
903
+ def initialize(**args)
904
+ update!(**args)
905
+ end
906
+
907
+ # Update properties of this object
908
+ def update!(**args)
909
+ @certificate = args[:certificate] if args.key?(:certificate)
910
+ @format = args[:format] if args.key?(:format)
911
+ @x509_details = args[:x509_details] if args.key?(:x509_details)
912
+ end
913
+ end
914
+
915
+ # A public key format and data.
916
+ class PublicKeyCredential
917
+ include Google::Apis::Core::Hashable
918
+
919
+ # The format of the key.
920
+ # Corresponds to the JSON property `format`
921
+ # @return [String]
922
+ attr_accessor :format
923
+
924
+ # The key data.
925
+ # Corresponds to the JSON property `key`
926
+ # @return [String]
927
+ attr_accessor :key
928
+
929
+ def initialize(**args)
930
+ update!(**args)
931
+ end
932
+
933
+ # Update properties of this object
934
+ def update!(**args)
935
+ @format = args[:format] if args.key?(:format)
936
+ @key = args[:key] if args.key?(:key)
937
+ end
938
+ end
939
+
940
+ # A server-stored registry credential used to validate device credentials.
941
+ class RegistryCredential
942
+ include Google::Apis::Core::Hashable
943
+
944
+ # A public key certificate format and data.
945
+ # Corresponds to the JSON property `publicKeyCertificate`
946
+ # @return [Google::Apis::CloudiotV1::PublicKeyCertificate]
947
+ attr_accessor :public_key_certificate
948
+
949
+ def initialize(**args)
950
+ update!(**args)
951
+ end
952
+
953
+ # Update properties of this object
954
+ def update!(**args)
955
+ @public_key_certificate = args[:public_key_certificate] if args.key?(:public_key_certificate)
956
+ end
957
+ end
958
+
959
+ # Request message for `SetIamPolicy` method.
960
+ class SetIamPolicyRequest
961
+ include Google::Apis::Core::Hashable
962
+
963
+ # Defines an Identity and Access Management (IAM) policy. It is used to
964
+ # specify access control policies for Cloud Platform resources.
965
+ # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
966
+ # `members` to a `role`, where the members can be user accounts, Google groups,
967
+ # Google domains, and service accounts. A `role` is a named list of permissions
968
+ # defined by IAM.
969
+ # **Example**
970
+ # `
971
+ # "bindings": [
972
+ # `
973
+ # "role": "roles/owner",
974
+ # "members": [
975
+ # "user:mike@example.com",
976
+ # "group:admins@example.com",
977
+ # "domain:google.com",
978
+ # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
979
+ # ]
980
+ # `,
981
+ # `
982
+ # "role": "roles/viewer",
983
+ # "members": ["user:sean@example.com"]
984
+ # `
985
+ # ]
986
+ # `
987
+ # For a description of IAM and its features, see the
988
+ # [IAM developer's guide](https://cloud.google.com/iam).
989
+ # Corresponds to the JSON property `policy`
990
+ # @return [Google::Apis::CloudiotV1::Policy]
991
+ attr_accessor :policy
992
+
993
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
994
+ # the fields in the mask will be modified. If no mask is provided, the
995
+ # following default mask is used:
996
+ # paths: "bindings, etag"
997
+ # This field is only used by Cloud IAM.
998
+ # Corresponds to the JSON property `updateMask`
999
+ # @return [String]
1000
+ attr_accessor :update_mask
1001
+
1002
+ def initialize(**args)
1003
+ update!(**args)
1004
+ end
1005
+
1006
+ # Update properties of this object
1007
+ def update!(**args)
1008
+ @policy = args[:policy] if args.key?(:policy)
1009
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1010
+ end
1011
+ end
1012
+
1013
+ # The configuration for notification of new states received from the device.
1014
+ class StateNotificationConfig
1015
+ include Google::Apis::Core::Hashable
1016
+
1017
+ # A Cloud Pub/Sub topic name. For example,
1018
+ # `projects/myProject/topics/deviceEvents`.
1019
+ # Corresponds to the JSON property `pubsubTopicName`
1020
+ # @return [String]
1021
+ attr_accessor :pubsub_topic_name
1022
+
1023
+ def initialize(**args)
1024
+ update!(**args)
1025
+ end
1026
+
1027
+ # Update properties of this object
1028
+ def update!(**args)
1029
+ @pubsub_topic_name = args[:pubsub_topic_name] if args.key?(:pubsub_topic_name)
1030
+ end
1031
+ end
1032
+
1033
+ # The `Status` type defines a logical error model that is suitable for different
1034
+ # programming environments, including REST APIs and RPC APIs. It is used by
1035
+ # [gRPC](https://github.com/grpc). The error model is designed to be:
1036
+ # - Simple to use and understand for most users
1037
+ # - Flexible enough to meet unexpected needs
1038
+ # # Overview
1039
+ # The `Status` message contains three pieces of data: error code, error message,
1040
+ # and error details. The error code should be an enum value of
1041
+ # google.rpc.Code, but it may accept additional error codes if needed. The
1042
+ # error message should be a developer-facing English message that helps
1043
+ # developers *understand* and *resolve* the error. If a localized user-facing
1044
+ # error message is needed, put the localized message in the error details or
1045
+ # localize it in the client. The optional error details may contain arbitrary
1046
+ # information about the error. There is a predefined set of error detail types
1047
+ # in the package `google.rpc` that can be used for common error conditions.
1048
+ # # Language mapping
1049
+ # The `Status` message is the logical representation of the error model, but it
1050
+ # is not necessarily the actual wire format. When the `Status` message is
1051
+ # exposed in different client libraries and different wire protocols, it can be
1052
+ # mapped differently. For example, it will likely be mapped to some exceptions
1053
+ # in Java, but more likely mapped to some error codes in C.
1054
+ # # Other uses
1055
+ # The error model and the `Status` message can be used in a variety of
1056
+ # environments, either with or without APIs, to provide a
1057
+ # consistent developer experience across different environments.
1058
+ # Example uses of this error model include:
1059
+ # - Partial errors. If a service needs to return partial errors to the client,
1060
+ # it may embed the `Status` in the normal response to indicate the partial
1061
+ # errors.
1062
+ # - Workflow errors. A typical workflow has multiple steps. Each step may
1063
+ # have a `Status` message for error reporting.
1064
+ # - Batch operations. If a client uses batch request and batch response, the
1065
+ # `Status` message should be used directly inside batch response, one for
1066
+ # each error sub-response.
1067
+ # - Asynchronous operations. If an API call embeds asynchronous operation
1068
+ # results in its response, the status of those operations should be
1069
+ # represented directly using the `Status` message.
1070
+ # - Logging. If some API errors are stored in logs, the message `Status` could
1071
+ # be used directly after any stripping needed for security/privacy reasons.
1072
+ class Status
1073
+ include Google::Apis::Core::Hashable
1074
+
1075
+ # The status code, which should be an enum value of google.rpc.Code.
1076
+ # Corresponds to the JSON property `code`
1077
+ # @return [Fixnum]
1078
+ attr_accessor :code
1079
+
1080
+ # A list of messages that carry the error details. There is a common set of
1081
+ # message types for APIs to use.
1082
+ # Corresponds to the JSON property `details`
1083
+ # @return [Array<Hash<String,Object>>]
1084
+ attr_accessor :details
1085
+
1086
+ # A developer-facing error message, which should be in English. Any
1087
+ # user-facing error message should be localized and sent in the
1088
+ # google.rpc.Status.details field, or localized by the client.
1089
+ # Corresponds to the JSON property `message`
1090
+ # @return [String]
1091
+ attr_accessor :message
1092
+
1093
+ def initialize(**args)
1094
+ update!(**args)
1095
+ end
1096
+
1097
+ # Update properties of this object
1098
+ def update!(**args)
1099
+ @code = args[:code] if args.key?(:code)
1100
+ @details = args[:details] if args.key?(:details)
1101
+ @message = args[:message] if args.key?(:message)
1102
+ end
1103
+ end
1104
+
1105
+ # Request message for `TestIamPermissions` method.
1106
+ class TestIamPermissionsRequest
1107
+ include Google::Apis::Core::Hashable
1108
+
1109
+ # The set of permissions to check for the `resource`. Permissions with
1110
+ # wildcards (such as '*' or 'storage.*') are not allowed. For more
1111
+ # information see
1112
+ # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
1113
+ # Corresponds to the JSON property `permissions`
1114
+ # @return [Array<String>]
1115
+ attr_accessor :permissions
1116
+
1117
+ def initialize(**args)
1118
+ update!(**args)
1119
+ end
1120
+
1121
+ # Update properties of this object
1122
+ def update!(**args)
1123
+ @permissions = args[:permissions] if args.key?(:permissions)
1124
+ end
1125
+ end
1126
+
1127
+ # Response message for `TestIamPermissions` method.
1128
+ class TestIamPermissionsResponse
1129
+ include Google::Apis::Core::Hashable
1130
+
1131
+ # A subset of `TestPermissionsRequest.permissions` that the caller is
1132
+ # allowed.
1133
+ # Corresponds to the JSON property `permissions`
1134
+ # @return [Array<String>]
1135
+ attr_accessor :permissions
1136
+
1137
+ def initialize(**args)
1138
+ update!(**args)
1139
+ end
1140
+
1141
+ # Update properties of this object
1142
+ def update!(**args)
1143
+ @permissions = args[:permissions] if args.key?(:permissions)
1144
+ end
1145
+ end
1146
+
1147
+ # Details of an X.509 certificate. For informational purposes only.
1148
+ class X509CertificateDetails
1149
+ include Google::Apis::Core::Hashable
1150
+
1151
+ # The time the certificate becomes invalid.
1152
+ # Corresponds to the JSON property `expiryTime`
1153
+ # @return [String]
1154
+ attr_accessor :expiry_time
1155
+
1156
+ # The entity that signed the certificate.
1157
+ # Corresponds to the JSON property `issuer`
1158
+ # @return [String]
1159
+ attr_accessor :issuer
1160
+
1161
+ # The type of public key in the certificate.
1162
+ # Corresponds to the JSON property `publicKeyType`
1163
+ # @return [String]
1164
+ attr_accessor :public_key_type
1165
+
1166
+ # The algorithm used to sign the certificate.
1167
+ # Corresponds to the JSON property `signatureAlgorithm`
1168
+ # @return [String]
1169
+ attr_accessor :signature_algorithm
1170
+
1171
+ # The time the certificate becomes valid.
1172
+ # Corresponds to the JSON property `startTime`
1173
+ # @return [String]
1174
+ attr_accessor :start_time
1175
+
1176
+ # The entity the certificate and public key belong to.
1177
+ # Corresponds to the JSON property `subject`
1178
+ # @return [String]
1179
+ attr_accessor :subject
1180
+
1181
+ def initialize(**args)
1182
+ update!(**args)
1183
+ end
1184
+
1185
+ # Update properties of this object
1186
+ def update!(**args)
1187
+ @expiry_time = args[:expiry_time] if args.key?(:expiry_time)
1188
+ @issuer = args[:issuer] if args.key?(:issuer)
1189
+ @public_key_type = args[:public_key_type] if args.key?(:public_key_type)
1190
+ @signature_algorithm = args[:signature_algorithm] if args.key?(:signature_algorithm)
1191
+ @start_time = args[:start_time] if args.key?(:start_time)
1192
+ @subject = args[:subject] if args.key?(:subject)
1193
+ end
1194
+ end
1195
+ end
1196
+ end
1197
+ end