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
@@ -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_v1beta1/service.rb'
16
+ require 'google/apis/cloudiot_v1beta1/classes.rb'
17
+ require 'google/apis/cloudiot_v1beta1/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 CloudiotV1beta1
28
+ VERSION = 'V1beta1'
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,1064 @@
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 CloudiotV1beta1
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::CloudiotV1beta1::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::CloudiotV1beta1::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
+ # The device configuration and its metadata. Eventually delivered to devices.
202
+ # Corresponds to the JSON property `config`
203
+ # @return [Google::Apis::CloudiotV1beta1::DeviceConfig]
204
+ attr_accessor :config
205
+
206
+ # The credentials used to authenticate this device. To allow credential
207
+ # rotation without interruption, multiple device credentials can be bound to
208
+ # this device. No more than 3 credentials can be bound to a single device at
209
+ # a time.
210
+ # Corresponds to the JSON property `credentials`
211
+ # @return [Array<Google::Apis::CloudiotV1beta1::DeviceCredential>]
212
+ attr_accessor :credentials
213
+
214
+ # If a device is disabled, communication from it will be blocked. Can be used
215
+ # to temporarily prevent the device from connecting if, for example, the
216
+ # sensor is generating bad data and needs maintenance.
217
+ # Corresponds to the JSON property `enabledState`
218
+ # @return [String]
219
+ attr_accessor :enabled_state
220
+
221
+ # The user-defined device identifier. The device ID must be unique
222
+ # within a device registry.
223
+ # Corresponds to the JSON property `id`
224
+ # @return [String]
225
+ attr_accessor :id
226
+
227
+ # [Output only] The last time a cloud-to-device config version acknowledgment
228
+ # was received from the device.
229
+ # Corresponds to the JSON property `lastConfigAckTime`
230
+ # @return [String]
231
+ attr_accessor :last_config_ack_time
232
+
233
+ # The `Status` type defines a logical error model that is suitable for different
234
+ # programming environments, including REST APIs and RPC APIs. It is used by
235
+ # [gRPC](https://github.com/grpc). The error model is designed to be:
236
+ # - Simple to use and understand for most users
237
+ # - Flexible enough to meet unexpected needs
238
+ # # Overview
239
+ # The `Status` message contains three pieces of data: error code, error message,
240
+ # and error details. The error code should be an enum value of
241
+ # google.rpc.Code, but it may accept additional error codes if needed. The
242
+ # error message should be a developer-facing English message that helps
243
+ # developers *understand* and *resolve* the error. If a localized user-facing
244
+ # error message is needed, put the localized message in the error details or
245
+ # localize it in the client. The optional error details may contain arbitrary
246
+ # information about the error. There is a predefined set of error detail types
247
+ # in the package `google.rpc` that can be used for common error conditions.
248
+ # # Language mapping
249
+ # The `Status` message is the logical representation of the error model, but it
250
+ # is not necessarily the actual wire format. When the `Status` message is
251
+ # exposed in different client libraries and different wire protocols, it can be
252
+ # mapped differently. For example, it will likely be mapped to some exceptions
253
+ # in Java, but more likely mapped to some error codes in C.
254
+ # # Other uses
255
+ # The error model and the `Status` message can be used in a variety of
256
+ # environments, either with or without APIs, to provide a
257
+ # consistent developer experience across different environments.
258
+ # Example uses of this error model include:
259
+ # - Partial errors. If a service needs to return partial errors to the client,
260
+ # it may embed the `Status` in the normal response to indicate the partial
261
+ # errors.
262
+ # - Workflow errors. A typical workflow has multiple steps. Each step may
263
+ # have a `Status` message for error reporting.
264
+ # - Batch operations. If a client uses batch request and batch response, the
265
+ # `Status` message should be used directly inside batch response, one for
266
+ # each error sub-response.
267
+ # - Asynchronous operations. If an API call embeds asynchronous operation
268
+ # results in its response, the status of those operations should be
269
+ # represented directly using the `Status` message.
270
+ # - Logging. If some API errors are stored in logs, the message `Status` could
271
+ # be used directly after any stripping needed for security/privacy reasons.
272
+ # Corresponds to the JSON property `lastErrorStatus`
273
+ # @return [Google::Apis::CloudiotV1beta1::Status]
274
+ attr_accessor :last_error_status
275
+
276
+ # [Output only] The last time an error happened, e.g., failed to publish to
277
+ # Cloud Pub/Sub. This field is the timestamp of 'last_error_status'.
278
+ # Corresponds to the JSON property `lastErrorTime`
279
+ # @return [String]
280
+ attr_accessor :last_error_time
281
+
282
+ # [Output only] The last time an event was received. Timestamps are
283
+ # periodically collected and written to storage; they may be stale by a few
284
+ # minutes.
285
+ # Corresponds to the JSON property `lastEventTime`
286
+ # @return [String]
287
+ attr_accessor :last_event_time
288
+
289
+ # [Output only] The last time a heartbeat was received. Timestamps are
290
+ # periodically collected and written to storage; they may be stale by a few
291
+ # minutes.
292
+ # Corresponds to the JSON property `lastHeartbeatTime`
293
+ # @return [String]
294
+ attr_accessor :last_heartbeat_time
295
+
296
+ # The resource path name. For example,
297
+ # `projects/p1/locations/us-central1/registries/registry0/devices/dev0` or
298
+ # `projects/p1/locations/us-central1/registries/registry0/devices/`num_id``.
299
+ # When `name` is populated as a response from the service, it always ends
300
+ # in the device numeric ID.
301
+ # Corresponds to the JSON property `name`
302
+ # @return [String]
303
+ attr_accessor :name
304
+
305
+ # [Output only] A server-defined unique numeric ID for the device. This is a
306
+ # more compact way to identify devices, and it is globally unique.
307
+ # Corresponds to the JSON property `numId`
308
+ # @return [Fixnum]
309
+ attr_accessor :num_id
310
+
311
+ def initialize(**args)
312
+ update!(**args)
313
+ end
314
+
315
+ # Update properties of this object
316
+ def update!(**args)
317
+ @config = args[:config] if args.key?(:config)
318
+ @credentials = args[:credentials] if args.key?(:credentials)
319
+ @enabled_state = args[:enabled_state] if args.key?(:enabled_state)
320
+ @id = args[:id] if args.key?(:id)
321
+ @last_config_ack_time = args[:last_config_ack_time] if args.key?(:last_config_ack_time)
322
+ @last_error_status = args[:last_error_status] if args.key?(:last_error_status)
323
+ @last_error_time = args[:last_error_time] if args.key?(:last_error_time)
324
+ @last_event_time = args[:last_event_time] if args.key?(:last_event_time)
325
+ @last_heartbeat_time = args[:last_heartbeat_time] if args.key?(:last_heartbeat_time)
326
+ @name = args[:name] if args.key?(:name)
327
+ @num_id = args[:num_id] if args.key?(:num_id)
328
+ end
329
+ end
330
+
331
+ # The device configuration and its metadata. Eventually delivered to devices.
332
+ class DeviceConfig
333
+ include Google::Apis::Core::Hashable
334
+
335
+ # [Output only] The time when this version state was updated in the Cloud IoT
336
+ # Core service. This timestamp is set by the server.
337
+ # Corresponds to the JSON property `cloudUpdateTime`
338
+ # @return [String]
339
+ attr_accessor :cloud_update_time
340
+
341
+ # The data for a device configuration. Only binary data is currently supported.
342
+ # Corresponds to the JSON property `data`
343
+ # @return [Google::Apis::CloudiotV1beta1::DeviceConfigData]
344
+ attr_accessor :data
345
+
346
+ # [Output only] The time when the Cloud IoT Core server received the
347
+ # acknowledgment from the device, indicating that the device has received
348
+ # this configuration version. If this field is not present, the device has
349
+ # not yet acknowledged that it received this version. Note that when sending
350
+ # the config to the device, there may have been many config versions on the
351
+ # Cloud IoT Core service while the device was disconnected; and on
352
+ # connection, only the latest version is sent to the device. Some of the
353
+ # versions may never be sent to the device, and therefore are never
354
+ # acknowledged. This timestamp is set by the Cloud IoT Core service.
355
+ # Corresponds to the JSON property `deviceAckTime`
356
+ # @return [String]
357
+ attr_accessor :device_ack_time
358
+
359
+ # [Output only] The version of this update. The version number is assigned by
360
+ # the server, and is always greater than zero after device creation. The
361
+ # version must be zero on the `CreateDevice` request if a `config` is
362
+ # specified; the response of `CreateDevice` will always have a value of one.
363
+ # Corresponds to the JSON property `version`
364
+ # @return [Fixnum]
365
+ attr_accessor :version
366
+
367
+ def initialize(**args)
368
+ update!(**args)
369
+ end
370
+
371
+ # Update properties of this object
372
+ def update!(**args)
373
+ @cloud_update_time = args[:cloud_update_time] if args.key?(:cloud_update_time)
374
+ @data = args[:data] if args.key?(:data)
375
+ @device_ack_time = args[:device_ack_time] if args.key?(:device_ack_time)
376
+ @version = args[:version] if args.key?(:version)
377
+ end
378
+ end
379
+
380
+ # The data for a device configuration. Only binary data is currently supported.
381
+ class DeviceConfigData
382
+ include Google::Apis::Core::Hashable
383
+
384
+ # The configuration sent to the device, as bytes.
385
+ # Corresponds to the JSON property `binaryData`
386
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
387
+ # @return [String]
388
+ attr_accessor :binary_data
389
+
390
+ def initialize(**args)
391
+ update!(**args)
392
+ end
393
+
394
+ # Update properties of this object
395
+ def update!(**args)
396
+ @binary_data = args[:binary_data] if args.key?(:binary_data)
397
+ end
398
+ end
399
+
400
+ # A server-stored device credential used for authentication.
401
+ class DeviceCredential
402
+ include Google::Apis::Core::Hashable
403
+
404
+ # [Optional] The time at which this credential becomes invalid. This
405
+ # credential will be ignored for new client authentication requests after
406
+ # this timestamp; however, it will not be automatically deleted.
407
+ # Corresponds to the JSON property `expirationTime`
408
+ # @return [String]
409
+ attr_accessor :expiration_time
410
+
411
+ # A public key format and data.
412
+ # Corresponds to the JSON property `publicKey`
413
+ # @return [Google::Apis::CloudiotV1beta1::PublicKeyCredential]
414
+ attr_accessor :public_key
415
+
416
+ def initialize(**args)
417
+ update!(**args)
418
+ end
419
+
420
+ # Update properties of this object
421
+ def update!(**args)
422
+ @expiration_time = args[:expiration_time] if args.key?(:expiration_time)
423
+ @public_key = args[:public_key] if args.key?(:public_key)
424
+ end
425
+ end
426
+
427
+ # A container for a group of devices.
428
+ class DeviceRegistry
429
+ include Google::Apis::Core::Hashable
430
+
431
+ # Configuration to forward messages such as telemetry events.
432
+ # Corresponds to the JSON property `eventNotificationConfig`
433
+ # @return [Google::Apis::CloudiotV1beta1::NotificationConfig]
434
+ attr_accessor :event_notification_config
435
+
436
+ # The identifier of this device registry. For example, `myRegistry`.
437
+ # Corresponds to the JSON property `id`
438
+ # @return [String]
439
+ attr_accessor :id
440
+
441
+ # The configuration of MQTT for a device registry.
442
+ # Corresponds to the JSON property `mqttConfig`
443
+ # @return [Google::Apis::CloudiotV1beta1::MqttConfig]
444
+ attr_accessor :mqtt_config
445
+
446
+ # The resource path name. For example,
447
+ # `projects/example-project/locations/us-central1/registries/my-registry`.
448
+ # Corresponds to the JSON property `name`
449
+ # @return [String]
450
+ attr_accessor :name
451
+
452
+ def initialize(**args)
453
+ update!(**args)
454
+ end
455
+
456
+ # Update properties of this object
457
+ def update!(**args)
458
+ @event_notification_config = args[:event_notification_config] if args.key?(:event_notification_config)
459
+ @id = args[:id] if args.key?(:id)
460
+ @mqtt_config = args[:mqtt_config] if args.key?(:mqtt_config)
461
+ @name = args[:name] if args.key?(:name)
462
+ end
463
+ end
464
+
465
+ # A generic empty message that you can re-use to avoid defining duplicated
466
+ # empty messages in your APIs. A typical example is to use it as the request
467
+ # or the response type of an API method. For instance:
468
+ # service Foo `
469
+ # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
470
+ # `
471
+ # The JSON representation for `Empty` is empty JSON object ````.
472
+ class Empty
473
+ include Google::Apis::Core::Hashable
474
+
475
+ def initialize(**args)
476
+ update!(**args)
477
+ end
478
+
479
+ # Update properties of this object
480
+ def update!(**args)
481
+ end
482
+ end
483
+
484
+ # Represents an expression text. Example:
485
+ # title: "User account presence"
486
+ # description: "Determines whether the request has a user account"
487
+ # expression: "size(request.user) > 0"
488
+ class Expr
489
+ include Google::Apis::Core::Hashable
490
+
491
+ # An optional description of the expression. This is a longer text which
492
+ # describes the expression, e.g. when hovered over it in a UI.
493
+ # Corresponds to the JSON property `description`
494
+ # @return [String]
495
+ attr_accessor :description
496
+
497
+ # Textual representation of an expression in
498
+ # Common Expression Language syntax.
499
+ # The application context of the containing message determines which
500
+ # well-known feature set of CEL is supported.
501
+ # Corresponds to the JSON property `expression`
502
+ # @return [String]
503
+ attr_accessor :expression
504
+
505
+ # An optional string indicating the location of the expression for error
506
+ # reporting, e.g. a file name and a position in the file.
507
+ # Corresponds to the JSON property `location`
508
+ # @return [String]
509
+ attr_accessor :location
510
+
511
+ # An optional title for the expression, i.e. a short string describing
512
+ # its purpose. This can be used e.g. in UIs which allow to enter the
513
+ # expression.
514
+ # Corresponds to the JSON property `title`
515
+ # @return [String]
516
+ attr_accessor :title
517
+
518
+ def initialize(**args)
519
+ update!(**args)
520
+ end
521
+
522
+ # Update properties of this object
523
+ def update!(**args)
524
+ @description = args[:description] if args.key?(:description)
525
+ @expression = args[:expression] if args.key?(:expression)
526
+ @location = args[:location] if args.key?(:location)
527
+ @title = args[:title] if args.key?(:title)
528
+ end
529
+ end
530
+
531
+ # Request message for `GetIamPolicy` method.
532
+ class GetIamPolicyRequest
533
+ include Google::Apis::Core::Hashable
534
+
535
+ def initialize(**args)
536
+ update!(**args)
537
+ end
538
+
539
+ # Update properties of this object
540
+ def update!(**args)
541
+ end
542
+ end
543
+
544
+ # The device configuration obtained from Cloud IoT Core.
545
+ class HttpDeviceConfig
546
+ include Google::Apis::Core::Hashable
547
+
548
+ # Data in binary format.
549
+ # Corresponds to the JSON property `binaryData`
550
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
551
+ # @return [String]
552
+ attr_accessor :binary_data
553
+
554
+ # The version of the configuration in Cloud IoT Core.
555
+ # Corresponds to the JSON property `version`
556
+ # @return [Fixnum]
557
+ attr_accessor :version
558
+
559
+ def initialize(**args)
560
+ update!(**args)
561
+ end
562
+
563
+ # Update properties of this object
564
+ def update!(**args)
565
+ @binary_data = args[:binary_data] if args.key?(:binary_data)
566
+ @version = args[:version] if args.key?(:version)
567
+ end
568
+ end
569
+
570
+ # The device state reported to Cloud IoT Core.
571
+ class HttpDeviceState
572
+ include Google::Apis::Core::Hashable
573
+
574
+ # Data in binary format.
575
+ # Corresponds to the JSON property `binaryData`
576
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
577
+ # @return [String]
578
+ attr_accessor :binary_data
579
+
580
+ def initialize(**args)
581
+ update!(**args)
582
+ end
583
+
584
+ # Update properties of this object
585
+ def update!(**args)
586
+ @binary_data = args[:binary_data] if args.key?(:binary_data)
587
+ end
588
+ end
589
+
590
+ # Request for `PublishEvent`.
591
+ class HttpPublishEventRequest
592
+ include Google::Apis::Core::Hashable
593
+
594
+ # Payload data in binary format.
595
+ # Corresponds to the JSON property `binaryData`
596
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
597
+ # @return [String]
598
+ attr_accessor :binary_data
599
+
600
+ # Optional subfolder for the telemetry event. This can be used to classify
601
+ # types of events, and is included in the Pub/Sub message attributes.
602
+ # Corresponds to the JSON property `subFolder`
603
+ # @return [String]
604
+ attr_accessor :sub_folder
605
+
606
+ def initialize(**args)
607
+ update!(**args)
608
+ end
609
+
610
+ # Update properties of this object
611
+ def update!(**args)
612
+ @binary_data = args[:binary_data] if args.key?(:binary_data)
613
+ @sub_folder = args[:sub_folder] if args.key?(:sub_folder)
614
+ end
615
+ end
616
+
617
+ # Response for `PublishEvent`.
618
+ class HttpPublishEventResponse
619
+ include Google::Apis::Core::Hashable
620
+
621
+ def initialize(**args)
622
+ update!(**args)
623
+ end
624
+
625
+ # Update properties of this object
626
+ def update!(**args)
627
+ end
628
+ end
629
+
630
+ # Request for `SetDeviceState`.
631
+ class HttpSetDeviceStateRequest
632
+ include Google::Apis::Core::Hashable
633
+
634
+ # The device state reported to Cloud IoT Core.
635
+ # Corresponds to the JSON property `state`
636
+ # @return [Google::Apis::CloudiotV1beta1::HttpDeviceState]
637
+ attr_accessor :state
638
+
639
+ def initialize(**args)
640
+ update!(**args)
641
+ end
642
+
643
+ # Update properties of this object
644
+ def update!(**args)
645
+ @state = args[:state] if args.key?(:state)
646
+ end
647
+ end
648
+
649
+ # Response for `ListDeviceConfigVersions`.
650
+ class ListDeviceConfigVersionsResponse
651
+ include Google::Apis::Core::Hashable
652
+
653
+ # The device configuration for the last few versions. Versions are listed
654
+ # in decreasing order, starting from the most recent one.
655
+ # Corresponds to the JSON property `deviceConfigs`
656
+ # @return [Array<Google::Apis::CloudiotV1beta1::DeviceConfig>]
657
+ attr_accessor :device_configs
658
+
659
+ def initialize(**args)
660
+ update!(**args)
661
+ end
662
+
663
+ # Update properties of this object
664
+ def update!(**args)
665
+ @device_configs = args[:device_configs] if args.key?(:device_configs)
666
+ end
667
+ end
668
+
669
+ # Response for `ListDeviceRegistries`.
670
+ class ListDeviceRegistriesResponse
671
+ include Google::Apis::Core::Hashable
672
+
673
+ # The registries that matched the query.
674
+ # Corresponds to the JSON property `deviceRegistries`
675
+ # @return [Array<Google::Apis::CloudiotV1beta1::DeviceRegistry>]
676
+ attr_accessor :device_registries
677
+
678
+ # If not empty, indicates that there may be more registries that match the
679
+ # request; this value should be passed in a new
680
+ # `ListDeviceRegistriesRequest`.
681
+ # Corresponds to the JSON property `nextPageToken`
682
+ # @return [String]
683
+ attr_accessor :next_page_token
684
+
685
+ def initialize(**args)
686
+ update!(**args)
687
+ end
688
+
689
+ # Update properties of this object
690
+ def update!(**args)
691
+ @device_registries = args[:device_registries] if args.key?(:device_registries)
692
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
693
+ end
694
+ end
695
+
696
+ # Response for `ListDevices`.
697
+ class ListDevicesResponse
698
+ include Google::Apis::Core::Hashable
699
+
700
+ # The devices that match the request.
701
+ # Corresponds to the JSON property `devices`
702
+ # @return [Array<Google::Apis::CloudiotV1beta1::Device>]
703
+ attr_accessor :devices
704
+
705
+ # If not empty, indicates that there may be more devices that match the
706
+ # request; this value should be passed in a new `ListDevicesRequest`.
707
+ # Corresponds to the JSON property `nextPageToken`
708
+ # @return [String]
709
+ attr_accessor :next_page_token
710
+
711
+ def initialize(**args)
712
+ update!(**args)
713
+ end
714
+
715
+ # Update properties of this object
716
+ def update!(**args)
717
+ @devices = args[:devices] if args.key?(:devices)
718
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
719
+ end
720
+ end
721
+
722
+ # Request for `ModifyCloudToDeviceConfig`.
723
+ class ModifyCloudToDeviceConfigRequest
724
+ include Google::Apis::Core::Hashable
725
+
726
+ # The data for a device configuration. Only binary data is currently supported.
727
+ # Corresponds to the JSON property `data`
728
+ # @return [Google::Apis::CloudiotV1beta1::DeviceConfigData]
729
+ attr_accessor :data
730
+
731
+ # The version number to update. If this value is zero, it will not check the
732
+ # version number of the server and will always update the current version;
733
+ # otherwise, this update will fail if the version number found on the server
734
+ # does not match this version number. This is used to support multiple
735
+ # simultaneous updates without losing data.
736
+ # Corresponds to the JSON property `versionToUpdate`
737
+ # @return [Fixnum]
738
+ attr_accessor :version_to_update
739
+
740
+ def initialize(**args)
741
+ update!(**args)
742
+ end
743
+
744
+ # Update properties of this object
745
+ def update!(**args)
746
+ @data = args[:data] if args.key?(:data)
747
+ @version_to_update = args[:version_to_update] if args.key?(:version_to_update)
748
+ end
749
+ end
750
+
751
+ # The configuration of MQTT for a device registry.
752
+ class MqttConfig
753
+ include Google::Apis::Core::Hashable
754
+
755
+ # If enabled, allows connections using the MQTT protocol. Otherwise any MQTT
756
+ # connection to this registry will fail.
757
+ # Corresponds to the JSON property `mqttConfigState`
758
+ # @return [String]
759
+ attr_accessor :mqtt_config_state
760
+
761
+ def initialize(**args)
762
+ update!(**args)
763
+ end
764
+
765
+ # Update properties of this object
766
+ def update!(**args)
767
+ @mqtt_config_state = args[:mqtt_config_state] if args.key?(:mqtt_config_state)
768
+ end
769
+ end
770
+
771
+ # Configuration to forward messages such as telemetry events.
772
+ class NotificationConfig
773
+ include Google::Apis::Core::Hashable
774
+
775
+ # A Cloud Pub/Sub topic name. For example,
776
+ # `projects/myProject/topics/deviceEvents`.
777
+ # Corresponds to the JSON property `pubsubTopicName`
778
+ # @return [String]
779
+ attr_accessor :pubsub_topic_name
780
+
781
+ def initialize(**args)
782
+ update!(**args)
783
+ end
784
+
785
+ # Update properties of this object
786
+ def update!(**args)
787
+ @pubsub_topic_name = args[:pubsub_topic_name] if args.key?(:pubsub_topic_name)
788
+ end
789
+ end
790
+
791
+ # Defines an Identity and Access Management (IAM) policy. It is used to
792
+ # specify access control policies for Cloud Platform resources.
793
+ # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
794
+ # `members` to a `role`, where the members can be user accounts, Google groups,
795
+ # Google domains, and service accounts. A `role` is a named list of permissions
796
+ # defined by IAM.
797
+ # **Example**
798
+ # `
799
+ # "bindings": [
800
+ # `
801
+ # "role": "roles/owner",
802
+ # "members": [
803
+ # "user:mike@example.com",
804
+ # "group:admins@example.com",
805
+ # "domain:google.com",
806
+ # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
807
+ # ]
808
+ # `,
809
+ # `
810
+ # "role": "roles/viewer",
811
+ # "members": ["user:sean@example.com"]
812
+ # `
813
+ # ]
814
+ # `
815
+ # For a description of IAM and its features, see the
816
+ # [IAM developer's guide](https://cloud.google.com/iam).
817
+ class Policy
818
+ include Google::Apis::Core::Hashable
819
+
820
+ # Specifies cloud audit logging configuration for this policy.
821
+ # Corresponds to the JSON property `auditConfigs`
822
+ # @return [Array<Google::Apis::CloudiotV1beta1::AuditConfig>]
823
+ attr_accessor :audit_configs
824
+
825
+ # Associates a list of `members` to a `role`.
826
+ # `bindings` with no members will result in an error.
827
+ # Corresponds to the JSON property `bindings`
828
+ # @return [Array<Google::Apis::CloudiotV1beta1::Binding>]
829
+ attr_accessor :bindings
830
+
831
+ # `etag` is used for optimistic concurrency control as a way to help
832
+ # prevent simultaneous updates of a policy from overwriting each other.
833
+ # It is strongly suggested that systems make use of the `etag` in the
834
+ # read-modify-write cycle to perform policy updates in order to avoid race
835
+ # conditions: An `etag` is returned in the response to `getIamPolicy`, and
836
+ # systems are expected to put that etag in the request to `setIamPolicy` to
837
+ # ensure that their change will be applied to the same version of the policy.
838
+ # If no `etag` is provided in the call to `setIamPolicy`, then the existing
839
+ # policy is overwritten blindly.
840
+ # Corresponds to the JSON property `etag`
841
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
842
+ # @return [String]
843
+ attr_accessor :etag
844
+
845
+ #
846
+ # Corresponds to the JSON property `iamOwned`
847
+ # @return [Boolean]
848
+ attr_accessor :iam_owned
849
+ alias_method :iam_owned?, :iam_owned
850
+
851
+ # Version of the `Policy`. The default version is 0.
852
+ # Corresponds to the JSON property `version`
853
+ # @return [Fixnum]
854
+ attr_accessor :version
855
+
856
+ def initialize(**args)
857
+ update!(**args)
858
+ end
859
+
860
+ # Update properties of this object
861
+ def update!(**args)
862
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
863
+ @bindings = args[:bindings] if args.key?(:bindings)
864
+ @etag = args[:etag] if args.key?(:etag)
865
+ @iam_owned = args[:iam_owned] if args.key?(:iam_owned)
866
+ @version = args[:version] if args.key?(:version)
867
+ end
868
+ end
869
+
870
+ # A public key format and data.
871
+ class PublicKeyCredential
872
+ include Google::Apis::Core::Hashable
873
+
874
+ # The format of the key.
875
+ # Corresponds to the JSON property `format`
876
+ # @return [String]
877
+ attr_accessor :format
878
+
879
+ # The key data.
880
+ # Corresponds to the JSON property `key`
881
+ # @return [String]
882
+ attr_accessor :key
883
+
884
+ def initialize(**args)
885
+ update!(**args)
886
+ end
887
+
888
+ # Update properties of this object
889
+ def update!(**args)
890
+ @format = args[:format] if args.key?(:format)
891
+ @key = args[:key] if args.key?(:key)
892
+ end
893
+ end
894
+
895
+ # Request message for `SetIamPolicy` method.
896
+ class SetIamPolicyRequest
897
+ include Google::Apis::Core::Hashable
898
+
899
+ # Defines an Identity and Access Management (IAM) policy. It is used to
900
+ # specify access control policies for Cloud Platform resources.
901
+ # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
902
+ # `members` to a `role`, where the members can be user accounts, Google groups,
903
+ # Google domains, and service accounts. A `role` is a named list of permissions
904
+ # defined by IAM.
905
+ # **Example**
906
+ # `
907
+ # "bindings": [
908
+ # `
909
+ # "role": "roles/owner",
910
+ # "members": [
911
+ # "user:mike@example.com",
912
+ # "group:admins@example.com",
913
+ # "domain:google.com",
914
+ # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
915
+ # ]
916
+ # `,
917
+ # `
918
+ # "role": "roles/viewer",
919
+ # "members": ["user:sean@example.com"]
920
+ # `
921
+ # ]
922
+ # `
923
+ # For a description of IAM and its features, see the
924
+ # [IAM developer's guide](https://cloud.google.com/iam).
925
+ # Corresponds to the JSON property `policy`
926
+ # @return [Google::Apis::CloudiotV1beta1::Policy]
927
+ attr_accessor :policy
928
+
929
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
930
+ # the fields in the mask will be modified. If no mask is provided, the
931
+ # following default mask is used:
932
+ # paths: "bindings, etag"
933
+ # This field is only used by Cloud IAM.
934
+ # Corresponds to the JSON property `updateMask`
935
+ # @return [String]
936
+ attr_accessor :update_mask
937
+
938
+ def initialize(**args)
939
+ update!(**args)
940
+ end
941
+
942
+ # Update properties of this object
943
+ def update!(**args)
944
+ @policy = args[:policy] if args.key?(:policy)
945
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
946
+ end
947
+ end
948
+
949
+ # The `Status` type defines a logical error model that is suitable for different
950
+ # programming environments, including REST APIs and RPC APIs. It is used by
951
+ # [gRPC](https://github.com/grpc). The error model is designed to be:
952
+ # - Simple to use and understand for most users
953
+ # - Flexible enough to meet unexpected needs
954
+ # # Overview
955
+ # The `Status` message contains three pieces of data: error code, error message,
956
+ # and error details. The error code should be an enum value of
957
+ # google.rpc.Code, but it may accept additional error codes if needed. The
958
+ # error message should be a developer-facing English message that helps
959
+ # developers *understand* and *resolve* the error. If a localized user-facing
960
+ # error message is needed, put the localized message in the error details or
961
+ # localize it in the client. The optional error details may contain arbitrary
962
+ # information about the error. There is a predefined set of error detail types
963
+ # in the package `google.rpc` that can be used for common error conditions.
964
+ # # Language mapping
965
+ # The `Status` message is the logical representation of the error model, but it
966
+ # is not necessarily the actual wire format. When the `Status` message is
967
+ # exposed in different client libraries and different wire protocols, it can be
968
+ # mapped differently. For example, it will likely be mapped to some exceptions
969
+ # in Java, but more likely mapped to some error codes in C.
970
+ # # Other uses
971
+ # The error model and the `Status` message can be used in a variety of
972
+ # environments, either with or without APIs, to provide a
973
+ # consistent developer experience across different environments.
974
+ # Example uses of this error model include:
975
+ # - Partial errors. If a service needs to return partial errors to the client,
976
+ # it may embed the `Status` in the normal response to indicate the partial
977
+ # errors.
978
+ # - Workflow errors. A typical workflow has multiple steps. Each step may
979
+ # have a `Status` message for error reporting.
980
+ # - Batch operations. If a client uses batch request and batch response, the
981
+ # `Status` message should be used directly inside batch response, one for
982
+ # each error sub-response.
983
+ # - Asynchronous operations. If an API call embeds asynchronous operation
984
+ # results in its response, the status of those operations should be
985
+ # represented directly using the `Status` message.
986
+ # - Logging. If some API errors are stored in logs, the message `Status` could
987
+ # be used directly after any stripping needed for security/privacy reasons.
988
+ class Status
989
+ include Google::Apis::Core::Hashable
990
+
991
+ # The status code, which should be an enum value of google.rpc.Code.
992
+ # Corresponds to the JSON property `code`
993
+ # @return [Fixnum]
994
+ attr_accessor :code
995
+
996
+ # A list of messages that carry the error details. There is a common set of
997
+ # message types for APIs to use.
998
+ # Corresponds to the JSON property `details`
999
+ # @return [Array<Hash<String,Object>>]
1000
+ attr_accessor :details
1001
+
1002
+ # A developer-facing error message, which should be in English. Any
1003
+ # user-facing error message should be localized and sent in the
1004
+ # google.rpc.Status.details field, or localized by the client.
1005
+ # Corresponds to the JSON property `message`
1006
+ # @return [String]
1007
+ attr_accessor :message
1008
+
1009
+ def initialize(**args)
1010
+ update!(**args)
1011
+ end
1012
+
1013
+ # Update properties of this object
1014
+ def update!(**args)
1015
+ @code = args[:code] if args.key?(:code)
1016
+ @details = args[:details] if args.key?(:details)
1017
+ @message = args[:message] if args.key?(:message)
1018
+ end
1019
+ end
1020
+
1021
+ # Request message for `TestIamPermissions` method.
1022
+ class TestIamPermissionsRequest
1023
+ include Google::Apis::Core::Hashable
1024
+
1025
+ # The set of permissions to check for the `resource`. Permissions with
1026
+ # wildcards (such as '*' or 'storage.*') are not allowed. For more
1027
+ # information see
1028
+ # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
1029
+ # Corresponds to the JSON property `permissions`
1030
+ # @return [Array<String>]
1031
+ attr_accessor :permissions
1032
+
1033
+ def initialize(**args)
1034
+ update!(**args)
1035
+ end
1036
+
1037
+ # Update properties of this object
1038
+ def update!(**args)
1039
+ @permissions = args[:permissions] if args.key?(:permissions)
1040
+ end
1041
+ end
1042
+
1043
+ # Response message for `TestIamPermissions` method.
1044
+ class TestIamPermissionsResponse
1045
+ include Google::Apis::Core::Hashable
1046
+
1047
+ # A subset of `TestPermissionsRequest.permissions` that the caller is
1048
+ # allowed.
1049
+ # Corresponds to the JSON property `permissions`
1050
+ # @return [Array<String>]
1051
+ attr_accessor :permissions
1052
+
1053
+ def initialize(**args)
1054
+ update!(**args)
1055
+ end
1056
+
1057
+ # Update properties of this object
1058
+ def update!(**args)
1059
+ @permissions = args[:permissions] if args.key?(:permissions)
1060
+ end
1061
+ end
1062
+ end
1063
+ end
1064
+ end