google-apis-datastream_v1alpha1 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,1794 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module DatastreamV1alpha1
24
+
25
+ # AVRO file format configuration.
26
+ class AvroFileFormat
27
+ include Google::Apis::Core::Hashable
28
+
29
+ def initialize(**args)
30
+ update!(**args)
31
+ end
32
+
33
+ # Update properties of this object
34
+ def update!(**args)
35
+ end
36
+ end
37
+
38
+ # Backfill strategy to automatically backfill the Stream's objects. Specific
39
+ # objects can be excluded.
40
+ class BackfillAllStrategy
41
+ include Google::Apis::Core::Hashable
42
+
43
+ # MySQL database structure
44
+ # Corresponds to the JSON property `mysqlExcludedObjects`
45
+ # @return [Google::Apis::DatastreamV1alpha1::MysqlRdbms]
46
+ attr_accessor :mysql_excluded_objects
47
+
48
+ # Oracle database structure.
49
+ # Corresponds to the JSON property `oracleExcludedObjects`
50
+ # @return [Google::Apis::DatastreamV1alpha1::OracleRdbms]
51
+ attr_accessor :oracle_excluded_objects
52
+
53
+ def initialize(**args)
54
+ update!(**args)
55
+ end
56
+
57
+ # Update properties of this object
58
+ def update!(**args)
59
+ @mysql_excluded_objects = args[:mysql_excluded_objects] if args.key?(:mysql_excluded_objects)
60
+ @oracle_excluded_objects = args[:oracle_excluded_objects] if args.key?(:oracle_excluded_objects)
61
+ end
62
+ end
63
+
64
+ # Backfill strategy to disable automatic backfill for the Stream's objects.
65
+ class BackfillNoneStrategy
66
+ include Google::Apis::Core::Hashable
67
+
68
+ def initialize(**args)
69
+ update!(**args)
70
+ end
71
+
72
+ # Update properties of this object
73
+ def update!(**args)
74
+ end
75
+ end
76
+
77
+ # The request message for Operations.CancelOperation.
78
+ class CancelOperationRequest
79
+ include Google::Apis::Core::Hashable
80
+
81
+ def initialize(**args)
82
+ update!(**args)
83
+ end
84
+
85
+ # Update properties of this object
86
+ def update!(**args)
87
+ end
88
+ end
89
+
90
+ #
91
+ class ConnectionProfile
92
+ include Google::Apis::Core::Hashable
93
+
94
+ # Output only. The create time of the resource.
95
+ # Corresponds to the JSON property `createTime`
96
+ # @return [String]
97
+ attr_accessor :create_time
98
+
99
+ # Required. Display name.
100
+ # Corresponds to the JSON property `displayName`
101
+ # @return [String]
102
+ attr_accessor :display_name
103
+
104
+ # Forward SSH Tunnel connectivity.
105
+ # Corresponds to the JSON property `forwardSshConnectivity`
106
+ # @return [Google::Apis::DatastreamV1alpha1::ForwardSshTunnelConnectivity]
107
+ attr_accessor :forward_ssh_connectivity
108
+
109
+ # Cloud Storage bucket profile.
110
+ # Corresponds to the JSON property `gcsProfile`
111
+ # @return [Google::Apis::DatastreamV1alpha1::GcsProfile]
112
+ attr_accessor :gcs_profile
113
+
114
+ # Labels.
115
+ # Corresponds to the JSON property `labels`
116
+ # @return [Hash<String,String>]
117
+ attr_accessor :labels
118
+
119
+ # MySQL database profile.
120
+ # Corresponds to the JSON property `mysqlProfile`
121
+ # @return [Google::Apis::DatastreamV1alpha1::MysqlProfile]
122
+ attr_accessor :mysql_profile
123
+
124
+ # Output only. The resource's name.
125
+ # Corresponds to the JSON property `name`
126
+ # @return [String]
127
+ attr_accessor :name
128
+
129
+ # No connectivity settings.
130
+ # Corresponds to the JSON property `noConnectivity`
131
+ # @return [Google::Apis::DatastreamV1alpha1::NoConnectivitySettings]
132
+ attr_accessor :no_connectivity
133
+
134
+ # Oracle database profile.
135
+ # Corresponds to the JSON property `oracleProfile`
136
+ # @return [Google::Apis::DatastreamV1alpha1::OracleProfile]
137
+ attr_accessor :oracle_profile
138
+
139
+ # Private Connectivity
140
+ # Corresponds to the JSON property `privateConnectivity`
141
+ # @return [Google::Apis::DatastreamV1alpha1::PrivateConnectivity]
142
+ attr_accessor :private_connectivity
143
+
144
+ # Static IP address connectivity.
145
+ # Corresponds to the JSON property `staticServiceIpConnectivity`
146
+ # @return [Google::Apis::DatastreamV1alpha1::StaticServiceIpConnectivity]
147
+ attr_accessor :static_service_ip_connectivity
148
+
149
+ # Output only. The update time of the resource.
150
+ # Corresponds to the JSON property `updateTime`
151
+ # @return [String]
152
+ attr_accessor :update_time
153
+
154
+ def initialize(**args)
155
+ update!(**args)
156
+ end
157
+
158
+ # Update properties of this object
159
+ def update!(**args)
160
+ @create_time = args[:create_time] if args.key?(:create_time)
161
+ @display_name = args[:display_name] if args.key?(:display_name)
162
+ @forward_ssh_connectivity = args[:forward_ssh_connectivity] if args.key?(:forward_ssh_connectivity)
163
+ @gcs_profile = args[:gcs_profile] if args.key?(:gcs_profile)
164
+ @labels = args[:labels] if args.key?(:labels)
165
+ @mysql_profile = args[:mysql_profile] if args.key?(:mysql_profile)
166
+ @name = args[:name] if args.key?(:name)
167
+ @no_connectivity = args[:no_connectivity] if args.key?(:no_connectivity)
168
+ @oracle_profile = args[:oracle_profile] if args.key?(:oracle_profile)
169
+ @private_connectivity = args[:private_connectivity] if args.key?(:private_connectivity)
170
+ @static_service_ip_connectivity = args[:static_service_ip_connectivity] if args.key?(:static_service_ip_connectivity)
171
+ @update_time = args[:update_time] if args.key?(:update_time)
172
+ end
173
+ end
174
+
175
+ # The configuration of the stream destination.
176
+ class DestinationConfig
177
+ include Google::Apis::Core::Hashable
178
+
179
+ # Required. Destination connection profile identifier.
180
+ # Corresponds to the JSON property `destinationConnectionProfileName`
181
+ # @return [String]
182
+ attr_accessor :destination_connection_profile_name
183
+
184
+ # Google Cloud Storage destination configuration
185
+ # Corresponds to the JSON property `gcsDestinationConfig`
186
+ # @return [Google::Apis::DatastreamV1alpha1::GcsDestinationConfig]
187
+ attr_accessor :gcs_destination_config
188
+
189
+ def initialize(**args)
190
+ update!(**args)
191
+ end
192
+
193
+ # Update properties of this object
194
+ def update!(**args)
195
+ @destination_connection_profile_name = args[:destination_connection_profile_name] if args.key?(:destination_connection_profile_name)
196
+ @gcs_destination_config = args[:gcs_destination_config] if args.key?(:gcs_destination_config)
197
+ end
198
+ end
199
+
200
+ # Request message for 'discover' ConnectionProfile request.
201
+ class DiscoverConnectionProfileRequest
202
+ include Google::Apis::Core::Hashable
203
+
204
+ # An ad-hoc ConnectionProfile configuration.
205
+ # Corresponds to the JSON property `connectionProfile`
206
+ # @return [Google::Apis::DatastreamV1alpha1::ConnectionProfile]
207
+ attr_accessor :connection_profile
208
+
209
+ # A reference to an existing ConnectionProfile.
210
+ # Corresponds to the JSON property `connectionProfileName`
211
+ # @return [String]
212
+ attr_accessor :connection_profile_name
213
+
214
+ # MySQL database structure
215
+ # Corresponds to the JSON property `mysqlRdbms`
216
+ # @return [Google::Apis::DatastreamV1alpha1::MysqlRdbms]
217
+ attr_accessor :mysql_rdbms
218
+
219
+ # Oracle database structure.
220
+ # Corresponds to the JSON property `oracleRdbms`
221
+ # @return [Google::Apis::DatastreamV1alpha1::OracleRdbms]
222
+ attr_accessor :oracle_rdbms
223
+
224
+ # The number of hierarchy levels below the current level to be retrieved.
225
+ # Corresponds to the JSON property `recursionDepth`
226
+ # @return [Fixnum]
227
+ attr_accessor :recursion_depth
228
+
229
+ # Whether to retrieve the full hierarchy of data objects (TRUE) or only the
230
+ # current level (FALSE).
231
+ # Corresponds to the JSON property `recursive`
232
+ # @return [Boolean]
233
+ attr_accessor :recursive
234
+ alias_method :recursive?, :recursive
235
+
236
+ def initialize(**args)
237
+ update!(**args)
238
+ end
239
+
240
+ # Update properties of this object
241
+ def update!(**args)
242
+ @connection_profile = args[:connection_profile] if args.key?(:connection_profile)
243
+ @connection_profile_name = args[:connection_profile_name] if args.key?(:connection_profile_name)
244
+ @mysql_rdbms = args[:mysql_rdbms] if args.key?(:mysql_rdbms)
245
+ @oracle_rdbms = args[:oracle_rdbms] if args.key?(:oracle_rdbms)
246
+ @recursion_depth = args[:recursion_depth] if args.key?(:recursion_depth)
247
+ @recursive = args[:recursive] if args.key?(:recursive)
248
+ end
249
+ end
250
+
251
+ #
252
+ class DiscoverConnectionProfileResponse
253
+ include Google::Apis::Core::Hashable
254
+
255
+ # MySQL database structure
256
+ # Corresponds to the JSON property `mysqlRdbms`
257
+ # @return [Google::Apis::DatastreamV1alpha1::MysqlRdbms]
258
+ attr_accessor :mysql_rdbms
259
+
260
+ # Oracle database structure.
261
+ # Corresponds to the JSON property `oracleRdbms`
262
+ # @return [Google::Apis::DatastreamV1alpha1::OracleRdbms]
263
+ attr_accessor :oracle_rdbms
264
+
265
+ def initialize(**args)
266
+ update!(**args)
267
+ end
268
+
269
+ # Update properties of this object
270
+ def update!(**args)
271
+ @mysql_rdbms = args[:mysql_rdbms] if args.key?(:mysql_rdbms)
272
+ @oracle_rdbms = args[:oracle_rdbms] if args.key?(:oracle_rdbms)
273
+ end
274
+ end
275
+
276
+ # A generic empty message that you can re-use to avoid defining duplicated empty
277
+ # messages in your APIs. A typical example is to use it as the request or the
278
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
279
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
280
+ # `Empty` is empty JSON object ````.
281
+ class Empty
282
+ include Google::Apis::Core::Hashable
283
+
284
+ def initialize(**args)
285
+ update!(**args)
286
+ end
287
+
288
+ # Update properties of this object
289
+ def update!(**args)
290
+ end
291
+ end
292
+
293
+ # Represent a user-facing Error.
294
+ class Error
295
+ include Google::Apis::Core::Hashable
296
+
297
+ # Additional information about the error.
298
+ # Corresponds to the JSON property `details`
299
+ # @return [Hash<String,String>]
300
+ attr_accessor :details
301
+
302
+ # The time when the error occurred.
303
+ # Corresponds to the JSON property `errorTime`
304
+ # @return [String]
305
+ attr_accessor :error_time
306
+
307
+ # A unique identifier for this specific error, allowing it to be traced
308
+ # throughout the system in logs and API responses.
309
+ # Corresponds to the JSON property `errorUuid`
310
+ # @return [String]
311
+ attr_accessor :error_uuid
312
+
313
+ # A message containing more information about the error that occurred.
314
+ # Corresponds to the JSON property `message`
315
+ # @return [String]
316
+ attr_accessor :message
317
+
318
+ # A title that explains the reason for the error.
319
+ # Corresponds to the JSON property `reason`
320
+ # @return [String]
321
+ attr_accessor :reason
322
+
323
+ def initialize(**args)
324
+ update!(**args)
325
+ end
326
+
327
+ # Update properties of this object
328
+ def update!(**args)
329
+ @details = args[:details] if args.key?(:details)
330
+ @error_time = args[:error_time] if args.key?(:error_time)
331
+ @error_uuid = args[:error_uuid] if args.key?(:error_uuid)
332
+ @message = args[:message] if args.key?(:message)
333
+ @reason = args[:reason] if args.key?(:reason)
334
+ end
335
+ end
336
+
337
+ # Request message for 'FetchErrors' request.
338
+ class FetchErrorsRequest
339
+ include Google::Apis::Core::Hashable
340
+
341
+ def initialize(**args)
342
+ update!(**args)
343
+ end
344
+
345
+ # Update properties of this object
346
+ def update!(**args)
347
+ end
348
+ end
349
+
350
+ # Response message for a 'FetchErrors' response.
351
+ class FetchErrorsResponse
352
+ include Google::Apis::Core::Hashable
353
+
354
+ # The list of errors on the Stream.
355
+ # Corresponds to the JSON property `errors`
356
+ # @return [Array<Google::Apis::DatastreamV1alpha1::Error>]
357
+ attr_accessor :errors
358
+
359
+ def initialize(**args)
360
+ update!(**args)
361
+ end
362
+
363
+ # Update properties of this object
364
+ def update!(**args)
365
+ @errors = args[:errors] if args.key?(:errors)
366
+ end
367
+ end
368
+
369
+ # Response message for a 'FetchStaticIps' response.
370
+ class FetchStaticIpsResponse
371
+ include Google::Apis::Core::Hashable
372
+
373
+ # A token that can be sent as `page_token` to retrieve the next page. If this
374
+ # field is omitted, there are no subsequent pages.
375
+ # Corresponds to the JSON property `nextPageToken`
376
+ # @return [String]
377
+ attr_accessor :next_page_token
378
+
379
+ # list of static ips by account
380
+ # Corresponds to the JSON property `staticIps`
381
+ # @return [Array<String>]
382
+ attr_accessor :static_ips
383
+
384
+ def initialize(**args)
385
+ update!(**args)
386
+ end
387
+
388
+ # Update properties of this object
389
+ def update!(**args)
390
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
391
+ @static_ips = args[:static_ips] if args.key?(:static_ips)
392
+ end
393
+ end
394
+
395
+ # Forward SSH Tunnel connectivity.
396
+ class ForwardSshTunnelConnectivity
397
+ include Google::Apis::Core::Hashable
398
+
399
+ # Required. Hostname for the SSH tunnel.
400
+ # Corresponds to the JSON property `hostname`
401
+ # @return [String]
402
+ attr_accessor :hostname
403
+
404
+ # Input only. SSH password.
405
+ # Corresponds to the JSON property `password`
406
+ # @return [String]
407
+ attr_accessor :password
408
+
409
+ # Port for the SSH tunnel, default value is 22.
410
+ # Corresponds to the JSON property `port`
411
+ # @return [Fixnum]
412
+ attr_accessor :port
413
+
414
+ # Input only. SSH private key.
415
+ # Corresponds to the JSON property `privateKey`
416
+ # @return [String]
417
+ attr_accessor :private_key
418
+
419
+ # Required. Username for the SSH tunnel.
420
+ # Corresponds to the JSON property `username`
421
+ # @return [String]
422
+ attr_accessor :username
423
+
424
+ def initialize(**args)
425
+ update!(**args)
426
+ end
427
+
428
+ # Update properties of this object
429
+ def update!(**args)
430
+ @hostname = args[:hostname] if args.key?(:hostname)
431
+ @password = args[:password] if args.key?(:password)
432
+ @port = args[:port] if args.key?(:port)
433
+ @private_key = args[:private_key] if args.key?(:private_key)
434
+ @username = args[:username] if args.key?(:username)
435
+ end
436
+ end
437
+
438
+ # Google Cloud Storage destination configuration
439
+ class GcsDestinationConfig
440
+ include Google::Apis::Core::Hashable
441
+
442
+ # AVRO file format configuration.
443
+ # Corresponds to the JSON property `avroFileFormat`
444
+ # @return [Google::Apis::DatastreamV1alpha1::AvroFileFormat]
445
+ attr_accessor :avro_file_format
446
+
447
+ # The maximum duration for which new events are added before a file is closed
448
+ # and a new file is created.
449
+ # Corresponds to the JSON property `fileRotationInterval`
450
+ # @return [String]
451
+ attr_accessor :file_rotation_interval
452
+
453
+ # The maximum file size to be saved in the bucket.
454
+ # Corresponds to the JSON property `fileRotationMb`
455
+ # @return [Fixnum]
456
+ attr_accessor :file_rotation_mb
457
+
458
+ # File format that data should be written in. Deprecated field (b/169501737) -
459
+ # use file_format instead.
460
+ # Corresponds to the JSON property `gcsFileFormat`
461
+ # @return [String]
462
+ attr_accessor :gcs_file_format
463
+
464
+ # JSON file format configuration.
465
+ # Corresponds to the JSON property `jsonFileFormat`
466
+ # @return [Google::Apis::DatastreamV1alpha1::JsonFileFormat]
467
+ attr_accessor :json_file_format
468
+
469
+ # Path inside the Cloud Storage bucket to write data to.
470
+ # Corresponds to the JSON property `path`
471
+ # @return [String]
472
+ attr_accessor :path
473
+
474
+ def initialize(**args)
475
+ update!(**args)
476
+ end
477
+
478
+ # Update properties of this object
479
+ def update!(**args)
480
+ @avro_file_format = args[:avro_file_format] if args.key?(:avro_file_format)
481
+ @file_rotation_interval = args[:file_rotation_interval] if args.key?(:file_rotation_interval)
482
+ @file_rotation_mb = args[:file_rotation_mb] if args.key?(:file_rotation_mb)
483
+ @gcs_file_format = args[:gcs_file_format] if args.key?(:gcs_file_format)
484
+ @json_file_format = args[:json_file_format] if args.key?(:json_file_format)
485
+ @path = args[:path] if args.key?(:path)
486
+ end
487
+ end
488
+
489
+ # Cloud Storage bucket profile.
490
+ class GcsProfile
491
+ include Google::Apis::Core::Hashable
492
+
493
+ # Required. The full project and resource path for Cloud Storage bucket
494
+ # including the name.
495
+ # Corresponds to the JSON property `bucketName`
496
+ # @return [String]
497
+ attr_accessor :bucket_name
498
+
499
+ # The root path inside the Cloud Storage bucket.
500
+ # Corresponds to the JSON property `rootPath`
501
+ # @return [String]
502
+ attr_accessor :root_path
503
+
504
+ def initialize(**args)
505
+ update!(**args)
506
+ end
507
+
508
+ # Update properties of this object
509
+ def update!(**args)
510
+ @bucket_name = args[:bucket_name] if args.key?(:bucket_name)
511
+ @root_path = args[:root_path] if args.key?(:root_path)
512
+ end
513
+ end
514
+
515
+ # JSON file format configuration.
516
+ class JsonFileFormat
517
+ include Google::Apis::Core::Hashable
518
+
519
+ # Compression of the loaded JSON file.
520
+ # Corresponds to the JSON property `compression`
521
+ # @return [String]
522
+ attr_accessor :compression
523
+
524
+ # The schema file format along JSON data files.
525
+ # Corresponds to the JSON property `schemaFileFormat`
526
+ # @return [String]
527
+ attr_accessor :schema_file_format
528
+
529
+ def initialize(**args)
530
+ update!(**args)
531
+ end
532
+
533
+ # Update properties of this object
534
+ def update!(**args)
535
+ @compression = args[:compression] if args.key?(:compression)
536
+ @schema_file_format = args[:schema_file_format] if args.key?(:schema_file_format)
537
+ end
538
+ end
539
+
540
+ #
541
+ class ListConnectionProfilesResponse
542
+ include Google::Apis::Core::Hashable
543
+
544
+ # List of connection profiles.
545
+ # Corresponds to the JSON property `connectionProfiles`
546
+ # @return [Array<Google::Apis::DatastreamV1alpha1::ConnectionProfile>]
547
+ attr_accessor :connection_profiles
548
+
549
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
550
+ # field is omitted, there are no subsequent pages.
551
+ # Corresponds to the JSON property `nextPageToken`
552
+ # @return [String]
553
+ attr_accessor :next_page_token
554
+
555
+ # Locations that could not be reached.
556
+ # Corresponds to the JSON property `unreachable`
557
+ # @return [Array<String>]
558
+ attr_accessor :unreachable
559
+
560
+ def initialize(**args)
561
+ update!(**args)
562
+ end
563
+
564
+ # Update properties of this object
565
+ def update!(**args)
566
+ @connection_profiles = args[:connection_profiles] if args.key?(:connection_profiles)
567
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
568
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
569
+ end
570
+ end
571
+
572
+ # The response message for Locations.ListLocations.
573
+ class ListLocationsResponse
574
+ include Google::Apis::Core::Hashable
575
+
576
+ # A list of locations that matches the specified filter in the request.
577
+ # Corresponds to the JSON property `locations`
578
+ # @return [Array<Google::Apis::DatastreamV1alpha1::Location>]
579
+ attr_accessor :locations
580
+
581
+ # The standard List next-page token.
582
+ # Corresponds to the JSON property `nextPageToken`
583
+ # @return [String]
584
+ attr_accessor :next_page_token
585
+
586
+ def initialize(**args)
587
+ update!(**args)
588
+ end
589
+
590
+ # Update properties of this object
591
+ def update!(**args)
592
+ @locations = args[:locations] if args.key?(:locations)
593
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
594
+ end
595
+ end
596
+
597
+ # The response message for Operations.ListOperations.
598
+ class ListOperationsResponse
599
+ include Google::Apis::Core::Hashable
600
+
601
+ # The standard List next-page token.
602
+ # Corresponds to the JSON property `nextPageToken`
603
+ # @return [String]
604
+ attr_accessor :next_page_token
605
+
606
+ # A list of operations that matches the specified filter in the request.
607
+ # Corresponds to the JSON property `operations`
608
+ # @return [Array<Google::Apis::DatastreamV1alpha1::Operation>]
609
+ attr_accessor :operations
610
+
611
+ def initialize(**args)
612
+ update!(**args)
613
+ end
614
+
615
+ # Update properties of this object
616
+ def update!(**args)
617
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
618
+ @operations = args[:operations] if args.key?(:operations)
619
+ end
620
+ end
621
+
622
+ #
623
+ class ListPrivateConnectionsResponse
624
+ include Google::Apis::Core::Hashable
625
+
626
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
627
+ # field is omitted, there are no subsequent pages.
628
+ # Corresponds to the JSON property `nextPageToken`
629
+ # @return [String]
630
+ attr_accessor :next_page_token
631
+
632
+ # List of private connectivity configurations.
633
+ # Corresponds to the JSON property `privateConnections`
634
+ # @return [Array<Google::Apis::DatastreamV1alpha1::PrivateConnection>]
635
+ attr_accessor :private_connections
636
+
637
+ # Locations that could not be reached.
638
+ # Corresponds to the JSON property `unreachable`
639
+ # @return [Array<String>]
640
+ attr_accessor :unreachable
641
+
642
+ def initialize(**args)
643
+ update!(**args)
644
+ end
645
+
646
+ # Update properties of this object
647
+ def update!(**args)
648
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
649
+ @private_connections = args[:private_connections] if args.key?(:private_connections)
650
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
651
+ end
652
+ end
653
+
654
+ # route list response
655
+ class ListRoutesResponse
656
+ include Google::Apis::Core::Hashable
657
+
658
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
659
+ # field is omitted, there are no subsequent pages.
660
+ # Corresponds to the JSON property `nextPageToken`
661
+ # @return [String]
662
+ attr_accessor :next_page_token
663
+
664
+ # List of Routes.
665
+ # Corresponds to the JSON property `routes`
666
+ # @return [Array<Google::Apis::DatastreamV1alpha1::Route>]
667
+ attr_accessor :routes
668
+
669
+ # Locations that could not be reached.
670
+ # Corresponds to the JSON property `unreachable`
671
+ # @return [Array<String>]
672
+ attr_accessor :unreachable
673
+
674
+ def initialize(**args)
675
+ update!(**args)
676
+ end
677
+
678
+ # Update properties of this object
679
+ def update!(**args)
680
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
681
+ @routes = args[:routes] if args.key?(:routes)
682
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
683
+ end
684
+ end
685
+
686
+ #
687
+ class ListStreamsResponse
688
+ include Google::Apis::Core::Hashable
689
+
690
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
691
+ # field is omitted, there are no subsequent pages.
692
+ # Corresponds to the JSON property `nextPageToken`
693
+ # @return [String]
694
+ attr_accessor :next_page_token
695
+
696
+ # List of streams
697
+ # Corresponds to the JSON property `streams`
698
+ # @return [Array<Google::Apis::DatastreamV1alpha1::Stream>]
699
+ attr_accessor :streams
700
+
701
+ # Locations that could not be reached.
702
+ # Corresponds to the JSON property `unreachable`
703
+ # @return [Array<String>]
704
+ attr_accessor :unreachable
705
+
706
+ def initialize(**args)
707
+ update!(**args)
708
+ end
709
+
710
+ # Update properties of this object
711
+ def update!(**args)
712
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
713
+ @streams = args[:streams] if args.key?(:streams)
714
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
715
+ end
716
+ end
717
+
718
+ # A resource that represents Google Cloud Platform location.
719
+ class Location
720
+ include Google::Apis::Core::Hashable
721
+
722
+ # The friendly name for this location, typically a nearby city name. For example,
723
+ # "Tokyo".
724
+ # Corresponds to the JSON property `displayName`
725
+ # @return [String]
726
+ attr_accessor :display_name
727
+
728
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
729
+ # region": "us-east1"`
730
+ # Corresponds to the JSON property `labels`
731
+ # @return [Hash<String,String>]
732
+ attr_accessor :labels
733
+
734
+ # The canonical id for this location. For example: `"us-east1"`.
735
+ # Corresponds to the JSON property `locationId`
736
+ # @return [String]
737
+ attr_accessor :location_id
738
+
739
+ # Service-specific metadata. For example the available capacity at the given
740
+ # location.
741
+ # Corresponds to the JSON property `metadata`
742
+ # @return [Hash<String,Object>]
743
+ attr_accessor :metadata
744
+
745
+ # Resource name for the location, which may vary between implementations. For
746
+ # example: `"projects/example-project/locations/us-east1"`
747
+ # Corresponds to the JSON property `name`
748
+ # @return [String]
749
+ attr_accessor :name
750
+
751
+ def initialize(**args)
752
+ update!(**args)
753
+ end
754
+
755
+ # Update properties of this object
756
+ def update!(**args)
757
+ @display_name = args[:display_name] if args.key?(:display_name)
758
+ @labels = args[:labels] if args.key?(:labels)
759
+ @location_id = args[:location_id] if args.key?(:location_id)
760
+ @metadata = args[:metadata] if args.key?(:metadata)
761
+ @name = args[:name] if args.key?(:name)
762
+ end
763
+ end
764
+
765
+ # MySQL Column.
766
+ class MysqlColumn
767
+ include Google::Apis::Core::Hashable
768
+
769
+ # Column collation.
770
+ # Corresponds to the JSON property `collation`
771
+ # @return [String]
772
+ attr_accessor :collation
773
+
774
+ # Column name.
775
+ # Corresponds to the JSON property `columnName`
776
+ # @return [String]
777
+ attr_accessor :column_name
778
+
779
+ # The MySQL data type. Full data types list can be found here: https://dev.mysql.
780
+ # com/doc/refman/8.0/en/data-types.html
781
+ # Corresponds to the JSON property `dataType`
782
+ # @return [String]
783
+ attr_accessor :data_type
784
+
785
+ # Column length.
786
+ # Corresponds to the JSON property `length`
787
+ # @return [Fixnum]
788
+ attr_accessor :length
789
+
790
+ # Whether or not the column can accept a null value.
791
+ # Corresponds to the JSON property `nullable`
792
+ # @return [Boolean]
793
+ attr_accessor :nullable
794
+ alias_method :nullable?, :nullable
795
+
796
+ # The ordinal position of the column in the table.
797
+ # Corresponds to the JSON property `ordinalPosition`
798
+ # @return [Fixnum]
799
+ attr_accessor :ordinal_position
800
+
801
+ # Whether or not the column represents a primary key.
802
+ # Corresponds to the JSON property `primaryKey`
803
+ # @return [Boolean]
804
+ attr_accessor :primary_key
805
+ alias_method :primary_key?, :primary_key
806
+
807
+ def initialize(**args)
808
+ update!(**args)
809
+ end
810
+
811
+ # Update properties of this object
812
+ def update!(**args)
813
+ @collation = args[:collation] if args.key?(:collation)
814
+ @column_name = args[:column_name] if args.key?(:column_name)
815
+ @data_type = args[:data_type] if args.key?(:data_type)
816
+ @length = args[:length] if args.key?(:length)
817
+ @nullable = args[:nullable] if args.key?(:nullable)
818
+ @ordinal_position = args[:ordinal_position] if args.key?(:ordinal_position)
819
+ @primary_key = args[:primary_key] if args.key?(:primary_key)
820
+ end
821
+ end
822
+
823
+ # MySQL database.
824
+ class MysqlDatabase
825
+ include Google::Apis::Core::Hashable
826
+
827
+ # Database name.
828
+ # Corresponds to the JSON property `databaseName`
829
+ # @return [String]
830
+ attr_accessor :database_name
831
+
832
+ # Tables in the database.
833
+ # Corresponds to the JSON property `mysqlTables`
834
+ # @return [Array<Google::Apis::DatastreamV1alpha1::MysqlTable>]
835
+ attr_accessor :mysql_tables
836
+
837
+ def initialize(**args)
838
+ update!(**args)
839
+ end
840
+
841
+ # Update properties of this object
842
+ def update!(**args)
843
+ @database_name = args[:database_name] if args.key?(:database_name)
844
+ @mysql_tables = args[:mysql_tables] if args.key?(:mysql_tables)
845
+ end
846
+ end
847
+
848
+ # MySQL database profile.
849
+ class MysqlProfile
850
+ include Google::Apis::Core::Hashable
851
+
852
+ # Required. Hostname for the MySQL connection.
853
+ # Corresponds to the JSON property `hostname`
854
+ # @return [String]
855
+ attr_accessor :hostname
856
+
857
+ # Required. Input only. Password for the MySQL connection.
858
+ # Corresponds to the JSON property `password`
859
+ # @return [String]
860
+ attr_accessor :password
861
+
862
+ # Port for the MySQL connection, default value is 3306.
863
+ # Corresponds to the JSON property `port`
864
+ # @return [Fixnum]
865
+ attr_accessor :port
866
+
867
+ # MySQL SSL configuration information.
868
+ # Corresponds to the JSON property `sslConfig`
869
+ # @return [Google::Apis::DatastreamV1alpha1::MysqlSslConfig]
870
+ attr_accessor :ssl_config
871
+
872
+ # Required. Username for the MySQL connection.
873
+ # Corresponds to the JSON property `username`
874
+ # @return [String]
875
+ attr_accessor :username
876
+
877
+ def initialize(**args)
878
+ update!(**args)
879
+ end
880
+
881
+ # Update properties of this object
882
+ def update!(**args)
883
+ @hostname = args[:hostname] if args.key?(:hostname)
884
+ @password = args[:password] if args.key?(:password)
885
+ @port = args[:port] if args.key?(:port)
886
+ @ssl_config = args[:ssl_config] if args.key?(:ssl_config)
887
+ @username = args[:username] if args.key?(:username)
888
+ end
889
+ end
890
+
891
+ # MySQL database structure
892
+ class MysqlRdbms
893
+ include Google::Apis::Core::Hashable
894
+
895
+ # Mysql databases on the server
896
+ # Corresponds to the JSON property `mysqlDatabases`
897
+ # @return [Array<Google::Apis::DatastreamV1alpha1::MysqlDatabase>]
898
+ attr_accessor :mysql_databases
899
+
900
+ def initialize(**args)
901
+ update!(**args)
902
+ end
903
+
904
+ # Update properties of this object
905
+ def update!(**args)
906
+ @mysql_databases = args[:mysql_databases] if args.key?(:mysql_databases)
907
+ end
908
+ end
909
+
910
+ # MySQL source configuration
911
+ class MysqlSourceConfig
912
+ include Google::Apis::Core::Hashable
913
+
914
+ # MySQL database structure
915
+ # Corresponds to the JSON property `allowlist`
916
+ # @return [Google::Apis::DatastreamV1alpha1::MysqlRdbms]
917
+ attr_accessor :allowlist
918
+
919
+ # MySQL database structure
920
+ # Corresponds to the JSON property `rejectlist`
921
+ # @return [Google::Apis::DatastreamV1alpha1::MysqlRdbms]
922
+ attr_accessor :rejectlist
923
+
924
+ def initialize(**args)
925
+ update!(**args)
926
+ end
927
+
928
+ # Update properties of this object
929
+ def update!(**args)
930
+ @allowlist = args[:allowlist] if args.key?(:allowlist)
931
+ @rejectlist = args[:rejectlist] if args.key?(:rejectlist)
932
+ end
933
+ end
934
+
935
+ # MySQL SSL configuration information.
936
+ class MysqlSslConfig
937
+ include Google::Apis::Core::Hashable
938
+
939
+ # Input only. PEM-encoded certificate of the CA that signed the source database
940
+ # server's certificate.
941
+ # Corresponds to the JSON property `caCertificate`
942
+ # @return [String]
943
+ attr_accessor :ca_certificate
944
+
945
+ # Output only. Indicates whether the ca_certificate field is set.
946
+ # Corresponds to the JSON property `caCertificateSet`
947
+ # @return [Boolean]
948
+ attr_accessor :ca_certificate_set
949
+ alias_method :ca_certificate_set?, :ca_certificate_set
950
+
951
+ # Input only. PEM-encoded certificate that will be used by the replica to
952
+ # authenticate against the source database server. If this field is used then
953
+ # the 'client_key' and the 'ca_certificate' fields are mandatory.
954
+ # Corresponds to the JSON property `clientCertificate`
955
+ # @return [String]
956
+ attr_accessor :client_certificate
957
+
958
+ # Output only. Indicates whether the client_certificate field is set.
959
+ # Corresponds to the JSON property `clientCertificateSet`
960
+ # @return [Boolean]
961
+ attr_accessor :client_certificate_set
962
+ alias_method :client_certificate_set?, :client_certificate_set
963
+
964
+ # Input only. PEM-encoded private key associated with the Client Certificate. If
965
+ # this field is used then the 'client_certificate' and the 'ca_certificate'
966
+ # fields are mandatory.
967
+ # Corresponds to the JSON property `clientKey`
968
+ # @return [String]
969
+ attr_accessor :client_key
970
+
971
+ # Output only. Indicates whether the client_key field is set.
972
+ # Corresponds to the JSON property `clientKeySet`
973
+ # @return [Boolean]
974
+ attr_accessor :client_key_set
975
+ alias_method :client_key_set?, :client_key_set
976
+
977
+ def initialize(**args)
978
+ update!(**args)
979
+ end
980
+
981
+ # Update properties of this object
982
+ def update!(**args)
983
+ @ca_certificate = args[:ca_certificate] if args.key?(:ca_certificate)
984
+ @ca_certificate_set = args[:ca_certificate_set] if args.key?(:ca_certificate_set)
985
+ @client_certificate = args[:client_certificate] if args.key?(:client_certificate)
986
+ @client_certificate_set = args[:client_certificate_set] if args.key?(:client_certificate_set)
987
+ @client_key = args[:client_key] if args.key?(:client_key)
988
+ @client_key_set = args[:client_key_set] if args.key?(:client_key_set)
989
+ end
990
+ end
991
+
992
+ # MySQL table.
993
+ class MysqlTable
994
+ include Google::Apis::Core::Hashable
995
+
996
+ # MySQL columns in the database. When unspecified as part of include/exclude
997
+ # lists, includes/excludes everything.
998
+ # Corresponds to the JSON property `mysqlColumns`
999
+ # @return [Array<Google::Apis::DatastreamV1alpha1::MysqlColumn>]
1000
+ attr_accessor :mysql_columns
1001
+
1002
+ # Table name.
1003
+ # Corresponds to the JSON property `tableName`
1004
+ # @return [String]
1005
+ attr_accessor :table_name
1006
+
1007
+ def initialize(**args)
1008
+ update!(**args)
1009
+ end
1010
+
1011
+ # Update properties of this object
1012
+ def update!(**args)
1013
+ @mysql_columns = args[:mysql_columns] if args.key?(:mysql_columns)
1014
+ @table_name = args[:table_name] if args.key?(:table_name)
1015
+ end
1016
+ end
1017
+
1018
+ # No connectivity settings.
1019
+ class NoConnectivitySettings
1020
+ include Google::Apis::Core::Hashable
1021
+
1022
+ def initialize(**args)
1023
+ update!(**args)
1024
+ end
1025
+
1026
+ # Update properties of this object
1027
+ def update!(**args)
1028
+ end
1029
+ end
1030
+
1031
+ # This resource represents a long-running operation that is the result of a
1032
+ # network API call.
1033
+ class Operation
1034
+ include Google::Apis::Core::Hashable
1035
+
1036
+ # If the value is `false`, it means the operation is still in progress. If `true`
1037
+ # , the operation is completed, and either `error` or `response` is available.
1038
+ # Corresponds to the JSON property `done`
1039
+ # @return [Boolean]
1040
+ attr_accessor :done
1041
+ alias_method :done?, :done
1042
+
1043
+ # The `Status` type defines a logical error model that is suitable for different
1044
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1045
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1046
+ # data: error code, error message, and error details. You can find out more
1047
+ # about this error model and how to work with it in the [API Design Guide](https:
1048
+ # //cloud.google.com/apis/design/errors).
1049
+ # Corresponds to the JSON property `error`
1050
+ # @return [Google::Apis::DatastreamV1alpha1::Status]
1051
+ attr_accessor :error
1052
+
1053
+ # Service-specific metadata associated with the operation. It typically contains
1054
+ # progress information and common metadata such as create time. Some services
1055
+ # might not provide such metadata. Any method that returns a long-running
1056
+ # operation should document the metadata type, if any.
1057
+ # Corresponds to the JSON property `metadata`
1058
+ # @return [Hash<String,Object>]
1059
+ attr_accessor :metadata
1060
+
1061
+ # The server-assigned name, which is only unique within the same service that
1062
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1063
+ # be a resource name ending with `operations/`unique_id``.
1064
+ # Corresponds to the JSON property `name`
1065
+ # @return [String]
1066
+ attr_accessor :name
1067
+
1068
+ # The normal response of the operation in case of success. If the original
1069
+ # method returns no data on success, such as `Delete`, the response is `google.
1070
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
1071
+ # the response should be the resource. For other methods, the response should
1072
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
1073
+ # example, if the original method name is `TakeSnapshot()`, the inferred
1074
+ # response type is `TakeSnapshotResponse`.
1075
+ # Corresponds to the JSON property `response`
1076
+ # @return [Hash<String,Object>]
1077
+ attr_accessor :response
1078
+
1079
+ def initialize(**args)
1080
+ update!(**args)
1081
+ end
1082
+
1083
+ # Update properties of this object
1084
+ def update!(**args)
1085
+ @done = args[:done] if args.key?(:done)
1086
+ @error = args[:error] if args.key?(:error)
1087
+ @metadata = args[:metadata] if args.key?(:metadata)
1088
+ @name = args[:name] if args.key?(:name)
1089
+ @response = args[:response] if args.key?(:response)
1090
+ end
1091
+ end
1092
+
1093
+ # Represents the metadata of the long-running operation.
1094
+ class OperationMetadata
1095
+ include Google::Apis::Core::Hashable
1096
+
1097
+ # Output only. API version used to start the operation.
1098
+ # Corresponds to the JSON property `apiVersion`
1099
+ # @return [String]
1100
+ attr_accessor :api_version
1101
+
1102
+ # Output only. The time the operation was created.
1103
+ # Corresponds to the JSON property `createTime`
1104
+ # @return [String]
1105
+ attr_accessor :create_time
1106
+
1107
+ # Output only. The time the operation finished running.
1108
+ # Corresponds to the JSON property `endTime`
1109
+ # @return [String]
1110
+ attr_accessor :end_time
1111
+
1112
+ # Output only. Identifies whether the user has requested cancellation of the
1113
+ # operation. Operations that have successfully been cancelled have Operation.
1114
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
1115
+ # CANCELLED`.
1116
+ # Corresponds to the JSON property `requestedCancellation`
1117
+ # @return [Boolean]
1118
+ attr_accessor :requested_cancellation
1119
+ alias_method :requested_cancellation?, :requested_cancellation
1120
+
1121
+ # Output only. Human-readable status of the operation, if any.
1122
+ # Corresponds to the JSON property `statusMessage`
1123
+ # @return [String]
1124
+ attr_accessor :status_message
1125
+
1126
+ # Output only. Server-defined resource path for the target of the operation.
1127
+ # Corresponds to the JSON property `target`
1128
+ # @return [String]
1129
+ attr_accessor :target
1130
+
1131
+ # Contains the current validation results.
1132
+ # Corresponds to the JSON property `validationResult`
1133
+ # @return [Google::Apis::DatastreamV1alpha1::ValidationResult]
1134
+ attr_accessor :validation_result
1135
+
1136
+ # Output only. Name of the verb executed by the operation.
1137
+ # Corresponds to the JSON property `verb`
1138
+ # @return [String]
1139
+ attr_accessor :verb
1140
+
1141
+ def initialize(**args)
1142
+ update!(**args)
1143
+ end
1144
+
1145
+ # Update properties of this object
1146
+ def update!(**args)
1147
+ @api_version = args[:api_version] if args.key?(:api_version)
1148
+ @create_time = args[:create_time] if args.key?(:create_time)
1149
+ @end_time = args[:end_time] if args.key?(:end_time)
1150
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
1151
+ @status_message = args[:status_message] if args.key?(:status_message)
1152
+ @target = args[:target] if args.key?(:target)
1153
+ @validation_result = args[:validation_result] if args.key?(:validation_result)
1154
+ @verb = args[:verb] if args.key?(:verb)
1155
+ end
1156
+ end
1157
+
1158
+ # Oracle Column.
1159
+ class OracleColumn
1160
+ include Google::Apis::Core::Hashable
1161
+
1162
+ # Column name.
1163
+ # Corresponds to the JSON property `columnName`
1164
+ # @return [String]
1165
+ attr_accessor :column_name
1166
+
1167
+ # The Oracle data type.
1168
+ # Corresponds to the JSON property `dataType`
1169
+ # @return [String]
1170
+ attr_accessor :data_type
1171
+
1172
+ # Column encoding.
1173
+ # Corresponds to the JSON property `encoding`
1174
+ # @return [String]
1175
+ attr_accessor :encoding
1176
+
1177
+ # Column length.
1178
+ # Corresponds to the JSON property `length`
1179
+ # @return [Fixnum]
1180
+ attr_accessor :length
1181
+
1182
+ # Whether or not the column can accept a null value.
1183
+ # Corresponds to the JSON property `nullable`
1184
+ # @return [Boolean]
1185
+ attr_accessor :nullable
1186
+ alias_method :nullable?, :nullable
1187
+
1188
+ # The ordinal position of the column in the table.
1189
+ # Corresponds to the JSON property `ordinalPosition`
1190
+ # @return [Fixnum]
1191
+ attr_accessor :ordinal_position
1192
+
1193
+ # Column precision.
1194
+ # Corresponds to the JSON property `precision`
1195
+ # @return [Fixnum]
1196
+ attr_accessor :precision
1197
+
1198
+ # Whether or not the column represents a primary key.
1199
+ # Corresponds to the JSON property `primaryKey`
1200
+ # @return [Boolean]
1201
+ attr_accessor :primary_key
1202
+ alias_method :primary_key?, :primary_key
1203
+
1204
+ # Column scale.
1205
+ # Corresponds to the JSON property `scale`
1206
+ # @return [Fixnum]
1207
+ attr_accessor :scale
1208
+
1209
+ def initialize(**args)
1210
+ update!(**args)
1211
+ end
1212
+
1213
+ # Update properties of this object
1214
+ def update!(**args)
1215
+ @column_name = args[:column_name] if args.key?(:column_name)
1216
+ @data_type = args[:data_type] if args.key?(:data_type)
1217
+ @encoding = args[:encoding] if args.key?(:encoding)
1218
+ @length = args[:length] if args.key?(:length)
1219
+ @nullable = args[:nullable] if args.key?(:nullable)
1220
+ @ordinal_position = args[:ordinal_position] if args.key?(:ordinal_position)
1221
+ @precision = args[:precision] if args.key?(:precision)
1222
+ @primary_key = args[:primary_key] if args.key?(:primary_key)
1223
+ @scale = args[:scale] if args.key?(:scale)
1224
+ end
1225
+ end
1226
+
1227
+ # Oracle database profile.
1228
+ class OracleProfile
1229
+ include Google::Apis::Core::Hashable
1230
+
1231
+ # Connection string attributes
1232
+ # Corresponds to the JSON property `connectionAttributes`
1233
+ # @return [Hash<String,String>]
1234
+ attr_accessor :connection_attributes
1235
+
1236
+ # Required. Database for the Oracle connection.
1237
+ # Corresponds to the JSON property `databaseService`
1238
+ # @return [String]
1239
+ attr_accessor :database_service
1240
+
1241
+ # Required. Hostname for the Oracle connection.
1242
+ # Corresponds to the JSON property `hostname`
1243
+ # @return [String]
1244
+ attr_accessor :hostname
1245
+
1246
+ # Required. Password for the Oracle connection.
1247
+ # Corresponds to the JSON property `password`
1248
+ # @return [String]
1249
+ attr_accessor :password
1250
+
1251
+ # Port for the Oracle connection, default value is 1521.
1252
+ # Corresponds to the JSON property `port`
1253
+ # @return [Fixnum]
1254
+ attr_accessor :port
1255
+
1256
+ # Required. Username for the Oracle connection.
1257
+ # Corresponds to the JSON property `username`
1258
+ # @return [String]
1259
+ attr_accessor :username
1260
+
1261
+ def initialize(**args)
1262
+ update!(**args)
1263
+ end
1264
+
1265
+ # Update properties of this object
1266
+ def update!(**args)
1267
+ @connection_attributes = args[:connection_attributes] if args.key?(:connection_attributes)
1268
+ @database_service = args[:database_service] if args.key?(:database_service)
1269
+ @hostname = args[:hostname] if args.key?(:hostname)
1270
+ @password = args[:password] if args.key?(:password)
1271
+ @port = args[:port] if args.key?(:port)
1272
+ @username = args[:username] if args.key?(:username)
1273
+ end
1274
+ end
1275
+
1276
+ # Oracle database structure.
1277
+ class OracleRdbms
1278
+ include Google::Apis::Core::Hashable
1279
+
1280
+ # Oracle schemas/databases in the database server.
1281
+ # Corresponds to the JSON property `oracleSchemas`
1282
+ # @return [Array<Google::Apis::DatastreamV1alpha1::OracleSchema>]
1283
+ attr_accessor :oracle_schemas
1284
+
1285
+ def initialize(**args)
1286
+ update!(**args)
1287
+ end
1288
+
1289
+ # Update properties of this object
1290
+ def update!(**args)
1291
+ @oracle_schemas = args[:oracle_schemas] if args.key?(:oracle_schemas)
1292
+ end
1293
+ end
1294
+
1295
+ # Oracle schema.
1296
+ class OracleSchema
1297
+ include Google::Apis::Core::Hashable
1298
+
1299
+ # Tables in the schema.
1300
+ # Corresponds to the JSON property `oracleTables`
1301
+ # @return [Array<Google::Apis::DatastreamV1alpha1::OracleTable>]
1302
+ attr_accessor :oracle_tables
1303
+
1304
+ # Schema name.
1305
+ # Corresponds to the JSON property `schemaName`
1306
+ # @return [String]
1307
+ attr_accessor :schema_name
1308
+
1309
+ def initialize(**args)
1310
+ update!(**args)
1311
+ end
1312
+
1313
+ # Update properties of this object
1314
+ def update!(**args)
1315
+ @oracle_tables = args[:oracle_tables] if args.key?(:oracle_tables)
1316
+ @schema_name = args[:schema_name] if args.key?(:schema_name)
1317
+ end
1318
+ end
1319
+
1320
+ # Oracle data source configuration
1321
+ class OracleSourceConfig
1322
+ include Google::Apis::Core::Hashable
1323
+
1324
+ # Oracle database structure.
1325
+ # Corresponds to the JSON property `allowlist`
1326
+ # @return [Google::Apis::DatastreamV1alpha1::OracleRdbms]
1327
+ attr_accessor :allowlist
1328
+
1329
+ # Oracle database structure.
1330
+ # Corresponds to the JSON property `rejectlist`
1331
+ # @return [Google::Apis::DatastreamV1alpha1::OracleRdbms]
1332
+ attr_accessor :rejectlist
1333
+
1334
+ def initialize(**args)
1335
+ update!(**args)
1336
+ end
1337
+
1338
+ # Update properties of this object
1339
+ def update!(**args)
1340
+ @allowlist = args[:allowlist] if args.key?(:allowlist)
1341
+ @rejectlist = args[:rejectlist] if args.key?(:rejectlist)
1342
+ end
1343
+ end
1344
+
1345
+ # Oracle table.
1346
+ class OracleTable
1347
+ include Google::Apis::Core::Hashable
1348
+
1349
+ # Oracle columns in the schema. When unspecified as part of inclue/exclude lists,
1350
+ # includes/excludes everything.
1351
+ # Corresponds to the JSON property `oracleColumns`
1352
+ # @return [Array<Google::Apis::DatastreamV1alpha1::OracleColumn>]
1353
+ attr_accessor :oracle_columns
1354
+
1355
+ # Table name.
1356
+ # Corresponds to the JSON property `tableName`
1357
+ # @return [String]
1358
+ attr_accessor :table_name
1359
+
1360
+ def initialize(**args)
1361
+ update!(**args)
1362
+ end
1363
+
1364
+ # Update properties of this object
1365
+ def update!(**args)
1366
+ @oracle_columns = args[:oracle_columns] if args.key?(:oracle_columns)
1367
+ @table_name = args[:table_name] if args.key?(:table_name)
1368
+ end
1369
+ end
1370
+
1371
+ # The PrivateConnection resource is used to establish private connectivity
1372
+ # between Datastream and a customer's network.
1373
+ class PrivateConnection
1374
+ include Google::Apis::Core::Hashable
1375
+
1376
+ # Output only. The create time of the resource.
1377
+ # Corresponds to the JSON property `createTime`
1378
+ # @return [String]
1379
+ attr_accessor :create_time
1380
+
1381
+ # Required. Display name.
1382
+ # Corresponds to the JSON property `displayName`
1383
+ # @return [String]
1384
+ attr_accessor :display_name
1385
+
1386
+ # Represent a user-facing Error.
1387
+ # Corresponds to the JSON property `error`
1388
+ # @return [Google::Apis::DatastreamV1alpha1::Error]
1389
+ attr_accessor :error
1390
+
1391
+ # Labels.
1392
+ # Corresponds to the JSON property `labels`
1393
+ # @return [Hash<String,String>]
1394
+ attr_accessor :labels
1395
+
1396
+ # Output only. The resource's name.
1397
+ # Corresponds to the JSON property `name`
1398
+ # @return [String]
1399
+ attr_accessor :name
1400
+
1401
+ # Output only. The state of the Private Connection.
1402
+ # Corresponds to the JSON property `state`
1403
+ # @return [String]
1404
+ attr_accessor :state
1405
+
1406
+ # Output only. The update time of the resource.
1407
+ # Corresponds to the JSON property `updateTime`
1408
+ # @return [String]
1409
+ attr_accessor :update_time
1410
+
1411
+ # The VPC Peering configuration is used to create VPC peering between Datastream
1412
+ # and the consumer's VPC.
1413
+ # Corresponds to the JSON property `vpcPeeringConfig`
1414
+ # @return [Google::Apis::DatastreamV1alpha1::VpcPeeringConfig]
1415
+ attr_accessor :vpc_peering_config
1416
+
1417
+ def initialize(**args)
1418
+ update!(**args)
1419
+ end
1420
+
1421
+ # Update properties of this object
1422
+ def update!(**args)
1423
+ @create_time = args[:create_time] if args.key?(:create_time)
1424
+ @display_name = args[:display_name] if args.key?(:display_name)
1425
+ @error = args[:error] if args.key?(:error)
1426
+ @labels = args[:labels] if args.key?(:labels)
1427
+ @name = args[:name] if args.key?(:name)
1428
+ @state = args[:state] if args.key?(:state)
1429
+ @update_time = args[:update_time] if args.key?(:update_time)
1430
+ @vpc_peering_config = args[:vpc_peering_config] if args.key?(:vpc_peering_config)
1431
+ end
1432
+ end
1433
+
1434
+ # Private Connectivity
1435
+ class PrivateConnectivity
1436
+ include Google::Apis::Core::Hashable
1437
+
1438
+ #
1439
+ # Corresponds to the JSON property `privateConnectionName`
1440
+ # @return [String]
1441
+ attr_accessor :private_connection_name
1442
+
1443
+ def initialize(**args)
1444
+ update!(**args)
1445
+ end
1446
+
1447
+ # Update properties of this object
1448
+ def update!(**args)
1449
+ @private_connection_name = args[:private_connection_name] if args.key?(:private_connection_name)
1450
+ end
1451
+ end
1452
+
1453
+ # The Route resource is the child of the PrivateConnection resource. It used to
1454
+ # define a route for a PrivateConnection setup.
1455
+ class Route
1456
+ include Google::Apis::Core::Hashable
1457
+
1458
+ # Output only. The create time of the resource.
1459
+ # Corresponds to the JSON property `createTime`
1460
+ # @return [String]
1461
+ attr_accessor :create_time
1462
+
1463
+ # Required. Destination address for connection
1464
+ # Corresponds to the JSON property `destinationAddress`
1465
+ # @return [String]
1466
+ attr_accessor :destination_address
1467
+
1468
+ # Destination port for connection
1469
+ # Corresponds to the JSON property `destinationPort`
1470
+ # @return [Fixnum]
1471
+ attr_accessor :destination_port
1472
+
1473
+ # Required. Display name.
1474
+ # Corresponds to the JSON property `displayName`
1475
+ # @return [String]
1476
+ attr_accessor :display_name
1477
+
1478
+ # Labels.
1479
+ # Corresponds to the JSON property `labels`
1480
+ # @return [Hash<String,String>]
1481
+ attr_accessor :labels
1482
+
1483
+ # Output only. The resource's name.
1484
+ # Corresponds to the JSON property `name`
1485
+ # @return [String]
1486
+ attr_accessor :name
1487
+
1488
+ # Output only. The update time of the resource.
1489
+ # Corresponds to the JSON property `updateTime`
1490
+ # @return [String]
1491
+ attr_accessor :update_time
1492
+
1493
+ def initialize(**args)
1494
+ update!(**args)
1495
+ end
1496
+
1497
+ # Update properties of this object
1498
+ def update!(**args)
1499
+ @create_time = args[:create_time] if args.key?(:create_time)
1500
+ @destination_address = args[:destination_address] if args.key?(:destination_address)
1501
+ @destination_port = args[:destination_port] if args.key?(:destination_port)
1502
+ @display_name = args[:display_name] if args.key?(:display_name)
1503
+ @labels = args[:labels] if args.key?(:labels)
1504
+ @name = args[:name] if args.key?(:name)
1505
+ @update_time = args[:update_time] if args.key?(:update_time)
1506
+ end
1507
+ end
1508
+
1509
+ # The configuration of the stream source.
1510
+ class SourceConfig
1511
+ include Google::Apis::Core::Hashable
1512
+
1513
+ # MySQL source configuration
1514
+ # Corresponds to the JSON property `mysqlSourceConfig`
1515
+ # @return [Google::Apis::DatastreamV1alpha1::MysqlSourceConfig]
1516
+ attr_accessor :mysql_source_config
1517
+
1518
+ # Oracle data source configuration
1519
+ # Corresponds to the JSON property `oracleSourceConfig`
1520
+ # @return [Google::Apis::DatastreamV1alpha1::OracleSourceConfig]
1521
+ attr_accessor :oracle_source_config
1522
+
1523
+ # Required. Source connection profile identifier.
1524
+ # Corresponds to the JSON property `sourceConnectionProfileName`
1525
+ # @return [String]
1526
+ attr_accessor :source_connection_profile_name
1527
+
1528
+ def initialize(**args)
1529
+ update!(**args)
1530
+ end
1531
+
1532
+ # Update properties of this object
1533
+ def update!(**args)
1534
+ @mysql_source_config = args[:mysql_source_config] if args.key?(:mysql_source_config)
1535
+ @oracle_source_config = args[:oracle_source_config] if args.key?(:oracle_source_config)
1536
+ @source_connection_profile_name = args[:source_connection_profile_name] if args.key?(:source_connection_profile_name)
1537
+ end
1538
+ end
1539
+
1540
+ # Static IP address connectivity.
1541
+ class StaticServiceIpConnectivity
1542
+ include Google::Apis::Core::Hashable
1543
+
1544
+ def initialize(**args)
1545
+ update!(**args)
1546
+ end
1547
+
1548
+ # Update properties of this object
1549
+ def update!(**args)
1550
+ end
1551
+ end
1552
+
1553
+ # The `Status` type defines a logical error model that is suitable for different
1554
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1555
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1556
+ # data: error code, error message, and error details. You can find out more
1557
+ # about this error model and how to work with it in the [API Design Guide](https:
1558
+ # //cloud.google.com/apis/design/errors).
1559
+ class Status
1560
+ include Google::Apis::Core::Hashable
1561
+
1562
+ # The status code, which should be an enum value of google.rpc.Code.
1563
+ # Corresponds to the JSON property `code`
1564
+ # @return [Fixnum]
1565
+ attr_accessor :code
1566
+
1567
+ # A list of messages that carry the error details. There is a common set of
1568
+ # message types for APIs to use.
1569
+ # Corresponds to the JSON property `details`
1570
+ # @return [Array<Hash<String,Object>>]
1571
+ attr_accessor :details
1572
+
1573
+ # A developer-facing error message, which should be in English. Any user-facing
1574
+ # error message should be localized and sent in the google.rpc.Status.details
1575
+ # field, or localized by the client.
1576
+ # Corresponds to the JSON property `message`
1577
+ # @return [String]
1578
+ attr_accessor :message
1579
+
1580
+ def initialize(**args)
1581
+ update!(**args)
1582
+ end
1583
+
1584
+ # Update properties of this object
1585
+ def update!(**args)
1586
+ @code = args[:code] if args.key?(:code)
1587
+ @details = args[:details] if args.key?(:details)
1588
+ @message = args[:message] if args.key?(:message)
1589
+ end
1590
+ end
1591
+
1592
+ #
1593
+ class Stream
1594
+ include Google::Apis::Core::Hashable
1595
+
1596
+ # Backfill strategy to automatically backfill the Stream's objects. Specific
1597
+ # objects can be excluded.
1598
+ # Corresponds to the JSON property `backfillAll`
1599
+ # @return [Google::Apis::DatastreamV1alpha1::BackfillAllStrategy]
1600
+ attr_accessor :backfill_all
1601
+
1602
+ # Backfill strategy to disable automatic backfill for the Stream's objects.
1603
+ # Corresponds to the JSON property `backfillNone`
1604
+ # @return [Google::Apis::DatastreamV1alpha1::BackfillNoneStrategy]
1605
+ attr_accessor :backfill_none
1606
+
1607
+ # Output only. The creation time of the stream.
1608
+ # Corresponds to the JSON property `createTime`
1609
+ # @return [String]
1610
+ attr_accessor :create_time
1611
+
1612
+ # The configuration of the stream destination.
1613
+ # Corresponds to the JSON property `destinationConfig`
1614
+ # @return [Google::Apis::DatastreamV1alpha1::DestinationConfig]
1615
+ attr_accessor :destination_config
1616
+
1617
+ # Required. Display name.
1618
+ # Corresponds to the JSON property `displayName`
1619
+ # @return [String]
1620
+ attr_accessor :display_name
1621
+
1622
+ # Output only. Errors on the Stream.
1623
+ # Corresponds to the JSON property `errors`
1624
+ # @return [Array<Google::Apis::DatastreamV1alpha1::Error>]
1625
+ attr_accessor :errors
1626
+
1627
+ # Labels.
1628
+ # Corresponds to the JSON property `labels`
1629
+ # @return [Hash<String,String>]
1630
+ attr_accessor :labels
1631
+
1632
+ # Output only. The stream's name.
1633
+ # Corresponds to the JSON property `name`
1634
+ # @return [String]
1635
+ attr_accessor :name
1636
+
1637
+ # The configuration of the stream source.
1638
+ # Corresponds to the JSON property `sourceConfig`
1639
+ # @return [Google::Apis::DatastreamV1alpha1::SourceConfig]
1640
+ attr_accessor :source_config
1641
+
1642
+ # The state of the stream.
1643
+ # Corresponds to the JSON property `state`
1644
+ # @return [String]
1645
+ attr_accessor :state
1646
+
1647
+ # Output only. The last update time of the stream.
1648
+ # Corresponds to the JSON property `updateTime`
1649
+ # @return [String]
1650
+ attr_accessor :update_time
1651
+
1652
+ def initialize(**args)
1653
+ update!(**args)
1654
+ end
1655
+
1656
+ # Update properties of this object
1657
+ def update!(**args)
1658
+ @backfill_all = args[:backfill_all] if args.key?(:backfill_all)
1659
+ @backfill_none = args[:backfill_none] if args.key?(:backfill_none)
1660
+ @create_time = args[:create_time] if args.key?(:create_time)
1661
+ @destination_config = args[:destination_config] if args.key?(:destination_config)
1662
+ @display_name = args[:display_name] if args.key?(:display_name)
1663
+ @errors = args[:errors] if args.key?(:errors)
1664
+ @labels = args[:labels] if args.key?(:labels)
1665
+ @name = args[:name] if args.key?(:name)
1666
+ @source_config = args[:source_config] if args.key?(:source_config)
1667
+ @state = args[:state] if args.key?(:state)
1668
+ @update_time = args[:update_time] if args.key?(:update_time)
1669
+ end
1670
+ end
1671
+
1672
+ #
1673
+ class Validation
1674
+ include Google::Apis::Core::Hashable
1675
+
1676
+ # A custom code identifying this validation.
1677
+ # Corresponds to the JSON property `code`
1678
+ # @return [String]
1679
+ attr_accessor :code
1680
+
1681
+ # A short description of the validation.
1682
+ # Corresponds to the JSON property `description`
1683
+ # @return [String]
1684
+ attr_accessor :description
1685
+
1686
+ # Messages reflecting the validation results.
1687
+ # Corresponds to the JSON property `message`
1688
+ # @return [Array<Google::Apis::DatastreamV1alpha1::ValidationMessage>]
1689
+ attr_accessor :message
1690
+
1691
+ # Validation execution status.
1692
+ # Corresponds to the JSON property `status`
1693
+ # @return [String]
1694
+ attr_accessor :status
1695
+
1696
+ def initialize(**args)
1697
+ update!(**args)
1698
+ end
1699
+
1700
+ # Update properties of this object
1701
+ def update!(**args)
1702
+ @code = args[:code] if args.key?(:code)
1703
+ @description = args[:description] if args.key?(:description)
1704
+ @message = args[:message] if args.key?(:message)
1705
+ @status = args[:status] if args.key?(:status)
1706
+ end
1707
+ end
1708
+
1709
+ # Represent user-facing validation result message.
1710
+ class ValidationMessage
1711
+ include Google::Apis::Core::Hashable
1712
+
1713
+ # A custom code identifying this specific message.
1714
+ # Corresponds to the JSON property `code`
1715
+ # @return [String]
1716
+ attr_accessor :code
1717
+
1718
+ # Message severity level (warning or error).
1719
+ # Corresponds to the JSON property `level`
1720
+ # @return [String]
1721
+ attr_accessor :level
1722
+
1723
+ # The result of the validation.
1724
+ # Corresponds to the JSON property `message`
1725
+ # @return [String]
1726
+ attr_accessor :message
1727
+
1728
+ # Additional metadata related to the result.
1729
+ # Corresponds to the JSON property `metadata`
1730
+ # @return [Hash<String,String>]
1731
+ attr_accessor :metadata
1732
+
1733
+ def initialize(**args)
1734
+ update!(**args)
1735
+ end
1736
+
1737
+ # Update properties of this object
1738
+ def update!(**args)
1739
+ @code = args[:code] if args.key?(:code)
1740
+ @level = args[:level] if args.key?(:level)
1741
+ @message = args[:message] if args.key?(:message)
1742
+ @metadata = args[:metadata] if args.key?(:metadata)
1743
+ end
1744
+ end
1745
+
1746
+ # Contains the current validation results.
1747
+ class ValidationResult
1748
+ include Google::Apis::Core::Hashable
1749
+
1750
+ # A list of validations (includes both executed as well as not executed
1751
+ # validations).
1752
+ # Corresponds to the JSON property `validations`
1753
+ # @return [Array<Google::Apis::DatastreamV1alpha1::Validation>]
1754
+ attr_accessor :validations
1755
+
1756
+ def initialize(**args)
1757
+ update!(**args)
1758
+ end
1759
+
1760
+ # Update properties of this object
1761
+ def update!(**args)
1762
+ @validations = args[:validations] if args.key?(:validations)
1763
+ end
1764
+ end
1765
+
1766
+ # The VPC Peering configuration is used to create VPC peering between Datastream
1767
+ # and the consumer's VPC.
1768
+ class VpcPeeringConfig
1769
+ include Google::Apis::Core::Hashable
1770
+
1771
+ # Required. A free subnet for peering. (CIDR of /29) TODO(b/172995841) add
1772
+ # validators.
1773
+ # Corresponds to the JSON property `subnet`
1774
+ # @return [String]
1775
+ attr_accessor :subnet
1776
+
1777
+ # Required. fully qualified name of the VPC Datastream will peer to.
1778
+ # Corresponds to the JSON property `vpcName`
1779
+ # @return [String]
1780
+ attr_accessor :vpc_name
1781
+
1782
+ def initialize(**args)
1783
+ update!(**args)
1784
+ end
1785
+
1786
+ # Update properties of this object
1787
+ def update!(**args)
1788
+ @subnet = args[:subnet] if args.key?(:subnet)
1789
+ @vpc_name = args[:vpc_name] if args.key?(:vpc_name)
1790
+ end
1791
+ end
1792
+ end
1793
+ end
1794
+ end