google-cloud-datastream 1.13.2__py3-none-any.whl

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 (44) hide show
  1. google/cloud/datastream/__init__.py +219 -0
  2. google/cloud/datastream/gapic_version.py +16 -0
  3. google/cloud/datastream/py.typed +2 -0
  4. google/cloud/datastream_v1/__init__.py +216 -0
  5. google/cloud/datastream_v1/gapic_metadata.json +418 -0
  6. google/cloud/datastream_v1/gapic_version.py +16 -0
  7. google/cloud/datastream_v1/py.typed +2 -0
  8. google/cloud/datastream_v1/services/__init__.py +15 -0
  9. google/cloud/datastream_v1/services/datastream/__init__.py +22 -0
  10. google/cloud/datastream_v1/services/datastream/async_client.py +3939 -0
  11. google/cloud/datastream_v1/services/datastream/client.py +4420 -0
  12. google/cloud/datastream_v1/services/datastream/pagers.py +977 -0
  13. google/cloud/datastream_v1/services/datastream/transports/__init__.py +36 -0
  14. google/cloud/datastream_v1/services/datastream/transports/base.py +639 -0
  15. google/cloud/datastream_v1/services/datastream/transports/grpc.py +1193 -0
  16. google/cloud/datastream_v1/services/datastream/transports/grpc_asyncio.py +1389 -0
  17. google/cloud/datastream_v1/services/datastream/transports/rest.py +6861 -0
  18. google/cloud/datastream_v1/services/datastream/transports/rest_base.py +1591 -0
  19. google/cloud/datastream_v1/types/__init__.py +208 -0
  20. google/cloud/datastream_v1/types/datastream.py +1491 -0
  21. google/cloud/datastream_v1/types/datastream_resources.py +2986 -0
  22. google/cloud/datastream_v1alpha1/__init__.py +156 -0
  23. google/cloud/datastream_v1alpha1/gapic_metadata.json +343 -0
  24. google/cloud/datastream_v1alpha1/gapic_version.py +16 -0
  25. google/cloud/datastream_v1alpha1/py.typed +2 -0
  26. google/cloud/datastream_v1alpha1/services/__init__.py +15 -0
  27. google/cloud/datastream_v1alpha1/services/datastream/__init__.py +22 -0
  28. google/cloud/datastream_v1alpha1/services/datastream/async_client.py +3018 -0
  29. google/cloud/datastream_v1alpha1/services/datastream/client.py +3458 -0
  30. google/cloud/datastream_v1alpha1/services/datastream/pagers.py +821 -0
  31. google/cloud/datastream_v1alpha1/services/datastream/transports/__init__.py +36 -0
  32. google/cloud/datastream_v1alpha1/services/datastream/transports/base.py +467 -0
  33. google/cloud/datastream_v1alpha1/services/datastream/transports/grpc.py +942 -0
  34. google/cloud/datastream_v1alpha1/services/datastream/transports/grpc_asyncio.py +1078 -0
  35. google/cloud/datastream_v1alpha1/services/datastream/transports/rest.py +4770 -0
  36. google/cloud/datastream_v1alpha1/services/datastream/transports/rest_base.py +1152 -0
  37. google/cloud/datastream_v1alpha1/types/__init__.py +148 -0
  38. google/cloud/datastream_v1alpha1/types/datastream.py +1230 -0
  39. google/cloud/datastream_v1alpha1/types/datastream_resources.py +1416 -0
  40. google_cloud_datastream-1.13.2.dist-info/LICENSE +202 -0
  41. google_cloud_datastream-1.13.2.dist-info/METADATA +229 -0
  42. google_cloud_datastream-1.13.2.dist-info/RECORD +44 -0
  43. google_cloud_datastream-1.13.2.dist-info/WHEEL +5 -0
  44. google_cloud_datastream-1.13.2.dist-info/top_level.txt +1 -0
@@ -0,0 +1,2986 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright 2024 Google LLC
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+ from __future__ import annotations
17
+
18
+ from typing import MutableMapping, MutableSequence
19
+
20
+ from google.protobuf import duration_pb2 # type: ignore
21
+ from google.protobuf import timestamp_pb2 # type: ignore
22
+ import proto # type: ignore
23
+
24
+ __protobuf__ = proto.module(
25
+ package="google.cloud.datastream.v1",
26
+ manifest={
27
+ "OracleProfile",
28
+ "OracleAsmConfig",
29
+ "MysqlProfile",
30
+ "PostgresqlProfile",
31
+ "SqlServerProfile",
32
+ "GcsProfile",
33
+ "BigQueryProfile",
34
+ "StaticServiceIpConnectivity",
35
+ "ForwardSshTunnelConnectivity",
36
+ "VpcPeeringConfig",
37
+ "PrivateConnection",
38
+ "PrivateConnectivity",
39
+ "Route",
40
+ "MysqlSslConfig",
41
+ "OracleSslConfig",
42
+ "PostgresqlSslConfig",
43
+ "ConnectionProfile",
44
+ "OracleColumn",
45
+ "OracleTable",
46
+ "OracleSchema",
47
+ "OracleRdbms",
48
+ "OracleSourceConfig",
49
+ "PostgresqlColumn",
50
+ "PostgresqlTable",
51
+ "PostgresqlSchema",
52
+ "PostgresqlRdbms",
53
+ "PostgresqlSourceConfig",
54
+ "SqlServerColumn",
55
+ "SqlServerTable",
56
+ "SqlServerSchema",
57
+ "SqlServerRdbms",
58
+ "SqlServerSourceConfig",
59
+ "SqlServerTransactionLogs",
60
+ "SqlServerChangeTables",
61
+ "MysqlColumn",
62
+ "MysqlTable",
63
+ "MysqlDatabase",
64
+ "MysqlRdbms",
65
+ "MysqlSourceConfig",
66
+ "SourceConfig",
67
+ "AvroFileFormat",
68
+ "JsonFileFormat",
69
+ "GcsDestinationConfig",
70
+ "BigQueryDestinationConfig",
71
+ "DestinationConfig",
72
+ "Stream",
73
+ "StreamObject",
74
+ "SourceObjectIdentifier",
75
+ "BackfillJob",
76
+ "Error",
77
+ "ValidationResult",
78
+ "Validation",
79
+ "ValidationMessage",
80
+ "CdcStrategy",
81
+ "SqlServerLsnPosition",
82
+ "OracleScnPosition",
83
+ "MysqlLogPosition",
84
+ },
85
+ )
86
+
87
+
88
+ class OracleProfile(proto.Message):
89
+ r"""Oracle database profile.
90
+ Next ID: 10.
91
+
92
+ Attributes:
93
+ hostname (str):
94
+ Required. Hostname for the Oracle connection.
95
+ port (int):
96
+ Port for the Oracle connection, default value
97
+ is 1521.
98
+ username (str):
99
+ Required. Username for the Oracle connection.
100
+ password (str):
101
+ Optional. Password for the Oracle connection. Mutually
102
+ exclusive with the ``secret_manager_stored_password`` field.
103
+ database_service (str):
104
+ Required. Database for the Oracle connection.
105
+ connection_attributes (MutableMapping[str, str]):
106
+ Connection string attributes
107
+ oracle_ssl_config (google.cloud.datastream_v1.types.OracleSslConfig):
108
+ Optional. SSL configuration for the Oracle
109
+ connection.
110
+ oracle_asm_config (google.cloud.datastream_v1.types.OracleAsmConfig):
111
+ Optional. Configuration for Oracle ASM
112
+ connection.
113
+ secret_manager_stored_password (str):
114
+ Optional. A reference to a Secret Manager resource name
115
+ storing the Oracle connection password. Mutually exclusive
116
+ with the ``password`` field.
117
+ """
118
+
119
+ hostname: str = proto.Field(
120
+ proto.STRING,
121
+ number=1,
122
+ )
123
+ port: int = proto.Field(
124
+ proto.INT32,
125
+ number=2,
126
+ )
127
+ username: str = proto.Field(
128
+ proto.STRING,
129
+ number=3,
130
+ )
131
+ password: str = proto.Field(
132
+ proto.STRING,
133
+ number=4,
134
+ )
135
+ database_service: str = proto.Field(
136
+ proto.STRING,
137
+ number=5,
138
+ )
139
+ connection_attributes: MutableMapping[str, str] = proto.MapField(
140
+ proto.STRING,
141
+ proto.STRING,
142
+ number=6,
143
+ )
144
+ oracle_ssl_config: "OracleSslConfig" = proto.Field(
145
+ proto.MESSAGE,
146
+ number=7,
147
+ message="OracleSslConfig",
148
+ )
149
+ oracle_asm_config: "OracleAsmConfig" = proto.Field(
150
+ proto.MESSAGE,
151
+ number=8,
152
+ message="OracleAsmConfig",
153
+ )
154
+ secret_manager_stored_password: str = proto.Field(
155
+ proto.STRING,
156
+ number=9,
157
+ )
158
+
159
+
160
+ class OracleAsmConfig(proto.Message):
161
+ r"""Configuration for Oracle Automatic Storage Management (ASM)
162
+ connection. .
163
+
164
+ Attributes:
165
+ hostname (str):
166
+ Required. Hostname for the Oracle ASM
167
+ connection.
168
+ port (int):
169
+ Required. Port for the Oracle ASM connection.
170
+ username (str):
171
+ Required. Username for the Oracle ASM
172
+ connection.
173
+ password (str):
174
+ Optional. Password for the Oracle ASM
175
+ connection.
176
+ asm_service (str):
177
+ Required. ASM service name for the Oracle ASM
178
+ connection.
179
+ connection_attributes (MutableMapping[str, str]):
180
+ Optional. Connection string attributes
181
+ oracle_ssl_config (google.cloud.datastream_v1.types.OracleSslConfig):
182
+ Optional. SSL configuration for the Oracle
183
+ connection.
184
+ """
185
+
186
+ hostname: str = proto.Field(
187
+ proto.STRING,
188
+ number=1,
189
+ )
190
+ port: int = proto.Field(
191
+ proto.INT32,
192
+ number=2,
193
+ )
194
+ username: str = proto.Field(
195
+ proto.STRING,
196
+ number=3,
197
+ )
198
+ password: str = proto.Field(
199
+ proto.STRING,
200
+ number=4,
201
+ )
202
+ asm_service: str = proto.Field(
203
+ proto.STRING,
204
+ number=5,
205
+ )
206
+ connection_attributes: MutableMapping[str, str] = proto.MapField(
207
+ proto.STRING,
208
+ proto.STRING,
209
+ number=6,
210
+ )
211
+ oracle_ssl_config: "OracleSslConfig" = proto.Field(
212
+ proto.MESSAGE,
213
+ number=7,
214
+ message="OracleSslConfig",
215
+ )
216
+
217
+
218
+ class MysqlProfile(proto.Message):
219
+ r"""MySQL database profile.
220
+ Next ID: 7.
221
+
222
+ Attributes:
223
+ hostname (str):
224
+ Required. Hostname for the MySQL connection.
225
+ port (int):
226
+ Port for the MySQL connection, default value
227
+ is 3306.
228
+ username (str):
229
+ Required. Username for the MySQL connection.
230
+ password (str):
231
+ Optional. Input only. Password for the MySQL connection.
232
+ Mutually exclusive with the
233
+ ``secret_manager_stored_password`` field.
234
+ ssl_config (google.cloud.datastream_v1.types.MysqlSslConfig):
235
+ SSL configuration for the MySQL connection.
236
+ """
237
+
238
+ hostname: str = proto.Field(
239
+ proto.STRING,
240
+ number=1,
241
+ )
242
+ port: int = proto.Field(
243
+ proto.INT32,
244
+ number=2,
245
+ )
246
+ username: str = proto.Field(
247
+ proto.STRING,
248
+ number=3,
249
+ )
250
+ password: str = proto.Field(
251
+ proto.STRING,
252
+ number=4,
253
+ )
254
+ ssl_config: "MysqlSslConfig" = proto.Field(
255
+ proto.MESSAGE,
256
+ number=5,
257
+ message="MysqlSslConfig",
258
+ )
259
+
260
+
261
+ class PostgresqlProfile(proto.Message):
262
+ r"""PostgreSQL database profile.
263
+
264
+ Attributes:
265
+ hostname (str):
266
+ Required. Hostname for the PostgreSQL
267
+ connection.
268
+ port (int):
269
+ Port for the PostgreSQL connection, default
270
+ value is 5432.
271
+ username (str):
272
+ Required. Username for the PostgreSQL
273
+ connection.
274
+ password (str):
275
+ Optional. Password for the PostgreSQL connection. Mutually
276
+ exclusive with the ``secret_manager_stored_password`` field.
277
+ database (str):
278
+ Required. Database for the PostgreSQL
279
+ connection.
280
+ ssl_config (google.cloud.datastream_v1.types.PostgresqlSslConfig):
281
+ Optional. SSL configuration for the PostgreSQL connection.
282
+ In case PostgresqlSslConfig is not set, the connection will
283
+ use the default SSL mode, which is ``prefer`` (i.e. this
284
+ mode will only use encryption if enabled from database side,
285
+ otherwise will use unencrypted communication)
286
+ """
287
+
288
+ hostname: str = proto.Field(
289
+ proto.STRING,
290
+ number=1,
291
+ )
292
+ port: int = proto.Field(
293
+ proto.INT32,
294
+ number=2,
295
+ )
296
+ username: str = proto.Field(
297
+ proto.STRING,
298
+ number=3,
299
+ )
300
+ password: str = proto.Field(
301
+ proto.STRING,
302
+ number=4,
303
+ )
304
+ database: str = proto.Field(
305
+ proto.STRING,
306
+ number=5,
307
+ )
308
+ ssl_config: "PostgresqlSslConfig" = proto.Field(
309
+ proto.MESSAGE,
310
+ number=7,
311
+ message="PostgresqlSslConfig",
312
+ )
313
+
314
+
315
+ class SqlServerProfile(proto.Message):
316
+ r"""SQLServer database profile.
317
+ Next ID: 8.
318
+
319
+ Attributes:
320
+ hostname (str):
321
+ Required. Hostname for the SQLServer
322
+ connection.
323
+ port (int):
324
+ Port for the SQLServer connection, default
325
+ value is 1433.
326
+ username (str):
327
+ Required. Username for the SQLServer
328
+ connection.
329
+ password (str):
330
+ Optional. Password for the SQLServer connection. Mutually
331
+ exclusive with the ``secret_manager_stored_password`` field.
332
+ database (str):
333
+ Required. Database for the SQLServer
334
+ connection.
335
+ """
336
+
337
+ hostname: str = proto.Field(
338
+ proto.STRING,
339
+ number=1,
340
+ )
341
+ port: int = proto.Field(
342
+ proto.INT32,
343
+ number=2,
344
+ )
345
+ username: str = proto.Field(
346
+ proto.STRING,
347
+ number=3,
348
+ )
349
+ password: str = proto.Field(
350
+ proto.STRING,
351
+ number=4,
352
+ )
353
+ database: str = proto.Field(
354
+ proto.STRING,
355
+ number=5,
356
+ )
357
+
358
+
359
+ class GcsProfile(proto.Message):
360
+ r"""Cloud Storage bucket profile.
361
+
362
+ Attributes:
363
+ bucket (str):
364
+ Required. The Cloud Storage bucket name.
365
+ root_path (str):
366
+ The root path inside the Cloud Storage
367
+ bucket.
368
+ """
369
+
370
+ bucket: str = proto.Field(
371
+ proto.STRING,
372
+ number=1,
373
+ )
374
+ root_path: str = proto.Field(
375
+ proto.STRING,
376
+ number=2,
377
+ )
378
+
379
+
380
+ class BigQueryProfile(proto.Message):
381
+ r"""BigQuery warehouse profile."""
382
+
383
+
384
+ class StaticServiceIpConnectivity(proto.Message):
385
+ r"""Static IP address connectivity. Used when the source database
386
+ is configured to allow incoming connections from the Datastream
387
+ public IP addresses for the region specified in the connection
388
+ profile.
389
+
390
+ """
391
+
392
+
393
+ class ForwardSshTunnelConnectivity(proto.Message):
394
+ r"""Forward SSH Tunnel connectivity.
395
+
396
+ This message has `oneof`_ fields (mutually exclusive fields).
397
+ For each oneof, at most one member field can be set at the same time.
398
+ Setting any member of the oneof automatically clears all other
399
+ members.
400
+
401
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
402
+
403
+ Attributes:
404
+ hostname (str):
405
+ Required. Hostname for the SSH tunnel.
406
+ username (str):
407
+ Required. Username for the SSH tunnel.
408
+ port (int):
409
+ Port for the SSH tunnel, default value is 22.
410
+ password (str):
411
+ Input only. SSH password.
412
+
413
+ This field is a member of `oneof`_ ``authentication_method``.
414
+ private_key (str):
415
+ Input only. SSH private key.
416
+
417
+ This field is a member of `oneof`_ ``authentication_method``.
418
+ """
419
+
420
+ hostname: str = proto.Field(
421
+ proto.STRING,
422
+ number=1,
423
+ )
424
+ username: str = proto.Field(
425
+ proto.STRING,
426
+ number=2,
427
+ )
428
+ port: int = proto.Field(
429
+ proto.INT32,
430
+ number=3,
431
+ )
432
+ password: str = proto.Field(
433
+ proto.STRING,
434
+ number=100,
435
+ oneof="authentication_method",
436
+ )
437
+ private_key: str = proto.Field(
438
+ proto.STRING,
439
+ number=101,
440
+ oneof="authentication_method",
441
+ )
442
+
443
+
444
+ class VpcPeeringConfig(proto.Message):
445
+ r"""The VPC Peering configuration is used to create VPC peering
446
+ between Datastream and the consumer's VPC.
447
+
448
+ Attributes:
449
+ vpc (str):
450
+ Required. Fully qualified name of the VPC that Datastream
451
+ will peer to. Format:
452
+ ``projects/{project}/global/{networks}/{name}``
453
+ subnet (str):
454
+ Required. A free subnet for peering. (CIDR of
455
+ /29)
456
+ """
457
+
458
+ vpc: str = proto.Field(
459
+ proto.STRING,
460
+ number=1,
461
+ )
462
+ subnet: str = proto.Field(
463
+ proto.STRING,
464
+ number=2,
465
+ )
466
+
467
+
468
+ class PrivateConnection(proto.Message):
469
+ r"""The PrivateConnection resource is used to establish private
470
+ connectivity between Datastream and a customer's network.
471
+
472
+ Attributes:
473
+ name (str):
474
+ Output only. Identifier. The resource's name.
475
+ create_time (google.protobuf.timestamp_pb2.Timestamp):
476
+ Output only. The create time of the resource.
477
+ update_time (google.protobuf.timestamp_pb2.Timestamp):
478
+ Output only. The update time of the resource.
479
+ labels (MutableMapping[str, str]):
480
+ Labels.
481
+ display_name (str):
482
+ Required. Display name.
483
+ state (google.cloud.datastream_v1.types.PrivateConnection.State):
484
+ Output only. The state of the Private
485
+ Connection.
486
+ error (google.cloud.datastream_v1.types.Error):
487
+ Output only. In case of error, the details of
488
+ the error in a user-friendly format.
489
+ vpc_peering_config (google.cloud.datastream_v1.types.VpcPeeringConfig):
490
+ VPC Peering Config.
491
+ """
492
+
493
+ class State(proto.Enum):
494
+ r"""Private Connection state.
495
+
496
+ Values:
497
+ STATE_UNSPECIFIED (0):
498
+ Unspecified state.
499
+ CREATING (1):
500
+ The private connection is in creation state -
501
+ creating resources.
502
+ CREATED (2):
503
+ The private connection has been created with
504
+ all of its resources.
505
+ FAILED (3):
506
+ The private connection creation has failed.
507
+ DELETING (4):
508
+ The private connection is being deleted.
509
+ FAILED_TO_DELETE (5):
510
+ Delete request has failed, resource is in
511
+ invalid state.
512
+ """
513
+ STATE_UNSPECIFIED = 0
514
+ CREATING = 1
515
+ CREATED = 2
516
+ FAILED = 3
517
+ DELETING = 4
518
+ FAILED_TO_DELETE = 5
519
+
520
+ name: str = proto.Field(
521
+ proto.STRING,
522
+ number=1,
523
+ )
524
+ create_time: timestamp_pb2.Timestamp = proto.Field(
525
+ proto.MESSAGE,
526
+ number=2,
527
+ message=timestamp_pb2.Timestamp,
528
+ )
529
+ update_time: timestamp_pb2.Timestamp = proto.Field(
530
+ proto.MESSAGE,
531
+ number=3,
532
+ message=timestamp_pb2.Timestamp,
533
+ )
534
+ labels: MutableMapping[str, str] = proto.MapField(
535
+ proto.STRING,
536
+ proto.STRING,
537
+ number=4,
538
+ )
539
+ display_name: str = proto.Field(
540
+ proto.STRING,
541
+ number=5,
542
+ )
543
+ state: State = proto.Field(
544
+ proto.ENUM,
545
+ number=6,
546
+ enum=State,
547
+ )
548
+ error: "Error" = proto.Field(
549
+ proto.MESSAGE,
550
+ number=7,
551
+ message="Error",
552
+ )
553
+ vpc_peering_config: "VpcPeeringConfig" = proto.Field(
554
+ proto.MESSAGE,
555
+ number=100,
556
+ message="VpcPeeringConfig",
557
+ )
558
+
559
+
560
+ class PrivateConnectivity(proto.Message):
561
+ r"""Private Connectivity
562
+
563
+ Attributes:
564
+ private_connection (str):
565
+ Required. A reference to a private connection resource.
566
+ Format:
567
+ ``projects/{project}/locations/{location}/privateConnections/{name}``
568
+ """
569
+
570
+ private_connection: str = proto.Field(
571
+ proto.STRING,
572
+ number=1,
573
+ )
574
+
575
+
576
+ class Route(proto.Message):
577
+ r"""The route resource is the child of the private connection
578
+ resource, used for defining a route for a private connection.
579
+
580
+ Attributes:
581
+ name (str):
582
+ Output only. Identifier. The resource's name.
583
+ create_time (google.protobuf.timestamp_pb2.Timestamp):
584
+ Output only. The create time of the resource.
585
+ update_time (google.protobuf.timestamp_pb2.Timestamp):
586
+ Output only. The update time of the resource.
587
+ labels (MutableMapping[str, str]):
588
+ Labels.
589
+ display_name (str):
590
+ Required. Display name.
591
+ destination_address (str):
592
+ Required. Destination address for connection
593
+ destination_port (int):
594
+ Destination port for connection
595
+ """
596
+
597
+ name: str = proto.Field(
598
+ proto.STRING,
599
+ number=1,
600
+ )
601
+ create_time: timestamp_pb2.Timestamp = proto.Field(
602
+ proto.MESSAGE,
603
+ number=2,
604
+ message=timestamp_pb2.Timestamp,
605
+ )
606
+ update_time: timestamp_pb2.Timestamp = proto.Field(
607
+ proto.MESSAGE,
608
+ number=3,
609
+ message=timestamp_pb2.Timestamp,
610
+ )
611
+ labels: MutableMapping[str, str] = proto.MapField(
612
+ proto.STRING,
613
+ proto.STRING,
614
+ number=4,
615
+ )
616
+ display_name: str = proto.Field(
617
+ proto.STRING,
618
+ number=5,
619
+ )
620
+ destination_address: str = proto.Field(
621
+ proto.STRING,
622
+ number=6,
623
+ )
624
+ destination_port: int = proto.Field(
625
+ proto.INT32,
626
+ number=7,
627
+ )
628
+
629
+
630
+ class MysqlSslConfig(proto.Message):
631
+ r"""MySQL SSL configuration information.
632
+
633
+ Attributes:
634
+ client_key (str):
635
+ Input only. PEM-encoded private key associated with the
636
+ Client Certificate. If this field is used then the
637
+ 'client_certificate' and the 'ca_certificate' fields are
638
+ mandatory.
639
+ client_key_set (bool):
640
+ Output only. Indicates whether the client_key field is set.
641
+ client_certificate (str):
642
+ Input only. PEM-encoded certificate that will be used by the
643
+ replica to authenticate against the source database server.
644
+ If this field is used then the 'client_key' and the
645
+ 'ca_certificate' fields are mandatory.
646
+ client_certificate_set (bool):
647
+ Output only. Indicates whether the client_certificate field
648
+ is set.
649
+ ca_certificate (str):
650
+ Input only. PEM-encoded certificate of the CA
651
+ that signed the source database server's
652
+ certificate.
653
+ ca_certificate_set (bool):
654
+ Output only. Indicates whether the ca_certificate field is
655
+ set.
656
+ """
657
+
658
+ client_key: str = proto.Field(
659
+ proto.STRING,
660
+ number=1,
661
+ )
662
+ client_key_set: bool = proto.Field(
663
+ proto.BOOL,
664
+ number=2,
665
+ )
666
+ client_certificate: str = proto.Field(
667
+ proto.STRING,
668
+ number=3,
669
+ )
670
+ client_certificate_set: bool = proto.Field(
671
+ proto.BOOL,
672
+ number=4,
673
+ )
674
+ ca_certificate: str = proto.Field(
675
+ proto.STRING,
676
+ number=5,
677
+ )
678
+ ca_certificate_set: bool = proto.Field(
679
+ proto.BOOL,
680
+ number=6,
681
+ )
682
+
683
+
684
+ class OracleSslConfig(proto.Message):
685
+ r"""Oracle SSL configuration information.
686
+
687
+ Attributes:
688
+ ca_certificate (str):
689
+ Input only. PEM-encoded certificate of the CA
690
+ that signed the source database server's
691
+ certificate.
692
+ ca_certificate_set (bool):
693
+ Output only. Indicates whether the ca_certificate field has
694
+ been set for this Connection-Profile.
695
+ """
696
+
697
+ ca_certificate: str = proto.Field(
698
+ proto.STRING,
699
+ number=1,
700
+ )
701
+ ca_certificate_set: bool = proto.Field(
702
+ proto.BOOL,
703
+ number=2,
704
+ )
705
+
706
+
707
+ class PostgresqlSslConfig(proto.Message):
708
+ r"""PostgreSQL SSL configuration information.
709
+
710
+ This message has `oneof`_ fields (mutually exclusive fields).
711
+ For each oneof, at most one member field can be set at the same time.
712
+ Setting any member of the oneof automatically clears all other
713
+ members.
714
+
715
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
716
+
717
+ Attributes:
718
+ server_verification (google.cloud.datastream_v1.types.PostgresqlSslConfig.ServerVerification):
719
+ If this field is set, the communication will
720
+ be encrypted with TLS encryption and the server
721
+ identity will be authenticated.
722
+
723
+ This field is a member of `oneof`_ ``encryption_setting``.
724
+ server_and_client_verification (google.cloud.datastream_v1.types.PostgresqlSslConfig.ServerAndClientVerification):
725
+ If this field is set, the communication will
726
+ be encrypted with TLS encryption and both the
727
+ server identity and the client identity will be
728
+ authenticated.
729
+
730
+ This field is a member of `oneof`_ ``encryption_setting``.
731
+ """
732
+
733
+ class ServerVerification(proto.Message):
734
+ r"""Message represents the option where Datastream will enforce the
735
+ encryption and authenticate the server identity. ca_certificate must
736
+ be set if user selects this option.
737
+
738
+ Attributes:
739
+ ca_certificate (str):
740
+ Required. Input only. PEM-encoded server root
741
+ CA certificate.
742
+ """
743
+
744
+ ca_certificate: str = proto.Field(
745
+ proto.STRING,
746
+ number=1,
747
+ )
748
+
749
+ class ServerAndClientVerification(proto.Message):
750
+ r"""Message represents the option where Datastream will enforce the
751
+ encryption and authenticate the server identity as well as the
752
+ client identity. ca_certificate, client_certificate and client_key
753
+ must be set if user selects this option.
754
+
755
+ Attributes:
756
+ client_certificate (str):
757
+ Required. Input only. PEM-encoded certificate
758
+ used by the source database to authenticate the
759
+ client identity (i.e., the Datastream's
760
+ identity). This certificate is signed by either
761
+ a root certificate trusted by the server or one
762
+ or more intermediate certificates (which is
763
+ stored with the leaf certificate) to link the
764
+ this certificate to the trusted root
765
+ certificate.
766
+ client_key (str):
767
+ Required. Input only. PEM-encoded private key
768
+ associated with the client certificate. This
769
+ value will be used during the SSL/TLS handshake,
770
+ allowing the PostgreSQL server to authenticate
771
+ the client's identity, i.e. identity of the
772
+ Datastream.
773
+ ca_certificate (str):
774
+ Required. Input only. PEM-encoded server root
775
+ CA certificate.
776
+ """
777
+
778
+ client_certificate: str = proto.Field(
779
+ proto.STRING,
780
+ number=1,
781
+ )
782
+ client_key: str = proto.Field(
783
+ proto.STRING,
784
+ number=2,
785
+ )
786
+ ca_certificate: str = proto.Field(
787
+ proto.STRING,
788
+ number=3,
789
+ )
790
+
791
+ server_verification: ServerVerification = proto.Field(
792
+ proto.MESSAGE,
793
+ number=1,
794
+ oneof="encryption_setting",
795
+ message=ServerVerification,
796
+ )
797
+ server_and_client_verification: ServerAndClientVerification = proto.Field(
798
+ proto.MESSAGE,
799
+ number=2,
800
+ oneof="encryption_setting",
801
+ message=ServerAndClientVerification,
802
+ )
803
+
804
+
805
+ class ConnectionProfile(proto.Message):
806
+ r"""A set of reusable connection configurations to be used as a
807
+ source or destination for a stream.
808
+
809
+ This message has `oneof`_ fields (mutually exclusive fields).
810
+ For each oneof, at most one member field can be set at the same time.
811
+ Setting any member of the oneof automatically clears all other
812
+ members.
813
+
814
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
815
+
816
+ Attributes:
817
+ name (str):
818
+ Output only. Identifier. The resource's name.
819
+ create_time (google.protobuf.timestamp_pb2.Timestamp):
820
+ Output only. The create time of the resource.
821
+ update_time (google.protobuf.timestamp_pb2.Timestamp):
822
+ Output only. The update time of the resource.
823
+ labels (MutableMapping[str, str]):
824
+ Labels.
825
+ display_name (str):
826
+ Required. Display name.
827
+ oracle_profile (google.cloud.datastream_v1.types.OracleProfile):
828
+ Oracle ConnectionProfile configuration.
829
+
830
+ This field is a member of `oneof`_ ``profile``.
831
+ gcs_profile (google.cloud.datastream_v1.types.GcsProfile):
832
+ Cloud Storage ConnectionProfile
833
+ configuration.
834
+
835
+ This field is a member of `oneof`_ ``profile``.
836
+ mysql_profile (google.cloud.datastream_v1.types.MysqlProfile):
837
+ MySQL ConnectionProfile configuration.
838
+
839
+ This field is a member of `oneof`_ ``profile``.
840
+ bigquery_profile (google.cloud.datastream_v1.types.BigQueryProfile):
841
+ BigQuery Connection Profile configuration.
842
+
843
+ This field is a member of `oneof`_ ``profile``.
844
+ postgresql_profile (google.cloud.datastream_v1.types.PostgresqlProfile):
845
+ PostgreSQL Connection Profile configuration.
846
+
847
+ This field is a member of `oneof`_ ``profile``.
848
+ sql_server_profile (google.cloud.datastream_v1.types.SqlServerProfile):
849
+ SQLServer Connection Profile configuration.
850
+
851
+ This field is a member of `oneof`_ ``profile``.
852
+ static_service_ip_connectivity (google.cloud.datastream_v1.types.StaticServiceIpConnectivity):
853
+ Static Service IP connectivity.
854
+
855
+ This field is a member of `oneof`_ ``connectivity``.
856
+ forward_ssh_connectivity (google.cloud.datastream_v1.types.ForwardSshTunnelConnectivity):
857
+ Forward SSH tunnel connectivity.
858
+
859
+ This field is a member of `oneof`_ ``connectivity``.
860
+ private_connectivity (google.cloud.datastream_v1.types.PrivateConnectivity):
861
+ Private connectivity.
862
+
863
+ This field is a member of `oneof`_ ``connectivity``.
864
+ """
865
+
866
+ name: str = proto.Field(
867
+ proto.STRING,
868
+ number=1,
869
+ )
870
+ create_time: timestamp_pb2.Timestamp = proto.Field(
871
+ proto.MESSAGE,
872
+ number=2,
873
+ message=timestamp_pb2.Timestamp,
874
+ )
875
+ update_time: timestamp_pb2.Timestamp = proto.Field(
876
+ proto.MESSAGE,
877
+ number=3,
878
+ message=timestamp_pb2.Timestamp,
879
+ )
880
+ labels: MutableMapping[str, str] = proto.MapField(
881
+ proto.STRING,
882
+ proto.STRING,
883
+ number=4,
884
+ )
885
+ display_name: str = proto.Field(
886
+ proto.STRING,
887
+ number=5,
888
+ )
889
+ oracle_profile: "OracleProfile" = proto.Field(
890
+ proto.MESSAGE,
891
+ number=100,
892
+ oneof="profile",
893
+ message="OracleProfile",
894
+ )
895
+ gcs_profile: "GcsProfile" = proto.Field(
896
+ proto.MESSAGE,
897
+ number=101,
898
+ oneof="profile",
899
+ message="GcsProfile",
900
+ )
901
+ mysql_profile: "MysqlProfile" = proto.Field(
902
+ proto.MESSAGE,
903
+ number=102,
904
+ oneof="profile",
905
+ message="MysqlProfile",
906
+ )
907
+ bigquery_profile: "BigQueryProfile" = proto.Field(
908
+ proto.MESSAGE,
909
+ number=103,
910
+ oneof="profile",
911
+ message="BigQueryProfile",
912
+ )
913
+ postgresql_profile: "PostgresqlProfile" = proto.Field(
914
+ proto.MESSAGE,
915
+ number=104,
916
+ oneof="profile",
917
+ message="PostgresqlProfile",
918
+ )
919
+ sql_server_profile: "SqlServerProfile" = proto.Field(
920
+ proto.MESSAGE,
921
+ number=105,
922
+ oneof="profile",
923
+ message="SqlServerProfile",
924
+ )
925
+ static_service_ip_connectivity: "StaticServiceIpConnectivity" = proto.Field(
926
+ proto.MESSAGE,
927
+ number=200,
928
+ oneof="connectivity",
929
+ message="StaticServiceIpConnectivity",
930
+ )
931
+ forward_ssh_connectivity: "ForwardSshTunnelConnectivity" = proto.Field(
932
+ proto.MESSAGE,
933
+ number=201,
934
+ oneof="connectivity",
935
+ message="ForwardSshTunnelConnectivity",
936
+ )
937
+ private_connectivity: "PrivateConnectivity" = proto.Field(
938
+ proto.MESSAGE,
939
+ number=202,
940
+ oneof="connectivity",
941
+ message="PrivateConnectivity",
942
+ )
943
+
944
+
945
+ class OracleColumn(proto.Message):
946
+ r"""Oracle Column.
947
+
948
+ Attributes:
949
+ column (str):
950
+ Column name.
951
+ data_type (str):
952
+ The Oracle data type.
953
+ length (int):
954
+ Column length.
955
+ precision (int):
956
+ Column precision.
957
+ scale (int):
958
+ Column scale.
959
+ encoding (str):
960
+ Column encoding.
961
+ primary_key (bool):
962
+ Whether or not the column represents a
963
+ primary key.
964
+ nullable (bool):
965
+ Whether or not the column can accept a null
966
+ value.
967
+ ordinal_position (int):
968
+ The ordinal position of the column in the
969
+ table.
970
+ """
971
+
972
+ column: str = proto.Field(
973
+ proto.STRING,
974
+ number=1,
975
+ )
976
+ data_type: str = proto.Field(
977
+ proto.STRING,
978
+ number=2,
979
+ )
980
+ length: int = proto.Field(
981
+ proto.INT32,
982
+ number=3,
983
+ )
984
+ precision: int = proto.Field(
985
+ proto.INT32,
986
+ number=4,
987
+ )
988
+ scale: int = proto.Field(
989
+ proto.INT32,
990
+ number=5,
991
+ )
992
+ encoding: str = proto.Field(
993
+ proto.STRING,
994
+ number=6,
995
+ )
996
+ primary_key: bool = proto.Field(
997
+ proto.BOOL,
998
+ number=7,
999
+ )
1000
+ nullable: bool = proto.Field(
1001
+ proto.BOOL,
1002
+ number=8,
1003
+ )
1004
+ ordinal_position: int = proto.Field(
1005
+ proto.INT32,
1006
+ number=9,
1007
+ )
1008
+
1009
+
1010
+ class OracleTable(proto.Message):
1011
+ r"""Oracle table.
1012
+
1013
+ Attributes:
1014
+ table (str):
1015
+ Table name.
1016
+ oracle_columns (MutableSequence[google.cloud.datastream_v1.types.OracleColumn]):
1017
+ Oracle columns in the schema.
1018
+ When unspecified as part of include/exclude
1019
+ objects, includes/excludes everything.
1020
+ """
1021
+
1022
+ table: str = proto.Field(
1023
+ proto.STRING,
1024
+ number=1,
1025
+ )
1026
+ oracle_columns: MutableSequence["OracleColumn"] = proto.RepeatedField(
1027
+ proto.MESSAGE,
1028
+ number=2,
1029
+ message="OracleColumn",
1030
+ )
1031
+
1032
+
1033
+ class OracleSchema(proto.Message):
1034
+ r"""Oracle schema.
1035
+
1036
+ Attributes:
1037
+ schema (str):
1038
+ Schema name.
1039
+ oracle_tables (MutableSequence[google.cloud.datastream_v1.types.OracleTable]):
1040
+ Tables in the schema.
1041
+ """
1042
+
1043
+ schema: str = proto.Field(
1044
+ proto.STRING,
1045
+ number=1,
1046
+ )
1047
+ oracle_tables: MutableSequence["OracleTable"] = proto.RepeatedField(
1048
+ proto.MESSAGE,
1049
+ number=2,
1050
+ message="OracleTable",
1051
+ )
1052
+
1053
+
1054
+ class OracleRdbms(proto.Message):
1055
+ r"""Oracle database structure.
1056
+
1057
+ Attributes:
1058
+ oracle_schemas (MutableSequence[google.cloud.datastream_v1.types.OracleSchema]):
1059
+ Oracle schemas/databases in the database
1060
+ server.
1061
+ """
1062
+
1063
+ oracle_schemas: MutableSequence["OracleSchema"] = proto.RepeatedField(
1064
+ proto.MESSAGE,
1065
+ number=1,
1066
+ message="OracleSchema",
1067
+ )
1068
+
1069
+
1070
+ class OracleSourceConfig(proto.Message):
1071
+ r"""Oracle data source configuration
1072
+
1073
+ This message has `oneof`_ fields (mutually exclusive fields).
1074
+ For each oneof, at most one member field can be set at the same time.
1075
+ Setting any member of the oneof automatically clears all other
1076
+ members.
1077
+
1078
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
1079
+
1080
+ Attributes:
1081
+ include_objects (google.cloud.datastream_v1.types.OracleRdbms):
1082
+ Oracle objects to include in the stream.
1083
+ exclude_objects (google.cloud.datastream_v1.types.OracleRdbms):
1084
+ Oracle objects to exclude from the stream.
1085
+ max_concurrent_cdc_tasks (int):
1086
+ Maximum number of concurrent CDC tasks. The
1087
+ number should be non-negative. If not set (or
1088
+ set to 0), the system's default value is used.
1089
+ max_concurrent_backfill_tasks (int):
1090
+ Maximum number of concurrent backfill tasks.
1091
+ The number should be non-negative. If not set
1092
+ (or set to 0), the system's default value is
1093
+ used.
1094
+ drop_large_objects (google.cloud.datastream_v1.types.OracleSourceConfig.DropLargeObjects):
1095
+ Drop large object values.
1096
+
1097
+ This field is a member of `oneof`_ ``large_objects_handling``.
1098
+ stream_large_objects (google.cloud.datastream_v1.types.OracleSourceConfig.StreamLargeObjects):
1099
+ Stream large object values.
1100
+
1101
+ This field is a member of `oneof`_ ``large_objects_handling``.
1102
+ log_miner (google.cloud.datastream_v1.types.OracleSourceConfig.LogMiner):
1103
+ Use LogMiner.
1104
+
1105
+ This field is a member of `oneof`_ ``cdc_method``.
1106
+ binary_log_parser (google.cloud.datastream_v1.types.OracleSourceConfig.BinaryLogParser):
1107
+ Use Binary Log Parser.
1108
+
1109
+ This field is a member of `oneof`_ ``cdc_method``.
1110
+ """
1111
+
1112
+ class DropLargeObjects(proto.Message):
1113
+ r"""Configuration to drop large object values."""
1114
+
1115
+ class StreamLargeObjects(proto.Message):
1116
+ r"""Configuration to stream large object values."""
1117
+
1118
+ class LogMiner(proto.Message):
1119
+ r"""Configuration to use LogMiner CDC method."""
1120
+
1121
+ class BinaryLogParser(proto.Message):
1122
+ r"""Configuration to use Binary Log Parser CDC technique.
1123
+
1124
+ This message has `oneof`_ fields (mutually exclusive fields).
1125
+ For each oneof, at most one member field can be set at the same time.
1126
+ Setting any member of the oneof automatically clears all other
1127
+ members.
1128
+
1129
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
1130
+
1131
+ Attributes:
1132
+ oracle_asm_log_file_access (google.cloud.datastream_v1.types.OracleSourceConfig.BinaryLogParser.OracleAsmLogFileAccess):
1133
+ Use Oracle ASM.
1134
+
1135
+ This field is a member of `oneof`_ ``log_file_access``.
1136
+ log_file_directories (google.cloud.datastream_v1.types.OracleSourceConfig.BinaryLogParser.LogFileDirectories):
1137
+ Use Oracle directories.
1138
+
1139
+ This field is a member of `oneof`_ ``log_file_access``.
1140
+ """
1141
+
1142
+ class OracleAsmLogFileAccess(proto.Message):
1143
+ r"""Configuration to use Oracle ASM to access the log files."""
1144
+
1145
+ class LogFileDirectories(proto.Message):
1146
+ r"""Configuration to specify the Oracle directories to access the
1147
+ log files.
1148
+
1149
+ Attributes:
1150
+ online_log_directory (str):
1151
+ Required. Oracle directory for online logs.
1152
+ archived_log_directory (str):
1153
+ Required. Oracle directory for archived logs.
1154
+ """
1155
+
1156
+ online_log_directory: str = proto.Field(
1157
+ proto.STRING,
1158
+ number=1,
1159
+ )
1160
+ archived_log_directory: str = proto.Field(
1161
+ proto.STRING,
1162
+ number=2,
1163
+ )
1164
+
1165
+ oracle_asm_log_file_access: "OracleSourceConfig.BinaryLogParser.OracleAsmLogFileAccess" = proto.Field(
1166
+ proto.MESSAGE,
1167
+ number=1,
1168
+ oneof="log_file_access",
1169
+ message="OracleSourceConfig.BinaryLogParser.OracleAsmLogFileAccess",
1170
+ )
1171
+ log_file_directories: "OracleSourceConfig.BinaryLogParser.LogFileDirectories" = proto.Field(
1172
+ proto.MESSAGE,
1173
+ number=2,
1174
+ oneof="log_file_access",
1175
+ message="OracleSourceConfig.BinaryLogParser.LogFileDirectories",
1176
+ )
1177
+
1178
+ include_objects: "OracleRdbms" = proto.Field(
1179
+ proto.MESSAGE,
1180
+ number=1,
1181
+ message="OracleRdbms",
1182
+ )
1183
+ exclude_objects: "OracleRdbms" = proto.Field(
1184
+ proto.MESSAGE,
1185
+ number=2,
1186
+ message="OracleRdbms",
1187
+ )
1188
+ max_concurrent_cdc_tasks: int = proto.Field(
1189
+ proto.INT32,
1190
+ number=3,
1191
+ )
1192
+ max_concurrent_backfill_tasks: int = proto.Field(
1193
+ proto.INT32,
1194
+ number=4,
1195
+ )
1196
+ drop_large_objects: DropLargeObjects = proto.Field(
1197
+ proto.MESSAGE,
1198
+ number=100,
1199
+ oneof="large_objects_handling",
1200
+ message=DropLargeObjects,
1201
+ )
1202
+ stream_large_objects: StreamLargeObjects = proto.Field(
1203
+ proto.MESSAGE,
1204
+ number=102,
1205
+ oneof="large_objects_handling",
1206
+ message=StreamLargeObjects,
1207
+ )
1208
+ log_miner: LogMiner = proto.Field(
1209
+ proto.MESSAGE,
1210
+ number=103,
1211
+ oneof="cdc_method",
1212
+ message=LogMiner,
1213
+ )
1214
+ binary_log_parser: BinaryLogParser = proto.Field(
1215
+ proto.MESSAGE,
1216
+ number=104,
1217
+ oneof="cdc_method",
1218
+ message=BinaryLogParser,
1219
+ )
1220
+
1221
+
1222
+ class PostgresqlColumn(proto.Message):
1223
+ r"""PostgreSQL Column.
1224
+
1225
+ Attributes:
1226
+ column (str):
1227
+ Column name.
1228
+ data_type (str):
1229
+ The PostgreSQL data type.
1230
+ length (int):
1231
+ Column length.
1232
+ precision (int):
1233
+ Column precision.
1234
+ scale (int):
1235
+ Column scale.
1236
+ primary_key (bool):
1237
+ Whether or not the column represents a
1238
+ primary key.
1239
+ nullable (bool):
1240
+ Whether or not the column can accept a null
1241
+ value.
1242
+ ordinal_position (int):
1243
+ The ordinal position of the column in the
1244
+ table.
1245
+ """
1246
+
1247
+ column: str = proto.Field(
1248
+ proto.STRING,
1249
+ number=1,
1250
+ )
1251
+ data_type: str = proto.Field(
1252
+ proto.STRING,
1253
+ number=2,
1254
+ )
1255
+ length: int = proto.Field(
1256
+ proto.INT32,
1257
+ number=3,
1258
+ )
1259
+ precision: int = proto.Field(
1260
+ proto.INT32,
1261
+ number=4,
1262
+ )
1263
+ scale: int = proto.Field(
1264
+ proto.INT32,
1265
+ number=5,
1266
+ )
1267
+ primary_key: bool = proto.Field(
1268
+ proto.BOOL,
1269
+ number=7,
1270
+ )
1271
+ nullable: bool = proto.Field(
1272
+ proto.BOOL,
1273
+ number=8,
1274
+ )
1275
+ ordinal_position: int = proto.Field(
1276
+ proto.INT32,
1277
+ number=9,
1278
+ )
1279
+
1280
+
1281
+ class PostgresqlTable(proto.Message):
1282
+ r"""PostgreSQL table.
1283
+
1284
+ Attributes:
1285
+ table (str):
1286
+ Table name.
1287
+ postgresql_columns (MutableSequence[google.cloud.datastream_v1.types.PostgresqlColumn]):
1288
+ PostgreSQL columns in the schema.
1289
+ When unspecified as part of include/exclude
1290
+ objects, includes/excludes everything.
1291
+ """
1292
+
1293
+ table: str = proto.Field(
1294
+ proto.STRING,
1295
+ number=1,
1296
+ )
1297
+ postgresql_columns: MutableSequence["PostgresqlColumn"] = proto.RepeatedField(
1298
+ proto.MESSAGE,
1299
+ number=2,
1300
+ message="PostgresqlColumn",
1301
+ )
1302
+
1303
+
1304
+ class PostgresqlSchema(proto.Message):
1305
+ r"""PostgreSQL schema.
1306
+
1307
+ Attributes:
1308
+ schema (str):
1309
+ Schema name.
1310
+ postgresql_tables (MutableSequence[google.cloud.datastream_v1.types.PostgresqlTable]):
1311
+ Tables in the schema.
1312
+ """
1313
+
1314
+ schema: str = proto.Field(
1315
+ proto.STRING,
1316
+ number=1,
1317
+ )
1318
+ postgresql_tables: MutableSequence["PostgresqlTable"] = proto.RepeatedField(
1319
+ proto.MESSAGE,
1320
+ number=2,
1321
+ message="PostgresqlTable",
1322
+ )
1323
+
1324
+
1325
+ class PostgresqlRdbms(proto.Message):
1326
+ r"""PostgreSQL database structure.
1327
+
1328
+ Attributes:
1329
+ postgresql_schemas (MutableSequence[google.cloud.datastream_v1.types.PostgresqlSchema]):
1330
+ PostgreSQL schemas in the database server.
1331
+ """
1332
+
1333
+ postgresql_schemas: MutableSequence["PostgresqlSchema"] = proto.RepeatedField(
1334
+ proto.MESSAGE,
1335
+ number=1,
1336
+ message="PostgresqlSchema",
1337
+ )
1338
+
1339
+
1340
+ class PostgresqlSourceConfig(proto.Message):
1341
+ r"""PostgreSQL data source configuration
1342
+
1343
+ Attributes:
1344
+ include_objects (google.cloud.datastream_v1.types.PostgresqlRdbms):
1345
+ PostgreSQL objects to include in the stream.
1346
+ exclude_objects (google.cloud.datastream_v1.types.PostgresqlRdbms):
1347
+ PostgreSQL objects to exclude from the
1348
+ stream.
1349
+ replication_slot (str):
1350
+ Required. Immutable. The name of the logical
1351
+ replication slot that's configured with the
1352
+ pgoutput plugin.
1353
+ publication (str):
1354
+ Required. The name of the publication that includes the set
1355
+ of all tables that are defined in the stream's
1356
+ include_objects.
1357
+ max_concurrent_backfill_tasks (int):
1358
+ Maximum number of concurrent backfill tasks.
1359
+ The number should be non negative. If not set
1360
+ (or set to 0), the system's default value will
1361
+ be used.
1362
+ """
1363
+
1364
+ include_objects: "PostgresqlRdbms" = proto.Field(
1365
+ proto.MESSAGE,
1366
+ number=1,
1367
+ message="PostgresqlRdbms",
1368
+ )
1369
+ exclude_objects: "PostgresqlRdbms" = proto.Field(
1370
+ proto.MESSAGE,
1371
+ number=2,
1372
+ message="PostgresqlRdbms",
1373
+ )
1374
+ replication_slot: str = proto.Field(
1375
+ proto.STRING,
1376
+ number=3,
1377
+ )
1378
+ publication: str = proto.Field(
1379
+ proto.STRING,
1380
+ number=4,
1381
+ )
1382
+ max_concurrent_backfill_tasks: int = proto.Field(
1383
+ proto.INT32,
1384
+ number=5,
1385
+ )
1386
+
1387
+
1388
+ class SqlServerColumn(proto.Message):
1389
+ r"""SQLServer Column.
1390
+
1391
+ Attributes:
1392
+ column (str):
1393
+ Column name.
1394
+ data_type (str):
1395
+ The SQLServer data type.
1396
+ length (int):
1397
+ Column length.
1398
+ precision (int):
1399
+ Column precision.
1400
+ scale (int):
1401
+ Column scale.
1402
+ primary_key (bool):
1403
+ Whether or not the column represents a
1404
+ primary key.
1405
+ nullable (bool):
1406
+ Whether or not the column can accept a null
1407
+ value.
1408
+ ordinal_position (int):
1409
+ The ordinal position of the column in the
1410
+ table.
1411
+ """
1412
+
1413
+ column: str = proto.Field(
1414
+ proto.STRING,
1415
+ number=1,
1416
+ )
1417
+ data_type: str = proto.Field(
1418
+ proto.STRING,
1419
+ number=2,
1420
+ )
1421
+ length: int = proto.Field(
1422
+ proto.INT32,
1423
+ number=3,
1424
+ )
1425
+ precision: int = proto.Field(
1426
+ proto.INT32,
1427
+ number=4,
1428
+ )
1429
+ scale: int = proto.Field(
1430
+ proto.INT32,
1431
+ number=5,
1432
+ )
1433
+ primary_key: bool = proto.Field(
1434
+ proto.BOOL,
1435
+ number=6,
1436
+ )
1437
+ nullable: bool = proto.Field(
1438
+ proto.BOOL,
1439
+ number=7,
1440
+ )
1441
+ ordinal_position: int = proto.Field(
1442
+ proto.INT32,
1443
+ number=8,
1444
+ )
1445
+
1446
+
1447
+ class SqlServerTable(proto.Message):
1448
+ r"""SQLServer table.
1449
+
1450
+ Attributes:
1451
+ table (str):
1452
+ Table name.
1453
+ columns (MutableSequence[google.cloud.datastream_v1.types.SqlServerColumn]):
1454
+ SQLServer columns in the schema.
1455
+ When unspecified as part of include/exclude
1456
+ objects, includes/excludes everything.
1457
+ """
1458
+
1459
+ table: str = proto.Field(
1460
+ proto.STRING,
1461
+ number=1,
1462
+ )
1463
+ columns: MutableSequence["SqlServerColumn"] = proto.RepeatedField(
1464
+ proto.MESSAGE,
1465
+ number=2,
1466
+ message="SqlServerColumn",
1467
+ )
1468
+
1469
+
1470
+ class SqlServerSchema(proto.Message):
1471
+ r"""SQLServer schema.
1472
+
1473
+ Attributes:
1474
+ schema (str):
1475
+ Schema name.
1476
+ tables (MutableSequence[google.cloud.datastream_v1.types.SqlServerTable]):
1477
+ Tables in the schema.
1478
+ """
1479
+
1480
+ schema: str = proto.Field(
1481
+ proto.STRING,
1482
+ number=1,
1483
+ )
1484
+ tables: MutableSequence["SqlServerTable"] = proto.RepeatedField(
1485
+ proto.MESSAGE,
1486
+ number=2,
1487
+ message="SqlServerTable",
1488
+ )
1489
+
1490
+
1491
+ class SqlServerRdbms(proto.Message):
1492
+ r"""SQLServer database structure.
1493
+
1494
+ Attributes:
1495
+ schemas (MutableSequence[google.cloud.datastream_v1.types.SqlServerSchema]):
1496
+ SQLServer schemas in the database server.
1497
+ """
1498
+
1499
+ schemas: MutableSequence["SqlServerSchema"] = proto.RepeatedField(
1500
+ proto.MESSAGE,
1501
+ number=1,
1502
+ message="SqlServerSchema",
1503
+ )
1504
+
1505
+
1506
+ class SqlServerSourceConfig(proto.Message):
1507
+ r"""SQLServer data source configuration
1508
+
1509
+ This message has `oneof`_ fields (mutually exclusive fields).
1510
+ For each oneof, at most one member field can be set at the same time.
1511
+ Setting any member of the oneof automatically clears all other
1512
+ members.
1513
+
1514
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
1515
+
1516
+ Attributes:
1517
+ include_objects (google.cloud.datastream_v1.types.SqlServerRdbms):
1518
+ SQLServer objects to include in the stream.
1519
+ exclude_objects (google.cloud.datastream_v1.types.SqlServerRdbms):
1520
+ SQLServer objects to exclude from the stream.
1521
+ max_concurrent_cdc_tasks (int):
1522
+ Max concurrent CDC tasks.
1523
+ max_concurrent_backfill_tasks (int):
1524
+ Max concurrent backfill tasks.
1525
+ transaction_logs (google.cloud.datastream_v1.types.SqlServerTransactionLogs):
1526
+ CDC reader reads from transaction logs.
1527
+
1528
+ This field is a member of `oneof`_ ``cdc_method``.
1529
+ change_tables (google.cloud.datastream_v1.types.SqlServerChangeTables):
1530
+ CDC reader reads from change tables.
1531
+
1532
+ This field is a member of `oneof`_ ``cdc_method``.
1533
+ """
1534
+
1535
+ include_objects: "SqlServerRdbms" = proto.Field(
1536
+ proto.MESSAGE,
1537
+ number=1,
1538
+ message="SqlServerRdbms",
1539
+ )
1540
+ exclude_objects: "SqlServerRdbms" = proto.Field(
1541
+ proto.MESSAGE,
1542
+ number=2,
1543
+ message="SqlServerRdbms",
1544
+ )
1545
+ max_concurrent_cdc_tasks: int = proto.Field(
1546
+ proto.INT32,
1547
+ number=3,
1548
+ )
1549
+ max_concurrent_backfill_tasks: int = proto.Field(
1550
+ proto.INT32,
1551
+ number=4,
1552
+ )
1553
+ transaction_logs: "SqlServerTransactionLogs" = proto.Field(
1554
+ proto.MESSAGE,
1555
+ number=101,
1556
+ oneof="cdc_method",
1557
+ message="SqlServerTransactionLogs",
1558
+ )
1559
+ change_tables: "SqlServerChangeTables" = proto.Field(
1560
+ proto.MESSAGE,
1561
+ number=102,
1562
+ oneof="cdc_method",
1563
+ message="SqlServerChangeTables",
1564
+ )
1565
+
1566
+
1567
+ class SqlServerTransactionLogs(proto.Message):
1568
+ r"""Configuration to use Transaction Logs CDC read method."""
1569
+
1570
+
1571
+ class SqlServerChangeTables(proto.Message):
1572
+ r"""Configuration to use Change Tables CDC read method."""
1573
+
1574
+
1575
+ class MysqlColumn(proto.Message):
1576
+ r"""MySQL Column.
1577
+
1578
+ Attributes:
1579
+ column (str):
1580
+ Column name.
1581
+ data_type (str):
1582
+ The MySQL data type. Full data types list can
1583
+ be found here:
1584
+ https://dev.mysql.com/doc/refman/8.0/en/data-types.html
1585
+ length (int):
1586
+ Column length.
1587
+ collation (str):
1588
+ Column collation.
1589
+ primary_key (bool):
1590
+ Whether or not the column represents a
1591
+ primary key.
1592
+ nullable (bool):
1593
+ Whether or not the column can accept a null
1594
+ value.
1595
+ ordinal_position (int):
1596
+ The ordinal position of the column in the
1597
+ table.
1598
+ precision (int):
1599
+ Column precision.
1600
+ scale (int):
1601
+ Column scale.
1602
+ """
1603
+
1604
+ column: str = proto.Field(
1605
+ proto.STRING,
1606
+ number=1,
1607
+ )
1608
+ data_type: str = proto.Field(
1609
+ proto.STRING,
1610
+ number=2,
1611
+ )
1612
+ length: int = proto.Field(
1613
+ proto.INT32,
1614
+ number=3,
1615
+ )
1616
+ collation: str = proto.Field(
1617
+ proto.STRING,
1618
+ number=4,
1619
+ )
1620
+ primary_key: bool = proto.Field(
1621
+ proto.BOOL,
1622
+ number=5,
1623
+ )
1624
+ nullable: bool = proto.Field(
1625
+ proto.BOOL,
1626
+ number=6,
1627
+ )
1628
+ ordinal_position: int = proto.Field(
1629
+ proto.INT32,
1630
+ number=7,
1631
+ )
1632
+ precision: int = proto.Field(
1633
+ proto.INT32,
1634
+ number=8,
1635
+ )
1636
+ scale: int = proto.Field(
1637
+ proto.INT32,
1638
+ number=9,
1639
+ )
1640
+
1641
+
1642
+ class MysqlTable(proto.Message):
1643
+ r"""MySQL table.
1644
+
1645
+ Attributes:
1646
+ table (str):
1647
+ Table name.
1648
+ mysql_columns (MutableSequence[google.cloud.datastream_v1.types.MysqlColumn]):
1649
+ MySQL columns in the database.
1650
+ When unspecified as part of include/exclude
1651
+ objects, includes/excludes everything.
1652
+ """
1653
+
1654
+ table: str = proto.Field(
1655
+ proto.STRING,
1656
+ number=1,
1657
+ )
1658
+ mysql_columns: MutableSequence["MysqlColumn"] = proto.RepeatedField(
1659
+ proto.MESSAGE,
1660
+ number=2,
1661
+ message="MysqlColumn",
1662
+ )
1663
+
1664
+
1665
+ class MysqlDatabase(proto.Message):
1666
+ r"""MySQL database.
1667
+
1668
+ Attributes:
1669
+ database (str):
1670
+ Database name.
1671
+ mysql_tables (MutableSequence[google.cloud.datastream_v1.types.MysqlTable]):
1672
+ Tables in the database.
1673
+ """
1674
+
1675
+ database: str = proto.Field(
1676
+ proto.STRING,
1677
+ number=1,
1678
+ )
1679
+ mysql_tables: MutableSequence["MysqlTable"] = proto.RepeatedField(
1680
+ proto.MESSAGE,
1681
+ number=2,
1682
+ message="MysqlTable",
1683
+ )
1684
+
1685
+
1686
+ class MysqlRdbms(proto.Message):
1687
+ r"""MySQL database structure
1688
+
1689
+ Attributes:
1690
+ mysql_databases (MutableSequence[google.cloud.datastream_v1.types.MysqlDatabase]):
1691
+ Mysql databases on the server
1692
+ """
1693
+
1694
+ mysql_databases: MutableSequence["MysqlDatabase"] = proto.RepeatedField(
1695
+ proto.MESSAGE,
1696
+ number=1,
1697
+ message="MysqlDatabase",
1698
+ )
1699
+
1700
+
1701
+ class MysqlSourceConfig(proto.Message):
1702
+ r"""MySQL source configuration
1703
+
1704
+ This message has `oneof`_ fields (mutually exclusive fields).
1705
+ For each oneof, at most one member field can be set at the same time.
1706
+ Setting any member of the oneof automatically clears all other
1707
+ members.
1708
+
1709
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
1710
+
1711
+ Attributes:
1712
+ include_objects (google.cloud.datastream_v1.types.MysqlRdbms):
1713
+ MySQL objects to retrieve from the source.
1714
+ exclude_objects (google.cloud.datastream_v1.types.MysqlRdbms):
1715
+ MySQL objects to exclude from the stream.
1716
+ max_concurrent_cdc_tasks (int):
1717
+ Maximum number of concurrent CDC tasks. The
1718
+ number should be non negative. If not set (or
1719
+ set to 0), the system's default value will be
1720
+ used.
1721
+ max_concurrent_backfill_tasks (int):
1722
+ Maximum number of concurrent backfill tasks.
1723
+ The number should be non negative. If not set
1724
+ (or set to 0), the system's default value will
1725
+ be used.
1726
+ binary_log_position (google.cloud.datastream_v1.types.MysqlSourceConfig.BinaryLogPosition):
1727
+ Use Binary log position based replication.
1728
+
1729
+ This field is a member of `oneof`_ ``cdc_method``.
1730
+ gtid (google.cloud.datastream_v1.types.MysqlSourceConfig.Gtid):
1731
+ Use GTID based replication.
1732
+
1733
+ This field is a member of `oneof`_ ``cdc_method``.
1734
+ """
1735
+
1736
+ class BinaryLogPosition(proto.Message):
1737
+ r"""Use Binary log position based replication."""
1738
+
1739
+ class Gtid(proto.Message):
1740
+ r"""Use GTID based replication."""
1741
+
1742
+ include_objects: "MysqlRdbms" = proto.Field(
1743
+ proto.MESSAGE,
1744
+ number=1,
1745
+ message="MysqlRdbms",
1746
+ )
1747
+ exclude_objects: "MysqlRdbms" = proto.Field(
1748
+ proto.MESSAGE,
1749
+ number=2,
1750
+ message="MysqlRdbms",
1751
+ )
1752
+ max_concurrent_cdc_tasks: int = proto.Field(
1753
+ proto.INT32,
1754
+ number=3,
1755
+ )
1756
+ max_concurrent_backfill_tasks: int = proto.Field(
1757
+ proto.INT32,
1758
+ number=4,
1759
+ )
1760
+ binary_log_position: BinaryLogPosition = proto.Field(
1761
+ proto.MESSAGE,
1762
+ number=101,
1763
+ oneof="cdc_method",
1764
+ message=BinaryLogPosition,
1765
+ )
1766
+ gtid: Gtid = proto.Field(
1767
+ proto.MESSAGE,
1768
+ number=102,
1769
+ oneof="cdc_method",
1770
+ message=Gtid,
1771
+ )
1772
+
1773
+
1774
+ class SourceConfig(proto.Message):
1775
+ r"""The configuration of the stream source.
1776
+
1777
+ This message has `oneof`_ fields (mutually exclusive fields).
1778
+ For each oneof, at most one member field can be set at the same time.
1779
+ Setting any member of the oneof automatically clears all other
1780
+ members.
1781
+
1782
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
1783
+
1784
+ Attributes:
1785
+ source_connection_profile (str):
1786
+ Required. Source connection profile resoource. Format:
1787
+ ``projects/{project}/locations/{location}/connectionProfiles/{name}``
1788
+ oracle_source_config (google.cloud.datastream_v1.types.OracleSourceConfig):
1789
+ Oracle data source configuration.
1790
+
1791
+ This field is a member of `oneof`_ ``source_stream_config``.
1792
+ mysql_source_config (google.cloud.datastream_v1.types.MysqlSourceConfig):
1793
+ MySQL data source configuration.
1794
+
1795
+ This field is a member of `oneof`_ ``source_stream_config``.
1796
+ postgresql_source_config (google.cloud.datastream_v1.types.PostgresqlSourceConfig):
1797
+ PostgreSQL data source configuration.
1798
+
1799
+ This field is a member of `oneof`_ ``source_stream_config``.
1800
+ sql_server_source_config (google.cloud.datastream_v1.types.SqlServerSourceConfig):
1801
+ SQLServer data source configuration.
1802
+
1803
+ This field is a member of `oneof`_ ``source_stream_config``.
1804
+ """
1805
+
1806
+ source_connection_profile: str = proto.Field(
1807
+ proto.STRING,
1808
+ number=1,
1809
+ )
1810
+ oracle_source_config: "OracleSourceConfig" = proto.Field(
1811
+ proto.MESSAGE,
1812
+ number=100,
1813
+ oneof="source_stream_config",
1814
+ message="OracleSourceConfig",
1815
+ )
1816
+ mysql_source_config: "MysqlSourceConfig" = proto.Field(
1817
+ proto.MESSAGE,
1818
+ number=101,
1819
+ oneof="source_stream_config",
1820
+ message="MysqlSourceConfig",
1821
+ )
1822
+ postgresql_source_config: "PostgresqlSourceConfig" = proto.Field(
1823
+ proto.MESSAGE,
1824
+ number=102,
1825
+ oneof="source_stream_config",
1826
+ message="PostgresqlSourceConfig",
1827
+ )
1828
+ sql_server_source_config: "SqlServerSourceConfig" = proto.Field(
1829
+ proto.MESSAGE,
1830
+ number=103,
1831
+ oneof="source_stream_config",
1832
+ message="SqlServerSourceConfig",
1833
+ )
1834
+
1835
+
1836
+ class AvroFileFormat(proto.Message):
1837
+ r"""AVRO file format configuration."""
1838
+
1839
+
1840
+ class JsonFileFormat(proto.Message):
1841
+ r"""JSON file format configuration.
1842
+
1843
+ Attributes:
1844
+ schema_file_format (google.cloud.datastream_v1.types.JsonFileFormat.SchemaFileFormat):
1845
+ The schema file format along JSON data files.
1846
+ compression (google.cloud.datastream_v1.types.JsonFileFormat.JsonCompression):
1847
+ Compression of the loaded JSON file.
1848
+ """
1849
+
1850
+ class SchemaFileFormat(proto.Enum):
1851
+ r"""Schema file format.
1852
+
1853
+ Values:
1854
+ SCHEMA_FILE_FORMAT_UNSPECIFIED (0):
1855
+ Unspecified schema file format.
1856
+ NO_SCHEMA_FILE (1):
1857
+ Do not attach schema file.
1858
+ AVRO_SCHEMA_FILE (2):
1859
+ Avro schema format.
1860
+ """
1861
+ SCHEMA_FILE_FORMAT_UNSPECIFIED = 0
1862
+ NO_SCHEMA_FILE = 1
1863
+ AVRO_SCHEMA_FILE = 2
1864
+
1865
+ class JsonCompression(proto.Enum):
1866
+ r"""Json file compression.
1867
+
1868
+ Values:
1869
+ JSON_COMPRESSION_UNSPECIFIED (0):
1870
+ Unspecified json file compression.
1871
+ NO_COMPRESSION (1):
1872
+ Do not compress JSON file.
1873
+ GZIP (2):
1874
+ Gzip compression.
1875
+ """
1876
+ JSON_COMPRESSION_UNSPECIFIED = 0
1877
+ NO_COMPRESSION = 1
1878
+ GZIP = 2
1879
+
1880
+ schema_file_format: SchemaFileFormat = proto.Field(
1881
+ proto.ENUM,
1882
+ number=1,
1883
+ enum=SchemaFileFormat,
1884
+ )
1885
+ compression: JsonCompression = proto.Field(
1886
+ proto.ENUM,
1887
+ number=2,
1888
+ enum=JsonCompression,
1889
+ )
1890
+
1891
+
1892
+ class GcsDestinationConfig(proto.Message):
1893
+ r"""Google Cloud Storage destination configuration
1894
+
1895
+ This message has `oneof`_ fields (mutually exclusive fields).
1896
+ For each oneof, at most one member field can be set at the same time.
1897
+ Setting any member of the oneof automatically clears all other
1898
+ members.
1899
+
1900
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
1901
+
1902
+ Attributes:
1903
+ path (str):
1904
+ Path inside the Cloud Storage bucket to write
1905
+ data to.
1906
+ file_rotation_mb (int):
1907
+ The maximum file size to be saved in the
1908
+ bucket.
1909
+ file_rotation_interval (google.protobuf.duration_pb2.Duration):
1910
+ The maximum duration for which new events are
1911
+ added before a file is closed and a new file is
1912
+ created. Values within the range of 15-60
1913
+ seconds are allowed.
1914
+ avro_file_format (google.cloud.datastream_v1.types.AvroFileFormat):
1915
+ AVRO file format configuration.
1916
+
1917
+ This field is a member of `oneof`_ ``file_format``.
1918
+ json_file_format (google.cloud.datastream_v1.types.JsonFileFormat):
1919
+ JSON file format configuration.
1920
+
1921
+ This field is a member of `oneof`_ ``file_format``.
1922
+ """
1923
+
1924
+ path: str = proto.Field(
1925
+ proto.STRING,
1926
+ number=1,
1927
+ )
1928
+ file_rotation_mb: int = proto.Field(
1929
+ proto.INT32,
1930
+ number=2,
1931
+ )
1932
+ file_rotation_interval: duration_pb2.Duration = proto.Field(
1933
+ proto.MESSAGE,
1934
+ number=3,
1935
+ message=duration_pb2.Duration,
1936
+ )
1937
+ avro_file_format: "AvroFileFormat" = proto.Field(
1938
+ proto.MESSAGE,
1939
+ number=100,
1940
+ oneof="file_format",
1941
+ message="AvroFileFormat",
1942
+ )
1943
+ json_file_format: "JsonFileFormat" = proto.Field(
1944
+ proto.MESSAGE,
1945
+ number=101,
1946
+ oneof="file_format",
1947
+ message="JsonFileFormat",
1948
+ )
1949
+
1950
+
1951
+ class BigQueryDestinationConfig(proto.Message):
1952
+ r"""BigQuery destination configuration
1953
+
1954
+ This message has `oneof`_ fields (mutually exclusive fields).
1955
+ For each oneof, at most one member field can be set at the same time.
1956
+ Setting any member of the oneof automatically clears all other
1957
+ members.
1958
+
1959
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
1960
+
1961
+ Attributes:
1962
+ single_target_dataset (google.cloud.datastream_v1.types.BigQueryDestinationConfig.SingleTargetDataset):
1963
+ Single destination dataset.
1964
+
1965
+ This field is a member of `oneof`_ ``dataset_config``.
1966
+ source_hierarchy_datasets (google.cloud.datastream_v1.types.BigQueryDestinationConfig.SourceHierarchyDatasets):
1967
+ Source hierarchy datasets.
1968
+
1969
+ This field is a member of `oneof`_ ``dataset_config``.
1970
+ data_freshness (google.protobuf.duration_pb2.Duration):
1971
+ The guaranteed data freshness (in seconds)
1972
+ when querying tables created by the stream.
1973
+ Editing this field will only affect new tables
1974
+ created in the future, but existing tables will
1975
+ not be impacted. Lower values mean that queries
1976
+ will return fresher data, but may result in
1977
+ higher cost.
1978
+ merge (google.cloud.datastream_v1.types.BigQueryDestinationConfig.Merge):
1979
+ The standard mode
1980
+
1981
+ This field is a member of `oneof`_ ``write_mode``.
1982
+ append_only (google.cloud.datastream_v1.types.BigQueryDestinationConfig.AppendOnly):
1983
+ Append only mode
1984
+
1985
+ This field is a member of `oneof`_ ``write_mode``.
1986
+ """
1987
+
1988
+ class SingleTargetDataset(proto.Message):
1989
+ r"""A single target dataset to which all data will be streamed.
1990
+
1991
+ Attributes:
1992
+ dataset_id (str):
1993
+ The dataset ID of the target dataset.
1994
+ DatasetIds allowed characters:
1995
+
1996
+ https://cloud.google.com/bigquery/docs/reference/rest/v2/datasets#datasetreference.
1997
+ """
1998
+
1999
+ dataset_id: str = proto.Field(
2000
+ proto.STRING,
2001
+ number=1,
2002
+ )
2003
+
2004
+ class SourceHierarchyDatasets(proto.Message):
2005
+ r"""Destination datasets are created so that hierarchy of the
2006
+ destination data objects matches the source hierarchy.
2007
+
2008
+ Attributes:
2009
+ dataset_template (google.cloud.datastream_v1.types.BigQueryDestinationConfig.SourceHierarchyDatasets.DatasetTemplate):
2010
+ The dataset template to use for dynamic
2011
+ dataset creation.
2012
+ """
2013
+
2014
+ class DatasetTemplate(proto.Message):
2015
+ r"""Dataset template used for dynamic dataset creation.
2016
+
2017
+ Attributes:
2018
+ location (str):
2019
+ Required. The geographic location where the
2020
+ dataset should reside. See
2021
+ https://cloud.google.com/bigquery/docs/locations
2022
+ for supported locations.
2023
+ dataset_id_prefix (str):
2024
+ If supplied, every created dataset will have its name
2025
+ prefixed by the provided value. The prefix and name will be
2026
+ separated by an underscore. i.e. \_<dataset_name>.
2027
+ kms_key_name (str):
2028
+ Describes the Cloud KMS encryption key that will be used to
2029
+ protect destination BigQuery table. The BigQuery Service
2030
+ Account associated with your project requires access to this
2031
+ encryption key. i.e.
2032
+ projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}.
2033
+ See
2034
+ https://cloud.google.com/bigquery/docs/customer-managed-encryption
2035
+ for more information.
2036
+ """
2037
+
2038
+ location: str = proto.Field(
2039
+ proto.STRING,
2040
+ number=1,
2041
+ )
2042
+ dataset_id_prefix: str = proto.Field(
2043
+ proto.STRING,
2044
+ number=2,
2045
+ )
2046
+ kms_key_name: str = proto.Field(
2047
+ proto.STRING,
2048
+ number=3,
2049
+ )
2050
+
2051
+ dataset_template: "BigQueryDestinationConfig.SourceHierarchyDatasets.DatasetTemplate" = proto.Field(
2052
+ proto.MESSAGE,
2053
+ number=2,
2054
+ message="BigQueryDestinationConfig.SourceHierarchyDatasets.DatasetTemplate",
2055
+ )
2056
+
2057
+ class AppendOnly(proto.Message):
2058
+ r"""AppendOnly mode defines that all changes to a table will be
2059
+ written to the destination table.
2060
+
2061
+ """
2062
+
2063
+ class Merge(proto.Message):
2064
+ r"""Merge mode defines that all changes to a table will be merged
2065
+ at the destination table.
2066
+
2067
+ """
2068
+
2069
+ single_target_dataset: SingleTargetDataset = proto.Field(
2070
+ proto.MESSAGE,
2071
+ number=201,
2072
+ oneof="dataset_config",
2073
+ message=SingleTargetDataset,
2074
+ )
2075
+ source_hierarchy_datasets: SourceHierarchyDatasets = proto.Field(
2076
+ proto.MESSAGE,
2077
+ number=202,
2078
+ oneof="dataset_config",
2079
+ message=SourceHierarchyDatasets,
2080
+ )
2081
+ data_freshness: duration_pb2.Duration = proto.Field(
2082
+ proto.MESSAGE,
2083
+ number=300,
2084
+ message=duration_pb2.Duration,
2085
+ )
2086
+ merge: Merge = proto.Field(
2087
+ proto.MESSAGE,
2088
+ number=301,
2089
+ oneof="write_mode",
2090
+ message=Merge,
2091
+ )
2092
+ append_only: AppendOnly = proto.Field(
2093
+ proto.MESSAGE,
2094
+ number=302,
2095
+ oneof="write_mode",
2096
+ message=AppendOnly,
2097
+ )
2098
+
2099
+
2100
+ class DestinationConfig(proto.Message):
2101
+ r"""The configuration of the stream destination.
2102
+
2103
+ This message has `oneof`_ fields (mutually exclusive fields).
2104
+ For each oneof, at most one member field can be set at the same time.
2105
+ Setting any member of the oneof automatically clears all other
2106
+ members.
2107
+
2108
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
2109
+
2110
+ Attributes:
2111
+ destination_connection_profile (str):
2112
+ Required. Destination connection profile resource. Format:
2113
+ ``projects/{project}/locations/{location}/connectionProfiles/{name}``
2114
+ gcs_destination_config (google.cloud.datastream_v1.types.GcsDestinationConfig):
2115
+ A configuration for how data should be loaded
2116
+ to Cloud Storage.
2117
+
2118
+ This field is a member of `oneof`_ ``destination_stream_config``.
2119
+ bigquery_destination_config (google.cloud.datastream_v1.types.BigQueryDestinationConfig):
2120
+ BigQuery destination configuration.
2121
+
2122
+ This field is a member of `oneof`_ ``destination_stream_config``.
2123
+ """
2124
+
2125
+ destination_connection_profile: str = proto.Field(
2126
+ proto.STRING,
2127
+ number=1,
2128
+ )
2129
+ gcs_destination_config: "GcsDestinationConfig" = proto.Field(
2130
+ proto.MESSAGE,
2131
+ number=100,
2132
+ oneof="destination_stream_config",
2133
+ message="GcsDestinationConfig",
2134
+ )
2135
+ bigquery_destination_config: "BigQueryDestinationConfig" = proto.Field(
2136
+ proto.MESSAGE,
2137
+ number=101,
2138
+ oneof="destination_stream_config",
2139
+ message="BigQueryDestinationConfig",
2140
+ )
2141
+
2142
+
2143
+ class Stream(proto.Message):
2144
+ r"""A resource representing streaming data from a source to a
2145
+ destination.
2146
+
2147
+ This message has `oneof`_ fields (mutually exclusive fields).
2148
+ For each oneof, at most one member field can be set at the same time.
2149
+ Setting any member of the oneof automatically clears all other
2150
+ members.
2151
+
2152
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
2153
+
2154
+ Attributes:
2155
+ name (str):
2156
+ Output only. Identifier. The stream's name.
2157
+ create_time (google.protobuf.timestamp_pb2.Timestamp):
2158
+ Output only. The creation time of the stream.
2159
+ update_time (google.protobuf.timestamp_pb2.Timestamp):
2160
+ Output only. The last update time of the
2161
+ stream.
2162
+ labels (MutableMapping[str, str]):
2163
+ Labels.
2164
+ display_name (str):
2165
+ Required. Display name.
2166
+ source_config (google.cloud.datastream_v1.types.SourceConfig):
2167
+ Required. Source connection profile
2168
+ configuration.
2169
+ destination_config (google.cloud.datastream_v1.types.DestinationConfig):
2170
+ Required. Destination connection profile
2171
+ configuration.
2172
+ state (google.cloud.datastream_v1.types.Stream.State):
2173
+ The state of the stream.
2174
+ backfill_all (google.cloud.datastream_v1.types.Stream.BackfillAllStrategy):
2175
+ Automatically backfill objects included in
2176
+ the stream source configuration. Specific
2177
+ objects can be excluded.
2178
+
2179
+ This field is a member of `oneof`_ ``backfill_strategy``.
2180
+ backfill_none (google.cloud.datastream_v1.types.Stream.BackfillNoneStrategy):
2181
+ Do not automatically backfill any objects.
2182
+
2183
+ This field is a member of `oneof`_ ``backfill_strategy``.
2184
+ errors (MutableSequence[google.cloud.datastream_v1.types.Error]):
2185
+ Output only. Errors on the Stream.
2186
+ customer_managed_encryption_key (str):
2187
+ Immutable. A reference to a KMS encryption
2188
+ key. If provided, it will be used to encrypt the
2189
+ data. If left blank, data will be encrypted
2190
+ using an internal Stream-specific encryption key
2191
+ provisioned through KMS.
2192
+
2193
+ This field is a member of `oneof`_ ``_customer_managed_encryption_key``.
2194
+ last_recovery_time (google.protobuf.timestamp_pb2.Timestamp):
2195
+ Output only. If the stream was recovered, the
2196
+ time of the last recovery. Note: This field is
2197
+ currently experimental.
2198
+ """
2199
+
2200
+ class State(proto.Enum):
2201
+ r"""Stream state.
2202
+
2203
+ Values:
2204
+ STATE_UNSPECIFIED (0):
2205
+ Unspecified stream state.
2206
+ NOT_STARTED (1):
2207
+ The stream has been created but has not yet
2208
+ started streaming data.
2209
+ RUNNING (2):
2210
+ The stream is running.
2211
+ PAUSED (3):
2212
+ The stream is paused.
2213
+ MAINTENANCE (4):
2214
+ The stream is in maintenance mode.
2215
+
2216
+ Updates are rejected on the resource in this
2217
+ state.
2218
+ FAILED (5):
2219
+ The stream is experiencing an error that is
2220
+ preventing data from being streamed.
2221
+ FAILED_PERMANENTLY (6):
2222
+ The stream has experienced a terminal
2223
+ failure.
2224
+ STARTING (7):
2225
+ The stream is starting, but not yet running.
2226
+ DRAINING (8):
2227
+ The Stream is no longer reading new events,
2228
+ but still writing events in the buffer.
2229
+ """
2230
+ STATE_UNSPECIFIED = 0
2231
+ NOT_STARTED = 1
2232
+ RUNNING = 2
2233
+ PAUSED = 3
2234
+ MAINTENANCE = 4
2235
+ FAILED = 5
2236
+ FAILED_PERMANENTLY = 6
2237
+ STARTING = 7
2238
+ DRAINING = 8
2239
+
2240
+ class BackfillAllStrategy(proto.Message):
2241
+ r"""Backfill strategy to automatically backfill the Stream's
2242
+ objects. Specific objects can be excluded.
2243
+
2244
+ This message has `oneof`_ fields (mutually exclusive fields).
2245
+ For each oneof, at most one member field can be set at the same time.
2246
+ Setting any member of the oneof automatically clears all other
2247
+ members.
2248
+
2249
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
2250
+
2251
+ Attributes:
2252
+ oracle_excluded_objects (google.cloud.datastream_v1.types.OracleRdbms):
2253
+ Oracle data source objects to avoid
2254
+ backfilling.
2255
+
2256
+ This field is a member of `oneof`_ ``excluded_objects``.
2257
+ mysql_excluded_objects (google.cloud.datastream_v1.types.MysqlRdbms):
2258
+ MySQL data source objects to avoid
2259
+ backfilling.
2260
+
2261
+ This field is a member of `oneof`_ ``excluded_objects``.
2262
+ postgresql_excluded_objects (google.cloud.datastream_v1.types.PostgresqlRdbms):
2263
+ PostgreSQL data source objects to avoid
2264
+ backfilling.
2265
+
2266
+ This field is a member of `oneof`_ ``excluded_objects``.
2267
+ sql_server_excluded_objects (google.cloud.datastream_v1.types.SqlServerRdbms):
2268
+ SQLServer data source objects to avoid
2269
+ backfilling
2270
+
2271
+ This field is a member of `oneof`_ ``excluded_objects``.
2272
+ """
2273
+
2274
+ oracle_excluded_objects: "OracleRdbms" = proto.Field(
2275
+ proto.MESSAGE,
2276
+ number=1,
2277
+ oneof="excluded_objects",
2278
+ message="OracleRdbms",
2279
+ )
2280
+ mysql_excluded_objects: "MysqlRdbms" = proto.Field(
2281
+ proto.MESSAGE,
2282
+ number=2,
2283
+ oneof="excluded_objects",
2284
+ message="MysqlRdbms",
2285
+ )
2286
+ postgresql_excluded_objects: "PostgresqlRdbms" = proto.Field(
2287
+ proto.MESSAGE,
2288
+ number=3,
2289
+ oneof="excluded_objects",
2290
+ message="PostgresqlRdbms",
2291
+ )
2292
+ sql_server_excluded_objects: "SqlServerRdbms" = proto.Field(
2293
+ proto.MESSAGE,
2294
+ number=4,
2295
+ oneof="excluded_objects",
2296
+ message="SqlServerRdbms",
2297
+ )
2298
+
2299
+ class BackfillNoneStrategy(proto.Message):
2300
+ r"""Backfill strategy to disable automatic backfill for the
2301
+ Stream's objects.
2302
+
2303
+ """
2304
+
2305
+ name: str = proto.Field(
2306
+ proto.STRING,
2307
+ number=1,
2308
+ )
2309
+ create_time: timestamp_pb2.Timestamp = proto.Field(
2310
+ proto.MESSAGE,
2311
+ number=2,
2312
+ message=timestamp_pb2.Timestamp,
2313
+ )
2314
+ update_time: timestamp_pb2.Timestamp = proto.Field(
2315
+ proto.MESSAGE,
2316
+ number=3,
2317
+ message=timestamp_pb2.Timestamp,
2318
+ )
2319
+ labels: MutableMapping[str, str] = proto.MapField(
2320
+ proto.STRING,
2321
+ proto.STRING,
2322
+ number=4,
2323
+ )
2324
+ display_name: str = proto.Field(
2325
+ proto.STRING,
2326
+ number=5,
2327
+ )
2328
+ source_config: "SourceConfig" = proto.Field(
2329
+ proto.MESSAGE,
2330
+ number=6,
2331
+ message="SourceConfig",
2332
+ )
2333
+ destination_config: "DestinationConfig" = proto.Field(
2334
+ proto.MESSAGE,
2335
+ number=7,
2336
+ message="DestinationConfig",
2337
+ )
2338
+ state: State = proto.Field(
2339
+ proto.ENUM,
2340
+ number=8,
2341
+ enum=State,
2342
+ )
2343
+ backfill_all: BackfillAllStrategy = proto.Field(
2344
+ proto.MESSAGE,
2345
+ number=101,
2346
+ oneof="backfill_strategy",
2347
+ message=BackfillAllStrategy,
2348
+ )
2349
+ backfill_none: BackfillNoneStrategy = proto.Field(
2350
+ proto.MESSAGE,
2351
+ number=102,
2352
+ oneof="backfill_strategy",
2353
+ message=BackfillNoneStrategy,
2354
+ )
2355
+ errors: MutableSequence["Error"] = proto.RepeatedField(
2356
+ proto.MESSAGE,
2357
+ number=9,
2358
+ message="Error",
2359
+ )
2360
+ customer_managed_encryption_key: str = proto.Field(
2361
+ proto.STRING,
2362
+ number=10,
2363
+ optional=True,
2364
+ )
2365
+ last_recovery_time: timestamp_pb2.Timestamp = proto.Field(
2366
+ proto.MESSAGE,
2367
+ number=13,
2368
+ message=timestamp_pb2.Timestamp,
2369
+ )
2370
+
2371
+
2372
+ class StreamObject(proto.Message):
2373
+ r"""A specific stream object (e.g a specific DB table).
2374
+
2375
+ Attributes:
2376
+ name (str):
2377
+ Output only. Identifier. The object
2378
+ resource's name.
2379
+ create_time (google.protobuf.timestamp_pb2.Timestamp):
2380
+ Output only. The creation time of the object.
2381
+ update_time (google.protobuf.timestamp_pb2.Timestamp):
2382
+ Output only. The last update time of the
2383
+ object.
2384
+ display_name (str):
2385
+ Required. Display name.
2386
+ errors (MutableSequence[google.cloud.datastream_v1.types.Error]):
2387
+ Output only. Active errors on the object.
2388
+ backfill_job (google.cloud.datastream_v1.types.BackfillJob):
2389
+ The latest backfill job that was initiated
2390
+ for the stream object.
2391
+ source_object (google.cloud.datastream_v1.types.SourceObjectIdentifier):
2392
+ The object identifier in the data source.
2393
+ """
2394
+
2395
+ name: str = proto.Field(
2396
+ proto.STRING,
2397
+ number=1,
2398
+ )
2399
+ create_time: timestamp_pb2.Timestamp = proto.Field(
2400
+ proto.MESSAGE,
2401
+ number=2,
2402
+ message=timestamp_pb2.Timestamp,
2403
+ )
2404
+ update_time: timestamp_pb2.Timestamp = proto.Field(
2405
+ proto.MESSAGE,
2406
+ number=3,
2407
+ message=timestamp_pb2.Timestamp,
2408
+ )
2409
+ display_name: str = proto.Field(
2410
+ proto.STRING,
2411
+ number=5,
2412
+ )
2413
+ errors: MutableSequence["Error"] = proto.RepeatedField(
2414
+ proto.MESSAGE,
2415
+ number=6,
2416
+ message="Error",
2417
+ )
2418
+ backfill_job: "BackfillJob" = proto.Field(
2419
+ proto.MESSAGE,
2420
+ number=7,
2421
+ message="BackfillJob",
2422
+ )
2423
+ source_object: "SourceObjectIdentifier" = proto.Field(
2424
+ proto.MESSAGE,
2425
+ number=8,
2426
+ message="SourceObjectIdentifier",
2427
+ )
2428
+
2429
+
2430
+ class SourceObjectIdentifier(proto.Message):
2431
+ r"""Represents an identifier of an object in the data source.
2432
+
2433
+ This message has `oneof`_ fields (mutually exclusive fields).
2434
+ For each oneof, at most one member field can be set at the same time.
2435
+ Setting any member of the oneof automatically clears all other
2436
+ members.
2437
+
2438
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
2439
+
2440
+ Attributes:
2441
+ oracle_identifier (google.cloud.datastream_v1.types.SourceObjectIdentifier.OracleObjectIdentifier):
2442
+ Oracle data source object identifier.
2443
+
2444
+ This field is a member of `oneof`_ ``source_identifier``.
2445
+ mysql_identifier (google.cloud.datastream_v1.types.SourceObjectIdentifier.MysqlObjectIdentifier):
2446
+ Mysql data source object identifier.
2447
+
2448
+ This field is a member of `oneof`_ ``source_identifier``.
2449
+ postgresql_identifier (google.cloud.datastream_v1.types.SourceObjectIdentifier.PostgresqlObjectIdentifier):
2450
+ PostgreSQL data source object identifier.
2451
+
2452
+ This field is a member of `oneof`_ ``source_identifier``.
2453
+ sql_server_identifier (google.cloud.datastream_v1.types.SourceObjectIdentifier.SqlServerObjectIdentifier):
2454
+ SQLServer data source object identifier.
2455
+
2456
+ This field is a member of `oneof`_ ``source_identifier``.
2457
+ """
2458
+
2459
+ class OracleObjectIdentifier(proto.Message):
2460
+ r"""Oracle data source object identifier.
2461
+
2462
+ Attributes:
2463
+ schema (str):
2464
+ Required. The schema name.
2465
+ table (str):
2466
+ Required. The table name.
2467
+ """
2468
+
2469
+ schema: str = proto.Field(
2470
+ proto.STRING,
2471
+ number=1,
2472
+ )
2473
+ table: str = proto.Field(
2474
+ proto.STRING,
2475
+ number=2,
2476
+ )
2477
+
2478
+ class PostgresqlObjectIdentifier(proto.Message):
2479
+ r"""PostgreSQL data source object identifier.
2480
+
2481
+ Attributes:
2482
+ schema (str):
2483
+ Required. The schema name.
2484
+ table (str):
2485
+ Required. The table name.
2486
+ """
2487
+
2488
+ schema: str = proto.Field(
2489
+ proto.STRING,
2490
+ number=1,
2491
+ )
2492
+ table: str = proto.Field(
2493
+ proto.STRING,
2494
+ number=2,
2495
+ )
2496
+
2497
+ class MysqlObjectIdentifier(proto.Message):
2498
+ r"""Mysql data source object identifier.
2499
+
2500
+ Attributes:
2501
+ database (str):
2502
+ Required. The database name.
2503
+ table (str):
2504
+ Required. The table name.
2505
+ """
2506
+
2507
+ database: str = proto.Field(
2508
+ proto.STRING,
2509
+ number=1,
2510
+ )
2511
+ table: str = proto.Field(
2512
+ proto.STRING,
2513
+ number=2,
2514
+ )
2515
+
2516
+ class SqlServerObjectIdentifier(proto.Message):
2517
+ r"""SQLServer data source object identifier.
2518
+
2519
+ Attributes:
2520
+ schema (str):
2521
+ Required. The schema name.
2522
+ table (str):
2523
+ Required. The table name.
2524
+ """
2525
+
2526
+ schema: str = proto.Field(
2527
+ proto.STRING,
2528
+ number=1,
2529
+ )
2530
+ table: str = proto.Field(
2531
+ proto.STRING,
2532
+ number=2,
2533
+ )
2534
+
2535
+ oracle_identifier: OracleObjectIdentifier = proto.Field(
2536
+ proto.MESSAGE,
2537
+ number=1,
2538
+ oneof="source_identifier",
2539
+ message=OracleObjectIdentifier,
2540
+ )
2541
+ mysql_identifier: MysqlObjectIdentifier = proto.Field(
2542
+ proto.MESSAGE,
2543
+ number=2,
2544
+ oneof="source_identifier",
2545
+ message=MysqlObjectIdentifier,
2546
+ )
2547
+ postgresql_identifier: PostgresqlObjectIdentifier = proto.Field(
2548
+ proto.MESSAGE,
2549
+ number=3,
2550
+ oneof="source_identifier",
2551
+ message=PostgresqlObjectIdentifier,
2552
+ )
2553
+ sql_server_identifier: SqlServerObjectIdentifier = proto.Field(
2554
+ proto.MESSAGE,
2555
+ number=4,
2556
+ oneof="source_identifier",
2557
+ message=SqlServerObjectIdentifier,
2558
+ )
2559
+
2560
+
2561
+ class BackfillJob(proto.Message):
2562
+ r"""Represents a backfill job on a specific stream object.
2563
+
2564
+ Attributes:
2565
+ state (google.cloud.datastream_v1.types.BackfillJob.State):
2566
+ Output only. Backfill job state.
2567
+ trigger (google.cloud.datastream_v1.types.BackfillJob.Trigger):
2568
+ Backfill job's triggering reason.
2569
+ last_start_time (google.protobuf.timestamp_pb2.Timestamp):
2570
+ Output only. Backfill job's start time.
2571
+ last_end_time (google.protobuf.timestamp_pb2.Timestamp):
2572
+ Output only. Backfill job's end time.
2573
+ errors (MutableSequence[google.cloud.datastream_v1.types.Error]):
2574
+ Output only. Errors which caused the backfill
2575
+ job to fail.
2576
+ """
2577
+
2578
+ class State(proto.Enum):
2579
+ r"""State of the stream object's backfill job.
2580
+
2581
+ Values:
2582
+ STATE_UNSPECIFIED (0):
2583
+ Default value.
2584
+ NOT_STARTED (1):
2585
+ Backfill job was never started for the stream
2586
+ object (stream has backfill strategy defined as
2587
+ manual or object was explicitly excluded from
2588
+ automatic backfill).
2589
+ PENDING (2):
2590
+ Backfill job will start pending available
2591
+ resources.
2592
+ ACTIVE (3):
2593
+ Backfill job is running.
2594
+ STOPPED (4):
2595
+ Backfill job stopped (next job run will start
2596
+ from beginning).
2597
+ FAILED (5):
2598
+ Backfill job failed (due to an error).
2599
+ COMPLETED (6):
2600
+ Backfill completed successfully.
2601
+ UNSUPPORTED (7):
2602
+ Backfill job failed since the table structure
2603
+ is currently unsupported for backfill.
2604
+ """
2605
+ STATE_UNSPECIFIED = 0
2606
+ NOT_STARTED = 1
2607
+ PENDING = 2
2608
+ ACTIVE = 3
2609
+ STOPPED = 4
2610
+ FAILED = 5
2611
+ COMPLETED = 6
2612
+ UNSUPPORTED = 7
2613
+
2614
+ class Trigger(proto.Enum):
2615
+ r"""Triggering reason for a backfill job.
2616
+
2617
+ Values:
2618
+ TRIGGER_UNSPECIFIED (0):
2619
+ Default value.
2620
+ AUTOMATIC (1):
2621
+ Object backfill job was triggered
2622
+ automatically according to the stream's backfill
2623
+ strategy.
2624
+ MANUAL (2):
2625
+ Object backfill job was triggered manually
2626
+ using the dedicated API.
2627
+ """
2628
+ TRIGGER_UNSPECIFIED = 0
2629
+ AUTOMATIC = 1
2630
+ MANUAL = 2
2631
+
2632
+ state: State = proto.Field(
2633
+ proto.ENUM,
2634
+ number=1,
2635
+ enum=State,
2636
+ )
2637
+ trigger: Trigger = proto.Field(
2638
+ proto.ENUM,
2639
+ number=2,
2640
+ enum=Trigger,
2641
+ )
2642
+ last_start_time: timestamp_pb2.Timestamp = proto.Field(
2643
+ proto.MESSAGE,
2644
+ number=3,
2645
+ message=timestamp_pb2.Timestamp,
2646
+ )
2647
+ last_end_time: timestamp_pb2.Timestamp = proto.Field(
2648
+ proto.MESSAGE,
2649
+ number=4,
2650
+ message=timestamp_pb2.Timestamp,
2651
+ )
2652
+ errors: MutableSequence["Error"] = proto.RepeatedField(
2653
+ proto.MESSAGE,
2654
+ number=5,
2655
+ message="Error",
2656
+ )
2657
+
2658
+
2659
+ class Error(proto.Message):
2660
+ r"""Represent a user-facing Error.
2661
+
2662
+ Attributes:
2663
+ reason (str):
2664
+ A title that explains the reason for the
2665
+ error.
2666
+ error_uuid (str):
2667
+ A unique identifier for this specific error,
2668
+ allowing it to be traced throughout the system
2669
+ in logs and API responses.
2670
+ message (str):
2671
+ A message containing more information about
2672
+ the error that occurred.
2673
+ error_time (google.protobuf.timestamp_pb2.Timestamp):
2674
+ The time when the error occurred.
2675
+ details (MutableMapping[str, str]):
2676
+ Additional information about the error.
2677
+ """
2678
+
2679
+ reason: str = proto.Field(
2680
+ proto.STRING,
2681
+ number=1,
2682
+ )
2683
+ error_uuid: str = proto.Field(
2684
+ proto.STRING,
2685
+ number=2,
2686
+ )
2687
+ message: str = proto.Field(
2688
+ proto.STRING,
2689
+ number=3,
2690
+ )
2691
+ error_time: timestamp_pb2.Timestamp = proto.Field(
2692
+ proto.MESSAGE,
2693
+ number=4,
2694
+ message=timestamp_pb2.Timestamp,
2695
+ )
2696
+ details: MutableMapping[str, str] = proto.MapField(
2697
+ proto.STRING,
2698
+ proto.STRING,
2699
+ number=5,
2700
+ )
2701
+
2702
+
2703
+ class ValidationResult(proto.Message):
2704
+ r"""Contains the current validation results.
2705
+
2706
+ Attributes:
2707
+ validations (MutableSequence[google.cloud.datastream_v1.types.Validation]):
2708
+ A list of validations (includes both executed
2709
+ as well as not executed validations).
2710
+ """
2711
+
2712
+ validations: MutableSequence["Validation"] = proto.RepeatedField(
2713
+ proto.MESSAGE,
2714
+ number=1,
2715
+ message="Validation",
2716
+ )
2717
+
2718
+
2719
+ class Validation(proto.Message):
2720
+ r"""A validation to perform on a stream.
2721
+
2722
+ Attributes:
2723
+ description (str):
2724
+ A short description of the validation.
2725
+ state (google.cloud.datastream_v1.types.Validation.State):
2726
+ Output only. Validation execution status.
2727
+ message (MutableSequence[google.cloud.datastream_v1.types.ValidationMessage]):
2728
+ Messages reflecting the validation results.
2729
+ code (str):
2730
+ A custom code identifying this validation.
2731
+ """
2732
+
2733
+ class State(proto.Enum):
2734
+ r"""Validation execution state.
2735
+
2736
+ Values:
2737
+ STATE_UNSPECIFIED (0):
2738
+ Unspecified state.
2739
+ NOT_EXECUTED (1):
2740
+ Validation did not execute.
2741
+ FAILED (2):
2742
+ Validation failed.
2743
+ PASSED (3):
2744
+ Validation passed.
2745
+ WARNING (4):
2746
+ Validation executed with warnings.
2747
+ """
2748
+ STATE_UNSPECIFIED = 0
2749
+ NOT_EXECUTED = 1
2750
+ FAILED = 2
2751
+ PASSED = 3
2752
+ WARNING = 4
2753
+
2754
+ description: str = proto.Field(
2755
+ proto.STRING,
2756
+ number=1,
2757
+ )
2758
+ state: State = proto.Field(
2759
+ proto.ENUM,
2760
+ number=2,
2761
+ enum=State,
2762
+ )
2763
+ message: MutableSequence["ValidationMessage"] = proto.RepeatedField(
2764
+ proto.MESSAGE,
2765
+ number=3,
2766
+ message="ValidationMessage",
2767
+ )
2768
+ code: str = proto.Field(
2769
+ proto.STRING,
2770
+ number=4,
2771
+ )
2772
+
2773
+
2774
+ class ValidationMessage(proto.Message):
2775
+ r"""Represent user-facing validation result message.
2776
+
2777
+ Attributes:
2778
+ message (str):
2779
+ The result of the validation.
2780
+ level (google.cloud.datastream_v1.types.ValidationMessage.Level):
2781
+ Message severity level (warning or error).
2782
+ metadata (MutableMapping[str, str]):
2783
+ Additional metadata related to the result.
2784
+ code (str):
2785
+ A custom code identifying this specific
2786
+ message.
2787
+ """
2788
+
2789
+ class Level(proto.Enum):
2790
+ r"""Validation message level.
2791
+
2792
+ Values:
2793
+ LEVEL_UNSPECIFIED (0):
2794
+ Unspecified level.
2795
+ WARNING (1):
2796
+ Potentially cause issues with the Stream.
2797
+ ERROR (2):
2798
+ Definitely cause issues with the Stream.
2799
+ """
2800
+ LEVEL_UNSPECIFIED = 0
2801
+ WARNING = 1
2802
+ ERROR = 2
2803
+
2804
+ message: str = proto.Field(
2805
+ proto.STRING,
2806
+ number=1,
2807
+ )
2808
+ level: Level = proto.Field(
2809
+ proto.ENUM,
2810
+ number=2,
2811
+ enum=Level,
2812
+ )
2813
+ metadata: MutableMapping[str, str] = proto.MapField(
2814
+ proto.STRING,
2815
+ proto.STRING,
2816
+ number=3,
2817
+ )
2818
+ code: str = proto.Field(
2819
+ proto.STRING,
2820
+ number=4,
2821
+ )
2822
+
2823
+
2824
+ class CdcStrategy(proto.Message):
2825
+ r"""The strategy that the stream uses for CDC replication.
2826
+
2827
+ This message has `oneof`_ fields (mutually exclusive fields).
2828
+ For each oneof, at most one member field can be set at the same time.
2829
+ Setting any member of the oneof automatically clears all other
2830
+ members.
2831
+
2832
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
2833
+
2834
+ Attributes:
2835
+ most_recent_start_position (google.cloud.datastream_v1.types.CdcStrategy.MostRecentStartPosition):
2836
+ Optional. Start replicating from the most
2837
+ recent position in the source.
2838
+
2839
+ This field is a member of `oneof`_ ``start_position``.
2840
+ next_available_start_position (google.cloud.datastream_v1.types.CdcStrategy.NextAvailableStartPosition):
2841
+ Optional. Resume replication from the next
2842
+ available position in the source.
2843
+
2844
+ This field is a member of `oneof`_ ``start_position``.
2845
+ specific_start_position (google.cloud.datastream_v1.types.CdcStrategy.SpecificStartPosition):
2846
+ Optional. Start replicating from a specific
2847
+ position in the source.
2848
+
2849
+ This field is a member of `oneof`_ ``start_position``.
2850
+ """
2851
+
2852
+ class MostRecentStartPosition(proto.Message):
2853
+ r"""CDC strategy to start replicating from the most recent
2854
+ position in the source.
2855
+
2856
+ """
2857
+
2858
+ class NextAvailableStartPosition(proto.Message):
2859
+ r"""CDC strategy to resume replication from the next available
2860
+ position in the source.
2861
+
2862
+ """
2863
+
2864
+ class SpecificStartPosition(proto.Message):
2865
+ r"""CDC strategy to start replicating from a specific position in
2866
+ the source.
2867
+
2868
+ This message has `oneof`_ fields (mutually exclusive fields).
2869
+ For each oneof, at most one member field can be set at the same time.
2870
+ Setting any member of the oneof automatically clears all other
2871
+ members.
2872
+
2873
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
2874
+
2875
+ Attributes:
2876
+ mysql_log_position (google.cloud.datastream_v1.types.MysqlLogPosition):
2877
+ MySQL specific log position to start
2878
+ replicating from.
2879
+
2880
+ This field is a member of `oneof`_ ``position``.
2881
+ oracle_scn_position (google.cloud.datastream_v1.types.OracleScnPosition):
2882
+ Oracle SCN to start replicating from.
2883
+
2884
+ This field is a member of `oneof`_ ``position``.
2885
+ sql_server_lsn_position (google.cloud.datastream_v1.types.SqlServerLsnPosition):
2886
+ SqlServer LSN to start replicating from.
2887
+
2888
+ This field is a member of `oneof`_ ``position``.
2889
+ """
2890
+
2891
+ mysql_log_position: "MysqlLogPosition" = proto.Field(
2892
+ proto.MESSAGE,
2893
+ number=101,
2894
+ oneof="position",
2895
+ message="MysqlLogPosition",
2896
+ )
2897
+ oracle_scn_position: "OracleScnPosition" = proto.Field(
2898
+ proto.MESSAGE,
2899
+ number=102,
2900
+ oneof="position",
2901
+ message="OracleScnPosition",
2902
+ )
2903
+ sql_server_lsn_position: "SqlServerLsnPosition" = proto.Field(
2904
+ proto.MESSAGE,
2905
+ number=103,
2906
+ oneof="position",
2907
+ message="SqlServerLsnPosition",
2908
+ )
2909
+
2910
+ most_recent_start_position: MostRecentStartPosition = proto.Field(
2911
+ proto.MESSAGE,
2912
+ number=101,
2913
+ oneof="start_position",
2914
+ message=MostRecentStartPosition,
2915
+ )
2916
+ next_available_start_position: NextAvailableStartPosition = proto.Field(
2917
+ proto.MESSAGE,
2918
+ number=102,
2919
+ oneof="start_position",
2920
+ message=NextAvailableStartPosition,
2921
+ )
2922
+ specific_start_position: SpecificStartPosition = proto.Field(
2923
+ proto.MESSAGE,
2924
+ number=103,
2925
+ oneof="start_position",
2926
+ message=SpecificStartPosition,
2927
+ )
2928
+
2929
+
2930
+ class SqlServerLsnPosition(proto.Message):
2931
+ r"""SQL Server LSN position
2932
+
2933
+ Attributes:
2934
+ lsn (str):
2935
+ Required. Log sequence number (LSN) from
2936
+ where Logs will be read
2937
+ """
2938
+
2939
+ lsn: str = proto.Field(
2940
+ proto.STRING,
2941
+ number=1,
2942
+ )
2943
+
2944
+
2945
+ class OracleScnPosition(proto.Message):
2946
+ r"""Oracle SCN position
2947
+
2948
+ Attributes:
2949
+ scn (int):
2950
+ Required. SCN number from where Logs will be
2951
+ read
2952
+ """
2953
+
2954
+ scn: int = proto.Field(
2955
+ proto.INT64,
2956
+ number=1,
2957
+ )
2958
+
2959
+
2960
+ class MysqlLogPosition(proto.Message):
2961
+ r"""MySQL log position
2962
+
2963
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
2964
+
2965
+ Attributes:
2966
+ log_file (str):
2967
+ Required. The binary log file name.
2968
+ log_position (int):
2969
+ Optional. The position within the binary log
2970
+ file. Default is head of file.
2971
+
2972
+ This field is a member of `oneof`_ ``_log_position``.
2973
+ """
2974
+
2975
+ log_file: str = proto.Field(
2976
+ proto.STRING,
2977
+ number=1,
2978
+ )
2979
+ log_position: int = proto.Field(
2980
+ proto.INT32,
2981
+ number=2,
2982
+ optional=True,
2983
+ )
2984
+
2985
+
2986
+ __all__ = tuple(sorted(__protobuf__.manifest))