google-apis-datastream_v1alpha1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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