google-cloud-datastream-v1 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,916 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2022 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module Datastream
23
+ module V1
24
+ # Oracle database profile.
25
+ # @!attribute [rw] hostname
26
+ # @return [::String]
27
+ # Required. Hostname for the Oracle connection.
28
+ # @!attribute [rw] port
29
+ # @return [::Integer]
30
+ # Port for the Oracle connection, default value is 1521.
31
+ # @!attribute [rw] username
32
+ # @return [::String]
33
+ # Required. Username for the Oracle connection.
34
+ # @!attribute [rw] password
35
+ # @return [::String]
36
+ # Required. Password for the Oracle connection.
37
+ # @!attribute [rw] database_service
38
+ # @return [::String]
39
+ # Required. Database for the Oracle connection.
40
+ # @!attribute [rw] connection_attributes
41
+ # @return [::Google::Protobuf::Map{::String => ::String}]
42
+ # Connection string attributes
43
+ class OracleProfile
44
+ include ::Google::Protobuf::MessageExts
45
+ extend ::Google::Protobuf::MessageExts::ClassMethods
46
+
47
+ # @!attribute [rw] key
48
+ # @return [::String]
49
+ # @!attribute [rw] value
50
+ # @return [::String]
51
+ class ConnectionAttributesEntry
52
+ include ::Google::Protobuf::MessageExts
53
+ extend ::Google::Protobuf::MessageExts::ClassMethods
54
+ end
55
+ end
56
+
57
+ # MySQL database profile.
58
+ # @!attribute [rw] hostname
59
+ # @return [::String]
60
+ # Required. Hostname for the MySQL connection.
61
+ # @!attribute [rw] port
62
+ # @return [::Integer]
63
+ # Port for the MySQL connection, default value is 3306.
64
+ # @!attribute [rw] username
65
+ # @return [::String]
66
+ # Required. Username for the MySQL connection.
67
+ # @!attribute [rw] password
68
+ # @return [::String]
69
+ # Required. Input only. Password for the MySQL connection.
70
+ # @!attribute [rw] ssl_config
71
+ # @return [::Google::Cloud::Datastream::V1::MysqlSslConfig]
72
+ # SSL configuration for the MySQL connection.
73
+ class MysqlProfile
74
+ include ::Google::Protobuf::MessageExts
75
+ extend ::Google::Protobuf::MessageExts::ClassMethods
76
+ end
77
+
78
+ # Cloud Storage bucket profile.
79
+ # @!attribute [rw] bucket
80
+ # @return [::String]
81
+ # Required. The Cloud Storage bucket name.
82
+ # @!attribute [rw] root_path
83
+ # @return [::String]
84
+ # The root path inside the Cloud Storage bucket.
85
+ class GcsProfile
86
+ include ::Google::Protobuf::MessageExts
87
+ extend ::Google::Protobuf::MessageExts::ClassMethods
88
+ end
89
+
90
+ # Static IP address connectivity.
91
+ class StaticServiceIpConnectivity
92
+ include ::Google::Protobuf::MessageExts
93
+ extend ::Google::Protobuf::MessageExts::ClassMethods
94
+ end
95
+
96
+ # Forward SSH Tunnel connectivity.
97
+ # @!attribute [rw] hostname
98
+ # @return [::String]
99
+ # Required. Hostname for the SSH tunnel.
100
+ # @!attribute [rw] username
101
+ # @return [::String]
102
+ # Required. Username for the SSH tunnel.
103
+ # @!attribute [rw] port
104
+ # @return [::Integer]
105
+ # Port for the SSH tunnel, default value is 22.
106
+ # @!attribute [rw] password
107
+ # @return [::String]
108
+ # Input only. SSH password.
109
+ # @!attribute [rw] private_key
110
+ # @return [::String]
111
+ # Input only. SSH private key.
112
+ class ForwardSshTunnelConnectivity
113
+ include ::Google::Protobuf::MessageExts
114
+ extend ::Google::Protobuf::MessageExts::ClassMethods
115
+ end
116
+
117
+ # The VPC Peering configuration is used to create VPC peering between
118
+ # Datastream and the consumer's VPC.
119
+ # @!attribute [rw] vpc
120
+ # @return [::String]
121
+ # Required. Fully qualified name of the VPC that Datastream will peer to.
122
+ # Format: `projects/{project}/global/{networks}/{name}`
123
+ # @!attribute [rw] subnet
124
+ # @return [::String]
125
+ # Required. A free subnet for peering. (CIDR of /29)
126
+ class VpcPeeringConfig
127
+ include ::Google::Protobuf::MessageExts
128
+ extend ::Google::Protobuf::MessageExts::ClassMethods
129
+ end
130
+
131
+ # The PrivateConnection resource is used to establish private connectivity
132
+ # between Datastream and a customer's network.
133
+ # @!attribute [r] name
134
+ # @return [::String]
135
+ # Output only. The resource's name.
136
+ # @!attribute [r] create_time
137
+ # @return [::Google::Protobuf::Timestamp]
138
+ # Output only. The create time of the resource.
139
+ # @!attribute [r] update_time
140
+ # @return [::Google::Protobuf::Timestamp]
141
+ # Output only. The update time of the resource.
142
+ # @!attribute [rw] labels
143
+ # @return [::Google::Protobuf::Map{::String => ::String}]
144
+ # Labels.
145
+ # @!attribute [rw] display_name
146
+ # @return [::String]
147
+ # Required. Display name.
148
+ # @!attribute [r] state
149
+ # @return [::Google::Cloud::Datastream::V1::PrivateConnection::State]
150
+ # Output only. The state of the Private Connection.
151
+ # @!attribute [r] error
152
+ # @return [::Google::Cloud::Datastream::V1::Error]
153
+ # Output only. In case of error, the details of the error in a user-friendly
154
+ # format.
155
+ # @!attribute [rw] vpc_peering_config
156
+ # @return [::Google::Cloud::Datastream::V1::VpcPeeringConfig]
157
+ # VPC Peering Config.
158
+ class PrivateConnection
159
+ include ::Google::Protobuf::MessageExts
160
+ extend ::Google::Protobuf::MessageExts::ClassMethods
161
+
162
+ # @!attribute [rw] key
163
+ # @return [::String]
164
+ # @!attribute [rw] value
165
+ # @return [::String]
166
+ class LabelsEntry
167
+ include ::Google::Protobuf::MessageExts
168
+ extend ::Google::Protobuf::MessageExts::ClassMethods
169
+ end
170
+
171
+ # Private Connection state.
172
+ module State
173
+ # Unspecified state.
174
+ STATE_UNSPECIFIED = 0
175
+
176
+ # The private connection is in creation state - creating resources.
177
+ CREATING = 1
178
+
179
+ # The private connection has been created with all of its resources.
180
+ CREATED = 2
181
+
182
+ # The private connection creation has failed.
183
+ FAILED = 3
184
+
185
+ # The private connection is being deleted.
186
+ DELETING = 4
187
+
188
+ # Delete request has failed, resource is in invalid state.
189
+ FAILED_TO_DELETE = 5
190
+ end
191
+ end
192
+
193
+ # Private Connectivity
194
+ # @!attribute [rw] private_connection
195
+ # @return [::String]
196
+ # Required. A reference to a private connection resource.
197
+ # Format: `projects/{project}/locations/{location}/privateConnections/{name}`
198
+ class PrivateConnectivity
199
+ include ::Google::Protobuf::MessageExts
200
+ extend ::Google::Protobuf::MessageExts::ClassMethods
201
+ end
202
+
203
+ # The route resource is the child of the private connection resource,
204
+ # used for defining a route for a private connection.
205
+ # @!attribute [r] name
206
+ # @return [::String]
207
+ # Output only. The resource's name.
208
+ # @!attribute [r] create_time
209
+ # @return [::Google::Protobuf::Timestamp]
210
+ # Output only. The create time of the resource.
211
+ # @!attribute [r] update_time
212
+ # @return [::Google::Protobuf::Timestamp]
213
+ # Output only. The update time of the resource.
214
+ # @!attribute [rw] labels
215
+ # @return [::Google::Protobuf::Map{::String => ::String}]
216
+ # Labels.
217
+ # @!attribute [rw] display_name
218
+ # @return [::String]
219
+ # Required. Display name.
220
+ # @!attribute [rw] destination_address
221
+ # @return [::String]
222
+ # Required. Destination address for connection
223
+ # @!attribute [rw] destination_port
224
+ # @return [::Integer]
225
+ # Destination port for connection
226
+ class Route
227
+ include ::Google::Protobuf::MessageExts
228
+ extend ::Google::Protobuf::MessageExts::ClassMethods
229
+
230
+ # @!attribute [rw] key
231
+ # @return [::String]
232
+ # @!attribute [rw] value
233
+ # @return [::String]
234
+ class LabelsEntry
235
+ include ::Google::Protobuf::MessageExts
236
+ extend ::Google::Protobuf::MessageExts::ClassMethods
237
+ end
238
+ end
239
+
240
+ # MySQL SSL configuration information.
241
+ # @!attribute [rw] client_key
242
+ # @return [::String]
243
+ # Input only. PEM-encoded private key associated with the Client Certificate.
244
+ # If this field is used then the 'client_certificate' and the
245
+ # 'ca_certificate' fields are mandatory.
246
+ # @!attribute [r] client_key_set
247
+ # @return [::Boolean]
248
+ # Output only. Indicates whether the client_key field is set.
249
+ # @!attribute [rw] client_certificate
250
+ # @return [::String]
251
+ # Input only. PEM-encoded certificate that will be used by the replica to
252
+ # authenticate against the source database server. If this field is used
253
+ # then the 'client_key' and the 'ca_certificate' fields are mandatory.
254
+ # @!attribute [r] client_certificate_set
255
+ # @return [::Boolean]
256
+ # Output only. Indicates whether the client_certificate field is set.
257
+ # @!attribute [rw] ca_certificate
258
+ # @return [::String]
259
+ # Input only. PEM-encoded certificate of the CA that signed the source
260
+ # database server's certificate.
261
+ # @!attribute [r] ca_certificate_set
262
+ # @return [::Boolean]
263
+ # Output only. Indicates whether the ca_certificate field is set.
264
+ class MysqlSslConfig
265
+ include ::Google::Protobuf::MessageExts
266
+ extend ::Google::Protobuf::MessageExts::ClassMethods
267
+ end
268
+
269
+ # A set of reusable connection configurations to be used as a source or
270
+ # destination for a stream.
271
+ # @!attribute [r] name
272
+ # @return [::String]
273
+ # Output only. The resource's name.
274
+ # @!attribute [r] create_time
275
+ # @return [::Google::Protobuf::Timestamp]
276
+ # Output only. The create time of the resource.
277
+ # @!attribute [r] update_time
278
+ # @return [::Google::Protobuf::Timestamp]
279
+ # Output only. The update time of the resource.
280
+ # @!attribute [rw] labels
281
+ # @return [::Google::Protobuf::Map{::String => ::String}]
282
+ # Labels.
283
+ # @!attribute [rw] display_name
284
+ # @return [::String]
285
+ # Required. Display name.
286
+ # @!attribute [rw] oracle_profile
287
+ # @return [::Google::Cloud::Datastream::V1::OracleProfile]
288
+ # Oracle ConnectionProfile configuration.
289
+ # @!attribute [rw] gcs_profile
290
+ # @return [::Google::Cloud::Datastream::V1::GcsProfile]
291
+ # Cloud Storage ConnectionProfile configuration.
292
+ # @!attribute [rw] mysql_profile
293
+ # @return [::Google::Cloud::Datastream::V1::MysqlProfile]
294
+ # MySQL ConnectionProfile configuration.
295
+ # @!attribute [rw] static_service_ip_connectivity
296
+ # @return [::Google::Cloud::Datastream::V1::StaticServiceIpConnectivity]
297
+ # Static Service IP connectivity.
298
+ # @!attribute [rw] forward_ssh_connectivity
299
+ # @return [::Google::Cloud::Datastream::V1::ForwardSshTunnelConnectivity]
300
+ # Forward SSH tunnel connectivity.
301
+ # @!attribute [rw] private_connectivity
302
+ # @return [::Google::Cloud::Datastream::V1::PrivateConnectivity]
303
+ # Private connectivity.
304
+ class ConnectionProfile
305
+ include ::Google::Protobuf::MessageExts
306
+ extend ::Google::Protobuf::MessageExts::ClassMethods
307
+
308
+ # @!attribute [rw] key
309
+ # @return [::String]
310
+ # @!attribute [rw] value
311
+ # @return [::String]
312
+ class LabelsEntry
313
+ include ::Google::Protobuf::MessageExts
314
+ extend ::Google::Protobuf::MessageExts::ClassMethods
315
+ end
316
+ end
317
+
318
+ # Oracle Column.
319
+ # @!attribute [rw] column
320
+ # @return [::String]
321
+ # Column name.
322
+ # @!attribute [rw] data_type
323
+ # @return [::String]
324
+ # The Oracle data type.
325
+ # @!attribute [rw] length
326
+ # @return [::Integer]
327
+ # Column length.
328
+ # @!attribute [rw] precision
329
+ # @return [::Integer]
330
+ # Column precision.
331
+ # @!attribute [rw] scale
332
+ # @return [::Integer]
333
+ # Column scale.
334
+ # @!attribute [rw] encoding
335
+ # @return [::String]
336
+ # Column encoding.
337
+ # @!attribute [rw] primary_key
338
+ # @return [::Boolean]
339
+ # Whether or not the column represents a primary key.
340
+ # @!attribute [rw] nullable
341
+ # @return [::Boolean]
342
+ # Whether or not the column can accept a null value.
343
+ # @!attribute [rw] ordinal_position
344
+ # @return [::Integer]
345
+ # The ordinal position of the column in the table.
346
+ class OracleColumn
347
+ include ::Google::Protobuf::MessageExts
348
+ extend ::Google::Protobuf::MessageExts::ClassMethods
349
+ end
350
+
351
+ # Oracle table.
352
+ # @!attribute [rw] table
353
+ # @return [::String]
354
+ # Table name.
355
+ # @!attribute [rw] oracle_columns
356
+ # @return [::Array<::Google::Cloud::Datastream::V1::OracleColumn>]
357
+ # Oracle columns in the schema.
358
+ # When unspecified as part of inclue/exclude lists, includes/excludes
359
+ # everything.
360
+ class OracleTable
361
+ include ::Google::Protobuf::MessageExts
362
+ extend ::Google::Protobuf::MessageExts::ClassMethods
363
+ end
364
+
365
+ # Oracle schema.
366
+ # @!attribute [rw] schema
367
+ # @return [::String]
368
+ # Schema name.
369
+ # @!attribute [rw] oracle_tables
370
+ # @return [::Array<::Google::Cloud::Datastream::V1::OracleTable>]
371
+ # Tables in the schema.
372
+ class OracleSchema
373
+ include ::Google::Protobuf::MessageExts
374
+ extend ::Google::Protobuf::MessageExts::ClassMethods
375
+ end
376
+
377
+ # Oracle database structure.
378
+ # @!attribute [rw] oracle_schemas
379
+ # @return [::Array<::Google::Cloud::Datastream::V1::OracleSchema>]
380
+ # Oracle schemas/databases in the database server.
381
+ class OracleRdbms
382
+ include ::Google::Protobuf::MessageExts
383
+ extend ::Google::Protobuf::MessageExts::ClassMethods
384
+ end
385
+
386
+ # Oracle data source configuration
387
+ # @!attribute [rw] include_objects
388
+ # @return [::Google::Cloud::Datastream::V1::OracleRdbms]
389
+ # Oracle objects to include in the stream.
390
+ # @!attribute [rw] exclude_objects
391
+ # @return [::Google::Cloud::Datastream::V1::OracleRdbms]
392
+ # Oracle objects to exclude from the stream.
393
+ class OracleSourceConfig
394
+ include ::Google::Protobuf::MessageExts
395
+ extend ::Google::Protobuf::MessageExts::ClassMethods
396
+ end
397
+
398
+ # MySQL Column.
399
+ # @!attribute [rw] column
400
+ # @return [::String]
401
+ # Column name.
402
+ # @!attribute [rw] data_type
403
+ # @return [::String]
404
+ # The MySQL data type. Full data types list can be found here:
405
+ # https://dev.mysql.com/doc/refman/8.0/en/data-types.html
406
+ # @!attribute [rw] length
407
+ # @return [::Integer]
408
+ # Column length.
409
+ # @!attribute [rw] collation
410
+ # @return [::String]
411
+ # Column collation.
412
+ # @!attribute [rw] primary_key
413
+ # @return [::Boolean]
414
+ # Whether or not the column represents a primary key.
415
+ # @!attribute [rw] nullable
416
+ # @return [::Boolean]
417
+ # Whether or not the column can accept a null value.
418
+ # @!attribute [rw] ordinal_position
419
+ # @return [::Integer]
420
+ # The ordinal position of the column in the table.
421
+ class MysqlColumn
422
+ include ::Google::Protobuf::MessageExts
423
+ extend ::Google::Protobuf::MessageExts::ClassMethods
424
+ end
425
+
426
+ # MySQL table.
427
+ # @!attribute [rw] table
428
+ # @return [::String]
429
+ # Table name.
430
+ # @!attribute [rw] mysql_columns
431
+ # @return [::Array<::Google::Cloud::Datastream::V1::MysqlColumn>]
432
+ # MySQL columns in the database.
433
+ # When unspecified as part of include/exclude lists, includes/excludes
434
+ # everything.
435
+ class MysqlTable
436
+ include ::Google::Protobuf::MessageExts
437
+ extend ::Google::Protobuf::MessageExts::ClassMethods
438
+ end
439
+
440
+ # MySQL database.
441
+ # @!attribute [rw] database
442
+ # @return [::String]
443
+ # Database name.
444
+ # @!attribute [rw] mysql_tables
445
+ # @return [::Array<::Google::Cloud::Datastream::V1::MysqlTable>]
446
+ # Tables in the database.
447
+ class MysqlDatabase
448
+ include ::Google::Protobuf::MessageExts
449
+ extend ::Google::Protobuf::MessageExts::ClassMethods
450
+ end
451
+
452
+ # MySQL database structure
453
+ # @!attribute [rw] mysql_databases
454
+ # @return [::Array<::Google::Cloud::Datastream::V1::MysqlDatabase>]
455
+ # Mysql databases on the server
456
+ class MysqlRdbms
457
+ include ::Google::Protobuf::MessageExts
458
+ extend ::Google::Protobuf::MessageExts::ClassMethods
459
+ end
460
+
461
+ # MySQL source configuration
462
+ # @!attribute [rw] include_objects
463
+ # @return [::Google::Cloud::Datastream::V1::MysqlRdbms]
464
+ # MySQL objects to retrieve from the source.
465
+ # @!attribute [rw] exclude_objects
466
+ # @return [::Google::Cloud::Datastream::V1::MysqlRdbms]
467
+ # MySQL objects to exclude from the stream.
468
+ class MysqlSourceConfig
469
+ include ::Google::Protobuf::MessageExts
470
+ extend ::Google::Protobuf::MessageExts::ClassMethods
471
+ end
472
+
473
+ # The configuration of the stream source.
474
+ # @!attribute [rw] source_connection_profile
475
+ # @return [::String]
476
+ # Required. Source connection profile resoource.
477
+ # Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`
478
+ # @!attribute [rw] oracle_source_config
479
+ # @return [::Google::Cloud::Datastream::V1::OracleSourceConfig]
480
+ # Oracle data source configuration
481
+ # @!attribute [rw] mysql_source_config
482
+ # @return [::Google::Cloud::Datastream::V1::MysqlSourceConfig]
483
+ # MySQL data source configuration
484
+ class SourceConfig
485
+ include ::Google::Protobuf::MessageExts
486
+ extend ::Google::Protobuf::MessageExts::ClassMethods
487
+ end
488
+
489
+ # AVRO file format configuration.
490
+ class AvroFileFormat
491
+ include ::Google::Protobuf::MessageExts
492
+ extend ::Google::Protobuf::MessageExts::ClassMethods
493
+ end
494
+
495
+ # JSON file format configuration.
496
+ # @!attribute [rw] schema_file_format
497
+ # @return [::Google::Cloud::Datastream::V1::JsonFileFormat::SchemaFileFormat]
498
+ # The schema file format along JSON data files.
499
+ # @!attribute [rw] compression
500
+ # @return [::Google::Cloud::Datastream::V1::JsonFileFormat::JsonCompression]
501
+ # Compression of the loaded JSON file.
502
+ class JsonFileFormat
503
+ include ::Google::Protobuf::MessageExts
504
+ extend ::Google::Protobuf::MessageExts::ClassMethods
505
+
506
+ # Schema file format.
507
+ module SchemaFileFormat
508
+ # Unspecified schema file format.
509
+ SCHEMA_FILE_FORMAT_UNSPECIFIED = 0
510
+
511
+ # Do not attach schema file.
512
+ NO_SCHEMA_FILE = 1
513
+
514
+ # Avro schema format.
515
+ AVRO_SCHEMA_FILE = 2
516
+ end
517
+
518
+ # Json file compression.
519
+ module JsonCompression
520
+ # Unspecified json file compression.
521
+ JSON_COMPRESSION_UNSPECIFIED = 0
522
+
523
+ # Do not compress JSON file.
524
+ NO_COMPRESSION = 1
525
+
526
+ # Gzip compression.
527
+ GZIP = 2
528
+ end
529
+ end
530
+
531
+ # Google Cloud Storage destination configuration
532
+ # @!attribute [rw] path
533
+ # @return [::String]
534
+ # Path inside the Cloud Storage bucket to write data to.
535
+ # @!attribute [rw] file_rotation_mb
536
+ # @return [::Integer]
537
+ # The maximum file size to be saved in the bucket.
538
+ # @!attribute [rw] file_rotation_interval
539
+ # @return [::Google::Protobuf::Duration]
540
+ # The maximum duration for which new events are added before a file is
541
+ # closed and a new file is created.
542
+ # @!attribute [rw] avro_file_format
543
+ # @return [::Google::Cloud::Datastream::V1::AvroFileFormat]
544
+ # AVRO file format configuration.
545
+ # @!attribute [rw] json_file_format
546
+ # @return [::Google::Cloud::Datastream::V1::JsonFileFormat]
547
+ # JSON file format configuration.
548
+ class GcsDestinationConfig
549
+ include ::Google::Protobuf::MessageExts
550
+ extend ::Google::Protobuf::MessageExts::ClassMethods
551
+ end
552
+
553
+ # The configuration of the stream destination.
554
+ # @!attribute [rw] destination_connection_profile
555
+ # @return [::String]
556
+ # Required. Destination connection profile resource.
557
+ # Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`
558
+ # @!attribute [rw] gcs_destination_config
559
+ # @return [::Google::Cloud::Datastream::V1::GcsDestinationConfig]
560
+ # A configuration for how data should be loaded to Cloud Storage.
561
+ class DestinationConfig
562
+ include ::Google::Protobuf::MessageExts
563
+ extend ::Google::Protobuf::MessageExts::ClassMethods
564
+ end
565
+
566
+ # A resource representing streaming data from a source to a destination.
567
+ # @!attribute [r] name
568
+ # @return [::String]
569
+ # Output only. The stream's name.
570
+ # @!attribute [r] create_time
571
+ # @return [::Google::Protobuf::Timestamp]
572
+ # Output only. The creation time of the stream.
573
+ # @!attribute [r] update_time
574
+ # @return [::Google::Protobuf::Timestamp]
575
+ # Output only. The last update time of the stream.
576
+ # @!attribute [rw] labels
577
+ # @return [::Google::Protobuf::Map{::String => ::String}]
578
+ # Labels.
579
+ # @!attribute [rw] display_name
580
+ # @return [::String]
581
+ # Required. Display name.
582
+ # @!attribute [rw] source_config
583
+ # @return [::Google::Cloud::Datastream::V1::SourceConfig]
584
+ # Required. Source connection profile configuration.
585
+ # @!attribute [rw] destination_config
586
+ # @return [::Google::Cloud::Datastream::V1::DestinationConfig]
587
+ # Required. Destination connection profile configuration.
588
+ # @!attribute [rw] state
589
+ # @return [::Google::Cloud::Datastream::V1::Stream::State]
590
+ # The state of the stream.
591
+ # @!attribute [rw] backfill_all
592
+ # @return [::Google::Cloud::Datastream::V1::Stream::BackfillAllStrategy]
593
+ # Automatically backfill objects included in the stream source
594
+ # configuration. Specific objects can be excluded.
595
+ # @!attribute [rw] backfill_none
596
+ # @return [::Google::Cloud::Datastream::V1::Stream::BackfillNoneStrategy]
597
+ # Do not automatically backfill any objects.
598
+ # @!attribute [r] errors
599
+ # @return [::Array<::Google::Cloud::Datastream::V1::Error>]
600
+ # Output only. Errors on the Stream.
601
+ # @!attribute [rw] customer_managed_encryption_key
602
+ # @return [::String]
603
+ # Immutable. A reference to a KMS encryption key.
604
+ # If provided, it will be used to encrypt the data.
605
+ # If left blank, data will be encrypted using an internal Stream-specific
606
+ # encryption key provisioned through KMS.
607
+ class Stream
608
+ include ::Google::Protobuf::MessageExts
609
+ extend ::Google::Protobuf::MessageExts::ClassMethods
610
+
611
+ # Backfill strategy to automatically backfill the Stream's objects.
612
+ # Specific objects can be excluded.
613
+ # @!attribute [rw] oracle_excluded_objects
614
+ # @return [::Google::Cloud::Datastream::V1::OracleRdbms]
615
+ # Oracle data source objects to avoid backfilling.
616
+ # @!attribute [rw] mysql_excluded_objects
617
+ # @return [::Google::Cloud::Datastream::V1::MysqlRdbms]
618
+ # MySQL data source objects to avoid backfilling.
619
+ class BackfillAllStrategy
620
+ include ::Google::Protobuf::MessageExts
621
+ extend ::Google::Protobuf::MessageExts::ClassMethods
622
+ end
623
+
624
+ # Backfill strategy to disable automatic backfill for the Stream's objects.
625
+ class BackfillNoneStrategy
626
+ include ::Google::Protobuf::MessageExts
627
+ extend ::Google::Protobuf::MessageExts::ClassMethods
628
+ end
629
+
630
+ # @!attribute [rw] key
631
+ # @return [::String]
632
+ # @!attribute [rw] value
633
+ # @return [::String]
634
+ class LabelsEntry
635
+ include ::Google::Protobuf::MessageExts
636
+ extend ::Google::Protobuf::MessageExts::ClassMethods
637
+ end
638
+
639
+ # Stream state.
640
+ module State
641
+ # Unspecified stream state.
642
+ STATE_UNSPECIFIED = 0
643
+
644
+ # The stream has been created but has not yet started streaming data.
645
+ NOT_STARTED = 1
646
+
647
+ # The stream is running.
648
+ RUNNING = 2
649
+
650
+ # The stream is paused.
651
+ PAUSED = 3
652
+
653
+ # The stream is in maintenance mode.
654
+ #
655
+ # Updates are rejected on the resource in this state.
656
+ MAINTENANCE = 4
657
+
658
+ # The stream is experiencing an error that is preventing data from being
659
+ # streamed.
660
+ FAILED = 5
661
+
662
+ # The stream has experienced a terminal failure.
663
+ FAILED_PERMANENTLY = 6
664
+
665
+ # The stream is starting, but not yet running.
666
+ STARTING = 7
667
+
668
+ # The Stream is no longer reading new events, but still writing events in
669
+ # the buffer.
670
+ DRAINING = 8
671
+ end
672
+ end
673
+
674
+ # A specific stream object (e.g a specific DB table).
675
+ # @!attribute [r] name
676
+ # @return [::String]
677
+ # Output only. The object resource's name.
678
+ # @!attribute [r] create_time
679
+ # @return [::Google::Protobuf::Timestamp]
680
+ # Output only. The creation time of the object.
681
+ # @!attribute [r] update_time
682
+ # @return [::Google::Protobuf::Timestamp]
683
+ # Output only. The last update time of the object.
684
+ # @!attribute [rw] display_name
685
+ # @return [::String]
686
+ # Required. Display name.
687
+ # @!attribute [r] errors
688
+ # @return [::Array<::Google::Cloud::Datastream::V1::Error>]
689
+ # Output only. Active errors on the object.
690
+ # @!attribute [rw] backfill_job
691
+ # @return [::Google::Cloud::Datastream::V1::BackfillJob]
692
+ # The latest backfill job that was initiated for the stream object.
693
+ # @!attribute [rw] source_object
694
+ # @return [::Google::Cloud::Datastream::V1::SourceObjectIdentifier]
695
+ # The object identifier in the data source.
696
+ class StreamObject
697
+ include ::Google::Protobuf::MessageExts
698
+ extend ::Google::Protobuf::MessageExts::ClassMethods
699
+ end
700
+
701
+ # Represents an identifier of an object in the data source.
702
+ # @!attribute [rw] oracle_identifier
703
+ # @return [::Google::Cloud::Datastream::V1::SourceObjectIdentifier::OracleObjectIdentifier]
704
+ # Oracle data source object identifier.
705
+ # @!attribute [rw] mysql_identifier
706
+ # @return [::Google::Cloud::Datastream::V1::SourceObjectIdentifier::MysqlObjectIdentifier]
707
+ # Mysql data source object identifier.
708
+ class SourceObjectIdentifier
709
+ include ::Google::Protobuf::MessageExts
710
+ extend ::Google::Protobuf::MessageExts::ClassMethods
711
+
712
+ # Oracle data source object identifier.
713
+ # @!attribute [rw] schema
714
+ # @return [::String]
715
+ # Required. The schema name.
716
+ # @!attribute [rw] table
717
+ # @return [::String]
718
+ # Required. The table name.
719
+ class OracleObjectIdentifier
720
+ include ::Google::Protobuf::MessageExts
721
+ extend ::Google::Protobuf::MessageExts::ClassMethods
722
+ end
723
+
724
+ # Mysql data source object identifier.
725
+ # @!attribute [rw] database
726
+ # @return [::String]
727
+ # Required. The database name.
728
+ # @!attribute [rw] table
729
+ # @return [::String]
730
+ # Required. The table name.
731
+ class MysqlObjectIdentifier
732
+ include ::Google::Protobuf::MessageExts
733
+ extend ::Google::Protobuf::MessageExts::ClassMethods
734
+ end
735
+ end
736
+
737
+ # Represents a backfill job on a specific stream object.
738
+ # @!attribute [rw] state
739
+ # @return [::Google::Cloud::Datastream::V1::BackfillJob::State]
740
+ # Backfill job state.
741
+ # @!attribute [rw] trigger
742
+ # @return [::Google::Cloud::Datastream::V1::BackfillJob::Trigger]
743
+ # Backfill job's triggering reason.
744
+ # @!attribute [r] last_start_time
745
+ # @return [::Google::Protobuf::Timestamp]
746
+ # Output only. Backfill job's start time.
747
+ # @!attribute [r] last_end_time
748
+ # @return [::Google::Protobuf::Timestamp]
749
+ # Output only. Backfill job's end time.
750
+ # @!attribute [r] errors
751
+ # @return [::Array<::Google::Cloud::Datastream::V1::Error>]
752
+ # Output only. Errors which caused the backfill job to fail.
753
+ class BackfillJob
754
+ include ::Google::Protobuf::MessageExts
755
+ extend ::Google::Protobuf::MessageExts::ClassMethods
756
+
757
+ # State of the stream object's backfill job.
758
+ module State
759
+ # Default value.
760
+ STATE_UNSPECIFIED = 0
761
+
762
+ # Backfill job was never started for the stream object (stream has backfill
763
+ # strategy defined as manual or object was explicitly excluded from
764
+ # automatic backfill).
765
+ NOT_STARTED = 1
766
+
767
+ # Backfill job will start pending available resources.
768
+ PENDING = 2
769
+
770
+ # Backfill job is running.
771
+ ACTIVE = 3
772
+
773
+ # Backfill job stopped (next job run will start from beginning).
774
+ STOPPED = 4
775
+
776
+ # Backfill job failed (due to an error).
777
+ FAILED = 5
778
+
779
+ # Backfill completed successfully.
780
+ COMPLETED = 6
781
+
782
+ # Backfill job failed since the table structure is currently unsupported
783
+ # for backfill.
784
+ UNSUPPORTED = 7
785
+ end
786
+
787
+ # Triggering reason for a backfill job.
788
+ module Trigger
789
+ # Default value.
790
+ TRIGGER_UNSPECIFIED = 0
791
+
792
+ # Object backfill job was triggered automatically according to the stream's
793
+ # backfill strategy.
794
+ AUTOMATIC = 1
795
+
796
+ # Object backfill job was triggered manually using the dedicated API.
797
+ MANUAL = 2
798
+ end
799
+ end
800
+
801
+ # Represent a user-facing Error.
802
+ # @!attribute [rw] reason
803
+ # @return [::String]
804
+ # A title that explains the reason for the error.
805
+ # @!attribute [rw] error_uuid
806
+ # @return [::String]
807
+ # A unique identifier for this specific error,
808
+ # allowing it to be traced throughout the system in logs and API responses.
809
+ # @!attribute [rw] message
810
+ # @return [::String]
811
+ # A message containing more information about the error that occurred.
812
+ # @!attribute [rw] error_time
813
+ # @return [::Google::Protobuf::Timestamp]
814
+ # The time when the error occurred.
815
+ # @!attribute [rw] details
816
+ # @return [::Google::Protobuf::Map{::String => ::String}]
817
+ # Additional information about the error.
818
+ class Error
819
+ include ::Google::Protobuf::MessageExts
820
+ extend ::Google::Protobuf::MessageExts::ClassMethods
821
+
822
+ # @!attribute [rw] key
823
+ # @return [::String]
824
+ # @!attribute [rw] value
825
+ # @return [::String]
826
+ class DetailsEntry
827
+ include ::Google::Protobuf::MessageExts
828
+ extend ::Google::Protobuf::MessageExts::ClassMethods
829
+ end
830
+ end
831
+
832
+ # Contains the current validation results.
833
+ # @!attribute [rw] validations
834
+ # @return [::Array<::Google::Cloud::Datastream::V1::Validation>]
835
+ # A list of validations (includes both executed as well as not executed
836
+ # validations).
837
+ class ValidationResult
838
+ include ::Google::Protobuf::MessageExts
839
+ extend ::Google::Protobuf::MessageExts::ClassMethods
840
+ end
841
+
842
+ # A validation to perform on a stream.
843
+ # @!attribute [rw] description
844
+ # @return [::String]
845
+ # A short description of the validation.
846
+ # @!attribute [rw] state
847
+ # @return [::Google::Cloud::Datastream::V1::Validation::State]
848
+ # Validation execution status.
849
+ # @!attribute [rw] message
850
+ # @return [::Array<::Google::Cloud::Datastream::V1::ValidationMessage>]
851
+ # Messages reflecting the validation results.
852
+ # @!attribute [rw] code
853
+ # @return [::String]
854
+ # A custom code identifying this validation.
855
+ class Validation
856
+ include ::Google::Protobuf::MessageExts
857
+ extend ::Google::Protobuf::MessageExts::ClassMethods
858
+
859
+ # Validation execution state.
860
+ module State
861
+ # Unspecified state.
862
+ STATE_UNSPECIFIED = 0
863
+
864
+ # Validation did not execute.
865
+ NOT_EXECUTED = 1
866
+
867
+ # Validation failed.
868
+ FAILED = 2
869
+
870
+ # Validation passed.
871
+ PASSED = 3
872
+ end
873
+ end
874
+
875
+ # Represent user-facing validation result message.
876
+ # @!attribute [rw] message
877
+ # @return [::String]
878
+ # The result of the validation.
879
+ # @!attribute [rw] level
880
+ # @return [::Google::Cloud::Datastream::V1::ValidationMessage::Level]
881
+ # Message severity level (warning or error).
882
+ # @!attribute [rw] metadata
883
+ # @return [::Google::Protobuf::Map{::String => ::String}]
884
+ # Additional metadata related to the result.
885
+ # @!attribute [rw] code
886
+ # @return [::String]
887
+ # A custom code identifying this specific message.
888
+ class ValidationMessage
889
+ include ::Google::Protobuf::MessageExts
890
+ extend ::Google::Protobuf::MessageExts::ClassMethods
891
+
892
+ # @!attribute [rw] key
893
+ # @return [::String]
894
+ # @!attribute [rw] value
895
+ # @return [::String]
896
+ class MetadataEntry
897
+ include ::Google::Protobuf::MessageExts
898
+ extend ::Google::Protobuf::MessageExts::ClassMethods
899
+ end
900
+
901
+ # Validation message level.
902
+ module Level
903
+ # Unspecified level.
904
+ LEVEL_UNSPECIFIED = 0
905
+
906
+ # Potentially cause issues with the Stream.
907
+ WARNING = 1
908
+
909
+ # Definitely cause issues with the Stream.
910
+ ERROR = 2
911
+ end
912
+ end
913
+ end
914
+ end
915
+ end
916
+ end