google-apis-analyticshub_v1beta1 0.1.0

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.
@@ -0,0 +1,1036 @@
1
+ # Copyright 2020 Google LLC
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 AnalyticshubV1beta1
24
+
25
+ # Specifies the audit configuration for a service. The configuration determines
26
+ # which permission types are logged, and what identities, if any, are exempted
27
+ # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
28
+ # are AuditConfigs for both `allServices` and a specific service, the union of
29
+ # the two AuditConfigs is used for that service: the log_types specified in each
30
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
31
+ # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
32
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
33
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
34
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
35
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
36
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
37
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
38
+ # exempts jose@example.com from DATA_READ logging, and aliya@example.com from
39
+ # DATA_WRITE logging.
40
+ class AuditConfig
41
+ include Google::Apis::Core::Hashable
42
+
43
+ # The configuration for logging of each type of permission.
44
+ # Corresponds to the JSON property `auditLogConfigs`
45
+ # @return [Array<Google::Apis::AnalyticshubV1beta1::AuditLogConfig>]
46
+ attr_accessor :audit_log_configs
47
+
48
+ # Specifies a service that will be enabled for audit logging. For example, `
49
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
50
+ # value that covers all services.
51
+ # Corresponds to the JSON property `service`
52
+ # @return [String]
53
+ attr_accessor :service
54
+
55
+ def initialize(**args)
56
+ update!(**args)
57
+ end
58
+
59
+ # Update properties of this object
60
+ def update!(**args)
61
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
62
+ @service = args[:service] if args.key?(:service)
63
+ end
64
+ end
65
+
66
+ # Provides the configuration for logging a type of permissions. Example: ` "
67
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
68
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
69
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
70
+ # DATA_READ logging.
71
+ class AuditLogConfig
72
+ include Google::Apis::Core::Hashable
73
+
74
+ # Specifies the identities that do not cause logging for this type of permission.
75
+ # Follows the same format of Binding.members.
76
+ # Corresponds to the JSON property `exemptedMembers`
77
+ # @return [Array<String>]
78
+ attr_accessor :exempted_members
79
+
80
+ # The log type that this config enables.
81
+ # Corresponds to the JSON property `logType`
82
+ # @return [String]
83
+ attr_accessor :log_type
84
+
85
+ def initialize(**args)
86
+ update!(**args)
87
+ end
88
+
89
+ # Update properties of this object
90
+ def update!(**args)
91
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
92
+ @log_type = args[:log_type] if args.key?(:log_type)
93
+ end
94
+ end
95
+
96
+ # A reference to a shared dataset. It is an existing BigQuery dataset with a
97
+ # collection of objects such as tables and views that you want to share with
98
+ # subscribers. When subscriber's subscribe to a listing, Analytics Hub creates a
99
+ # linked dataset in the subscriber's project. A Linked dataset is an opaque,
100
+ # read-only BigQuery dataset that serves as a _symbolic link_ to a shared
101
+ # dataset.
102
+ class BigQueryDatasetSource
103
+ include Google::Apis::Core::Hashable
104
+
105
+ # Resource name of the dataset source for this listing. e.g. `projects/myproject/
106
+ # datasets/123`
107
+ # Corresponds to the JSON property `dataset`
108
+ # @return [String]
109
+ attr_accessor :dataset
110
+
111
+ def initialize(**args)
112
+ update!(**args)
113
+ end
114
+
115
+ # Update properties of this object
116
+ def update!(**args)
117
+ @dataset = args[:dataset] if args.key?(:dataset)
118
+ end
119
+ end
120
+
121
+ # Associates `members`, or principals, with a `role`.
122
+ class Binding
123
+ include Google::Apis::Core::Hashable
124
+
125
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
126
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
127
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
128
+ # "Summary size limit" description: "Determines if a summary is less than 100
129
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
130
+ # Requestor is owner" description: "Determines if requestor is the document
131
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
132
+ # Logic): title: "Public documents" description: "Determine whether the document
133
+ # should be publicly visible" expression: "document.type != 'private' &&
134
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
135
+ # string" description: "Create a notification string with a timestamp."
136
+ # expression: "'New message received at ' + string(document.create_time)" The
137
+ # exact variables and functions that may be referenced within an expression are
138
+ # determined by the service that evaluates it. See the service documentation for
139
+ # additional information.
140
+ # Corresponds to the JSON property `condition`
141
+ # @return [Google::Apis::AnalyticshubV1beta1::Expr]
142
+ attr_accessor :condition
143
+
144
+ # Specifies the principals requesting access for a Google Cloud resource. `
145
+ # members` can have the following values: * `allUsers`: A special identifier
146
+ # that represents anyone who is on the internet; with or without a Google
147
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
148
+ # anyone who is authenticated with a Google account or a service account. * `
149
+ # user:`emailid``: An email address that represents a specific Google account.
150
+ # For example, `alice@example.com` . * `serviceAccount:`emailid``: An email
151
+ # address that represents a service account. For example, `my-other-app@appspot.
152
+ # gserviceaccount.com`. * `group:`emailid``: An email address that represents a
153
+ # Google group. For example, `admins@example.com`. * `deleted:user:`emailid`?uid=
154
+ # `uniqueid``: An email address (plus unique identifier) representing a user
155
+ # that has been recently deleted. For example, `alice@example.com?uid=
156
+ # 123456789012345678901`. If the user is recovered, this value reverts to `user:`
157
+ # emailid`` and the recovered user retains the role in the binding. * `deleted:
158
+ # serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus unique
159
+ # identifier) representing a service account that has been recently deleted. For
160
+ # example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
161
+ # If the service account is undeleted, this value reverts to `serviceAccount:`
162
+ # emailid`` and the undeleted service account retains the role in the binding. *
163
+ # `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
164
+ # identifier) representing a Google group that has been recently deleted. For
165
+ # example, `admins@example.com?uid=123456789012345678901`. If the group is
166
+ # recovered, this value reverts to `group:`emailid`` and the recovered group
167
+ # retains the role in the binding. * `domain:`domain``: The G Suite domain (
168
+ # primary) that represents all the users of that domain. For example, `google.
169
+ # com` or `example.com`.
170
+ # Corresponds to the JSON property `members`
171
+ # @return [Array<String>]
172
+ attr_accessor :members
173
+
174
+ # Role that is assigned to the list of `members`, or principals. For example, `
175
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
176
+ # Corresponds to the JSON property `role`
177
+ # @return [String]
178
+ attr_accessor :role
179
+
180
+ def initialize(**args)
181
+ update!(**args)
182
+ end
183
+
184
+ # Update properties of this object
185
+ def update!(**args)
186
+ @condition = args[:condition] if args.key?(:condition)
187
+ @members = args[:members] if args.key?(:members)
188
+ @role = args[:role] if args.key?(:role)
189
+ end
190
+ end
191
+
192
+ # A data exchange is a container that lets you share data. Along with the
193
+ # descriptive information about the data exchange, it contains listings that
194
+ # reference shared datasets.
195
+ class DataExchange
196
+ include Google::Apis::Core::Hashable
197
+
198
+ # Optional. Description of the data exchange. The description must not contain
199
+ # Unicode non-characters as well as C0 and C1 control codes except tabs (HT),
200
+ # new lines (LF), carriage returns (CR), and page breaks (FF). Default value is
201
+ # an empty string. Max length: 2000 bytes.
202
+ # Corresponds to the JSON property `description`
203
+ # @return [String]
204
+ attr_accessor :description
205
+
206
+ # Required. Human-readable display name of the data exchange. The display name
207
+ # must contain only Unicode letters, numbers (0-9), underscores (_), dashes (-),
208
+ # spaces ( ), and must not start or end with spaces. Default value is an empty
209
+ # string. Max length: 63 bytes.
210
+ # Corresponds to the JSON property `displayName`
211
+ # @return [String]
212
+ attr_accessor :display_name
213
+
214
+ # Optional. Documentation describing the data exchange.
215
+ # Corresponds to the JSON property `documentation`
216
+ # @return [String]
217
+ attr_accessor :documentation
218
+
219
+ # Optional. Base64 encoded image representing the data exchange. Max Size: 3.
220
+ # 0MiB Expected image dimensions are 512x512 pixels, however the API only
221
+ # performs validation on size of the encoded data. Note: For byte fields, the
222
+ # content of the fields are base64-encoded (which increases the size of the data
223
+ # by 33-36%) when using JSON on the wire.
224
+ # Corresponds to the JSON property `icon`
225
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
226
+ # @return [String]
227
+ attr_accessor :icon
228
+
229
+ # Output only. Number of listings contained in the data exchange.
230
+ # Corresponds to the JSON property `listingCount`
231
+ # @return [Fixnum]
232
+ attr_accessor :listing_count
233
+
234
+ # Output only. The resource name of the data exchange. e.g. `projects/myproject/
235
+ # locations/US/dataExchanges/123`.
236
+ # Corresponds to the JSON property `name`
237
+ # @return [String]
238
+ attr_accessor :name
239
+
240
+ # Optional. Email or URL of the primary point of contact of the data exchange.
241
+ # Max Length: 1000 bytes.
242
+ # Corresponds to the JSON property `primaryContact`
243
+ # @return [String]
244
+ attr_accessor :primary_contact
245
+
246
+ def initialize(**args)
247
+ update!(**args)
248
+ end
249
+
250
+ # Update properties of this object
251
+ def update!(**args)
252
+ @description = args[:description] if args.key?(:description)
253
+ @display_name = args[:display_name] if args.key?(:display_name)
254
+ @documentation = args[:documentation] if args.key?(:documentation)
255
+ @icon = args[:icon] if args.key?(:icon)
256
+ @listing_count = args[:listing_count] if args.key?(:listing_count)
257
+ @name = args[:name] if args.key?(:name)
258
+ @primary_contact = args[:primary_contact] if args.key?(:primary_contact)
259
+ end
260
+ end
261
+
262
+ # Contains details of the data provider.
263
+ class DataProvider
264
+ include Google::Apis::Core::Hashable
265
+
266
+ # Optional. Name of the data provider.
267
+ # Corresponds to the JSON property `name`
268
+ # @return [String]
269
+ attr_accessor :name
270
+
271
+ # Optional. Email or URL of the data provider. Max Length: 1000 bytes.
272
+ # Corresponds to the JSON property `primaryContact`
273
+ # @return [String]
274
+ attr_accessor :primary_contact
275
+
276
+ def initialize(**args)
277
+ update!(**args)
278
+ end
279
+
280
+ # Update properties of this object
281
+ def update!(**args)
282
+ @name = args[:name] if args.key?(:name)
283
+ @primary_contact = args[:primary_contact] if args.key?(:primary_contact)
284
+ end
285
+ end
286
+
287
+ # Defines the destination bigquery dataset.
288
+ class DestinationDataset
289
+ include Google::Apis::Core::Hashable
290
+
291
+ # Contains the reference that identifies a destination bigquery dataset.
292
+ # Corresponds to the JSON property `datasetReference`
293
+ # @return [Google::Apis::AnalyticshubV1beta1::DestinationDatasetReference]
294
+ attr_accessor :dataset_reference
295
+
296
+ # Optional. A user-friendly description of the dataset.
297
+ # Corresponds to the JSON property `description`
298
+ # @return [String]
299
+ attr_accessor :description
300
+
301
+ # Optional. A descriptive name for the dataset.
302
+ # Corresponds to the JSON property `friendlyName`
303
+ # @return [String]
304
+ attr_accessor :friendly_name
305
+
306
+ # Optional. The labels associated with this dataset. You can use these to
307
+ # organize and group your datasets. You can set this property when inserting or
308
+ # updating a dataset. See https://cloud.google.com/resource-manager/docs/
309
+ # creating-managing-labels for more information.
310
+ # Corresponds to the JSON property `labels`
311
+ # @return [Hash<String,String>]
312
+ attr_accessor :labels
313
+
314
+ # Required. The geographic location where the dataset should reside. See https://
315
+ # cloud.google.com/bigquery/docs/locations for supported locations.
316
+ # Corresponds to the JSON property `location`
317
+ # @return [String]
318
+ attr_accessor :location
319
+
320
+ def initialize(**args)
321
+ update!(**args)
322
+ end
323
+
324
+ # Update properties of this object
325
+ def update!(**args)
326
+ @dataset_reference = args[:dataset_reference] if args.key?(:dataset_reference)
327
+ @description = args[:description] if args.key?(:description)
328
+ @friendly_name = args[:friendly_name] if args.key?(:friendly_name)
329
+ @labels = args[:labels] if args.key?(:labels)
330
+ @location = args[:location] if args.key?(:location)
331
+ end
332
+ end
333
+
334
+ # Contains the reference that identifies a destination bigquery dataset.
335
+ class DestinationDatasetReference
336
+ include Google::Apis::Core::Hashable
337
+
338
+ # Required. A unique ID for this dataset, without the project name. The ID must
339
+ # contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The
340
+ # maximum length is 1,024 characters.
341
+ # Corresponds to the JSON property `datasetId`
342
+ # @return [String]
343
+ attr_accessor :dataset_id
344
+
345
+ # Required. The ID of the project containing this dataset.
346
+ # Corresponds to the JSON property `projectId`
347
+ # @return [String]
348
+ attr_accessor :project_id
349
+
350
+ def initialize(**args)
351
+ update!(**args)
352
+ end
353
+
354
+ # Update properties of this object
355
+ def update!(**args)
356
+ @dataset_id = args[:dataset_id] if args.key?(:dataset_id)
357
+ @project_id = args[:project_id] if args.key?(:project_id)
358
+ end
359
+ end
360
+
361
+ # A generic empty message that you can re-use to avoid defining duplicated empty
362
+ # messages in your APIs. A typical example is to use it as the request or the
363
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
364
+ # protobuf.Empty) returns (google.protobuf.Empty); `
365
+ class Empty
366
+ include Google::Apis::Core::Hashable
367
+
368
+ def initialize(**args)
369
+ update!(**args)
370
+ end
371
+
372
+ # Update properties of this object
373
+ def update!(**args)
374
+ end
375
+ end
376
+
377
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
378
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
379
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
380
+ # "Summary size limit" description: "Determines if a summary is less than 100
381
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
382
+ # Requestor is owner" description: "Determines if requestor is the document
383
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
384
+ # Logic): title: "Public documents" description: "Determine whether the document
385
+ # should be publicly visible" expression: "document.type != 'private' &&
386
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
387
+ # string" description: "Create a notification string with a timestamp."
388
+ # expression: "'New message received at ' + string(document.create_time)" The
389
+ # exact variables and functions that may be referenced within an expression are
390
+ # determined by the service that evaluates it. See the service documentation for
391
+ # additional information.
392
+ class Expr
393
+ include Google::Apis::Core::Hashable
394
+
395
+ # Optional. Description of the expression. This is a longer text which describes
396
+ # the expression, e.g. when hovered over it in a UI.
397
+ # Corresponds to the JSON property `description`
398
+ # @return [String]
399
+ attr_accessor :description
400
+
401
+ # Textual representation of an expression in Common Expression Language syntax.
402
+ # Corresponds to the JSON property `expression`
403
+ # @return [String]
404
+ attr_accessor :expression
405
+
406
+ # Optional. String indicating the location of the expression for error reporting,
407
+ # e.g. a file name and a position in the file.
408
+ # Corresponds to the JSON property `location`
409
+ # @return [String]
410
+ attr_accessor :location
411
+
412
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
413
+ # This can be used e.g. in UIs which allow to enter the expression.
414
+ # Corresponds to the JSON property `title`
415
+ # @return [String]
416
+ attr_accessor :title
417
+
418
+ def initialize(**args)
419
+ update!(**args)
420
+ end
421
+
422
+ # Update properties of this object
423
+ def update!(**args)
424
+ @description = args[:description] if args.key?(:description)
425
+ @expression = args[:expression] if args.key?(:expression)
426
+ @location = args[:location] if args.key?(:location)
427
+ @title = args[:title] if args.key?(:title)
428
+ end
429
+ end
430
+
431
+ # Request message for `GetIamPolicy` method.
432
+ class GetIamPolicyRequest
433
+ include Google::Apis::Core::Hashable
434
+
435
+ # Encapsulates settings provided to GetIamPolicy.
436
+ # Corresponds to the JSON property `options`
437
+ # @return [Google::Apis::AnalyticshubV1beta1::GetPolicyOptions]
438
+ attr_accessor :options
439
+
440
+ def initialize(**args)
441
+ update!(**args)
442
+ end
443
+
444
+ # Update properties of this object
445
+ def update!(**args)
446
+ @options = args[:options] if args.key?(:options)
447
+ end
448
+ end
449
+
450
+ # Encapsulates settings provided to GetIamPolicy.
451
+ class GetPolicyOptions
452
+ include Google::Apis::Core::Hashable
453
+
454
+ # Optional. The maximum policy version that will be used to format the policy.
455
+ # Valid values are 0, 1, and 3. Requests specifying an invalid value will be
456
+ # rejected. Requests for policies with any conditional role bindings must
457
+ # specify version 3. Policies with no conditional role bindings may specify any
458
+ # valid value or leave the field unset. The policy in the response might use the
459
+ # policy version that you specified, or it might use a lower policy version. For
460
+ # example, if you specify version 3, but the policy has no conditional role
461
+ # bindings, the response uses version 1. To learn which resources support
462
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
463
+ # google.com/iam/help/conditions/resource-policies).
464
+ # Corresponds to the JSON property `requestedPolicyVersion`
465
+ # @return [Fixnum]
466
+ attr_accessor :requested_policy_version
467
+
468
+ def initialize(**args)
469
+ update!(**args)
470
+ end
471
+
472
+ # Update properties of this object
473
+ def update!(**args)
474
+ @requested_policy_version = args[:requested_policy_version] if args.key?(:requested_policy_version)
475
+ end
476
+ end
477
+
478
+ # Message for response to the list of data exchanges.
479
+ class ListDataExchangesResponse
480
+ include Google::Apis::Core::Hashable
481
+
482
+ # The list of data exchanges.
483
+ # Corresponds to the JSON property `dataExchanges`
484
+ # @return [Array<Google::Apis::AnalyticshubV1beta1::DataExchange>]
485
+ attr_accessor :data_exchanges
486
+
487
+ # A token to request the next page of results.
488
+ # Corresponds to the JSON property `nextPageToken`
489
+ # @return [String]
490
+ attr_accessor :next_page_token
491
+
492
+ def initialize(**args)
493
+ update!(**args)
494
+ end
495
+
496
+ # Update properties of this object
497
+ def update!(**args)
498
+ @data_exchanges = args[:data_exchanges] if args.key?(:data_exchanges)
499
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
500
+ end
501
+ end
502
+
503
+ # Message for response to the list of Listings.
504
+ class ListListingsResponse
505
+ include Google::Apis::Core::Hashable
506
+
507
+ # The list of Listing.
508
+ # Corresponds to the JSON property `listings`
509
+ # @return [Array<Google::Apis::AnalyticshubV1beta1::Listing>]
510
+ attr_accessor :listings
511
+
512
+ # A token to request the next page of results.
513
+ # Corresponds to the JSON property `nextPageToken`
514
+ # @return [String]
515
+ attr_accessor :next_page_token
516
+
517
+ def initialize(**args)
518
+ update!(**args)
519
+ end
520
+
521
+ # Update properties of this object
522
+ def update!(**args)
523
+ @listings = args[:listings] if args.key?(:listings)
524
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
525
+ end
526
+ end
527
+
528
+ # The response message for Locations.ListLocations.
529
+ class ListLocationsResponse
530
+ include Google::Apis::Core::Hashable
531
+
532
+ # A list of locations that matches the specified filter in the request.
533
+ # Corresponds to the JSON property `locations`
534
+ # @return [Array<Google::Apis::AnalyticshubV1beta1::Location>]
535
+ attr_accessor :locations
536
+
537
+ # The standard List next-page token.
538
+ # Corresponds to the JSON property `nextPageToken`
539
+ # @return [String]
540
+ attr_accessor :next_page_token
541
+
542
+ def initialize(**args)
543
+ update!(**args)
544
+ end
545
+
546
+ # Update properties of this object
547
+ def update!(**args)
548
+ @locations = args[:locations] if args.key?(:locations)
549
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
550
+ end
551
+ end
552
+
553
+ # Message for response to listing data exchanges in an organization and location.
554
+ class ListOrgDataExchangesResponse
555
+ include Google::Apis::Core::Hashable
556
+
557
+ # The list of data exchanges.
558
+ # Corresponds to the JSON property `dataExchanges`
559
+ # @return [Array<Google::Apis::AnalyticshubV1beta1::DataExchange>]
560
+ attr_accessor :data_exchanges
561
+
562
+ # A token to request the next page of results.
563
+ # Corresponds to the JSON property `nextPageToken`
564
+ # @return [String]
565
+ attr_accessor :next_page_token
566
+
567
+ def initialize(**args)
568
+ update!(**args)
569
+ end
570
+
571
+ # Update properties of this object
572
+ def update!(**args)
573
+ @data_exchanges = args[:data_exchanges] if args.key?(:data_exchanges)
574
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
575
+ end
576
+ end
577
+
578
+ # A listing is what gets published into a data exchange that a subscriber can
579
+ # subscribe to. It contains a reference to the data source along with
580
+ # descriptive information that will help subscribers find and subscribe the data.
581
+ class Listing
582
+ include Google::Apis::Core::Hashable
583
+
584
+ # A reference to a shared dataset. It is an existing BigQuery dataset with a
585
+ # collection of objects such as tables and views that you want to share with
586
+ # subscribers. When subscriber's subscribe to a listing, Analytics Hub creates a
587
+ # linked dataset in the subscriber's project. A Linked dataset is an opaque,
588
+ # read-only BigQuery dataset that serves as a _symbolic link_ to a shared
589
+ # dataset.
590
+ # Corresponds to the JSON property `bigqueryDataset`
591
+ # @return [Google::Apis::AnalyticshubV1beta1::BigQueryDatasetSource]
592
+ attr_accessor :bigquery_dataset
593
+
594
+ # Optional. Categories of the listing. Up to two categories are allowed.
595
+ # Corresponds to the JSON property `categories`
596
+ # @return [Array<String>]
597
+ attr_accessor :categories
598
+
599
+ # Contains details of the data provider.
600
+ # Corresponds to the JSON property `dataProvider`
601
+ # @return [Google::Apis::AnalyticshubV1beta1::DataProvider]
602
+ attr_accessor :data_provider
603
+
604
+ # Optional. Short description of the listing. The description must not contain
605
+ # Unicode non-characters and C0 and C1 control codes except tabs (HT), new lines
606
+ # (LF), carriage returns (CR), and page breaks (FF). Default value is an empty
607
+ # string. Max length: 2000 bytes.
608
+ # Corresponds to the JSON property `description`
609
+ # @return [String]
610
+ attr_accessor :description
611
+
612
+ # Required. Human-readable display name of the listing. The display name must
613
+ # contain only Unicode letters, numbers (0-9), underscores (_), dashes (-),
614
+ # spaces ( ), and can't start or end with spaces. Default value is an empty
615
+ # string. Max length: 63 bytes.
616
+ # Corresponds to the JSON property `displayName`
617
+ # @return [String]
618
+ attr_accessor :display_name
619
+
620
+ # Optional. Documentation describing the listing.
621
+ # Corresponds to the JSON property `documentation`
622
+ # @return [String]
623
+ attr_accessor :documentation
624
+
625
+ # Optional. Base64 encoded image representing the listing. Max Size: 3.0MiB
626
+ # Expected image dimensions are 512x512 pixels, however the API only performs
627
+ # validation on size of the encoded data. Note: For byte fields, the contents of
628
+ # the field are base64-encoded (which increases the size of the data by 33-36%)
629
+ # when using JSON on the wire.
630
+ # Corresponds to the JSON property `icon`
631
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
632
+ # @return [String]
633
+ attr_accessor :icon
634
+
635
+ # Output only. The resource name of the listing. e.g. `projects/myproject/
636
+ # locations/US/dataExchanges/123/listings/456`
637
+ # Corresponds to the JSON property `name`
638
+ # @return [String]
639
+ attr_accessor :name
640
+
641
+ # Optional. Email or URL of the primary point of contact of the listing. Max
642
+ # Length: 1000 bytes.
643
+ # Corresponds to the JSON property `primaryContact`
644
+ # @return [String]
645
+ attr_accessor :primary_contact
646
+
647
+ # Contains details of the listing publisher.
648
+ # Corresponds to the JSON property `publisher`
649
+ # @return [Google::Apis::AnalyticshubV1beta1::Publisher]
650
+ attr_accessor :publisher
651
+
652
+ # Optional. Email or URL of the request access of the listing. Subscribers can
653
+ # use this reference to request access. Max Length: 1000 bytes.
654
+ # Corresponds to the JSON property `requestAccess`
655
+ # @return [String]
656
+ attr_accessor :request_access
657
+
658
+ # Output only. Current state of the listing.
659
+ # Corresponds to the JSON property `state`
660
+ # @return [String]
661
+ attr_accessor :state
662
+
663
+ def initialize(**args)
664
+ update!(**args)
665
+ end
666
+
667
+ # Update properties of this object
668
+ def update!(**args)
669
+ @bigquery_dataset = args[:bigquery_dataset] if args.key?(:bigquery_dataset)
670
+ @categories = args[:categories] if args.key?(:categories)
671
+ @data_provider = args[:data_provider] if args.key?(:data_provider)
672
+ @description = args[:description] if args.key?(:description)
673
+ @display_name = args[:display_name] if args.key?(:display_name)
674
+ @documentation = args[:documentation] if args.key?(:documentation)
675
+ @icon = args[:icon] if args.key?(:icon)
676
+ @name = args[:name] if args.key?(:name)
677
+ @primary_contact = args[:primary_contact] if args.key?(:primary_contact)
678
+ @publisher = args[:publisher] if args.key?(:publisher)
679
+ @request_access = args[:request_access] if args.key?(:request_access)
680
+ @state = args[:state] if args.key?(:state)
681
+ end
682
+ end
683
+
684
+ # A resource that represents Google Cloud Platform location.
685
+ class Location
686
+ include Google::Apis::Core::Hashable
687
+
688
+ # The friendly name for this location, typically a nearby city name. For example,
689
+ # "Tokyo".
690
+ # Corresponds to the JSON property `displayName`
691
+ # @return [String]
692
+ attr_accessor :display_name
693
+
694
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
695
+ # region": "us-east1"`
696
+ # Corresponds to the JSON property `labels`
697
+ # @return [Hash<String,String>]
698
+ attr_accessor :labels
699
+
700
+ # The canonical id for this location. For example: `"us-east1"`.
701
+ # Corresponds to the JSON property `locationId`
702
+ # @return [String]
703
+ attr_accessor :location_id
704
+
705
+ # Service-specific metadata. For example the available capacity at the given
706
+ # location.
707
+ # Corresponds to the JSON property `metadata`
708
+ # @return [Hash<String,Object>]
709
+ attr_accessor :metadata
710
+
711
+ # Resource name for the location, which may vary between implementations. For
712
+ # example: `"projects/example-project/locations/us-east1"`
713
+ # Corresponds to the JSON property `name`
714
+ # @return [String]
715
+ attr_accessor :name
716
+
717
+ def initialize(**args)
718
+ update!(**args)
719
+ end
720
+
721
+ # Update properties of this object
722
+ def update!(**args)
723
+ @display_name = args[:display_name] if args.key?(:display_name)
724
+ @labels = args[:labels] if args.key?(:labels)
725
+ @location_id = args[:location_id] if args.key?(:location_id)
726
+ @metadata = args[:metadata] if args.key?(:metadata)
727
+ @name = args[:name] if args.key?(:name)
728
+ end
729
+ end
730
+
731
+ # Represents the metadata of the long-running operation.
732
+ class OperationMetadata
733
+ include Google::Apis::Core::Hashable
734
+
735
+ # Output only. API version used to start the operation.
736
+ # Corresponds to the JSON property `apiVersion`
737
+ # @return [String]
738
+ attr_accessor :api_version
739
+
740
+ # Output only. Identifies whether the user has requested cancellation of the
741
+ # operation. Operations that have been cancelled successfully have Operation.
742
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
743
+ # CANCELLED`.
744
+ # Corresponds to the JSON property `cancelRequested`
745
+ # @return [Boolean]
746
+ attr_accessor :cancel_requested
747
+ alias_method :cancel_requested?, :cancel_requested
748
+
749
+ # Output only. The time the operation was created.
750
+ # Corresponds to the JSON property `createTime`
751
+ # @return [String]
752
+ attr_accessor :create_time
753
+
754
+ # Output only. The time the operation finished running.
755
+ # Corresponds to the JSON property `endTime`
756
+ # @return [String]
757
+ attr_accessor :end_time
758
+
759
+ # Output only. Human-readable status of the operation, if any.
760
+ # Corresponds to the JSON property `statusDetail`
761
+ # @return [String]
762
+ attr_accessor :status_detail
763
+
764
+ # Output only. Server-defined resource path for the target of the operation.
765
+ # Corresponds to the JSON property `target`
766
+ # @return [String]
767
+ attr_accessor :target
768
+
769
+ # Output only. Name of the verb executed by the operation.
770
+ # Corresponds to the JSON property `verb`
771
+ # @return [String]
772
+ attr_accessor :verb
773
+
774
+ def initialize(**args)
775
+ update!(**args)
776
+ end
777
+
778
+ # Update properties of this object
779
+ def update!(**args)
780
+ @api_version = args[:api_version] if args.key?(:api_version)
781
+ @cancel_requested = args[:cancel_requested] if args.key?(:cancel_requested)
782
+ @create_time = args[:create_time] if args.key?(:create_time)
783
+ @end_time = args[:end_time] if args.key?(:end_time)
784
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
785
+ @target = args[:target] if args.key?(:target)
786
+ @verb = args[:verb] if args.key?(:verb)
787
+ end
788
+ end
789
+
790
+ # An Identity and Access Management (IAM) policy, which specifies access
791
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
792
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
793
+ # Principals can be user accounts, service accounts, Google groups, and domains (
794
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
795
+ # an IAM predefined role or a user-created custom role. For some types of Google
796
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
797
+ # logical expression that allows access to a resource only if the expression
798
+ # evaluates to `true`. A condition can add constraints based on attributes of
799
+ # the request, the resource, or both. To learn which resources support
800
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
801
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
802
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
803
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
804
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
805
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
806
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
807
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
808
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
809
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
810
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
811
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
812
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
813
+ # access description: Does not grant access after Sep 2020 expression: request.
814
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
815
+ # a description of IAM and its features, see the [IAM documentation](https://
816
+ # cloud.google.com/iam/docs/).
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::AnalyticshubV1beta1::AuditConfig>]
823
+ attr_accessor :audit_configs
824
+
825
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
826
+ # specify a `condition` that determines how and when the `bindings` are applied.
827
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
828
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
829
+ # can be Google groups. Each occurrence of a principal counts towards these
830
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
831
+ # example.com`, and not to any other principal, then you can add another 1,450
832
+ # principals to the `bindings` in the `Policy`.
833
+ # Corresponds to the JSON property `bindings`
834
+ # @return [Array<Google::Apis::AnalyticshubV1beta1::Binding>]
835
+ attr_accessor :bindings
836
+
837
+ # `etag` is used for optimistic concurrency control as a way to help prevent
838
+ # simultaneous updates of a policy from overwriting each other. It is strongly
839
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
840
+ # to perform policy updates in order to avoid race conditions: An `etag` is
841
+ # returned in the response to `getIamPolicy`, and systems are expected to put
842
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
843
+ # applied to the same version of the policy. **Important:** If you use IAM
844
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
845
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
846
+ # with a version `1` policy, and all of the conditions in the version `3` policy
847
+ # are lost.
848
+ # Corresponds to the JSON property `etag`
849
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
850
+ # @return [String]
851
+ attr_accessor :etag
852
+
853
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
854
+ # Requests that specify an invalid value are rejected. Any operation that
855
+ # affects conditional role bindings must specify version `3`. This requirement
856
+ # applies to the following operations: * Getting a policy that includes a
857
+ # conditional role binding * Adding a conditional role binding to a policy *
858
+ # Changing a conditional role binding in a policy * Removing any role binding,
859
+ # with or without a condition, from a policy that includes conditions **
860
+ # Important:** If you use IAM Conditions, you must include the `etag` field
861
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
862
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
863
+ # conditions in the version `3` policy are lost. If a policy does not include
864
+ # any conditions, operations on that policy may specify any valid version or
865
+ # leave the field unset. To learn which resources support conditions in their
866
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
867
+ # conditions/resource-policies).
868
+ # Corresponds to the JSON property `version`
869
+ # @return [Fixnum]
870
+ attr_accessor :version
871
+
872
+ def initialize(**args)
873
+ update!(**args)
874
+ end
875
+
876
+ # Update properties of this object
877
+ def update!(**args)
878
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
879
+ @bindings = args[:bindings] if args.key?(:bindings)
880
+ @etag = args[:etag] if args.key?(:etag)
881
+ @version = args[:version] if args.key?(:version)
882
+ end
883
+ end
884
+
885
+ # Contains details of the listing publisher.
886
+ class Publisher
887
+ include Google::Apis::Core::Hashable
888
+
889
+ # Optional. Name of the listing publisher.
890
+ # Corresponds to the JSON property `name`
891
+ # @return [String]
892
+ attr_accessor :name
893
+
894
+ # Optional. Email or URL of the listing publisher. Max Length: 1000 bytes.
895
+ # Corresponds to the JSON property `primaryContact`
896
+ # @return [String]
897
+ attr_accessor :primary_contact
898
+
899
+ def initialize(**args)
900
+ update!(**args)
901
+ end
902
+
903
+ # Update properties of this object
904
+ def update!(**args)
905
+ @name = args[:name] if args.key?(:name)
906
+ @primary_contact = args[:primary_contact] if args.key?(:primary_contact)
907
+ end
908
+ end
909
+
910
+ # Request message for `SetIamPolicy` method.
911
+ class SetIamPolicyRequest
912
+ include Google::Apis::Core::Hashable
913
+
914
+ # An Identity and Access Management (IAM) policy, which specifies access
915
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
916
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
917
+ # Principals can be user accounts, service accounts, Google groups, and domains (
918
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
919
+ # an IAM predefined role or a user-created custom role. For some types of Google
920
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
921
+ # logical expression that allows access to a resource only if the expression
922
+ # evaluates to `true`. A condition can add constraints based on attributes of
923
+ # the request, the resource, or both. To learn which resources support
924
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
925
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
926
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
927
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
928
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
929
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
930
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
931
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
932
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
933
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
934
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
935
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
936
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
937
+ # access description: Does not grant access after Sep 2020 expression: request.
938
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
939
+ # a description of IAM and its features, see the [IAM documentation](https://
940
+ # cloud.google.com/iam/docs/).
941
+ # Corresponds to the JSON property `policy`
942
+ # @return [Google::Apis::AnalyticshubV1beta1::Policy]
943
+ attr_accessor :policy
944
+
945
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
946
+ # the fields in the mask will be modified. If no mask is provided, the following
947
+ # default mask is used: `paths: "bindings, etag"`
948
+ # Corresponds to the JSON property `updateMask`
949
+ # @return [String]
950
+ attr_accessor :update_mask
951
+
952
+ def initialize(**args)
953
+ update!(**args)
954
+ end
955
+
956
+ # Update properties of this object
957
+ def update!(**args)
958
+ @policy = args[:policy] if args.key?(:policy)
959
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
960
+ end
961
+ end
962
+
963
+ # Message for subscribing to a listing.
964
+ class SubscribeListingRequest
965
+ include Google::Apis::Core::Hashable
966
+
967
+ # Defines the destination bigquery dataset.
968
+ # Corresponds to the JSON property `destinationDataset`
969
+ # @return [Google::Apis::AnalyticshubV1beta1::DestinationDataset]
970
+ attr_accessor :destination_dataset
971
+
972
+ def initialize(**args)
973
+ update!(**args)
974
+ end
975
+
976
+ # Update properties of this object
977
+ def update!(**args)
978
+ @destination_dataset = args[:destination_dataset] if args.key?(:destination_dataset)
979
+ end
980
+ end
981
+
982
+ # Message for response when you subscribe to a listing. Empty for now.
983
+ class SubscribeListingResponse
984
+ include Google::Apis::Core::Hashable
985
+
986
+ def initialize(**args)
987
+ update!(**args)
988
+ end
989
+
990
+ # Update properties of this object
991
+ def update!(**args)
992
+ end
993
+ end
994
+
995
+ # Request message for `TestIamPermissions` method.
996
+ class TestIamPermissionsRequest
997
+ include Google::Apis::Core::Hashable
998
+
999
+ # The set of permissions to check for the `resource`. Permissions with wildcards
1000
+ # (such as `*` or `storage.*`) are not allowed. For more information see [IAM
1001
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
1002
+ # Corresponds to the JSON property `permissions`
1003
+ # @return [Array<String>]
1004
+ attr_accessor :permissions
1005
+
1006
+ def initialize(**args)
1007
+ update!(**args)
1008
+ end
1009
+
1010
+ # Update properties of this object
1011
+ def update!(**args)
1012
+ @permissions = args[:permissions] if args.key?(:permissions)
1013
+ end
1014
+ end
1015
+
1016
+ # Response message for `TestIamPermissions` method.
1017
+ class TestIamPermissionsResponse
1018
+ include Google::Apis::Core::Hashable
1019
+
1020
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
1021
+ # Corresponds to the JSON property `permissions`
1022
+ # @return [Array<String>]
1023
+ attr_accessor :permissions
1024
+
1025
+ def initialize(**args)
1026
+ update!(**args)
1027
+ end
1028
+
1029
+ # Update properties of this object
1030
+ def update!(**args)
1031
+ @permissions = args[:permissions] if args.key?(:permissions)
1032
+ end
1033
+ end
1034
+ end
1035
+ end
1036
+ end