google-cloud-datastream-v1 1.7.1 → 1.8.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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -5
  3. data/lib/google/cloud/datastream/v1/bindings_override.rb +1 -1
  4. data/lib/google/cloud/datastream/v1/datastream/client.rb +59 -42
  5. data/lib/google/cloud/datastream/v1/datastream/credentials.rb +1 -1
  6. data/lib/google/cloud/datastream/v1/datastream/operations.rb +1 -1
  7. data/lib/google/cloud/datastream/v1/datastream/paths.rb +20 -1
  8. data/lib/google/cloud/datastream/v1/datastream/rest/client.rb +59 -42
  9. data/lib/google/cloud/datastream/v1/datastream/rest/operations.rb +1 -1
  10. data/lib/google/cloud/datastream/v1/datastream/rest/service_stub.rb +1 -1
  11. data/lib/google/cloud/datastream/v1/datastream/rest.rb +1 -1
  12. data/lib/google/cloud/datastream/v1/datastream.rb +1 -1
  13. data/lib/google/cloud/datastream/v1/datastream_pb.rb +1 -1
  14. data/lib/google/cloud/datastream/v1/datastream_resources_pb.rb +43 -1
  15. data/lib/google/cloud/datastream/v1/datastream_services_pb.rb +1 -1
  16. data/lib/google/cloud/datastream/v1/rest.rb +1 -1
  17. data/lib/google/cloud/datastream/v1/version.rb +1 -1
  18. data/lib/google/cloud/datastream/v1.rb +1 -1
  19. data/lib/google-cloud-datastream-v1.rb +1 -1
  20. data/proto_docs/google/api/client.rb +1 -1
  21. data/proto_docs/google/api/field_behavior.rb +1 -1
  22. data/proto_docs/google/api/field_info.rb +88 -0
  23. data/proto_docs/google/api/launch_stage.rb +1 -1
  24. data/proto_docs/google/api/resource.rb +1 -1
  25. data/proto_docs/google/cloud/datastream/v1/datastream.rb +77 -46
  26. data/proto_docs/google/cloud/datastream/v1/datastream_resources.rb +837 -89
  27. data/proto_docs/google/longrunning/operations.rb +1 -1
  28. data/proto_docs/google/protobuf/any.rb +1 -1
  29. data/proto_docs/google/protobuf/duration.rb +1 -1
  30. data/proto_docs/google/protobuf/empty.rb +1 -1
  31. data/proto_docs/google/protobuf/field_mask.rb +1 -1
  32. data/proto_docs/google/protobuf/timestamp.rb +8 -7
  33. data/proto_docs/google/rpc/status.rb +1 -1
  34. metadata +8 -8
  35. data/proto_docs/google/type/expr.rb +0 -75
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2022 Google LLC
3
+ # Copyright 2026 Google LLC
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -21,7 +21,7 @@ module Google
21
21
  module Cloud
22
22
  module Datastream
23
23
  module V1
24
- # Oracle database profile.
24
+ # Profile for connecting to an Oracle source.
25
25
  # @!attribute [rw] hostname
26
26
  # @return [::String]
27
27
  # Required. Hostname for the Oracle connection.
@@ -106,7 +106,7 @@ module Google
106
106
  end
107
107
  end
108
108
 
109
- # MySQL database profile.
109
+ # Profile for connecting to a MySQL source.
110
110
  # @!attribute [rw] hostname
111
111
  # @return [::String]
112
112
  # Required. Hostname for the MySQL connection.
@@ -132,7 +132,7 @@ module Google
132
132
  extend ::Google::Protobuf::MessageExts::ClassMethods
133
133
  end
134
134
 
135
- # PostgreSQL database profile.
135
+ # Profile for connecting to a PostgreSQL source.
136
136
  # @!attribute [rw] hostname
137
137
  # @return [::String]
138
138
  # Required. Hostname for the PostgreSQL connection.
@@ -165,7 +165,7 @@ module Google
165
165
  extend ::Google::Protobuf::MessageExts::ClassMethods
166
166
  end
167
167
 
168
- # SQLServer database profile.
168
+ # Profile for connecting to a SQLServer source.
169
169
  # @!attribute [rw] hostname
170
170
  # @return [::String]
171
171
  # Required. Hostname for the SQLServer connection.
@@ -182,6 +182,9 @@ module Google
182
182
  # @!attribute [rw] database
183
183
  # @return [::String]
184
184
  # Required. Database for the SQLServer connection.
185
+ # @!attribute [rw] ssl_config
186
+ # @return [::Google::Cloud::Datastream::V1::SqlServerSslConfig]
187
+ # Optional. SSL configuration for the SQLServer connection.
185
188
  # @!attribute [rw] secret_manager_stored_password
186
189
  # @return [::String]
187
190
  # Optional. A reference to a Secret Manager resource name storing the
@@ -192,13 +195,15 @@ module Google
192
195
  extend ::Google::Protobuf::MessageExts::ClassMethods
193
196
  end
194
197
 
195
- # Salesforce profile
198
+ # Profile for connecting to a Salesforce source.
196
199
  # @!attribute [rw] domain
197
200
  # @return [::String]
198
201
  # Required. Domain endpoint for the Salesforce connection.
199
202
  # @!attribute [rw] user_credentials
203
+ # @deprecated This field is deprecated and may be removed in the next major version update.
200
204
  # @return [::Google::Cloud::Datastream::V1::SalesforceProfile::UserCredentials]
201
- # User-password authentication.
205
+ # Deprecated: Salesforce is retiring Username-Password authentication.
206
+ # Use `oauth2_client_credentials` instead.
202
207
  #
203
208
  # Note: The following fields are mutually exclusive: `user_credentials`, `oauth2_client_credentials`. If a field in that set is populated, all other fields in the set will automatically be cleared.
204
209
  # @!attribute [rw] oauth2_client_credentials
@@ -210,7 +215,9 @@ module Google
210
215
  include ::Google::Protobuf::MessageExts
211
216
  extend ::Google::Protobuf::MessageExts::ClassMethods
212
217
 
213
- # Username-password credentials.
218
+ # Deprecated: Salesforce is retiring Username-Password authentication.
219
+ # Use `Oauth2ClientCredentials` instead.
220
+ # @deprecated This message is deprecated and may be removed in the next major version update.
214
221
  # @!attribute [rw] username
215
222
  # @return [::String]
216
223
  # Required. Username for the Salesforce connection.
@@ -256,7 +263,7 @@ module Google
256
263
  end
257
264
  end
258
265
 
259
- # MongoDB profile.
266
+ # Profile for connecting to a MongoDB source.
260
267
  # @!attribute [rw] host_addresses
261
268
  # @return [::Array<::Google::Cloud::Datastream::V1::HostAddress>]
262
269
  # Required. List of host addresses for a MongoDB cluster.
@@ -293,9 +300,31 @@ module Google
293
300
  # Standard connection format.
294
301
  #
295
302
  # Note: The following fields are mutually exclusive: `standard_connection_format`, `srv_connection_format`. If a field in that set is populated, all other fields in the set will automatically be cleared.
303
+ # @!attribute [rw] additional_options
304
+ # @return [::Google::Protobuf::Map{::String => ::String}]
305
+ # Optional. Specifies additional options for the MongoDB connection.
306
+ #
307
+ # The options should be sent as key-value pairs, for example:
308
+ # `additional_options =
309
+ # {"serverSelectionTimeoutMS": "10000", "directConnection": "true"}`.
310
+ #
311
+ # Keys are case-sensitive and should match the official MongoDB connection
312
+ # string options:
313
+ # https://www.mongodb.com/docs/manual/reference/connection-string-options/
314
+ #
315
+ # The server will not modify the values provided by the user.
296
316
  class MongodbProfile
297
317
  include ::Google::Protobuf::MessageExts
298
318
  extend ::Google::Protobuf::MessageExts::ClassMethods
319
+
320
+ # @!attribute [rw] key
321
+ # @return [::String]
322
+ # @!attribute [rw] value
323
+ # @return [::String]
324
+ class AdditionalOptionsEntry
325
+ include ::Google::Protobuf::MessageExts
326
+ extend ::Google::Protobuf::MessageExts::ClassMethods
327
+ end
299
328
  end
300
329
 
301
330
  # A HostAddress represents a transport end point, which is the combination
@@ -311,6 +340,130 @@ module Google
311
340
  extend ::Google::Protobuf::MessageExts::ClassMethods
312
341
  end
313
342
 
343
+ # Profile for connecting to a Spanner source.
344
+ # @!attribute [rw] database
345
+ # @return [::String]
346
+ # Required. Immutable. Cloud Spanner database resource.
347
+ # This field is immutable.
348
+ # Must be in the format:
349
+ # projects/\\{project}/instances/\\{instance}/databases/\\{database_id}.
350
+ # @!attribute [rw] host
351
+ # @return [::String]
352
+ # Optional. The Spanner endpoint to connect to. Defaults to the global
353
+ # endpoint (https://spanner.googleapis.com). Must be in the format:
354
+ # https://spanner.\\{region}.rep.googleapis.com.
355
+ class SpannerProfile
356
+ include ::Google::Protobuf::MessageExts
357
+ extend ::Google::Protobuf::MessageExts::ClassMethods
358
+ end
359
+
360
+ # OAuth Client Credentials.
361
+ # @!attribute [rw] client_id
362
+ # @return [::String]
363
+ # Required. Client ID for OAuth Client Credentials.
364
+ # @!attribute [rw] client_secret
365
+ # @return [::Google::Cloud::Datastream::V1::Secret]
366
+ # Required. Client secret for OAuth Client Credentials.
367
+ class OauthClientCredentials
368
+ include ::Google::Protobuf::MessageExts
369
+ extend ::Google::Protobuf::MessageExts::ClassMethods
370
+ end
371
+
372
+ # OAuth Refresh Token Credentials.
373
+ # @!attribute [rw] oauth_client_credentials
374
+ # @return [::Google::Cloud::Datastream::V1::OauthClientCredentials]
375
+ # Required. Specifies the OAuth Client Credentials.
376
+ # @!attribute [rw] refresh_token
377
+ # @return [::Google::Cloud::Datastream::V1::Secret]
378
+ # Required. Specifies the OAuth Refresh Token.
379
+ class OauthRefreshTokenCredentials
380
+ include ::Google::Protobuf::MessageExts
381
+ extend ::Google::Protobuf::MessageExts::ClassMethods
382
+ end
383
+
384
+ # User-password credentials.
385
+ # @!attribute [rw] username
386
+ # @return [::String]
387
+ # Required. Username for the connection.
388
+ # @!attribute [rw] password
389
+ # @return [::Google::Cloud::Datastream::V1::Secret]
390
+ # Required. Password for the connection.
391
+ class UserPasswordCredentials
392
+ include ::Google::Protobuf::MessageExts
393
+ extend ::Google::Protobuf::MessageExts::ClassMethods
394
+ end
395
+
396
+ # Profile for connecting to a Salesforce Marketing Cloud source.
397
+ # @!attribute [rw] subdomain
398
+ # @return [::String]
399
+ # Required. Subdomain for the Salesforce Marketing Cloud connection.
400
+ # Example: if your specific endpoint is
401
+ # `https://{your-specific-subdomain}.rest.marketingcloudapis.com/`,
402
+ # the subdomain is `{your-specific-subdomain}`.
403
+ # Must be 1-63 characters, start and end with an alphanumeric character,
404
+ # and contain only lowercase letters, numbers, and hyphens (-).
405
+ # @!attribute [rw] oauth_client_credentials
406
+ # @return [::Google::Cloud::Datastream::V1::OauthClientCredentials]
407
+ # Required. Input only. Credentials for authenticating with the Salesforce
408
+ # Marketing Cloud API.
409
+ class SalesforceMarketingCloudProfile
410
+ include ::Google::Protobuf::MessageExts
411
+ extend ::Google::Protobuf::MessageExts::ClassMethods
412
+ end
413
+
414
+ # Profile for connecting to a Dataverse source.
415
+ # @!attribute [rw] tenant_id
416
+ # @return [::String]
417
+ # Required. Tenant id of the Microsoft Dataverse instance.
418
+ # @!attribute [rw] environment_url
419
+ # @return [::String]
420
+ # Required. Environment URL of the Microsoft Dataverse instance.
421
+ # Example: `<subdomain>.crm.dynamics.com`
422
+ # @!attribute [rw] oauth_client_credentials
423
+ # @return [::Google::Cloud::Datastream::V1::OauthClientCredentials]
424
+ # Required. Credentials for authenticating with the Dataverse API.
425
+ class DataverseProfile
426
+ include ::Google::Protobuf::MessageExts
427
+ extend ::Google::Protobuf::MessageExts::ClassMethods
428
+ end
429
+
430
+ # Profile for connecting to a ServiceNow source.
431
+ # @!attribute [rw] instance
432
+ # @return [::String]
433
+ # Required. The instance of the ServiceNow account. This is the `<instance>`
434
+ # part of the URL `https://<instance>.service-now.com`.
435
+ # @!attribute [rw] user_password_credentials
436
+ # @return [::Google::Cloud::Datastream::V1::UserPasswordCredentials]
437
+ # User-password authentication.
438
+ #
439
+ # Note: The following fields are mutually exclusive: `user_password_credentials`, `oauth_client_credentials`. If a field in that set is populated, all other fields in the set will automatically be cleared.
440
+ # @!attribute [rw] oauth_client_credentials
441
+ # @return [::Google::Cloud::Datastream::V1::OauthClientCredentials]
442
+ # Credentials for authenticating with the ServiceNow API.
443
+ #
444
+ # Note: The following fields are mutually exclusive: `oauth_client_credentials`, `user_password_credentials`. If a field in that set is populated, all other fields in the set will automatically be cleared.
445
+ class ServiceNowProfile
446
+ include ::Google::Protobuf::MessageExts
447
+ extend ::Google::Protobuf::MessageExts::ClassMethods
448
+ end
449
+
450
+ # Profile for connecting to a Workday source.
451
+ # @!attribute [rw] host
452
+ # @return [::String]
453
+ # Required. Host for the Workday connection. Must be a valid hostname (e.g.,
454
+ # `wd3-impl-services1.workday.com`).
455
+ # @!attribute [rw] tenant
456
+ # @return [::String]
457
+ # Required. Tenant for the Workday connection (e.g., `google12`).
458
+ # @!attribute [rw] oauth_refresh_token_credentials
459
+ # @return [::Google::Cloud::Datastream::V1::OauthRefreshTokenCredentials]
460
+ # Required. Credentials for authenticating with the Workday API.
461
+ # OAuth Refresh Token credentials for authenticating with the Workday API.
462
+ class WorkdayProfile
463
+ include ::Google::Protobuf::MessageExts
464
+ extend ::Google::Protobuf::MessageExts::ClassMethods
465
+ end
466
+
314
467
  # Srv connection format.
315
468
  class SrvConnectionFormat
316
469
  include ::Google::Protobuf::MessageExts
@@ -319,27 +472,31 @@ module Google
319
472
 
320
473
  # Standard connection format.
321
474
  # @!attribute [rw] direct_connection
475
+ # @deprecated This field is deprecated and may be removed in the next major version update.
322
476
  # @return [::Boolean]
323
- # Optional. Specifies whether the client connects directly to the host[:port]
324
- # in the connection URI.
477
+ # Optional. Deprecated: Use the `additional_options` map to specify the
478
+ # `directConnection` parameter instead.
479
+ # For example: `additional_options = {"directConnection": "true"}`.
480
+ # Specifies whether the client connects directly to the host[:port] in the
481
+ # connection URI.
325
482
  class StandardConnectionFormat
326
483
  include ::Google::Protobuf::MessageExts
327
484
  extend ::Google::Protobuf::MessageExts::ClassMethods
328
485
  end
329
486
 
330
- # Cloud Storage bucket profile.
487
+ # Profile for connecting to a Cloud Storage destination.
331
488
  # @!attribute [rw] bucket
332
489
  # @return [::String]
333
490
  # Required. The Cloud Storage bucket name.
334
491
  # @!attribute [rw] root_path
335
492
  # @return [::String]
336
- # The root path inside the Cloud Storage bucket.
493
+ # Optional. The root path inside the Cloud Storage bucket.
337
494
  class GcsProfile
338
495
  include ::Google::Protobuf::MessageExts
339
496
  extend ::Google::Protobuf::MessageExts::ClassMethods
340
497
  end
341
498
 
342
- # BigQuery warehouse profile.
499
+ # Profile for connecting to a BigQuery destination.
343
500
  class BigQueryProfile
344
501
  include ::Google::Protobuf::MessageExts
345
502
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -522,6 +679,26 @@ module Google
522
679
  end
523
680
  end
524
681
 
682
+ # A confidential piece of information where the actual value is either directly
683
+ # specified in the message as a raw string or stored in GCP secret manager.
684
+ # @!attribute [rw] raw_value
685
+ # @return [::String]
686
+ # Optional. Input only. The actual raw value of the secret as plain text.
687
+ #
688
+ # Note: The following fields are mutually exclusive: `raw_value`, `secret_version`. If a field in that set is populated, all other fields in the set will automatically be cleared.
689
+ # @!attribute [rw] secret_version
690
+ # @return [::String]
691
+ # Optional. A Secret Manager resource name storing the actual value of the
692
+ # secret. Supported formats:
693
+ # * projects/\\{project}/locations/\\{location}/secrets/\\{secret}/versions/\\{version}
694
+ # * projects/\\{project}/secrets/\\{secret}/versions/\\{version}
695
+ #
696
+ # Note: The following fields are mutually exclusive: `secret_version`, `raw_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
697
+ class Secret
698
+ include ::Google::Protobuf::MessageExts
699
+ extend ::Google::Protobuf::MessageExts::ClassMethods
700
+ end
701
+
525
702
  # MongoDB SSL configuration information.
526
703
  # @!attribute [rw] client_key
527
704
  # @return [::String]
@@ -609,6 +786,68 @@ module Google
609
786
  extend ::Google::Protobuf::MessageExts::ClassMethods
610
787
  end
611
788
 
789
+ # SQL Server SSL configuration information.
790
+ # @!attribute [rw] encryption_not_enforced
791
+ # @return [::Google::Cloud::Datastream::V1::SqlServerSslConfig::EncryptionNotEnforced]
792
+ # If set, Datastream will not enforce encryption. If the DB server mandates
793
+ # encryption, then connection will be encrypted but server identity will
794
+ # not be authenticated.
795
+ #
796
+ # Note: The following fields are mutually exclusive: `encryption_not_enforced`, `basic_encryption`, `encryption_and_server_validation`. If a field in that set is populated, all other fields in the set will automatically be cleared.
797
+ # @!attribute [rw] basic_encryption
798
+ # @return [::Google::Cloud::Datastream::V1::SqlServerSslConfig::BasicEncryption]
799
+ # If set, Datastream will enforce encryption without authenticating server
800
+ # identity. Server certificates will be trusted by default.
801
+ #
802
+ # Note: The following fields are mutually exclusive: `basic_encryption`, `encryption_not_enforced`, `encryption_and_server_validation`. If a field in that set is populated, all other fields in the set will automatically be cleared.
803
+ # @!attribute [rw] encryption_and_server_validation
804
+ # @return [::Google::Cloud::Datastream::V1::SqlServerSslConfig::EncryptionAndServerValidation]
805
+ # If set, Datastream will enforce encryption and authenticate server
806
+ # identity.
807
+ #
808
+ # Note: The following fields are mutually exclusive: `encryption_and_server_validation`, `encryption_not_enforced`, `basic_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
809
+ class SqlServerSslConfig
810
+ include ::Google::Protobuf::MessageExts
811
+ extend ::Google::Protobuf::MessageExts::ClassMethods
812
+
813
+ # Message to represent the option where encryption is not enforced. An empty
814
+ # message right now to allow future extensibility.
815
+ class EncryptionNotEnforced
816
+ include ::Google::Protobuf::MessageExts
817
+ extend ::Google::Protobuf::MessageExts::ClassMethods
818
+ end
819
+
820
+ # Message to represent the option where Datastream will enforce encryption
821
+ # without authenticating server identity. Server certificates will be trusted
822
+ # by default.
823
+ class BasicEncryption
824
+ include ::Google::Protobuf::MessageExts
825
+ extend ::Google::Protobuf::MessageExts::ClassMethods
826
+ end
827
+
828
+ # Message to represent the option where Datastream will enforce encryption
829
+ # and authenticate server identity. ca_certificate must be set if user
830
+ # selects this option.
831
+ # @!attribute [rw] ca_certificate
832
+ # @return [::String]
833
+ # Optional. Input only. PEM-encoded certificate of the CA that signed the
834
+ # source database server's certificate.
835
+ # @!attribute [rw] server_certificate_hostname
836
+ # @return [::String]
837
+ # Optional. The hostname mentioned in the Subject or SAN extension of the
838
+ # server certificate. This field is used for bypassing the hostname
839
+ # validation while verifying server certificate. This is required for
840
+ # scenarios where the host name that datastream connects to is different
841
+ # from the certificate's subject. This specifically happens for private
842
+ # connectivity. It could also happen when the customer provides
843
+ # a public IP in connection profile but the same is not present in the
844
+ # server certificate.
845
+ class EncryptionAndServerValidation
846
+ include ::Google::Protobuf::MessageExts
847
+ extend ::Google::Protobuf::MessageExts::ClassMethods
848
+ end
849
+ end
850
+
612
851
  # PostgreSQL SSL configuration information.
613
852
  # @!attribute [rw] server_verification
614
853
  # @return [::Google::Cloud::Datastream::V1::PostgresqlSslConfig::ServerVerification]
@@ -700,44 +939,69 @@ module Google
700
939
  # Output only. Reserved for future use.
701
940
  # @!attribute [rw] oracle_profile
702
941
  # @return [::Google::Cloud::Datastream::V1::OracleProfile]
703
- # Oracle ConnectionProfile configuration.
942
+ # Profile for connecting to an Oracle source.
704
943
  #
705
- # Note: The following fields are mutually exclusive: `oracle_profile`, `gcs_profile`, `mysql_profile`, `bigquery_profile`, `postgresql_profile`, `sql_server_profile`, `salesforce_profile`, `mongodb_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
944
+ # Note: The following fields are mutually exclusive: `oracle_profile`, `gcs_profile`, `mysql_profile`, `bigquery_profile`, `postgresql_profile`, `sql_server_profile`, `salesforce_profile`, `mongodb_profile`, `spanner_profile`, `dataverse_profile`, `salesforce_marketing_cloud_profile`, `service_now_profile`, `workday_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
706
945
  # @!attribute [rw] gcs_profile
707
946
  # @return [::Google::Cloud::Datastream::V1::GcsProfile]
708
- # Cloud Storage ConnectionProfile configuration.
947
+ # Profile for connecting to a Cloud Storage destination.
709
948
  #
710
- # Note: The following fields are mutually exclusive: `gcs_profile`, `oracle_profile`, `mysql_profile`, `bigquery_profile`, `postgresql_profile`, `sql_server_profile`, `salesforce_profile`, `mongodb_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
949
+ # Note: The following fields are mutually exclusive: `gcs_profile`, `oracle_profile`, `mysql_profile`, `bigquery_profile`, `postgresql_profile`, `sql_server_profile`, `salesforce_profile`, `mongodb_profile`, `spanner_profile`, `dataverse_profile`, `salesforce_marketing_cloud_profile`, `service_now_profile`, `workday_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
711
950
  # @!attribute [rw] mysql_profile
712
951
  # @return [::Google::Cloud::Datastream::V1::MysqlProfile]
713
- # MySQL ConnectionProfile configuration.
952
+ # Profile for connecting to a MySQL source.
714
953
  #
715
- # Note: The following fields are mutually exclusive: `mysql_profile`, `oracle_profile`, `gcs_profile`, `bigquery_profile`, `postgresql_profile`, `sql_server_profile`, `salesforce_profile`, `mongodb_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
954
+ # Note: The following fields are mutually exclusive: `mysql_profile`, `oracle_profile`, `gcs_profile`, `bigquery_profile`, `postgresql_profile`, `sql_server_profile`, `salesforce_profile`, `mongodb_profile`, `spanner_profile`, `dataverse_profile`, `salesforce_marketing_cloud_profile`, `service_now_profile`, `workday_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
716
955
  # @!attribute [rw] bigquery_profile
717
956
  # @return [::Google::Cloud::Datastream::V1::BigQueryProfile]
718
- # BigQuery Connection Profile configuration.
957
+ # Profile for connecting to a BigQuery destination.
719
958
  #
720
- # Note: The following fields are mutually exclusive: `bigquery_profile`, `oracle_profile`, `gcs_profile`, `mysql_profile`, `postgresql_profile`, `sql_server_profile`, `salesforce_profile`, `mongodb_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
959
+ # Note: The following fields are mutually exclusive: `bigquery_profile`, `oracle_profile`, `gcs_profile`, `mysql_profile`, `postgresql_profile`, `sql_server_profile`, `salesforce_profile`, `mongodb_profile`, `spanner_profile`, `dataverse_profile`, `salesforce_marketing_cloud_profile`, `service_now_profile`, `workday_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
721
960
  # @!attribute [rw] postgresql_profile
722
961
  # @return [::Google::Cloud::Datastream::V1::PostgresqlProfile]
723
- # PostgreSQL Connection Profile configuration.
962
+ # Profile for connecting to a PostgreSQL source.
724
963
  #
725
- # Note: The following fields are mutually exclusive: `postgresql_profile`, `oracle_profile`, `gcs_profile`, `mysql_profile`, `bigquery_profile`, `sql_server_profile`, `salesforce_profile`, `mongodb_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
964
+ # Note: The following fields are mutually exclusive: `postgresql_profile`, `oracle_profile`, `gcs_profile`, `mysql_profile`, `bigquery_profile`, `sql_server_profile`, `salesforce_profile`, `mongodb_profile`, `spanner_profile`, `dataverse_profile`, `salesforce_marketing_cloud_profile`, `service_now_profile`, `workday_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
726
965
  # @!attribute [rw] sql_server_profile
727
966
  # @return [::Google::Cloud::Datastream::V1::SqlServerProfile]
728
- # SQLServer Connection Profile configuration.
967
+ # Profile for connecting to a SQLServer source.
729
968
  #
730
- # Note: The following fields are mutually exclusive: `sql_server_profile`, `oracle_profile`, `gcs_profile`, `mysql_profile`, `bigquery_profile`, `postgresql_profile`, `salesforce_profile`, `mongodb_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
969
+ # Note: The following fields are mutually exclusive: `sql_server_profile`, `oracle_profile`, `gcs_profile`, `mysql_profile`, `bigquery_profile`, `postgresql_profile`, `salesforce_profile`, `mongodb_profile`, `spanner_profile`, `dataverse_profile`, `salesforce_marketing_cloud_profile`, `service_now_profile`, `workday_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
731
970
  # @!attribute [rw] salesforce_profile
732
971
  # @return [::Google::Cloud::Datastream::V1::SalesforceProfile]
733
- # Salesforce Connection Profile configuration.
972
+ # Profile for connecting to a Salesforce source.
734
973
  #
735
- # Note: The following fields are mutually exclusive: `salesforce_profile`, `oracle_profile`, `gcs_profile`, `mysql_profile`, `bigquery_profile`, `postgresql_profile`, `sql_server_profile`, `mongodb_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
974
+ # Note: The following fields are mutually exclusive: `salesforce_profile`, `oracle_profile`, `gcs_profile`, `mysql_profile`, `bigquery_profile`, `postgresql_profile`, `sql_server_profile`, `mongodb_profile`, `spanner_profile`, `dataverse_profile`, `salesforce_marketing_cloud_profile`, `service_now_profile`, `workday_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
736
975
  # @!attribute [rw] mongodb_profile
737
976
  # @return [::Google::Cloud::Datastream::V1::MongodbProfile]
738
- # MongoDB Connection Profile configuration.
977
+ # Profile for connecting to a MongoDB source.
978
+ #
979
+ # Note: The following fields are mutually exclusive: `mongodb_profile`, `oracle_profile`, `gcs_profile`, `mysql_profile`, `bigquery_profile`, `postgresql_profile`, `sql_server_profile`, `salesforce_profile`, `spanner_profile`, `dataverse_profile`, `salesforce_marketing_cloud_profile`, `service_now_profile`, `workday_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
980
+ # @!attribute [rw] spanner_profile
981
+ # @return [::Google::Cloud::Datastream::V1::SpannerProfile]
982
+ # Profile for connecting to a Spanner source.
983
+ #
984
+ # Note: The following fields are mutually exclusive: `spanner_profile`, `oracle_profile`, `gcs_profile`, `mysql_profile`, `bigquery_profile`, `postgresql_profile`, `sql_server_profile`, `salesforce_profile`, `mongodb_profile`, `dataverse_profile`, `salesforce_marketing_cloud_profile`, `service_now_profile`, `workday_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
985
+ # @!attribute [rw] dataverse_profile
986
+ # @return [::Google::Cloud::Datastream::V1::DataverseProfile]
987
+ # Profile for connecting to a Dataverse source.
988
+ #
989
+ # Note: The following fields are mutually exclusive: `dataverse_profile`, `oracle_profile`, `gcs_profile`, `mysql_profile`, `bigquery_profile`, `postgresql_profile`, `sql_server_profile`, `salesforce_profile`, `mongodb_profile`, `spanner_profile`, `salesforce_marketing_cloud_profile`, `service_now_profile`, `workday_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
990
+ # @!attribute [rw] salesforce_marketing_cloud_profile
991
+ # @return [::Google::Cloud::Datastream::V1::SalesforceMarketingCloudProfile]
992
+ # Profile for connecting to a Salesforce Marketing Cloud source.
739
993
  #
740
- # Note: The following fields are mutually exclusive: `mongodb_profile`, `oracle_profile`, `gcs_profile`, `mysql_profile`, `bigquery_profile`, `postgresql_profile`, `sql_server_profile`, `salesforce_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
994
+ # Note: The following fields are mutually exclusive: `salesforce_marketing_cloud_profile`, `oracle_profile`, `gcs_profile`, `mysql_profile`, `bigquery_profile`, `postgresql_profile`, `sql_server_profile`, `salesforce_profile`, `mongodb_profile`, `spanner_profile`, `dataverse_profile`, `service_now_profile`, `workday_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
995
+ # @!attribute [rw] service_now_profile
996
+ # @return [::Google::Cloud::Datastream::V1::ServiceNowProfile]
997
+ # Profile for connecting to a ServiceNow source.
998
+ #
999
+ # Note: The following fields are mutually exclusive: `service_now_profile`, `oracle_profile`, `gcs_profile`, `mysql_profile`, `bigquery_profile`, `postgresql_profile`, `sql_server_profile`, `salesforce_profile`, `mongodb_profile`, `spanner_profile`, `dataverse_profile`, `salesforce_marketing_cloud_profile`, `workday_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1000
+ # @!attribute [rw] workday_profile
1001
+ # @return [::Google::Cloud::Datastream::V1::WorkdayProfile]
1002
+ # Optional. Profile for connecting to a Workday source.
1003
+ #
1004
+ # Note: The following fields are mutually exclusive: `workday_profile`, `oracle_profile`, `gcs_profile`, `mysql_profile`, `bigquery_profile`, `postgresql_profile`, `sql_server_profile`, `salesforce_profile`, `mongodb_profile`, `spanner_profile`, `dataverse_profile`, `salesforce_marketing_cloud_profile`, `service_now_profile`. If a field in that set is populated, all other fields in the set will automatically be cleared.
741
1005
  # @!attribute [rw] static_service_ip_connectivity
742
1006
  # @return [::Google::Cloud::Datastream::V1::StaticServiceIpConnectivity]
743
1007
  # Static Service IP connectivity.
@@ -770,7 +1034,7 @@ module Google
770
1034
  # Oracle Column.
771
1035
  # @!attribute [rw] column
772
1036
  # @return [::String]
773
- # Column name.
1037
+ # The column name.
774
1038
  # @!attribute [rw] data_type
775
1039
  # @return [::String]
776
1040
  # The Oracle data type.
@@ -803,7 +1067,7 @@ module Google
803
1067
  # Oracle table.
804
1068
  # @!attribute [rw] table
805
1069
  # @return [::String]
806
- # Table name.
1070
+ # The table name.
807
1071
  # @!attribute [rw] oracle_columns
808
1072
  # @return [::Array<::Google::Cloud::Datastream::V1::OracleColumn>]
809
1073
  # Oracle columns in the schema.
@@ -817,7 +1081,7 @@ module Google
817
1081
  # Oracle schema.
818
1082
  # @!attribute [rw] schema
819
1083
  # @return [::String]
820
- # Schema name.
1084
+ # The schema name.
821
1085
  # @!attribute [rw] oracle_tables
822
1086
  # @return [::Array<::Google::Cloud::Datastream::V1::OracleTable>]
823
1087
  # Tables in the schema.
@@ -835,13 +1099,13 @@ module Google
835
1099
  extend ::Google::Protobuf::MessageExts::ClassMethods
836
1100
  end
837
1101
 
838
- # Oracle data source configuration
1102
+ # Configuration for syncing data from an Oracle source.
839
1103
  # @!attribute [rw] include_objects
840
1104
  # @return [::Google::Cloud::Datastream::V1::OracleRdbms]
841
- # Oracle objects to include in the stream.
1105
+ # The Oracle objects to include in the stream.
842
1106
  # @!attribute [rw] exclude_objects
843
1107
  # @return [::Google::Cloud::Datastream::V1::OracleRdbms]
844
- # Oracle objects to exclude from the stream.
1108
+ # The Oracle objects to exclude from the stream.
845
1109
  # @!attribute [rw] max_concurrent_cdc_tasks
846
1110
  # @return [::Integer]
847
1111
  # Maximum number of concurrent CDC tasks. The number should be non-negative.
@@ -930,7 +1194,7 @@ module Google
930
1194
  # PostgreSQL Column.
931
1195
  # @!attribute [rw] column
932
1196
  # @return [::String]
933
- # Column name.
1197
+ # The column name.
934
1198
  # @!attribute [rw] data_type
935
1199
  # @return [::String]
936
1200
  # The PostgreSQL data type.
@@ -960,7 +1224,7 @@ module Google
960
1224
  # PostgreSQL table.
961
1225
  # @!attribute [rw] table
962
1226
  # @return [::String]
963
- # Table name.
1227
+ # The table name.
964
1228
  # @!attribute [rw] postgresql_columns
965
1229
  # @return [::Array<::Google::Cloud::Datastream::V1::PostgresqlColumn>]
966
1230
  # PostgreSQL columns in the schema.
@@ -974,7 +1238,7 @@ module Google
974
1238
  # PostgreSQL schema.
975
1239
  # @!attribute [rw] schema
976
1240
  # @return [::String]
977
- # Schema name.
1241
+ # The schema name.
978
1242
  # @!attribute [rw] postgresql_tables
979
1243
  # @return [::Array<::Google::Cloud::Datastream::V1::PostgresqlTable>]
980
1244
  # Tables in the schema.
@@ -992,13 +1256,13 @@ module Google
992
1256
  extend ::Google::Protobuf::MessageExts::ClassMethods
993
1257
  end
994
1258
 
995
- # PostgreSQL data source configuration
1259
+ # Configuration for syncing data from a PostgreSQL source.
996
1260
  # @!attribute [rw] include_objects
997
1261
  # @return [::Google::Cloud::Datastream::V1::PostgresqlRdbms]
998
- # PostgreSQL objects to include in the stream.
1262
+ # The PostgreSQL objects to include in the stream.
999
1263
  # @!attribute [rw] exclude_objects
1000
1264
  # @return [::Google::Cloud::Datastream::V1::PostgresqlRdbms]
1001
- # PostgreSQL objects to exclude from the stream.
1265
+ # The PostgreSQL objects to exclude from the stream.
1002
1266
  # @!attribute [rw] replication_slot
1003
1267
  # @return [::String]
1004
1268
  # Required. Immutable. The name of the logical replication slot that's
@@ -1020,7 +1284,7 @@ module Google
1020
1284
  # SQLServer Column.
1021
1285
  # @!attribute [rw] column
1022
1286
  # @return [::String]
1023
- # Column name.
1287
+ # The column name.
1024
1288
  # @!attribute [rw] data_type
1025
1289
  # @return [::String]
1026
1290
  # The SQLServer data type.
@@ -1050,7 +1314,7 @@ module Google
1050
1314
  # SQLServer table.
1051
1315
  # @!attribute [rw] table
1052
1316
  # @return [::String]
1053
- # Table name.
1317
+ # The table name.
1054
1318
  # @!attribute [rw] columns
1055
1319
  # @return [::Array<::Google::Cloud::Datastream::V1::SqlServerColumn>]
1056
1320
  # SQLServer columns in the schema.
@@ -1064,7 +1328,7 @@ module Google
1064
1328
  # SQLServer schema.
1065
1329
  # @!attribute [rw] schema
1066
1330
  # @return [::String]
1067
- # Schema name.
1331
+ # The schema name.
1068
1332
  # @!attribute [rw] tables
1069
1333
  # @return [::Array<::Google::Cloud::Datastream::V1::SqlServerTable>]
1070
1334
  # Tables in the schema.
@@ -1082,13 +1346,13 @@ module Google
1082
1346
  extend ::Google::Protobuf::MessageExts::ClassMethods
1083
1347
  end
1084
1348
 
1085
- # SQLServer data source configuration
1349
+ # Configuration for syncing data from a SQLServer source.
1086
1350
  # @!attribute [rw] include_objects
1087
1351
  # @return [::Google::Cloud::Datastream::V1::SqlServerRdbms]
1088
- # SQLServer objects to include in the stream.
1352
+ # The SQLServer objects to include in the stream.
1089
1353
  # @!attribute [rw] exclude_objects
1090
1354
  # @return [::Google::Cloud::Datastream::V1::SqlServerRdbms]
1091
- # SQLServer objects to exclude from the stream.
1355
+ # The SQLServer objects to exclude from the stream.
1092
1356
  # @!attribute [rw] max_concurrent_cdc_tasks
1093
1357
  # @return [::Integer]
1094
1358
  # Max concurrent CDC tasks.
@@ -1117,15 +1381,36 @@ module Google
1117
1381
  end
1118
1382
 
1119
1383
  # Configuration to use Change Tables CDC read method.
1384
+ # @!attribute [rw] ddl_config
1385
+ # @return [::Google::Cloud::Datastream::V1::SqlServerChangeTables::SqlServerDdlConfig]
1386
+ # Optional. DDL configuration for change tables.
1120
1387
  class SqlServerChangeTables
1121
1388
  include ::Google::Protobuf::MessageExts
1122
1389
  extend ::Google::Protobuf::MessageExts::ClassMethods
1390
+
1391
+ # DDL configuration for change tables.
1392
+ # @!attribute [rw] auto_create_new_capture_instance_on_ddl
1393
+ # @return [::Boolean]
1394
+ # Optional. If set to true, Datastream will automatically create a new
1395
+ # capture instance when DDL is detected on a table.The customer will be
1396
+ # responsible for deleting it so that the next set of DDLs can be handled.
1397
+ # The default is false and it means that DDL's will not be handled .
1398
+ # @!attribute [rw] auto_delete_old_capture_instance
1399
+ # @return [::Boolean]
1400
+ # Optional. If set to true, Datastream will automatically delete the old
1401
+ # capture instance after creating a new one to support a DDL change. The
1402
+ # default is false and means that the customer has to delete the old
1403
+ # capture instance manually.
1404
+ class SqlServerDdlConfig
1405
+ include ::Google::Protobuf::MessageExts
1406
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1407
+ end
1123
1408
  end
1124
1409
 
1125
1410
  # MySQL Column.
1126
1411
  # @!attribute [rw] column
1127
1412
  # @return [::String]
1128
- # Column name.
1413
+ # The column name.
1129
1414
  # @!attribute [rw] data_type
1130
1415
  # @return [::String]
1131
1416
  # The MySQL data type. Full data types list can be found here:
@@ -1159,7 +1444,7 @@ module Google
1159
1444
  # MySQL table.
1160
1445
  # @!attribute [rw] table
1161
1446
  # @return [::String]
1162
- # Table name.
1447
+ # The table name.
1163
1448
  # @!attribute [rw] mysql_columns
1164
1449
  # @return [::Array<::Google::Cloud::Datastream::V1::MysqlColumn>]
1165
1450
  # MySQL columns in the database.
@@ -1173,7 +1458,7 @@ module Google
1173
1458
  # MySQL database.
1174
1459
  # @!attribute [rw] database
1175
1460
  # @return [::String]
1176
- # Database name.
1461
+ # The database name.
1177
1462
  # @!attribute [rw] mysql_tables
1178
1463
  # @return [::Array<::Google::Cloud::Datastream::V1::MysqlTable>]
1179
1464
  # Tables in the database.
@@ -1191,13 +1476,13 @@ module Google
1191
1476
  extend ::Google::Protobuf::MessageExts::ClassMethods
1192
1477
  end
1193
1478
 
1194
- # MySQL source configuration
1479
+ # Configuration for syncing data from a MySQL source.
1195
1480
  # @!attribute [rw] include_objects
1196
1481
  # @return [::Google::Cloud::Datastream::V1::MysqlRdbms]
1197
- # MySQL objects to retrieve from the source.
1482
+ # The MySQL objects to retrieve from the source.
1198
1483
  # @!attribute [rw] exclude_objects
1199
1484
  # @return [::Google::Cloud::Datastream::V1::MysqlRdbms]
1200
- # MySQL objects to exclude from the stream.
1485
+ # The MySQL objects to exclude from the stream.
1201
1486
  # @!attribute [rw] max_concurrent_cdc_tasks
1202
1487
  # @return [::Integer]
1203
1488
  # Maximum number of concurrent CDC tasks. The number should be non negative.
@@ -1234,18 +1519,18 @@ module Google
1234
1519
  end
1235
1520
  end
1236
1521
 
1237
- # Salesforce source configuration
1522
+ # Configuration for syncing data from a Salesforce source.
1238
1523
  # @!attribute [rw] include_objects
1239
1524
  # @return [::Google::Cloud::Datastream::V1::SalesforceOrg]
1240
- # Salesforce objects to retrieve from the source.
1525
+ # The Salesforce objects to retrieve from the source.
1241
1526
  # @!attribute [rw] exclude_objects
1242
1527
  # @return [::Google::Cloud::Datastream::V1::SalesforceOrg]
1243
- # Salesforce objects to exclude from the stream.
1528
+ # The Salesforce objects to exclude from the stream.
1244
1529
  # @!attribute [rw] polling_interval
1245
1530
  # @return [::Google::Protobuf::Duration]
1246
1531
  # Required. Salesforce objects polling interval. The interval at which new
1247
- # changes will be polled for each object. The duration must be between 5
1248
- # minutes and 24 hours.
1532
+ # changes will be polled for each object. The duration must be from `5
1533
+ # minutes` to `24 hours`, inclusive.
1249
1534
  class SalesforceSourceConfig
1250
1535
  include ::Google::Protobuf::MessageExts
1251
1536
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1263,7 +1548,7 @@ module Google
1263
1548
  # Salesforce object.
1264
1549
  # @!attribute [rw] object_name
1265
1550
  # @return [::String]
1266
- # Object name.
1551
+ # The object name.
1267
1552
  # @!attribute [rw] fields
1268
1553
  # @return [::Array<::Google::Cloud::Datastream::V1::SalesforceField>]
1269
1554
  # Salesforce fields.
@@ -1278,7 +1563,7 @@ module Google
1278
1563
  # Salesforce field.
1279
1564
  # @!attribute [rw] name
1280
1565
  # @return [::String]
1281
- # Field name.
1566
+ # The field name.
1282
1567
  # @!attribute [rw] data_type
1283
1568
  # @return [::String]
1284
1569
  # The data type.
@@ -1290,18 +1575,21 @@ module Google
1290
1575
  extend ::Google::Protobuf::MessageExts::ClassMethods
1291
1576
  end
1292
1577
 
1293
- # MongoDB source configuration.
1578
+ # Configuration for syncing data from a MongoDB source.
1294
1579
  # @!attribute [rw] include_objects
1295
1580
  # @return [::Google::Cloud::Datastream::V1::MongodbCluster]
1296
- # MongoDB collections to include in the stream.
1581
+ # The MongoDB collections to include in the stream.
1297
1582
  # @!attribute [rw] exclude_objects
1298
1583
  # @return [::Google::Cloud::Datastream::V1::MongodbCluster]
1299
- # MongoDB collections to exclude from the stream.
1584
+ # The MongoDB collections to exclude from the stream.
1300
1585
  # @!attribute [rw] max_concurrent_backfill_tasks
1301
1586
  # @return [::Integer]
1302
1587
  # Optional. Maximum number of concurrent backfill tasks. The number should be
1303
1588
  # non-negative and less than or equal to 50. If not set (or set to 0), the
1304
1589
  # system's default value is used
1590
+ # @!attribute [rw] json_mode
1591
+ # @return [::Google::Cloud::Datastream::V1::MongodbJsonMode]
1592
+ # Optional. MongoDB JSON mode to use for the stream.
1305
1593
  class MongodbSourceConfig
1306
1594
  include ::Google::Protobuf::MessageExts
1307
1595
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1319,7 +1607,7 @@ module Google
1319
1607
  # MongoDB Database.
1320
1608
  # @!attribute [rw] database
1321
1609
  # @return [::String]
1322
- # Database name.
1610
+ # The database name.
1323
1611
  # @!attribute [rw] collections
1324
1612
  # @return [::Array<::Google::Cloud::Datastream::V1::MongodbCollection>]
1325
1613
  # Collections in the database.
@@ -1331,7 +1619,7 @@ module Google
1331
1619
  # MongoDB Collection.
1332
1620
  # @!attribute [rw] collection
1333
1621
  # @return [::String]
1334
- # Collection name.
1622
+ # The collection name.
1335
1623
  # @!attribute [rw] fields
1336
1624
  # @return [::Array<::Google::Cloud::Datastream::V1::MongodbField>]
1337
1625
  # Fields in the collection.
@@ -1343,12 +1631,225 @@ module Google
1343
1631
  # MongoDB Field.
1344
1632
  # @!attribute [rw] field
1345
1633
  # @return [::String]
1346
- # Field name.
1634
+ # The field name.
1347
1635
  class MongodbField
1348
1636
  include ::Google::Protobuf::MessageExts
1349
1637
  extend ::Google::Protobuf::MessageExts::ClassMethods
1350
1638
  end
1351
1639
 
1640
+ # Configuration for syncing data from a Spanner source.
1641
+ # @!attribute [rw] change_stream_name
1642
+ # @return [::String]
1643
+ # Required. Immutable. The change stream name to use for the stream.
1644
+ # @!attribute [rw] spanner_rpc_priority
1645
+ # @return [::Google::Cloud::Datastream::V1::SpannerSourceConfig::SpannerRpcPriority]
1646
+ # Optional. The RPC priority to use for the stream.
1647
+ # @!attribute [rw] fgac_role
1648
+ # @return [::String]
1649
+ # Optional. The FGAC role to use for the stream.
1650
+ # @!attribute [rw] max_concurrent_cdc_tasks
1651
+ # @return [::Integer]
1652
+ # Optional. Maximum number of concurrent CDC tasks.
1653
+ # @!attribute [rw] max_concurrent_backfill_tasks
1654
+ # @return [::Integer]
1655
+ # Optional. Maximum number of concurrent backfill tasks.
1656
+ # @!attribute [rw] include_objects
1657
+ # @return [::Google::Cloud::Datastream::V1::SpannerDatabase]
1658
+ # Optional. The Spanner objects to retrieve from the data source. If some
1659
+ # objects are both included and excluded, an error will be thrown.
1660
+ # @!attribute [rw] exclude_objects
1661
+ # @return [::Google::Cloud::Datastream::V1::SpannerDatabase]
1662
+ # Optional. The Spanner objects to avoid retrieving. If some objects are both
1663
+ # included and excluded, an error will be thrown.
1664
+ # @!attribute [rw] backfill_data_boost_enabled
1665
+ # @return [::Boolean]
1666
+ # Optional. Whether to use Data Boost for Spanner backfills. Defaults to
1667
+ # false if not set.
1668
+ class SpannerSourceConfig
1669
+ include ::Google::Protobuf::MessageExts
1670
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1671
+
1672
+ # The RPC priority to use for the stream.
1673
+ module SpannerRpcPriority
1674
+ # Unspecified RPC priority.
1675
+ SPANNER_RPC_PRIORITY_UNSPECIFIED = 0
1676
+
1677
+ # Low RPC priority.
1678
+ LOW = 1
1679
+
1680
+ # Medium RPC priority.
1681
+ MEDIUM = 2
1682
+
1683
+ # High RPC priority.
1684
+ HIGH = 3
1685
+ end
1686
+ end
1687
+
1688
+ # Spanner database structure.
1689
+ # @!attribute [rw] schemas
1690
+ # @return [::Array<::Google::Cloud::Datastream::V1::SpannerSchema>]
1691
+ # Optional. Spanner schemas in the database.
1692
+ class SpannerDatabase
1693
+ include ::Google::Protobuf::MessageExts
1694
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1695
+ end
1696
+
1697
+ # Spanner schema.
1698
+ # @!attribute [rw] schema
1699
+ # @return [::String]
1700
+ # Required. The schema name.
1701
+ # @!attribute [rw] tables
1702
+ # @return [::Array<::Google::Cloud::Datastream::V1::SpannerTable>]
1703
+ # Optional. Spanner tables in the schema.
1704
+ class SpannerSchema
1705
+ include ::Google::Protobuf::MessageExts
1706
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1707
+ end
1708
+
1709
+ # Spanner table.
1710
+ # @!attribute [rw] table
1711
+ # @return [::String]
1712
+ # Required. The table name.
1713
+ # @!attribute [rw] columns
1714
+ # @return [::Array<::Google::Cloud::Datastream::V1::SpannerColumn>]
1715
+ # Optional. Spanner columns in the table.
1716
+ class SpannerTable
1717
+ include ::Google::Protobuf::MessageExts
1718
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1719
+ end
1720
+
1721
+ # Spanner column.
1722
+ # @!attribute [rw] column
1723
+ # @return [::String]
1724
+ # Required. The column name.
1725
+ # @!attribute [rw] data_type
1726
+ # @return [::String]
1727
+ # Optional. Spanner data type.
1728
+ # @!attribute [rw] is_primary_key
1729
+ # @return [::Boolean]
1730
+ # Optional. Whether or not the column is a primary key.
1731
+ # @!attribute [rw] ordinal_position
1732
+ # @return [::Integer]
1733
+ # Optional. The ordinal position of the column in the table.
1734
+ class SpannerColumn
1735
+ include ::Google::Protobuf::MessageExts
1736
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1737
+ end
1738
+
1739
+ # Configuration for syncing data from a Dataverse source.
1740
+ # @!attribute [rw] include_objects
1741
+ # @return [::Google::Cloud::Datastream::V1::SourceCatalog]
1742
+ # Optional. The objects to retrieve from the source.
1743
+ # @!attribute [rw] exclude_objects
1744
+ # @return [::Google::Cloud::Datastream::V1::SourceCatalog]
1745
+ # Optional. The objects to exclude from the stream.
1746
+ # @!attribute [rw] polling_interval
1747
+ # @return [::Google::Protobuf::Duration]
1748
+ # Required. Incremental sync polling interval for all objects. If not set, a
1749
+ # default value of `5 minutes` is used. The duration must be from `5 minutes`
1750
+ # to `24 hours`, inclusive.
1751
+ class DataverseSourceConfig
1752
+ include ::Google::Protobuf::MessageExts
1753
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1754
+ end
1755
+
1756
+ # Configuration for syncing data from a Salesforce Marketing Cloud source.
1757
+ # @!attribute [rw] include_objects
1758
+ # @return [::Google::Cloud::Datastream::V1::SourceCatalog]
1759
+ # Optional. The objects to retrieve from the source.
1760
+ # @!attribute [rw] exclude_objects
1761
+ # @return [::Google::Cloud::Datastream::V1::SourceCatalog]
1762
+ # Optional. The objects to exclude from the stream.
1763
+ # @!attribute [rw] polling_interval
1764
+ # @return [::Google::Protobuf::Duration]
1765
+ # Required. Incremental sync polling interval for all objects. If not set, a
1766
+ # default value of `5 minutes` is used. The duration must be from `5 minutes`
1767
+ # to `24 hours`, inclusive.
1768
+ # @!attribute [rw] full_refresh_polling_interval
1769
+ # @return [::Google::Protobuf::Duration]
1770
+ # Required. Specifies the polling interval for a full refresh of objects that
1771
+ # do not support incremental sync. If not set, a default value of 24 hours is
1772
+ # used. The duration must be between 1 and 24 hours, inclusive.
1773
+ class SalesforceMarketingCloudSourceConfig
1774
+ include ::Google::Protobuf::MessageExts
1775
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1776
+ end
1777
+
1778
+ # Configuration for syncing data from a ServiceNow source.
1779
+ # @!attribute [rw] include_objects
1780
+ # @return [::Google::Cloud::Datastream::V1::SourceCatalog]
1781
+ # Optional. The objects to retrieve from the source.
1782
+ # @!attribute [rw] exclude_objects
1783
+ # @return [::Google::Cloud::Datastream::V1::SourceCatalog]
1784
+ # Optional. The objects to exclude from the stream.
1785
+ # @!attribute [rw] polling_interval
1786
+ # @return [::Google::Protobuf::Duration]
1787
+ # Required. Incremental sync polling interval for all objects. If not set, a
1788
+ # default value of `5 minutes` is used. The duration must be from `5 minutes`
1789
+ # to `24 hours`, inclusive.
1790
+ class ServiceNowSourceConfig
1791
+ include ::Google::Protobuf::MessageExts
1792
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1793
+ end
1794
+
1795
+ # Configuration for syncing data from a Workday source.
1796
+ # @!attribute [rw] include_objects
1797
+ # @return [::Google::Cloud::Datastream::V1::SourceCatalog]
1798
+ # Optional. The objects to retrieve from the source.
1799
+ # @!attribute [rw] exclude_objects
1800
+ # @return [::Google::Cloud::Datastream::V1::SourceCatalog]
1801
+ # Optional. The objects to exclude from the stream.
1802
+ # @!attribute [rw] polling_interval
1803
+ # @return [::Google::Protobuf::Duration]
1804
+ # Required. Incremental sync polling interval for all objects. If not set, a
1805
+ # default value of `5 minutes` is used. The duration must be from `5 minutes`
1806
+ # to `24 hours`, inclusive.
1807
+ class WorkdaySourceConfig
1808
+ include ::Google::Protobuf::MessageExts
1809
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1810
+ end
1811
+
1812
+ # Source catalog.
1813
+ # @!attribute [rw] objects
1814
+ # @return [::Array<::Google::Cloud::Datastream::V1::SourceObject>]
1815
+ # Optional. Source objects in the catalog.
1816
+ class SourceCatalog
1817
+ include ::Google::Protobuf::MessageExts
1818
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1819
+ end
1820
+
1821
+ # Source object.
1822
+ # @!attribute [rw] object_name
1823
+ # @return [::String]
1824
+ # Required. The object name.
1825
+ # @!attribute [rw] properties
1826
+ # @return [::Array<::Google::Cloud::Datastream::V1::SourceProperty>]
1827
+ # Optional. Source properties. When unspecified as part of include objects,
1828
+ # includes everything, when unspecified as part of exclude objects, excludes
1829
+ # nothing.
1830
+ class SourceObject
1831
+ include ::Google::Protobuf::MessageExts
1832
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1833
+ end
1834
+
1835
+ # Source property.
1836
+ # @!attribute [rw] property_name
1837
+ # @return [::String]
1838
+ # Required. The property name.
1839
+ # @!attribute [rw] properties
1840
+ # @return [::Array<::Google::Cloud::Datastream::V1::SourceProperty>]
1841
+ # Optional. Source properties. When specified, it means that the current
1842
+ # property contains nested properties of its own. When unspecified as part of
1843
+ # include objects, includes everything, when unspecified as part of exclude
1844
+ # objects, excludes nothing.
1845
+ # @!attribute [rw] primary_key
1846
+ # @return [::Boolean]
1847
+ # Optional. Whether or not the property is a primary key.
1848
+ class SourceProperty
1849
+ include ::Google::Protobuf::MessageExts
1850
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1851
+ end
1852
+
1352
1853
  # The configuration of the stream source.
1353
1854
  # @!attribute [rw] source_connection_profile
1354
1855
  # @return [::String]
@@ -1358,32 +1859,57 @@ module Google
1358
1859
  # @return [::Google::Cloud::Datastream::V1::OracleSourceConfig]
1359
1860
  # Oracle data source configuration.
1360
1861
  #
1361
- # Note: The following fields are mutually exclusive: `oracle_source_config`, `mysql_source_config`, `postgresql_source_config`, `sql_server_source_config`, `salesforce_source_config`, `mongodb_source_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1862
+ # Note: The following fields are mutually exclusive: `oracle_source_config`, `mysql_source_config`, `postgresql_source_config`, `sql_server_source_config`, `salesforce_source_config`, `mongodb_source_config`, `spanner_source_config`, `dataverse_source_config`, `salesforce_marketing_cloud_source_config`, `service_now_source_config`, `workday_source_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1362
1863
  # @!attribute [rw] mysql_source_config
1363
1864
  # @return [::Google::Cloud::Datastream::V1::MysqlSourceConfig]
1364
1865
  # MySQL data source configuration.
1365
1866
  #
1366
- # Note: The following fields are mutually exclusive: `mysql_source_config`, `oracle_source_config`, `postgresql_source_config`, `sql_server_source_config`, `salesforce_source_config`, `mongodb_source_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1867
+ # Note: The following fields are mutually exclusive: `mysql_source_config`, `oracle_source_config`, `postgresql_source_config`, `sql_server_source_config`, `salesforce_source_config`, `mongodb_source_config`, `spanner_source_config`, `dataverse_source_config`, `salesforce_marketing_cloud_source_config`, `service_now_source_config`, `workday_source_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1367
1868
  # @!attribute [rw] postgresql_source_config
1368
1869
  # @return [::Google::Cloud::Datastream::V1::PostgresqlSourceConfig]
1369
1870
  # PostgreSQL data source configuration.
1370
1871
  #
1371
- # Note: The following fields are mutually exclusive: `postgresql_source_config`, `oracle_source_config`, `mysql_source_config`, `sql_server_source_config`, `salesforce_source_config`, `mongodb_source_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1872
+ # Note: The following fields are mutually exclusive: `postgresql_source_config`, `oracle_source_config`, `mysql_source_config`, `sql_server_source_config`, `salesforce_source_config`, `mongodb_source_config`, `spanner_source_config`, `dataverse_source_config`, `salesforce_marketing_cloud_source_config`, `service_now_source_config`, `workday_source_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1372
1873
  # @!attribute [rw] sql_server_source_config
1373
1874
  # @return [::Google::Cloud::Datastream::V1::SqlServerSourceConfig]
1374
1875
  # SQLServer data source configuration.
1375
1876
  #
1376
- # Note: The following fields are mutually exclusive: `sql_server_source_config`, `oracle_source_config`, `mysql_source_config`, `postgresql_source_config`, `salesforce_source_config`, `mongodb_source_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1877
+ # Note: The following fields are mutually exclusive: `sql_server_source_config`, `oracle_source_config`, `mysql_source_config`, `postgresql_source_config`, `salesforce_source_config`, `mongodb_source_config`, `spanner_source_config`, `dataverse_source_config`, `salesforce_marketing_cloud_source_config`, `service_now_source_config`, `workday_source_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1377
1878
  # @!attribute [rw] salesforce_source_config
1378
1879
  # @return [::Google::Cloud::Datastream::V1::SalesforceSourceConfig]
1379
1880
  # Salesforce data source configuration.
1380
1881
  #
1381
- # Note: The following fields are mutually exclusive: `salesforce_source_config`, `oracle_source_config`, `mysql_source_config`, `postgresql_source_config`, `sql_server_source_config`, `mongodb_source_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1882
+ # Note: The following fields are mutually exclusive: `salesforce_source_config`, `oracle_source_config`, `mysql_source_config`, `postgresql_source_config`, `sql_server_source_config`, `mongodb_source_config`, `spanner_source_config`, `dataverse_source_config`, `salesforce_marketing_cloud_source_config`, `service_now_source_config`, `workday_source_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1382
1883
  # @!attribute [rw] mongodb_source_config
1383
1884
  # @return [::Google::Cloud::Datastream::V1::MongodbSourceConfig]
1384
1885
  # MongoDB data source configuration.
1385
1886
  #
1386
- # Note: The following fields are mutually exclusive: `mongodb_source_config`, `oracle_source_config`, `mysql_source_config`, `postgresql_source_config`, `sql_server_source_config`, `salesforce_source_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1887
+ # Note: The following fields are mutually exclusive: `mongodb_source_config`, `oracle_source_config`, `mysql_source_config`, `postgresql_source_config`, `sql_server_source_config`, `salesforce_source_config`, `spanner_source_config`, `dataverse_source_config`, `salesforce_marketing_cloud_source_config`, `service_now_source_config`, `workday_source_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1888
+ # @!attribute [rw] spanner_source_config
1889
+ # @return [::Google::Cloud::Datastream::V1::SpannerSourceConfig]
1890
+ # Spanner data source configuration.
1891
+ #
1892
+ # Note: The following fields are mutually exclusive: `spanner_source_config`, `oracle_source_config`, `mysql_source_config`, `postgresql_source_config`, `sql_server_source_config`, `salesforce_source_config`, `mongodb_source_config`, `dataverse_source_config`, `salesforce_marketing_cloud_source_config`, `service_now_source_config`, `workday_source_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1893
+ # @!attribute [rw] dataverse_source_config
1894
+ # @return [::Google::Cloud::Datastream::V1::DataverseSourceConfig]
1895
+ # Dataverse data source configuration.
1896
+ #
1897
+ # Note: The following fields are mutually exclusive: `dataverse_source_config`, `oracle_source_config`, `mysql_source_config`, `postgresql_source_config`, `sql_server_source_config`, `salesforce_source_config`, `mongodb_source_config`, `spanner_source_config`, `salesforce_marketing_cloud_source_config`, `service_now_source_config`, `workday_source_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1898
+ # @!attribute [rw] salesforce_marketing_cloud_source_config
1899
+ # @return [::Google::Cloud::Datastream::V1::SalesforceMarketingCloudSourceConfig]
1900
+ # Salesforce Marketing Cloud data source configuration.
1901
+ #
1902
+ # Note: The following fields are mutually exclusive: `salesforce_marketing_cloud_source_config`, `oracle_source_config`, `mysql_source_config`, `postgresql_source_config`, `sql_server_source_config`, `salesforce_source_config`, `mongodb_source_config`, `spanner_source_config`, `dataverse_source_config`, `service_now_source_config`, `workday_source_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1903
+ # @!attribute [rw] service_now_source_config
1904
+ # @return [::Google::Cloud::Datastream::V1::ServiceNowSourceConfig]
1905
+ # ServiceNow data source configuration.
1906
+ #
1907
+ # Note: The following fields are mutually exclusive: `service_now_source_config`, `oracle_source_config`, `mysql_source_config`, `postgresql_source_config`, `sql_server_source_config`, `salesforce_source_config`, `mongodb_source_config`, `spanner_source_config`, `dataverse_source_config`, `salesforce_marketing_cloud_source_config`, `workday_source_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1908
+ # @!attribute [rw] workday_source_config
1909
+ # @return [::Google::Cloud::Datastream::V1::WorkdaySourceConfig]
1910
+ # Optional. Workday data source configuration.
1911
+ #
1912
+ # Note: The following fields are mutually exclusive: `workday_source_config`, `oracle_source_config`, `mysql_source_config`, `postgresql_source_config`, `sql_server_source_config`, `salesforce_source_config`, `mongodb_source_config`, `spanner_source_config`, `dataverse_source_config`, `salesforce_marketing_cloud_source_config`, `service_now_source_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1387
1913
  class SourceConfig
1388
1914
  include ::Google::Protobuf::MessageExts
1389
1915
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1431,6 +1957,81 @@ module Google
1431
1957
  end
1432
1958
  end
1433
1959
 
1960
+ # BigQuery clustering configuration.
1961
+ # @!attribute [rw] columns
1962
+ # @return [::Array<::String>]
1963
+ # Required. Column names to set as clustering columns.
1964
+ class BigQueryClustering
1965
+ include ::Google::Protobuf::MessageExts
1966
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1967
+ end
1968
+
1969
+ # Ingestion time partitioning. see
1970
+ # https://cloud.google.com/bigquery/docs/partitioned-tables#ingestion_time
1971
+ # @!attribute [rw] partitioning_time_granularity
1972
+ # @return [::Google::Cloud::Datastream::V1::PartitioningTimeGranularity]
1973
+ # Optional. Partition granularity
1974
+ class IngestionTimePartition
1975
+ include ::Google::Protobuf::MessageExts
1976
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1977
+ end
1978
+
1979
+ # Time unit column partitioning. see
1980
+ # https://cloud.google.com/bigquery/docs/partitioned-tables#date_timestamp_partitioned_tables
1981
+ # @!attribute [rw] column
1982
+ # @return [::String]
1983
+ # Required. The partitioning column.
1984
+ # @!attribute [rw] partitioning_time_granularity
1985
+ # @return [::Google::Cloud::Datastream::V1::PartitioningTimeGranularity]
1986
+ # Optional. Partition granularity.
1987
+ class TimeUnitPartition
1988
+ include ::Google::Protobuf::MessageExts
1989
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1990
+ end
1991
+
1992
+ # Integer range partitioning. see
1993
+ # https://cloud.google.com/bigquery/docs/partitioned-tables#integer_range
1994
+ # @!attribute [rw] column
1995
+ # @return [::String]
1996
+ # Required. The partitioning column.
1997
+ # @!attribute [rw] start
1998
+ # @return [::Integer]
1999
+ # Required. The starting value for range partitioning (inclusive).
2000
+ # @!attribute [rw] end
2001
+ # @return [::Integer]
2002
+ # Required. The ending value for range partitioning (exclusive).
2003
+ # @!attribute [rw] interval
2004
+ # @return [::Integer]
2005
+ # Required. The interval of each range within the partition.
2006
+ class IntegerRangePartition
2007
+ include ::Google::Protobuf::MessageExts
2008
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2009
+ end
2010
+
2011
+ # BigQuery partitioning configuration.
2012
+ # @!attribute [rw] integer_range_partition
2013
+ # @return [::Google::Cloud::Datastream::V1::IntegerRangePartition]
2014
+ # Integer range partitioning.
2015
+ #
2016
+ # Note: The following fields are mutually exclusive: `integer_range_partition`, `time_unit_partition`, `ingestion_time_partition`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2017
+ # @!attribute [rw] time_unit_partition
2018
+ # @return [::Google::Cloud::Datastream::V1::TimeUnitPartition]
2019
+ # Time unit column partitioning.
2020
+ #
2021
+ # Note: The following fields are mutually exclusive: `time_unit_partition`, `integer_range_partition`, `ingestion_time_partition`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2022
+ # @!attribute [rw] ingestion_time_partition
2023
+ # @return [::Google::Cloud::Datastream::V1::IngestionTimePartition]
2024
+ # Ingestion time partitioning.
2025
+ #
2026
+ # Note: The following fields are mutually exclusive: `ingestion_time_partition`, `integer_range_partition`, `time_unit_partition`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2027
+ # @!attribute [rw] require_partition_filter
2028
+ # @return [::Boolean]
2029
+ # Optional. If true, queries over the table require a partition filter.
2030
+ class BigQueryPartitioning
2031
+ include ::Google::Protobuf::MessageExts
2032
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2033
+ end
2034
+
1434
2035
  # Google Cloud Storage destination configuration
1435
2036
  # @!attribute [rw] path
1436
2037
  # @return [::String]
@@ -1672,6 +2273,9 @@ module Google
1672
2273
  # @!attribute [r] satisfies_pzi
1673
2274
  # @return [::Boolean]
1674
2275
  # Output only. Reserved for future use.
2276
+ # @!attribute [rw] rule_sets
2277
+ # @return [::Array<::Google::Cloud::Datastream::V1::Stream::RuleSet>]
2278
+ # Optional. Rule sets to apply to the stream.
1675
2279
  class Stream
1676
2280
  include ::Google::Protobuf::MessageExts
1677
2281
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1682,32 +2286,43 @@ module Google
1682
2286
  # @return [::Google::Cloud::Datastream::V1::OracleRdbms]
1683
2287
  # Oracle data source objects to avoid backfilling.
1684
2288
  #
1685
- # Note: The following fields are mutually exclusive: `oracle_excluded_objects`, `mysql_excluded_objects`, `postgresql_excluded_objects`, `sql_server_excluded_objects`, `salesforce_excluded_objects`, `mongodb_excluded_objects`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2289
+ # Note: The following fields are mutually exclusive: `oracle_excluded_objects`, `mysql_excluded_objects`, `postgresql_excluded_objects`, `sql_server_excluded_objects`, `salesforce_excluded_objects`, `mongodb_excluded_objects`, `spanner_excluded_objects`, `saas_excluded_objects`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1686
2290
  # @!attribute [rw] mysql_excluded_objects
1687
2291
  # @return [::Google::Cloud::Datastream::V1::MysqlRdbms]
1688
2292
  # MySQL data source objects to avoid backfilling.
1689
2293
  #
1690
- # Note: The following fields are mutually exclusive: `mysql_excluded_objects`, `oracle_excluded_objects`, `postgresql_excluded_objects`, `sql_server_excluded_objects`, `salesforce_excluded_objects`, `mongodb_excluded_objects`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2294
+ # Note: The following fields are mutually exclusive: `mysql_excluded_objects`, `oracle_excluded_objects`, `postgresql_excluded_objects`, `sql_server_excluded_objects`, `salesforce_excluded_objects`, `mongodb_excluded_objects`, `spanner_excluded_objects`, `saas_excluded_objects`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1691
2295
  # @!attribute [rw] postgresql_excluded_objects
1692
2296
  # @return [::Google::Cloud::Datastream::V1::PostgresqlRdbms]
1693
2297
  # PostgreSQL data source objects to avoid backfilling.
1694
2298
  #
1695
- # Note: The following fields are mutually exclusive: `postgresql_excluded_objects`, `oracle_excluded_objects`, `mysql_excluded_objects`, `sql_server_excluded_objects`, `salesforce_excluded_objects`, `mongodb_excluded_objects`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2299
+ # Note: The following fields are mutually exclusive: `postgresql_excluded_objects`, `oracle_excluded_objects`, `mysql_excluded_objects`, `sql_server_excluded_objects`, `salesforce_excluded_objects`, `mongodb_excluded_objects`, `spanner_excluded_objects`, `saas_excluded_objects`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1696
2300
  # @!attribute [rw] sql_server_excluded_objects
1697
2301
  # @return [::Google::Cloud::Datastream::V1::SqlServerRdbms]
1698
2302
  # SQLServer data source objects to avoid backfilling
1699
2303
  #
1700
- # Note: The following fields are mutually exclusive: `sql_server_excluded_objects`, `oracle_excluded_objects`, `mysql_excluded_objects`, `postgresql_excluded_objects`, `salesforce_excluded_objects`, `mongodb_excluded_objects`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2304
+ # Note: The following fields are mutually exclusive: `sql_server_excluded_objects`, `oracle_excluded_objects`, `mysql_excluded_objects`, `postgresql_excluded_objects`, `salesforce_excluded_objects`, `mongodb_excluded_objects`, `spanner_excluded_objects`, `saas_excluded_objects`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1701
2305
  # @!attribute [rw] salesforce_excluded_objects
1702
2306
  # @return [::Google::Cloud::Datastream::V1::SalesforceOrg]
1703
2307
  # Salesforce data source objects to avoid backfilling
1704
2308
  #
1705
- # Note: The following fields are mutually exclusive: `salesforce_excluded_objects`, `oracle_excluded_objects`, `mysql_excluded_objects`, `postgresql_excluded_objects`, `sql_server_excluded_objects`, `mongodb_excluded_objects`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2309
+ # Note: The following fields are mutually exclusive: `salesforce_excluded_objects`, `oracle_excluded_objects`, `mysql_excluded_objects`, `postgresql_excluded_objects`, `sql_server_excluded_objects`, `mongodb_excluded_objects`, `spanner_excluded_objects`, `saas_excluded_objects`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1706
2310
  # @!attribute [rw] mongodb_excluded_objects
1707
2311
  # @return [::Google::Cloud::Datastream::V1::MongodbCluster]
1708
2312
  # MongoDB data source objects to avoid backfilling
1709
2313
  #
1710
- # Note: The following fields are mutually exclusive: `mongodb_excluded_objects`, `oracle_excluded_objects`, `mysql_excluded_objects`, `postgresql_excluded_objects`, `sql_server_excluded_objects`, `salesforce_excluded_objects`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2314
+ # Note: The following fields are mutually exclusive: `mongodb_excluded_objects`, `oracle_excluded_objects`, `mysql_excluded_objects`, `postgresql_excluded_objects`, `sql_server_excluded_objects`, `salesforce_excluded_objects`, `spanner_excluded_objects`, `saas_excluded_objects`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2315
+ # @!attribute [rw] spanner_excluded_objects
2316
+ # @return [::Google::Cloud::Datastream::V1::SpannerDatabase]
2317
+ # Spanner data source objects to avoid backfilling.
2318
+ #
2319
+ # Note: The following fields are mutually exclusive: `spanner_excluded_objects`, `oracle_excluded_objects`, `mysql_excluded_objects`, `postgresql_excluded_objects`, `sql_server_excluded_objects`, `salesforce_excluded_objects`, `mongodb_excluded_objects`, `saas_excluded_objects`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2320
+ # @!attribute [rw] saas_excluded_objects
2321
+ # @return [::Google::Cloud::Datastream::V1::SourceCatalog]
2322
+ # Source catalog data source objects to avoid backfilling. This is mainly
2323
+ # used to represent SaaS applications objects.
2324
+ #
2325
+ # Note: The following fields are mutually exclusive: `saas_excluded_objects`, `oracle_excluded_objects`, `mysql_excluded_objects`, `postgresql_excluded_objects`, `sql_server_excluded_objects`, `salesforce_excluded_objects`, `mongodb_excluded_objects`, `spanner_excluded_objects`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1711
2326
  class BackfillAllStrategy
1712
2327
  include ::Google::Protobuf::MessageExts
1713
2328
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1719,6 +2334,43 @@ module Google
1719
2334
  extend ::Google::Protobuf::MessageExts::ClassMethods
1720
2335
  end
1721
2336
 
2337
+ # A set of rules to apply to a set of objects.
2338
+ # @!attribute [rw] customization_rules
2339
+ # @return [::Array<::Google::Cloud::Datastream::V1::Stream::RuleSet::CustomizationRule>]
2340
+ # Required. List of customization rules to apply.
2341
+ # @!attribute [rw] object_filter
2342
+ # @return [::Google::Cloud::Datastream::V1::Stream::RuleSet::ObjectFilter]
2343
+ # Required. Object filter to apply the customization rules to.
2344
+ class RuleSet
2345
+ include ::Google::Protobuf::MessageExts
2346
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2347
+
2348
+ # Object filter to apply the rules to.
2349
+ # @!attribute [rw] source_object_identifier
2350
+ # @return [::Google::Cloud::Datastream::V1::SourceObjectIdentifier]
2351
+ # Specific source object identifier.
2352
+ class ObjectFilter
2353
+ include ::Google::Protobuf::MessageExts
2354
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2355
+ end
2356
+
2357
+ # A customization rule to apply to a set of objects.
2358
+ # @!attribute [rw] bigquery_partitioning
2359
+ # @return [::Google::Cloud::Datastream::V1::BigQueryPartitioning]
2360
+ # BigQuery partitioning rule.
2361
+ #
2362
+ # Note: The following fields are mutually exclusive: `bigquery_partitioning`, `bigquery_clustering`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2363
+ # @!attribute [rw] bigquery_clustering
2364
+ # @return [::Google::Cloud::Datastream::V1::BigQueryClustering]
2365
+ # BigQuery clustering rule.
2366
+ #
2367
+ # Note: The following fields are mutually exclusive: `bigquery_clustering`, `bigquery_partitioning`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2368
+ class CustomizationRule
2369
+ include ::Google::Protobuf::MessageExts
2370
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2371
+ end
2372
+ end
2373
+
1722
2374
  # @!attribute [rw] key
1723
2375
  # @return [::String]
1724
2376
  # @!attribute [rw] value
@@ -1785,6 +2437,11 @@ module Google
1785
2437
  # @!attribute [rw] source_object
1786
2438
  # @return [::Google::Cloud::Datastream::V1::SourceObjectIdentifier]
1787
2439
  # The object identifier in the data source.
2440
+ # @!attribute [r] customization_rules
2441
+ # @return [::Array<::Google::Cloud::Datastream::V1::Stream::RuleSet::CustomizationRule>]
2442
+ # Output only. The customization rules for the object. These rules are
2443
+ # derived from the parent Stream's `rule_sets` and represent the intended
2444
+ # configuration for the object.
1788
2445
  class StreamObject
1789
2446
  include ::Google::Protobuf::MessageExts
1790
2447
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1795,32 +2452,37 @@ module Google
1795
2452
  # @return [::Google::Cloud::Datastream::V1::SourceObjectIdentifier::OracleObjectIdentifier]
1796
2453
  # Oracle data source object identifier.
1797
2454
  #
1798
- # Note: The following fields are mutually exclusive: `oracle_identifier`, `mysql_identifier`, `postgresql_identifier`, `sql_server_identifier`, `salesforce_identifier`, `mongodb_identifier`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2455
+ # Note: The following fields are mutually exclusive: `oracle_identifier`, `mysql_identifier`, `postgresql_identifier`, `sql_server_identifier`, `salesforce_identifier`, `mongodb_identifier`, `spanner_identifier`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1799
2456
  # @!attribute [rw] mysql_identifier
1800
2457
  # @return [::Google::Cloud::Datastream::V1::SourceObjectIdentifier::MysqlObjectIdentifier]
1801
2458
  # Mysql data source object identifier.
1802
2459
  #
1803
- # Note: The following fields are mutually exclusive: `mysql_identifier`, `oracle_identifier`, `postgresql_identifier`, `sql_server_identifier`, `salesforce_identifier`, `mongodb_identifier`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2460
+ # Note: The following fields are mutually exclusive: `mysql_identifier`, `oracle_identifier`, `postgresql_identifier`, `sql_server_identifier`, `salesforce_identifier`, `mongodb_identifier`, `spanner_identifier`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1804
2461
  # @!attribute [rw] postgresql_identifier
1805
2462
  # @return [::Google::Cloud::Datastream::V1::SourceObjectIdentifier::PostgresqlObjectIdentifier]
1806
2463
  # PostgreSQL data source object identifier.
1807
2464
  #
1808
- # Note: The following fields are mutually exclusive: `postgresql_identifier`, `oracle_identifier`, `mysql_identifier`, `sql_server_identifier`, `salesforce_identifier`, `mongodb_identifier`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2465
+ # Note: The following fields are mutually exclusive: `postgresql_identifier`, `oracle_identifier`, `mysql_identifier`, `sql_server_identifier`, `salesforce_identifier`, `mongodb_identifier`, `spanner_identifier`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1809
2466
  # @!attribute [rw] sql_server_identifier
1810
2467
  # @return [::Google::Cloud::Datastream::V1::SourceObjectIdentifier::SqlServerObjectIdentifier]
1811
2468
  # SQLServer data source object identifier.
1812
2469
  #
1813
- # Note: The following fields are mutually exclusive: `sql_server_identifier`, `oracle_identifier`, `mysql_identifier`, `postgresql_identifier`, `salesforce_identifier`, `mongodb_identifier`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2470
+ # Note: The following fields are mutually exclusive: `sql_server_identifier`, `oracle_identifier`, `mysql_identifier`, `postgresql_identifier`, `salesforce_identifier`, `mongodb_identifier`, `spanner_identifier`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1814
2471
  # @!attribute [rw] salesforce_identifier
1815
2472
  # @return [::Google::Cloud::Datastream::V1::SourceObjectIdentifier::SalesforceObjectIdentifier]
1816
2473
  # Salesforce data source object identifier.
1817
2474
  #
1818
- # Note: The following fields are mutually exclusive: `salesforce_identifier`, `oracle_identifier`, `mysql_identifier`, `postgresql_identifier`, `sql_server_identifier`, `mongodb_identifier`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2475
+ # Note: The following fields are mutually exclusive: `salesforce_identifier`, `oracle_identifier`, `mysql_identifier`, `postgresql_identifier`, `sql_server_identifier`, `mongodb_identifier`, `spanner_identifier`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1819
2476
  # @!attribute [rw] mongodb_identifier
1820
2477
  # @return [::Google::Cloud::Datastream::V1::SourceObjectIdentifier::MongodbObjectIdentifier]
1821
2478
  # MongoDB data source object identifier.
1822
2479
  #
1823
- # Note: The following fields are mutually exclusive: `mongodb_identifier`, `oracle_identifier`, `mysql_identifier`, `postgresql_identifier`, `sql_server_identifier`, `salesforce_identifier`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2480
+ # Note: The following fields are mutually exclusive: `mongodb_identifier`, `oracle_identifier`, `mysql_identifier`, `postgresql_identifier`, `sql_server_identifier`, `salesforce_identifier`, `spanner_identifier`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2481
+ # @!attribute [rw] spanner_identifier
2482
+ # @return [::Google::Cloud::Datastream::V1::SourceObjectIdentifier::SpannerObjectIdentifier]
2483
+ # Spanner data source object identifier.
2484
+ #
2485
+ # Note: The following fields are mutually exclusive: `spanner_identifier`, `oracle_identifier`, `mysql_identifier`, `postgresql_identifier`, `sql_server_identifier`, `salesforce_identifier`, `mongodb_identifier`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1824
2486
  class SourceObjectIdentifier
1825
2487
  include ::Google::Protobuf::MessageExts
1826
2488
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1893,6 +2555,18 @@ module Google
1893
2555
  include ::Google::Protobuf::MessageExts
1894
2556
  extend ::Google::Protobuf::MessageExts::ClassMethods
1895
2557
  end
2558
+
2559
+ # Spanner data source object identifier.
2560
+ # @!attribute [rw] schema
2561
+ # @return [::String]
2562
+ # Optional. The schema name.
2563
+ # @!attribute [rw] table
2564
+ # @return [::String]
2565
+ # Required. The table name.
2566
+ class SpannerObjectIdentifier
2567
+ include ::Google::Protobuf::MessageExts
2568
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2569
+ end
1896
2570
  end
1897
2571
 
1898
2572
  # Represents a backfill job on a specific stream object.
@@ -1911,6 +2585,9 @@ module Google
1911
2585
  # @!attribute [r] errors
1912
2586
  # @return [::Array<::Google::Cloud::Datastream::V1::Error>]
1913
2587
  # Output only. Errors which caused the backfill job to fail.
2588
+ # @!attribute [r] event_filter
2589
+ # @return [::Google::Cloud::Datastream::V1::EventFilter]
2590
+ # Output only. The filter for performing a partial backfill.
1914
2591
  class BackfillJob
1915
2592
  include ::Google::Protobuf::MessageExts
1916
2593
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1959,6 +2636,17 @@ module Google
1959
2636
  end
1960
2637
  end
1961
2638
 
2639
+ # Represents a filter for included data on a stream object.
2640
+ # @!attribute [rw] sql_where_clause
2641
+ # @return [::String]
2642
+ # An SQL-query Where clause selecting which data should be included, not
2643
+ # including the "WHERE" keyword. e.g., `t.key1 = 'value1' AND t.key2 =
2644
+ # 'value2'`
2645
+ class EventFilter
2646
+ include ::Google::Protobuf::MessageExts
2647
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2648
+ end
2649
+
1962
2650
  # Represent a user-facing Error.
1963
2651
  # @!attribute [rw] reason
1964
2652
  # @return [::String]
@@ -2115,22 +2803,32 @@ module Google
2115
2803
  # @return [::Google::Cloud::Datastream::V1::MysqlLogPosition]
2116
2804
  # MySQL specific log position to start replicating from.
2117
2805
  #
2118
- # Note: The following fields are mutually exclusive: `mysql_log_position`, `oracle_scn_position`, `sql_server_lsn_position`, `mysql_gtid_position`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2806
+ # Note: The following fields are mutually exclusive: `mysql_log_position`, `oracle_scn_position`, `sql_server_lsn_position`, `mysql_gtid_position`, `mongodb_change_stream_position`, `spanner_change_stream_position`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2119
2807
  # @!attribute [rw] oracle_scn_position
2120
2808
  # @return [::Google::Cloud::Datastream::V1::OracleScnPosition]
2121
2809
  # Oracle SCN to start replicating from.
2122
2810
  #
2123
- # Note: The following fields are mutually exclusive: `oracle_scn_position`, `mysql_log_position`, `sql_server_lsn_position`, `mysql_gtid_position`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2811
+ # Note: The following fields are mutually exclusive: `oracle_scn_position`, `mysql_log_position`, `sql_server_lsn_position`, `mysql_gtid_position`, `mongodb_change_stream_position`, `spanner_change_stream_position`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2124
2812
  # @!attribute [rw] sql_server_lsn_position
2125
2813
  # @return [::Google::Cloud::Datastream::V1::SqlServerLsnPosition]
2126
2814
  # SqlServer LSN to start replicating from.
2127
2815
  #
2128
- # Note: The following fields are mutually exclusive: `sql_server_lsn_position`, `mysql_log_position`, `oracle_scn_position`, `mysql_gtid_position`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2816
+ # Note: The following fields are mutually exclusive: `sql_server_lsn_position`, `mysql_log_position`, `oracle_scn_position`, `mysql_gtid_position`, `mongodb_change_stream_position`, `spanner_change_stream_position`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2129
2817
  # @!attribute [rw] mysql_gtid_position
2130
2818
  # @return [::Google::Cloud::Datastream::V1::MysqlGtidPosition]
2131
2819
  # MySQL GTID set to start replicating from.
2132
2820
  #
2133
- # Note: The following fields are mutually exclusive: `mysql_gtid_position`, `mysql_log_position`, `oracle_scn_position`, `sql_server_lsn_position`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2821
+ # Note: The following fields are mutually exclusive: `mysql_gtid_position`, `mysql_log_position`, `oracle_scn_position`, `sql_server_lsn_position`, `mongodb_change_stream_position`, `spanner_change_stream_position`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2822
+ # @!attribute [rw] mongodb_change_stream_position
2823
+ # @return [::Google::Cloud::Datastream::V1::MongodbChangeStreamPosition]
2824
+ # MongoDB change stream position to start replicating from.
2825
+ #
2826
+ # Note: The following fields are mutually exclusive: `mongodb_change_stream_position`, `mysql_log_position`, `oracle_scn_position`, `sql_server_lsn_position`, `mysql_gtid_position`, `spanner_change_stream_position`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2827
+ # @!attribute [rw] spanner_change_stream_position
2828
+ # @return [::Google::Cloud::Datastream::V1::SpannerChangeStreamPosition]
2829
+ # Optional. Spanner change stream position to start replicating from.
2830
+ #
2831
+ # Note: The following fields are mutually exclusive: `spanner_change_stream_position`, `mysql_log_position`, `oracle_scn_position`, `sql_server_lsn_position`, `mysql_gtid_position`, `mongodb_change_stream_position`. If a field in that set is populated, all other fields in the set will automatically be cleared.
2134
2832
  class SpecificStartPosition
2135
2833
  include ::Google::Protobuf::MessageExts
2136
2834
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2175,6 +2873,56 @@ module Google
2175
2873
  include ::Google::Protobuf::MessageExts
2176
2874
  extend ::Google::Protobuf::MessageExts::ClassMethods
2177
2875
  end
2876
+
2877
+ # MongoDB change stream position
2878
+ # @!attribute [rw] start_time
2879
+ # @return [::Google::Protobuf::Timestamp]
2880
+ # Required. The timestamp to start change stream from.
2881
+ class MongodbChangeStreamPosition
2882
+ include ::Google::Protobuf::MessageExts
2883
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2884
+ end
2885
+
2886
+ # Represents a position in a Spanner change stream from which to start
2887
+ # replicating.
2888
+ # @!attribute [rw] start_time
2889
+ # @return [::Google::Protobuf::Timestamp]
2890
+ # Required. The timestamp to start change stream queries from.
2891
+ # The timestamp must be a positive value.
2892
+ class SpannerChangeStreamPosition
2893
+ include ::Google::Protobuf::MessageExts
2894
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2895
+ end
2896
+
2897
+ # MongoDB JSON mode.
2898
+ module MongodbJsonMode
2899
+ # Unspecified JSON mode.
2900
+ MONGODB_JSON_MODE_UNSPECIFIED = 0
2901
+
2902
+ # Strict JSON mode.
2903
+ STRICT = 1
2904
+
2905
+ # Canonical JSON mode.
2906
+ CANONICAL = 2
2907
+ end
2908
+
2909
+ # Partitioning granularity for time partitions.
2910
+ module PartitioningTimeGranularity
2911
+ # Unspecified partitioing interval.
2912
+ PARTITIONING_TIME_GRANULARITY_UNSPECIFIED = 0
2913
+
2914
+ # Hourly partitioning.
2915
+ PARTITIONING_TIME_GRANULARITY_HOUR = 1
2916
+
2917
+ # Daily partitioning.
2918
+ PARTITIONING_TIME_GRANULARITY_DAY = 2
2919
+
2920
+ # Monthly partitioning.
2921
+ PARTITIONING_TIME_GRANULARITY_MONTH = 3
2922
+
2923
+ # Yearly partitioning.
2924
+ PARTITIONING_TIME_GRANULARITY_YEAR = 4
2925
+ end
2178
2926
  end
2179
2927
  end
2180
2928
  end