google-api-client 0.14.4 → 0.14.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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