@@ -399,6 +399,67 @@ def update!(**args)
399399 end
400400 end
401401
402+ # Configuration for a Bigtable subscription. The Pub/Sub message will be written
403+ # to a Bigtable row as follows: - row key: subscription name and message ID
404+ # delimited by #. - columns: message bytes written to a single column family "
405+ # data" with an empty-string column qualifier. - cell timestamp: the message
406+ # publish timestamp.
407+ class BigtableConfig
408+ include Google ::Apis ::Core ::Hashable
409+
410+ # Optional. The app profile to use for the Bigtable writes. If not specified,
411+ # the "default" application profile will be used. The app profile must use
412+ # single-cluster routing.
413+ # Corresponds to the JSON property `appProfileId`
414+ # @return [String]
415+ attr_accessor :app_profile_id
416+
417+ # Optional. The service account to use to write to Bigtable. The subscription
418+ # creator or updater that specifies this field must have `iam.serviceAccounts.
419+ # actAs` permission on the service account. If not specified, the Pub/Sub [
420+ # service agent](https://cloud.google.com/iam/docs/service-agents), service-`
421+ # project_number`@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
422+ # Corresponds to the JSON property `serviceAccountEmail`
423+ # @return [String]
424+ attr_accessor :service_account_email
425+
426+ # Output only. An output-only field that indicates whether or not the
427+ # subscription can receive messages.
428+ # Corresponds to the JSON property `state`
429+ # @return [String]
430+ attr_accessor :state
431+
432+ # Optional. The unique name of the table to write messages to. Values are of the
433+ # form `projects//instances//tables/`.
434+ # Corresponds to the JSON property `table`
435+ # @return [String]
436+ attr_accessor :table
437+
438+ # Optional. When true, write the subscription name, message_id, publish_time,
439+ # attributes, and ordering_key to additional columns in the table under the
440+ # pubsub_metadata column family. The subscription name, message_id, and
441+ # publish_time fields are put in their own columns while all other message
442+ # properties (other than data) are written to a JSON object in the attributes
443+ # column.
444+ # Corresponds to the JSON property `writeMetadata`
445+ # @return [Boolean]
446+ attr_accessor :write_metadata
447+ alias_method :write_metadata? , :write_metadata
448+
449+ def initialize ( **args )
450+ update! ( **args )
451+ end
452+
453+ # Update properties of this object
454+ def update! ( **args )
455+ @app_profile_id = args [ :app_profile_id ] if args . key? ( :app_profile_id )
456+ @service_account_email = args [ :service_account_email ] if args . key? ( :service_account_email )
457+ @state = args [ :state ] if args . key? ( :state )
458+ @table = args [ :table ] if args . key? ( :table )
459+ @write_metadata = args [ :write_metadata ] if args . key? ( :write_metadata )
460+ end
461+ end
462+
402463 # Associates `members`, or principals, with a `role`.
403464 class Binding
404465 include Google ::Apis ::Core ::Hashable
@@ -2109,6 +2170,15 @@ class Subscription
21092170 # @return [Google::Apis::PubsubV1::BigQueryConfig]
21102171 attr_accessor :bigquery_config
21112172
2173+ # Configuration for a Bigtable subscription. The Pub/Sub message will be written
2174+ # to a Bigtable row as follows: - row key: subscription name and message ID
2175+ # delimited by #. - columns: message bytes written to a single column family "
2176+ # data" with an empty-string column qualifier. - cell timestamp: the message
2177+ # publish timestamp.
2178+ # Corresponds to the JSON property `bigtableConfig`
2179+ # @return [Google::Apis::PubsubV1::BigtableConfig]
2180+ attr_accessor :bigtable_config
2181+
21122182 # Configuration for a Cloud Storage subscription.
21132183 # Corresponds to the JSON property `cloudStorageConfig`
21142184 # @return [Google::Apis::PubsubV1::CloudStorageConfig]
@@ -2265,6 +2335,7 @@ def update!(**args)
22652335 @ack_deadline_seconds = args [ :ack_deadline_seconds ] if args . key? ( :ack_deadline_seconds )
22662336 @analytics_hub_subscription_info = args [ :analytics_hub_subscription_info ] if args . key? ( :analytics_hub_subscription_info )
22672337 @bigquery_config = args [ :bigquery_config ] if args . key? ( :bigquery_config )
2338+ @bigtable_config = args [ :bigtable_config ] if args . key? ( :bigtable_config )
22682339 @cloud_storage_config = args [ :cloud_storage_config ] if args . key? ( :cloud_storage_config )
22692340 @dead_letter_policy = args [ :dead_letter_policy ] if args . key? ( :dead_letter_policy )
22702341 @detached = args [ :detached ] if args . key? ( :detached )
0 commit comments