google-apis-analyticshub_v1 0.21.0 → 0.23.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.
@@ -22,6 +22,35 @@ module Google
22
22
  module Apis
23
23
  module AnalyticshubV1
24
24
 
25
+ # Information about an associated Analytics Hub subscription (https://cloud.
26
+ # google.com/bigquery/docs/analytics-hub-manage-subscriptions).
27
+ class AnalyticsHubSubscriptionInfo
28
+ include Google::Apis::Core::Hashable
29
+
30
+ # Optional. The name of the associated Analytics Hub listing resource. Pattern: "
31
+ # projects/`project`/locations/`location`/dataExchanges/`data_exchange`/listings/
32
+ # `listing`"
33
+ # Corresponds to the JSON property `listing`
34
+ # @return [String]
35
+ attr_accessor :listing
36
+
37
+ # Optional. The name of the associated Analytics Hub subscription resource.
38
+ # Pattern: "projects/`project`/locations/`location`/subscriptions/`subscription`"
39
+ # Corresponds to the JSON property `subscription`
40
+ # @return [String]
41
+ attr_accessor :subscription
42
+
43
+ def initialize(**args)
44
+ update!(**args)
45
+ end
46
+
47
+ # Update properties of this object
48
+ def update!(**args)
49
+ @listing = args[:listing] if args.key?(:listing)
50
+ @subscription = args[:subscription] if args.key?(:subscription)
51
+ end
52
+ end
53
+
25
54
  # Specifies the audit configuration for a service. The configuration determines
26
55
  # which permission types are logged, and what identities, if any, are exempted
27
56
  # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
@@ -93,6 +122,116 @@ module Google
93
122
  end
94
123
  end
95
124
 
125
+ # Configuration for writing message data in Avro format. Message payloads and
126
+ # metadata will be written to files as an Avro binary.
127
+ class AvroConfig
128
+ include Google::Apis::Core::Hashable
129
+
130
+ # Optional. When true, the output Cloud Storage file will be serialized using
131
+ # the topic schema, if it exists.
132
+ # Corresponds to the JSON property `useTopicSchema`
133
+ # @return [Boolean]
134
+ attr_accessor :use_topic_schema
135
+ alias_method :use_topic_schema?, :use_topic_schema
136
+
137
+ # Optional. When true, write the subscription name, message_id, publish_time,
138
+ # attributes, and ordering_key as additional fields in the output. The
139
+ # subscription name, message_id, and publish_time fields are put in their own
140
+ # fields while all other message properties other than data (for example, an
141
+ # ordering_key, if present) are added as entries in the attributes map.
142
+ # Corresponds to the JSON property `writeMetadata`
143
+ # @return [Boolean]
144
+ attr_accessor :write_metadata
145
+ alias_method :write_metadata?, :write_metadata
146
+
147
+ def initialize(**args)
148
+ update!(**args)
149
+ end
150
+
151
+ # Update properties of this object
152
+ def update!(**args)
153
+ @use_topic_schema = args[:use_topic_schema] if args.key?(:use_topic_schema)
154
+ @write_metadata = args[:write_metadata] if args.key?(:write_metadata)
155
+ end
156
+ end
157
+
158
+ # Configuration for a BigQuery subscription.
159
+ class BigQueryConfig
160
+ include Google::Apis::Core::Hashable
161
+
162
+ # Optional. When true and use_topic_schema is true, any fields that are a part
163
+ # of the topic schema that are not part of the BigQuery table schema are dropped
164
+ # when writing to BigQuery. Otherwise, the schemas must be kept in sync and any
165
+ # messages with extra fields are not written and remain in the subscription's
166
+ # backlog.
167
+ # Corresponds to the JSON property `dropUnknownFields`
168
+ # @return [Boolean]
169
+ attr_accessor :drop_unknown_fields
170
+ alias_method :drop_unknown_fields?, :drop_unknown_fields
171
+
172
+ # Optional. The service account to use to write to BigQuery. The subscription
173
+ # creator or updater that specifies this field must have `iam.serviceAccounts.
174
+ # actAs` permission on the service account. If not specified, the Pub/Sub [
175
+ # service agent](https://cloud.google.com/iam/docs/service-agents), service-`
176
+ # project_number`@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
177
+ # Corresponds to the JSON property `serviceAccountEmail`
178
+ # @return [String]
179
+ attr_accessor :service_account_email
180
+
181
+ # Output only. An output-only field that indicates whether or not the
182
+ # subscription can receive messages.
183
+ # Corresponds to the JSON property `state`
184
+ # @return [String]
185
+ attr_accessor :state
186
+
187
+ # Optional. The name of the table to which to write data, of the form `projectId`
188
+ # .`datasetId`.`tableId`
189
+ # Corresponds to the JSON property `table`
190
+ # @return [String]
191
+ attr_accessor :table
192
+
193
+ # Optional. When true, use the BigQuery table's schema as the columns to write
194
+ # to in BigQuery. `use_table_schema` and `use_topic_schema` cannot be enabled at
195
+ # the same time.
196
+ # Corresponds to the JSON property `useTableSchema`
197
+ # @return [Boolean]
198
+ attr_accessor :use_table_schema
199
+ alias_method :use_table_schema?, :use_table_schema
200
+
201
+ # Optional. When true, use the topic's schema as the columns to write to in
202
+ # BigQuery, if it exists. `use_topic_schema` and `use_table_schema` cannot be
203
+ # enabled at the same time.
204
+ # Corresponds to the JSON property `useTopicSchema`
205
+ # @return [Boolean]
206
+ attr_accessor :use_topic_schema
207
+ alias_method :use_topic_schema?, :use_topic_schema
208
+
209
+ # Optional. When true, write the subscription name, message_id, publish_time,
210
+ # attributes, and ordering_key to additional columns in the table. The
211
+ # subscription name, message_id, and publish_time fields are put in their own
212
+ # columns while all other message properties (other than data) are written to a
213
+ # JSON object in the attributes column.
214
+ # Corresponds to the JSON property `writeMetadata`
215
+ # @return [Boolean]
216
+ attr_accessor :write_metadata
217
+ alias_method :write_metadata?, :write_metadata
218
+
219
+ def initialize(**args)
220
+ update!(**args)
221
+ end
222
+
223
+ # Update properties of this object
224
+ def update!(**args)
225
+ @drop_unknown_fields = args[:drop_unknown_fields] if args.key?(:drop_unknown_fields)
226
+ @service_account_email = args[:service_account_email] if args.key?(:service_account_email)
227
+ @state = args[:state] if args.key?(:state)
228
+ @table = args[:table] if args.key?(:table)
229
+ @use_table_schema = args[:use_table_schema] if args.key?(:use_table_schema)
230
+ @use_topic_schema = args[:use_topic_schema] if args.key?(:use_topic_schema)
231
+ @write_metadata = args[:write_metadata] if args.key?(:write_metadata)
232
+ end
233
+ end
234
+
96
235
  # A reference to a shared dataset. It is an existing BigQuery dataset with a
97
236
  # collection of objects such as tables and views that you want to share with
98
237
  # subscribers. When subscriber's subscribe to a listing, Analytics Hub creates a
@@ -113,9 +252,8 @@ module Google
113
252
  # @return [Google::Apis::AnalyticshubV1::RestrictedExportPolicy]
114
253
  attr_accessor :restricted_export_policy
115
254
 
116
- # Optional. Resources in this dataset that are selectively shared. If this field
117
- # is empty, then the entire dataset (all resources) are shared. This field is
118
- # only valid for data clean room exchanges.
255
+ # Optional. Resource in this dataset that is selectively shared. This field is
256
+ # required for data clean room exchanges.
119
257
  # Corresponds to the JSON property `selectedResources`
120
258
  # @return [Array<Google::Apis::AnalyticshubV1::SelectedResource>]
121
259
  attr_accessor :selected_resources
@@ -233,6 +371,105 @@ module Google
233
371
  end
234
372
  end
235
373
 
374
+ # Configuration for a Cloud Storage subscription.
375
+ class CloudStorageConfig
376
+ include Google::Apis::Core::Hashable
377
+
378
+ # Configuration for writing message data in Avro format. Message payloads and
379
+ # metadata will be written to files as an Avro binary.
380
+ # Corresponds to the JSON property `avroConfig`
381
+ # @return [Google::Apis::AnalyticshubV1::AvroConfig]
382
+ attr_accessor :avro_config
383
+
384
+ # Required. User-provided name for the Cloud Storage bucket. The bucket must be
385
+ # created by the user. The bucket name must be without any prefix like "gs://".
386
+ # See the [bucket naming requirements] (https://cloud.google.com/storage/docs/
387
+ # buckets#naming).
388
+ # Corresponds to the JSON property `bucket`
389
+ # @return [String]
390
+ attr_accessor :bucket
391
+
392
+ # Optional. User-provided format string specifying how to represent datetimes in
393
+ # Cloud Storage filenames. See the [datetime format guidance](https://cloud.
394
+ # google.com/pubsub/docs/create-cloudstorage-subscription#file_names).
395
+ # Corresponds to the JSON property `filenameDatetimeFormat`
396
+ # @return [String]
397
+ attr_accessor :filename_datetime_format
398
+
399
+ # Optional. User-provided prefix for Cloud Storage filename. See the [object
400
+ # naming requirements](https://cloud.google.com/storage/docs/objects#naming).
401
+ # Corresponds to the JSON property `filenamePrefix`
402
+ # @return [String]
403
+ attr_accessor :filename_prefix
404
+
405
+ # Optional. User-provided suffix for Cloud Storage filename. See the [object
406
+ # naming requirements](https://cloud.google.com/storage/docs/objects#naming).
407
+ # Must not end in "/".
408
+ # Corresponds to the JSON property `filenameSuffix`
409
+ # @return [String]
410
+ attr_accessor :filename_suffix
411
+
412
+ # Optional. The maximum bytes that can be written to a Cloud Storage file before
413
+ # a new file is created. Min 1 KB, max 10 GiB. The max_bytes limit may be
414
+ # exceeded in cases where messages are larger than the limit.
415
+ # Corresponds to the JSON property `maxBytes`
416
+ # @return [Fixnum]
417
+ attr_accessor :max_bytes
418
+
419
+ # Optional. The maximum duration that can elapse before a new Cloud Storage file
420
+ # is created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed
421
+ # the subscription's acknowledgement deadline.
422
+ # Corresponds to the JSON property `maxDuration`
423
+ # @return [String]
424
+ attr_accessor :max_duration
425
+
426
+ # Optional. The maximum number of messages that can be written to a Cloud
427
+ # Storage file before a new file is created. Min 1000 messages.
428
+ # Corresponds to the JSON property `maxMessages`
429
+ # @return [Fixnum]
430
+ attr_accessor :max_messages
431
+
432
+ # Optional. The service account to use to write to Cloud Storage. The
433
+ # subscription creator or updater that specifies this field must have `iam.
434
+ # serviceAccounts.actAs` permission on the service account. If not specified,
435
+ # the Pub/Sub [service agent](https://cloud.google.com/iam/docs/service-agents),
436
+ # service-`project_number`@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
437
+ # Corresponds to the JSON property `serviceAccountEmail`
438
+ # @return [String]
439
+ attr_accessor :service_account_email
440
+
441
+ # Output only. An output-only field that indicates whether or not the
442
+ # subscription can receive messages.
443
+ # Corresponds to the JSON property `state`
444
+ # @return [String]
445
+ attr_accessor :state
446
+
447
+ # Configuration for writing message data in text format. Message payloads will
448
+ # be written to files as raw text, separated by a newline.
449
+ # Corresponds to the JSON property `textConfig`
450
+ # @return [Google::Apis::AnalyticshubV1::TextConfig]
451
+ attr_accessor :text_config
452
+
453
+ def initialize(**args)
454
+ update!(**args)
455
+ end
456
+
457
+ # Update properties of this object
458
+ def update!(**args)
459
+ @avro_config = args[:avro_config] if args.key?(:avro_config)
460
+ @bucket = args[:bucket] if args.key?(:bucket)
461
+ @filename_datetime_format = args[:filename_datetime_format] if args.key?(:filename_datetime_format)
462
+ @filename_prefix = args[:filename_prefix] if args.key?(:filename_prefix)
463
+ @filename_suffix = args[:filename_suffix] if args.key?(:filename_suffix)
464
+ @max_bytes = args[:max_bytes] if args.key?(:max_bytes)
465
+ @max_duration = args[:max_duration] if args.key?(:max_duration)
466
+ @max_messages = args[:max_messages] if args.key?(:max_messages)
467
+ @service_account_email = args[:service_account_email] if args.key?(:service_account_email)
468
+ @state = args[:state] if args.key?(:state)
469
+ @text_config = args[:text_config] if args.key?(:text_config)
470
+ end
471
+ end
472
+
236
473
  # A data exchange is a container that lets you share data. Along with the
237
474
  # descriptive information about the data exchange, it contains listings that
238
475
  # reference shared datasets.
@@ -247,6 +484,13 @@ module Google
247
484
  # @return [String]
248
485
  attr_accessor :description
249
486
 
487
+ # Optional. Type of discovery on the discovery page for all the listings under
488
+ # this exchange. Updating this field also updates (overwrites) the
489
+ # discovery_type field for all the listings under this exchange.
490
+ # Corresponds to the JSON property `discoveryType`
491
+ # @return [String]
492
+ attr_accessor :discovery_type
493
+
250
494
  # Required. Human-readable display name of the data exchange. The display name
251
495
  # must contain only Unicode letters, numbers (0-9), underscores (_), dashes (-),
252
496
  # spaces ( ), ampersands (&) and must not start or end with spaces. Default
@@ -300,6 +544,7 @@ module Google
300
544
  # Update properties of this object
301
545
  def update!(**args)
302
546
  @description = args[:description] if args.key?(:description)
547
+ @discovery_type = args[:discovery_type] if args.key?(:discovery_type)
303
548
  @display_name = args[:display_name] if args.key?(:display_name)
304
549
  @documentation = args[:documentation] if args.key?(:documentation)
305
550
  @icon = args[:icon] if args.key?(:icon)
@@ -371,6 +616,46 @@ module Google
371
616
  end
372
617
  end
373
618
 
619
+ # Dead lettering is done on a best effort basis. The same message might be dead
620
+ # lettered multiple times. If validation on any of the fields fails at
621
+ # subscription creation/updation, the create/update subscription request will
622
+ # fail.
623
+ class DeadLetterPolicy
624
+ include Google::Apis::Core::Hashable
625
+
626
+ # Optional. The name of the topic to which dead letter messages should be
627
+ # published. Format is `projects/`project`/topics/`topic``.The Pub/Sub service
628
+ # account associated with the enclosing subscription's parent project (i.e.,
629
+ # service-`project_number`@gcp-sa-pubsub.iam.gserviceaccount.com) must have
630
+ # permission to Publish() to this topic. The operation will fail if the topic
631
+ # does not exist. Users should ensure that there is a subscription attached to
632
+ # this topic since messages published to a topic with no subscriptions are lost.
633
+ # Corresponds to the JSON property `deadLetterTopic`
634
+ # @return [String]
635
+ attr_accessor :dead_letter_topic
636
+
637
+ # Optional. The maximum number of delivery attempts for any message. The value
638
+ # must be between 5 and 100. The number of delivery attempts is defined as 1 + (
639
+ # the sum of number of NACKs and number of times the acknowledgement deadline
640
+ # has been exceeded for the message). A NACK is any call to ModifyAckDeadline
641
+ # with a 0 deadline. Note that client libraries may automatically extend
642
+ # ack_deadlines. This field will be honored on a best effort basis. If this
643
+ # parameter is 0, a default value of 5 is used.
644
+ # Corresponds to the JSON property `maxDeliveryAttempts`
645
+ # @return [Fixnum]
646
+ attr_accessor :max_delivery_attempts
647
+
648
+ def initialize(**args)
649
+ update!(**args)
650
+ end
651
+
652
+ # Update properties of this object
653
+ def update!(**args)
654
+ @dead_letter_topic = args[:dead_letter_topic] if args.key?(:dead_letter_topic)
655
+ @max_delivery_attempts = args[:max_delivery_attempts] if args.key?(:max_delivery_attempts)
656
+ end
657
+ end
658
+
374
659
  # Default Analytics Hub data exchange, used for secured data sharing.
375
660
  class DefaultExchangeConfig
376
661
  include Google::Apis::Core::Hashable
@@ -458,6 +743,27 @@ module Google
458
743
  end
459
744
  end
460
745
 
746
+ # Defines the destination Pub/Sub subscription.
747
+ class DestinationPubSubSubscription
748
+ include Google::Apis::Core::Hashable
749
+
750
+ # A subscription resource. If none of `push_config`, `bigquery_config`, or `
751
+ # cloud_storage_config` is set, then the subscriber will pull and ack messages
752
+ # using API methods. At most one of these fields may be set.
753
+ # Corresponds to the JSON property `pubsubSubscription`
754
+ # @return [Google::Apis::AnalyticshubV1::GooglePubsubV1Subscription]
755
+ attr_accessor :pubsub_subscription
756
+
757
+ def initialize(**args)
758
+ update!(**args)
759
+ end
760
+
761
+ # Update properties of this object
762
+ def update!(**args)
763
+ @pubsub_subscription = args[:pubsub_subscription] if args.key?(:pubsub_subscription)
764
+ end
765
+ end
766
+
461
767
  # A generic empty message that you can re-use to avoid defining duplicated empty
462
768
  # messages in your APIs. A typical example is to use it as the request or the
463
769
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -474,6 +780,30 @@ module Google
474
780
  end
475
781
  end
476
782
 
783
+ # A policy that specifies the conditions for resource expiration (i.e.,
784
+ # automatic resource deletion).
785
+ class ExpirationPolicy
786
+ include Google::Apis::Core::Hashable
787
+
788
+ # Optional. Specifies the "time-to-live" duration for an associated resource.
789
+ # The resource expires if it is not active for a period of `ttl`. The definition
790
+ # of "activity" depends on the type of the associated resource. The minimum and
791
+ # maximum allowed values for `ttl` depend on the type of the associated resource,
792
+ # as well. If `ttl` is not set, the associated resource never expires.
793
+ # Corresponds to the JSON property `ttl`
794
+ # @return [String]
795
+ attr_accessor :ttl
796
+
797
+ def initialize(**args)
798
+ update!(**args)
799
+ end
800
+
801
+ # Update properties of this object
802
+ def update!(**args)
803
+ @ttl = args[:ttl] if args.key?(:ttl)
804
+ end
805
+ end
806
+
477
807
  # Represents a textual expression in the Common Expression Language (CEL) syntax.
478
808
  # CEL is a C-like expression language. The syntax and semantics of CEL are
479
809
  # documented at https://github.com/google/cel-spec. Example (Comparison): title:
@@ -575,6 +905,192 @@ module Google
575
905
  end
576
906
  end
577
907
 
908
+ # A subscription resource. If none of `push_config`, `bigquery_config`, or `
909
+ # cloud_storage_config` is set, then the subscriber will pull and ack messages
910
+ # using API methods. At most one of these fields may be set.
911
+ class GooglePubsubV1Subscription
912
+ include Google::Apis::Core::Hashable
913
+
914
+ # Optional. The approximate amount of time (on a best-effort basis) Pub/Sub
915
+ # waits for the subscriber to acknowledge receipt before resending the message.
916
+ # In the interval after the message is delivered and before it is acknowledged,
917
+ # it is considered to be _outstanding_. During that time period, the message
918
+ # will not be redelivered (on a best-effort basis). For pull subscriptions, this
919
+ # value is used as the initial value for the ack deadline. To override this
920
+ # value for a given message, call `ModifyAckDeadline` with the corresponding `
921
+ # ack_id` if using non-streaming pull or send the `ack_id` in a `
922
+ # StreamingModifyAckDeadlineRequest` if using streaming pull. The minimum custom
923
+ # deadline you can specify is 10 seconds. The maximum custom deadline you can
924
+ # specify is 600 seconds (10 minutes). If this parameter is 0, a default value
925
+ # of 10 seconds is used. For push delivery, this value is also used to set the
926
+ # request timeout for the call to the push endpoint. If the subscriber never
927
+ # acknowledges the message, the Pub/Sub system will eventually redeliver the
928
+ # message.
929
+ # Corresponds to the JSON property `ackDeadlineSeconds`
930
+ # @return [Fixnum]
931
+ attr_accessor :ack_deadline_seconds
932
+
933
+ # Information about an associated Analytics Hub subscription (https://cloud.
934
+ # google.com/bigquery/docs/analytics-hub-manage-subscriptions).
935
+ # Corresponds to the JSON property `analyticsHubSubscriptionInfo`
936
+ # @return [Google::Apis::AnalyticshubV1::AnalyticsHubSubscriptionInfo]
937
+ attr_accessor :analytics_hub_subscription_info
938
+
939
+ # Configuration for a BigQuery subscription.
940
+ # Corresponds to the JSON property `bigqueryConfig`
941
+ # @return [Google::Apis::AnalyticshubV1::BigQueryConfig]
942
+ attr_accessor :bigquery_config
943
+
944
+ # Configuration for a Cloud Storage subscription.
945
+ # Corresponds to the JSON property `cloudStorageConfig`
946
+ # @return [Google::Apis::AnalyticshubV1::CloudStorageConfig]
947
+ attr_accessor :cloud_storage_config
948
+
949
+ # Dead lettering is done on a best effort basis. The same message might be dead
950
+ # lettered multiple times. If validation on any of the fields fails at
951
+ # subscription creation/updation, the create/update subscription request will
952
+ # fail.
953
+ # Corresponds to the JSON property `deadLetterPolicy`
954
+ # @return [Google::Apis::AnalyticshubV1::DeadLetterPolicy]
955
+ attr_accessor :dead_letter_policy
956
+
957
+ # Optional. Indicates whether the subscription is detached from its topic.
958
+ # Detached subscriptions don't receive messages from their topic and don't
959
+ # retain any backlog. `Pull` and `StreamingPull` requests will return
960
+ # FAILED_PRECONDITION. If the subscription is a push subscription, pushes to the
961
+ # endpoint will not be made.
962
+ # Corresponds to the JSON property `detached`
963
+ # @return [Boolean]
964
+ attr_accessor :detached
965
+ alias_method :detached?, :detached
966
+
967
+ # Optional. If true, Pub/Sub provides the following guarantees for the delivery
968
+ # of a message with a given value of `message_id` on this subscription: * The
969
+ # message sent to a subscriber is guaranteed not to be resent before the message'
970
+ # s acknowledgement deadline expires. * An acknowledged message will not be
971
+ # resent to a subscriber. Note that subscribers may still receive multiple
972
+ # copies of a message when `enable_exactly_once_delivery` is true if the message
973
+ # was published multiple times by a publisher client. These copies are
974
+ # considered distinct by Pub/Sub and have distinct `message_id` values.
975
+ # Corresponds to the JSON property `enableExactlyOnceDelivery`
976
+ # @return [Boolean]
977
+ attr_accessor :enable_exactly_once_delivery
978
+ alias_method :enable_exactly_once_delivery?, :enable_exactly_once_delivery
979
+
980
+ # Optional. If true, messages published with the same `ordering_key` in `
981
+ # PubsubMessage` will be delivered to the subscribers in the order in which they
982
+ # are received by the Pub/Sub system. Otherwise, they may be delivered in any
983
+ # order.
984
+ # Corresponds to the JSON property `enableMessageOrdering`
985
+ # @return [Boolean]
986
+ attr_accessor :enable_message_ordering
987
+ alias_method :enable_message_ordering?, :enable_message_ordering
988
+
989
+ # A policy that specifies the conditions for resource expiration (i.e.,
990
+ # automatic resource deletion).
991
+ # Corresponds to the JSON property `expirationPolicy`
992
+ # @return [Google::Apis::AnalyticshubV1::ExpirationPolicy]
993
+ attr_accessor :expiration_policy
994
+
995
+ # Optional. An expression written in the Pub/Sub [filter language](https://cloud.
996
+ # google.com/pubsub/docs/filtering). If non-empty, then only `PubsubMessage`s
997
+ # whose `attributes` field matches the filter are delivered on this subscription.
998
+ # If empty, then no messages are filtered out.
999
+ # Corresponds to the JSON property `filter`
1000
+ # @return [String]
1001
+ attr_accessor :filter
1002
+
1003
+ # Optional. See [Creating and managing labels](https://cloud.google.com/pubsub/
1004
+ # docs/labels).
1005
+ # Corresponds to the JSON property `labels`
1006
+ # @return [Hash<String,String>]
1007
+ attr_accessor :labels
1008
+
1009
+ # Optional. How long to retain unacknowledged messages in the subscription's
1010
+ # backlog, from the moment a message is published. If `retain_acked_messages` is
1011
+ # true, then this also configures the retention of acknowledged messages, and
1012
+ # thus configures how far back in time a `Seek` can be done. Defaults to 7 days.
1013
+ # Cannot be more than 7 days or less than 10 minutes.
1014
+ # Corresponds to the JSON property `messageRetentionDuration`
1015
+ # @return [String]
1016
+ attr_accessor :message_retention_duration
1017
+
1018
+ # Required. Name of the subscription. Format is `projects/`project`/
1019
+ # subscriptions/`sub``.
1020
+ # Corresponds to the JSON property `name`
1021
+ # @return [String]
1022
+ attr_accessor :name
1023
+
1024
+ # Configuration for a push delivery endpoint.
1025
+ # Corresponds to the JSON property `pushConfig`
1026
+ # @return [Google::Apis::AnalyticshubV1::PushConfig]
1027
+ attr_accessor :push_config
1028
+
1029
+ # Optional. Indicates whether to retain acknowledged messages. If true, then
1030
+ # messages are not expunged from the subscription's backlog, even if they are
1031
+ # acknowledged, until they fall out of the `message_retention_duration` window.
1032
+ # This must be true if you would like to [`Seek` to a timestamp] (https://cloud.
1033
+ # google.com/pubsub/docs/replay-overview#seek_to_a_time) in the past to replay
1034
+ # previously-acknowledged messages.
1035
+ # Corresponds to the JSON property `retainAckedMessages`
1036
+ # @return [Boolean]
1037
+ attr_accessor :retain_acked_messages
1038
+ alias_method :retain_acked_messages?, :retain_acked_messages
1039
+
1040
+ # A policy that specifies how Pub/Sub retries message delivery. Retry delay will
1041
+ # be exponential based on provided minimum and maximum backoffs. https://en.
1042
+ # wikipedia.org/wiki/Exponential_backoff. RetryPolicy will be triggered on NACKs
1043
+ # or acknowledgement deadline exceeded events for a given message. Retry Policy
1044
+ # is implemented on a best effort basis. At times, the delay between consecutive
1045
+ # deliveries may not match the configuration. That is, delay can be more or less
1046
+ # than configured backoff.
1047
+ # Corresponds to the JSON property `retryPolicy`
1048
+ # @return [Google::Apis::AnalyticshubV1::RetryPolicy]
1049
+ attr_accessor :retry_policy
1050
+
1051
+ # Output only. An output-only field indicating whether or not the subscription
1052
+ # can receive messages.
1053
+ # Corresponds to the JSON property `state`
1054
+ # @return [String]
1055
+ attr_accessor :state
1056
+
1057
+ # Output only. Indicates the minimum duration for which a message is retained
1058
+ # after it is published to the subscription's topic. If this field is set,
1059
+ # messages published to the subscription's topic in the last `
1060
+ # topic_message_retention_duration` are always available to subscribers. See the
1061
+ # `message_retention_duration` field in `Topic`. This field is set only in
1062
+ # responses from the server; it is ignored if it is set in any requests.
1063
+ # Corresponds to the JSON property `topicMessageRetentionDuration`
1064
+ # @return [String]
1065
+ attr_accessor :topic_message_retention_duration
1066
+
1067
+ def initialize(**args)
1068
+ update!(**args)
1069
+ end
1070
+
1071
+ # Update properties of this object
1072
+ def update!(**args)
1073
+ @ack_deadline_seconds = args[:ack_deadline_seconds] if args.key?(:ack_deadline_seconds)
1074
+ @analytics_hub_subscription_info = args[:analytics_hub_subscription_info] if args.key?(:analytics_hub_subscription_info)
1075
+ @bigquery_config = args[:bigquery_config] if args.key?(:bigquery_config)
1076
+ @cloud_storage_config = args[:cloud_storage_config] if args.key?(:cloud_storage_config)
1077
+ @dead_letter_policy = args[:dead_letter_policy] if args.key?(:dead_letter_policy)
1078
+ @detached = args[:detached] if args.key?(:detached)
1079
+ @enable_exactly_once_delivery = args[:enable_exactly_once_delivery] if args.key?(:enable_exactly_once_delivery)
1080
+ @enable_message_ordering = args[:enable_message_ordering] if args.key?(:enable_message_ordering)
1081
+ @expiration_policy = args[:expiration_policy] if args.key?(:expiration_policy)
1082
+ @filter = args[:filter] if args.key?(:filter)
1083
+ @labels = args[:labels] if args.key?(:labels)
1084
+ @message_retention_duration = args[:message_retention_duration] if args.key?(:message_retention_duration)
1085
+ @name = args[:name] if args.key?(:name)
1086
+ @push_config = args[:push_config] if args.key?(:push_config)
1087
+ @retain_acked_messages = args[:retain_acked_messages] if args.key?(:retain_acked_messages)
1088
+ @retry_policy = args[:retry_policy] if args.key?(:retry_policy)
1089
+ @state = args[:state] if args.key?(:state)
1090
+ @topic_message_retention_duration = args[:topic_message_retention_duration] if args.key?(:topic_message_retention_duration)
1091
+ end
1092
+ end
1093
+
578
1094
  # Reference to a linked resource tracked by this Subscription.
579
1095
  class LinkedResource
580
1096
  include Google::Apis::Core::Hashable
@@ -585,6 +1101,17 @@ module Google
585
1101
  # @return [String]
586
1102
  attr_accessor :linked_dataset
587
1103
 
1104
+ # Output only. Name of the Pub/Sub subscription, e.g. projects/subscriberproject/
1105
+ # subscriptions/subscriptions/sub_id
1106
+ # Corresponds to the JSON property `linkedPubsubSubscription`
1107
+ # @return [String]
1108
+ attr_accessor :linked_pubsub_subscription
1109
+
1110
+ # Output only. Listing for which linked resource is created.
1111
+ # Corresponds to the JSON property `listing`
1112
+ # @return [String]
1113
+ attr_accessor :listing
1114
+
588
1115
  def initialize(**args)
589
1116
  update!(**args)
590
1117
  end
@@ -592,6 +1119,8 @@ module Google
592
1119
  # Update properties of this object
593
1120
  def update!(**args)
594
1121
  @linked_dataset = args[:linked_dataset] if args.key?(:linked_dataset)
1122
+ @linked_pubsub_subscription = args[:linked_pubsub_subscription] if args.key?(:linked_pubsub_subscription)
1123
+ @listing = args[:listing] if args.key?(:listing)
595
1124
  end
596
1125
  end
597
1126
 
@@ -754,6 +1283,11 @@ module Google
754
1283
  # @return [String]
755
1284
  attr_accessor :description
756
1285
 
1286
+ # Optional. Type of discovery of the listing on the discovery page.
1287
+ # Corresponds to the JSON property `discoveryType`
1288
+ # @return [String]
1289
+ attr_accessor :discovery_type
1290
+
757
1291
  # Required. Human-readable display name of the listing. The display name must
758
1292
  # contain only Unicode letters, numbers (0-9), underscores (_), dashes (-),
759
1293
  # spaces ( ), ampersands (&) and can't start or end with spaces. Default value
@@ -794,12 +1328,22 @@ module Google
794
1328
  # @return [Google::Apis::AnalyticshubV1::Publisher]
795
1329
  attr_accessor :publisher
796
1330
 
1331
+ # Pub/Sub topic source.
1332
+ # Corresponds to the JSON property `pubsubTopic`
1333
+ # @return [Google::Apis::AnalyticshubV1::PubSubTopicSource]
1334
+ attr_accessor :pubsub_topic
1335
+
797
1336
  # Optional. Email or URL of the request access of the listing. Subscribers can
798
1337
  # use this reference to request access. Max Length: 1000 bytes.
799
1338
  # Corresponds to the JSON property `requestAccess`
800
1339
  # @return [String]
801
1340
  attr_accessor :request_access
802
1341
 
1342
+ # Output only. Listing shared asset type.
1343
+ # Corresponds to the JSON property `resourceType`
1344
+ # @return [String]
1345
+ attr_accessor :resource_type
1346
+
803
1347
  # Restricted export config, used to configure restricted export on linked
804
1348
  # dataset.
805
1349
  # Corresponds to the JSON property `restrictedExportConfig`
@@ -821,18 +1365,77 @@ module Google
821
1365
  @categories = args[:categories] if args.key?(:categories)
822
1366
  @data_provider = args[:data_provider] if args.key?(:data_provider)
823
1367
  @description = args[:description] if args.key?(:description)
1368
+ @discovery_type = args[:discovery_type] if args.key?(:discovery_type)
824
1369
  @display_name = args[:display_name] if args.key?(:display_name)
825
1370
  @documentation = args[:documentation] if args.key?(:documentation)
826
1371
  @icon = args[:icon] if args.key?(:icon)
827
1372
  @name = args[:name] if args.key?(:name)
828
1373
  @primary_contact = args[:primary_contact] if args.key?(:primary_contact)
829
1374
  @publisher = args[:publisher] if args.key?(:publisher)
1375
+ @pubsub_topic = args[:pubsub_topic] if args.key?(:pubsub_topic)
830
1376
  @request_access = args[:request_access] if args.key?(:request_access)
1377
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
831
1378
  @restricted_export_config = args[:restricted_export_config] if args.key?(:restricted_export_config)
832
1379
  @state = args[:state] if args.key?(:state)
833
1380
  end
834
1381
  end
835
1382
 
1383
+ # Sets the `data` field as the HTTP body for delivery.
1384
+ class NoWrapper
1385
+ include Google::Apis::Core::Hashable
1386
+
1387
+ # Optional. When true, writes the Pub/Sub message metadata to `x-goog-pubsub-:`
1388
+ # headers of the HTTP request. Writes the Pub/Sub message attributes to `:`
1389
+ # headers of the HTTP request.
1390
+ # Corresponds to the JSON property `writeMetadata`
1391
+ # @return [Boolean]
1392
+ attr_accessor :write_metadata
1393
+ alias_method :write_metadata?, :write_metadata
1394
+
1395
+ def initialize(**args)
1396
+ update!(**args)
1397
+ end
1398
+
1399
+ # Update properties of this object
1400
+ def update!(**args)
1401
+ @write_metadata = args[:write_metadata] if args.key?(:write_metadata)
1402
+ end
1403
+ end
1404
+
1405
+ # Contains information needed for generating an [OpenID Connect token](https://
1406
+ # developers.google.com/identity/protocols/OpenIDConnect).
1407
+ class OidcToken
1408
+ include Google::Apis::Core::Hashable
1409
+
1410
+ # Optional. Audience to be used when generating OIDC token. The audience claim
1411
+ # identifies the recipients that the JWT is intended for. The audience value is
1412
+ # a single case-sensitive string. Having multiple values (array) for the
1413
+ # audience field is not supported. More info about the OIDC JWT token audience
1414
+ # here: https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified,
1415
+ # the Push endpoint URL will be used.
1416
+ # Corresponds to the JSON property `audience`
1417
+ # @return [String]
1418
+ attr_accessor :audience
1419
+
1420
+ # Optional. [Service account email](https://cloud.google.com/iam/docs/service-
1421
+ # accounts) used for generating the OIDC token. For more information on setting
1422
+ # up authentication, see [Push subscriptions](https://cloud.google.com/pubsub/
1423
+ # docs/push).
1424
+ # Corresponds to the JSON property `serviceAccountEmail`
1425
+ # @return [String]
1426
+ attr_accessor :service_account_email
1427
+
1428
+ def initialize(**args)
1429
+ update!(**args)
1430
+ end
1431
+
1432
+ # Update properties of this object
1433
+ def update!(**args)
1434
+ @audience = args[:audience] if args.key?(:audience)
1435
+ @service_account_email = args[:service_account_email] if args.key?(:service_account_email)
1436
+ end
1437
+ end
1438
+
836
1439
  # This resource represents a long-running operation that is the result of a
837
1440
  # network API call.
838
1441
  class Operation
@@ -1049,6 +1652,34 @@ module Google
1049
1652
  end
1050
1653
  end
1051
1654
 
1655
+ # Pub/Sub topic source.
1656
+ class PubSubTopicSource
1657
+ include Google::Apis::Core::Hashable
1658
+
1659
+ # Optional. Region hint on where the data might be published. Data affinity
1660
+ # regions are modifiable. See go/regions for full listing of possible Cloud
1661
+ # regions.
1662
+ # Corresponds to the JSON property `dataAffinityRegions`
1663
+ # @return [Array<String>]
1664
+ attr_accessor :data_affinity_regions
1665
+
1666
+ # Required. Resource name of the Pub/Sub topic source for this listing. e.g.
1667
+ # projects/myproject/topics/topicId
1668
+ # Corresponds to the JSON property `topic`
1669
+ # @return [String]
1670
+ attr_accessor :topic
1671
+
1672
+ def initialize(**args)
1673
+ update!(**args)
1674
+ end
1675
+
1676
+ # Update properties of this object
1677
+ def update!(**args)
1678
+ @data_affinity_regions = args[:data_affinity_regions] if args.key?(:data_affinity_regions)
1679
+ @topic = args[:topic] if args.key?(:topic)
1680
+ end
1681
+ end
1682
+
1052
1683
  # Contains details of the listing publisher.
1053
1684
  class Publisher
1054
1685
  include Google::Apis::Core::Hashable
@@ -1074,6 +1705,80 @@ module Google
1074
1705
  end
1075
1706
  end
1076
1707
 
1708
+ # The payload to the push endpoint is in the form of the JSON representation of
1709
+ # a PubsubMessage (https://cloud.google.com/pubsub/docs/reference/rpc/google.
1710
+ # pubsub.v1#pubsubmessage).
1711
+ class PubsubWrapper
1712
+ include Google::Apis::Core::Hashable
1713
+
1714
+ def initialize(**args)
1715
+ update!(**args)
1716
+ end
1717
+
1718
+ # Update properties of this object
1719
+ def update!(**args)
1720
+ end
1721
+ end
1722
+
1723
+ # Configuration for a push delivery endpoint.
1724
+ class PushConfig
1725
+ include Google::Apis::Core::Hashable
1726
+
1727
+ # Optional. Endpoint configuration attributes that can be used to control
1728
+ # different aspects of the message delivery. The only currently supported
1729
+ # attribute is `x-goog-version`, which you can use to change the format of the
1730
+ # pushed message. This attribute indicates the version of the data expected by
1731
+ # the endpoint. This controls the shape of the pushed message (i.e., its fields
1732
+ # and metadata). If not present during the `CreateSubscription` call, it will
1733
+ # default to the version of the Pub/Sub API used to make such call. If not
1734
+ # present in a `ModifyPushConfig` call, its value will not be changed. `
1735
+ # GetSubscription` calls will always return a valid version, even if the
1736
+ # subscription was created without this attribute. The only supported values for
1737
+ # the `x-goog-version` attribute are: * `v1beta1`: uses the push format defined
1738
+ # in the v1beta1 Pub/Sub API. * `v1` or `v1beta2`: uses the push format defined
1739
+ # in the v1 Pub/Sub API. For example: `attributes ` "x-goog-version": "v1" ``
1740
+ # Corresponds to the JSON property `attributes`
1741
+ # @return [Hash<String,String>]
1742
+ attr_accessor :attributes
1743
+
1744
+ # Sets the `data` field as the HTTP body for delivery.
1745
+ # Corresponds to the JSON property `noWrapper`
1746
+ # @return [Google::Apis::AnalyticshubV1::NoWrapper]
1747
+ attr_accessor :no_wrapper
1748
+
1749
+ # Contains information needed for generating an [OpenID Connect token](https://
1750
+ # developers.google.com/identity/protocols/OpenIDConnect).
1751
+ # Corresponds to the JSON property `oidcToken`
1752
+ # @return [Google::Apis::AnalyticshubV1::OidcToken]
1753
+ attr_accessor :oidc_token
1754
+
1755
+ # The payload to the push endpoint is in the form of the JSON representation of
1756
+ # a PubsubMessage (https://cloud.google.com/pubsub/docs/reference/rpc/google.
1757
+ # pubsub.v1#pubsubmessage).
1758
+ # Corresponds to the JSON property `pubsubWrapper`
1759
+ # @return [Google::Apis::AnalyticshubV1::PubsubWrapper]
1760
+ attr_accessor :pubsub_wrapper
1761
+
1762
+ # Optional. A URL locating the endpoint to which messages should be pushed. For
1763
+ # example, a Webhook endpoint might use `https://example.com/push`.
1764
+ # Corresponds to the JSON property `pushEndpoint`
1765
+ # @return [String]
1766
+ attr_accessor :push_endpoint
1767
+
1768
+ def initialize(**args)
1769
+ update!(**args)
1770
+ end
1771
+
1772
+ # Update properties of this object
1773
+ def update!(**args)
1774
+ @attributes = args[:attributes] if args.key?(:attributes)
1775
+ @no_wrapper = args[:no_wrapper] if args.key?(:no_wrapper)
1776
+ @oidc_token = args[:oidc_token] if args.key?(:oidc_token)
1777
+ @pubsub_wrapper = args[:pubsub_wrapper] if args.key?(:pubsub_wrapper)
1778
+ @push_endpoint = args[:push_endpoint] if args.key?(:push_endpoint)
1779
+ end
1780
+ end
1781
+
1077
1782
  # Message for refreshing a subscription.
1078
1783
  class RefreshSubscriptionRequest
1079
1784
  include Google::Apis::Core::Hashable
@@ -1181,6 +1886,39 @@ module Google
1181
1886
  end
1182
1887
  end
1183
1888
 
1889
+ # A policy that specifies how Pub/Sub retries message delivery. Retry delay will
1890
+ # be exponential based on provided minimum and maximum backoffs. https://en.
1891
+ # wikipedia.org/wiki/Exponential_backoff. RetryPolicy will be triggered on NACKs
1892
+ # or acknowledgement deadline exceeded events for a given message. Retry Policy
1893
+ # is implemented on a best effort basis. At times, the delay between consecutive
1894
+ # deliveries may not match the configuration. That is, delay can be more or less
1895
+ # than configured backoff.
1896
+ class RetryPolicy
1897
+ include Google::Apis::Core::Hashable
1898
+
1899
+ # Optional. The maximum delay between consecutive deliveries of a given message.
1900
+ # Value should be between 0 and 600 seconds. Defaults to 600 seconds.
1901
+ # Corresponds to the JSON property `maximumBackoff`
1902
+ # @return [String]
1903
+ attr_accessor :maximum_backoff
1904
+
1905
+ # Optional. The minimum delay between consecutive deliveries of a given message.
1906
+ # Value should be between 0 and 600 seconds. Defaults to 10 seconds.
1907
+ # Corresponds to the JSON property `minimumBackoff`
1908
+ # @return [String]
1909
+ attr_accessor :minimum_backoff
1910
+
1911
+ def initialize(**args)
1912
+ update!(**args)
1913
+ end
1914
+
1915
+ # Update properties of this object
1916
+ def update!(**args)
1917
+ @maximum_backoff = args[:maximum_backoff] if args.key?(:maximum_backoff)
1918
+ @minimum_backoff = args[:minimum_backoff] if args.key?(:minimum_backoff)
1919
+ end
1920
+ end
1921
+
1184
1922
  # Message for revoking a subscription.
1185
1923
  class RevokeSubscriptionRequest
1186
1924
  include Google::Apis::Core::Hashable
@@ -1207,7 +1945,7 @@ module Google
1207
1945
  end
1208
1946
  end
1209
1947
 
1210
- # Resource in this dataset that are selectively shared.
1948
+ # Resource in this dataset that is selectively shared.
1211
1949
  class SelectedResource
1212
1950
  include Google::Apis::Core::Hashable
1213
1951
 
@@ -1408,6 +2146,11 @@ module Google
1408
2146
  # @return [Google::Apis::AnalyticshubV1::DestinationDataset]
1409
2147
  attr_accessor :destination_dataset
1410
2148
 
2149
+ # Defines the destination Pub/Sub subscription.
2150
+ # Corresponds to the JSON property `destinationPubsubSubscription`
2151
+ # @return [Google::Apis::AnalyticshubV1::DestinationPubSubSubscription]
2152
+ attr_accessor :destination_pubsub_subscription
2153
+
1411
2154
  def initialize(**args)
1412
2155
  update!(**args)
1413
2156
  end
@@ -1415,6 +2158,7 @@ module Google
1415
2158
  # Update properties of this object
1416
2159
  def update!(**args)
1417
2160
  @destination_dataset = args[:destination_dataset] if args.key?(:destination_dataset)
2161
+ @destination_pubsub_subscription = args[:destination_pubsub_subscription] if args.key?(:destination_pubsub_subscription)
1418
2162
  end
1419
2163
  end
1420
2164
 
@@ -1469,6 +2213,12 @@ module Google
1469
2213
  # @return [Hash<String,Google::Apis::AnalyticshubV1::LinkedResource>]
1470
2214
  attr_accessor :linked_dataset_map
1471
2215
 
2216
+ # Output only. Linked resources created in the subscription. Only contains
2217
+ # values if state = STATE_ACTIVE.
2218
+ # Corresponds to the JSON property `linkedResources`
2219
+ # @return [Array<Google::Apis::AnalyticshubV1::LinkedResource>]
2220
+ attr_accessor :linked_resources
2221
+
1472
2222
  # Output only. Resource name of the source Listing. e.g. projects/123/locations/
1473
2223
  # US/dataExchanges/456/listings/789
1474
2224
  # Corresponds to the JSON property `listing`
@@ -1491,6 +2241,11 @@ module Google
1491
2241
  # @return [String]
1492
2242
  attr_accessor :organization_id
1493
2243
 
2244
+ # Output only. Listing shared asset type.
2245
+ # Corresponds to the JSON property `resourceType`
2246
+ # @return [String]
2247
+ attr_accessor :resource_type
2248
+
1494
2249
  # Output only. Current state of the subscription.
1495
2250
  # Corresponds to the JSON property `state`
1496
2251
  # @return [String]
@@ -1511,10 +2266,12 @@ module Google
1511
2266
  @data_exchange = args[:data_exchange] if args.key?(:data_exchange)
1512
2267
  @last_modify_time = args[:last_modify_time] if args.key?(:last_modify_time)
1513
2268
  @linked_dataset_map = args[:linked_dataset_map] if args.key?(:linked_dataset_map)
2269
+ @linked_resources = args[:linked_resources] if args.key?(:linked_resources)
1514
2270
  @listing = args[:listing] if args.key?(:listing)
1515
2271
  @name = args[:name] if args.key?(:name)
1516
2272
  @organization_display_name = args[:organization_display_name] if args.key?(:organization_display_name)
1517
2273
  @organization_id = args[:organization_id] if args.key?(:organization_id)
2274
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
1518
2275
  @state = args[:state] if args.key?(:state)
1519
2276
  @subscriber_contact = args[:subscriber_contact] if args.key?(:subscriber_contact)
1520
2277
  end
@@ -1559,6 +2316,20 @@ module Google
1559
2316
  @permissions = args[:permissions] if args.key?(:permissions)
1560
2317
  end
1561
2318
  end
2319
+
2320
+ # Configuration for writing message data in text format. Message payloads will
2321
+ # be written to files as raw text, separated by a newline.
2322
+ class TextConfig
2323
+ include Google::Apis::Core::Hashable
2324
+
2325
+ def initialize(**args)
2326
+ update!(**args)
2327
+ end
2328
+
2329
+ # Update properties of this object
2330
+ def update!(**args)
2331
+ end
2332
+ end
1562
2333
  end
1563
2334
  end
1564
2335
  end