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
@@ -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