# Copyright 2020 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. require 'date' require 'google/apis/core/base_service' require 'google/apis/core/json_representation' require 'google/apis/core/hashable' require 'google/apis/errors' module Google module Apis module DatastreamV1 # AVRO file format configuration. class AvroFileFormat include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # Backfill strategy to automatically backfill the Stream's objects. Specific # objects can be excluded. class BackfillAllStrategy include Google::Apis::Core::Hashable # MySQL database structure # Corresponds to the JSON property `mysqlExcludedObjects` # @return [Google::Apis::DatastreamV1::MysqlRdbms] attr_accessor :mysql_excluded_objects # Oracle database structure. # Corresponds to the JSON property `oracleExcludedObjects` # @return [Google::Apis::DatastreamV1::OracleRdbms] attr_accessor :oracle_excluded_objects # PostgreSQL database structure. # Corresponds to the JSON property `postgresqlExcludedObjects` # @return [Google::Apis::DatastreamV1::PostgresqlRdbms] attr_accessor :postgresql_excluded_objects def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @mysql_excluded_objects = args[:mysql_excluded_objects] if args.key?(:mysql_excluded_objects) @oracle_excluded_objects = args[:oracle_excluded_objects] if args.key?(:oracle_excluded_objects) @postgresql_excluded_objects = args[:postgresql_excluded_objects] if args.key?(:postgresql_excluded_objects) end end # Represents a backfill job on a specific stream object. class BackfillJob include Google::Apis::Core::Hashable # Output only. Errors which caused the backfill job to fail. # Corresponds to the JSON property `errors` # @return [Array] attr_accessor :errors # Output only. Backfill job's end time. # Corresponds to the JSON property `lastEndTime` # @return [String] attr_accessor :last_end_time # Output only. Backfill job's start time. # Corresponds to the JSON property `lastStartTime` # @return [String] attr_accessor :last_start_time # Output only. Backfill job state. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state # Backfill job's triggering reason. # Corresponds to the JSON property `trigger` # @return [String] attr_accessor :trigger def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @errors = args[:errors] if args.key?(:errors) @last_end_time = args[:last_end_time] if args.key?(:last_end_time) @last_start_time = args[:last_start_time] if args.key?(:last_start_time) @state = args[:state] if args.key?(:state) @trigger = args[:trigger] if args.key?(:trigger) end end # Backfill strategy to disable automatic backfill for the Stream's objects. class BackfillNoneStrategy include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # BigQuery destination configuration class BigQueryDestinationConfig include Google::Apis::Core::Hashable # The guaranteed data freshness (in seconds) when querying tables created by the # stream. Editing this field will only affect new tables created in the future, # but existing tables will not be impacted. Lower values mean that queries will # return fresher data, but may result in higher cost. # Corresponds to the JSON property `dataFreshness` # @return [String] attr_accessor :data_freshness # A single target dataset to which all data will be streamed. # Corresponds to the JSON property `singleTargetDataset` # @return [Google::Apis::DatastreamV1::SingleTargetDataset] attr_accessor :single_target_dataset # Destination datasets are created so that hierarchy of the destination data # objects matches the source hierarchy. # Corresponds to the JSON property `sourceHierarchyDatasets` # @return [Google::Apis::DatastreamV1::SourceHierarchyDatasets] attr_accessor :source_hierarchy_datasets def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @data_freshness = args[:data_freshness] if args.key?(:data_freshness) @single_target_dataset = args[:single_target_dataset] if args.key?(:single_target_dataset) @source_hierarchy_datasets = args[:source_hierarchy_datasets] if args.key?(:source_hierarchy_datasets) end end # BigQuery warehouse profile. class BigQueryProfile include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # The request message for Operations.CancelOperation. class CancelOperationRequest include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # The strategy that the stream uses for CDC replication. class CdcStrategy include Google::Apis::Core::Hashable # CDC strategy to start replicating from the most recent position in the source. # Corresponds to the JSON property `mostRecentStartPosition` # @return [Google::Apis::DatastreamV1::MostRecentStartPosition] attr_accessor :most_recent_start_position # CDC strategy to resume replication from the next available position in the # source. # Corresponds to the JSON property `nextAvailableStartPosition` # @return [Google::Apis::DatastreamV1::NextAvailableStartPosition] attr_accessor :next_available_start_position # CDC strategy to start replicating from a specific position in the source. # Corresponds to the JSON property `specificStartPosition` # @return [Google::Apis::DatastreamV1::SpecificStartPosition] attr_accessor :specific_start_position def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @most_recent_start_position = args[:most_recent_start_position] if args.key?(:most_recent_start_position) @next_available_start_position = args[:next_available_start_position] if args.key?(:next_available_start_position) @specific_start_position = args[:specific_start_position] if args.key?(:specific_start_position) end end # A set of reusable connection configurations to be used as a source or # destination for a stream. class ConnectionProfile include Google::Apis::Core::Hashable # BigQuery warehouse profile. # Corresponds to the JSON property `bigqueryProfile` # @return [Google::Apis::DatastreamV1::BigQueryProfile] attr_accessor :bigquery_profile # Output only. The create time of the resource. # Corresponds to the JSON property `createTime` # @return [String] attr_accessor :create_time # Required. Display name. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Forward SSH Tunnel connectivity. # Corresponds to the JSON property `forwardSshConnectivity` # @return [Google::Apis::DatastreamV1::ForwardSshTunnelConnectivity] attr_accessor :forward_ssh_connectivity # Cloud Storage bucket profile. # Corresponds to the JSON property `gcsProfile` # @return [Google::Apis::DatastreamV1::GcsProfile] attr_accessor :gcs_profile # Labels. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # MySQL database profile. # Corresponds to the JSON property `mysqlProfile` # @return [Google::Apis::DatastreamV1::MysqlProfile] attr_accessor :mysql_profile # Output only. The resource's name. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Oracle database profile. # Corresponds to the JSON property `oracleProfile` # @return [Google::Apis::DatastreamV1::OracleProfile] attr_accessor :oracle_profile # PostgreSQL database profile. # Corresponds to the JSON property `postgresqlProfile` # @return [Google::Apis::DatastreamV1::PostgresqlProfile] attr_accessor :postgresql_profile # Private Connectivity # Corresponds to the JSON property `privateConnectivity` # @return [Google::Apis::DatastreamV1::PrivateConnectivity] attr_accessor :private_connectivity # Static IP address connectivity. Used when the source database is configured to # allow incoming connections from the Datastream public IP addresses for the # region specified in the connection profile. # Corresponds to the JSON property `staticServiceIpConnectivity` # @return [Google::Apis::DatastreamV1::StaticServiceIpConnectivity] attr_accessor :static_service_ip_connectivity # Output only. The update time of the resource. # Corresponds to the JSON property `updateTime` # @return [String] attr_accessor :update_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bigquery_profile = args[:bigquery_profile] if args.key?(:bigquery_profile) @create_time = args[:create_time] if args.key?(:create_time) @display_name = args[:display_name] if args.key?(:display_name) @forward_ssh_connectivity = args[:forward_ssh_connectivity] if args.key?(:forward_ssh_connectivity) @gcs_profile = args[:gcs_profile] if args.key?(:gcs_profile) @labels = args[:labels] if args.key?(:labels) @mysql_profile = args[:mysql_profile] if args.key?(:mysql_profile) @name = args[:name] if args.key?(:name) @oracle_profile = args[:oracle_profile] if args.key?(:oracle_profile) @postgresql_profile = args[:postgresql_profile] if args.key?(:postgresql_profile) @private_connectivity = args[:private_connectivity] if args.key?(:private_connectivity) @static_service_ip_connectivity = args[:static_service_ip_connectivity] if args.key?(:static_service_ip_connectivity) @update_time = args[:update_time] if args.key?(:update_time) end end # Dataset template used for dynamic dataset creation. class DatasetTemplate include Google::Apis::Core::Hashable # If supplied, every created dataset will have its name prefixed by the provided # value. The prefix and name will be separated by an underscore. i.e. _. # Corresponds to the JSON property `datasetIdPrefix` # @return [String] attr_accessor :dataset_id_prefix # Describes the Cloud KMS encryption key that will be used to protect # destination BigQuery table. The BigQuery Service Account associated with your # project requires access to this encryption key. i.e. projects/`project`/ # locations/`location`/keyRings/`key_ring`/cryptoKeys/`cryptoKey`. See https:// # cloud.google.com/bigquery/docs/customer-managed-encryption for more # information. # Corresponds to the JSON property `kmsKeyName` # @return [String] attr_accessor :kms_key_name # Required. The geographic location where the dataset should reside. See https:// # cloud.google.com/bigquery/docs/locations for supported locations. # Corresponds to the JSON property `location` # @return [String] attr_accessor :location def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @dataset_id_prefix = args[:dataset_id_prefix] if args.key?(:dataset_id_prefix) @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name) @location = args[:location] if args.key?(:location) end end # The configuration of the stream destination. class DestinationConfig include Google::Apis::Core::Hashable # BigQuery destination configuration # Corresponds to the JSON property `bigqueryDestinationConfig` # @return [Google::Apis::DatastreamV1::BigQueryDestinationConfig] attr_accessor :bigquery_destination_config # Required. Destination connection profile resource. Format: `projects/`project`/ # locations/`location`/connectionProfiles/`name`` # Corresponds to the JSON property `destinationConnectionProfile` # @return [String] attr_accessor :destination_connection_profile # Google Cloud Storage destination configuration # Corresponds to the JSON property `gcsDestinationConfig` # @return [Google::Apis::DatastreamV1::GcsDestinationConfig] attr_accessor :gcs_destination_config def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bigquery_destination_config = args[:bigquery_destination_config] if args.key?(:bigquery_destination_config) @destination_connection_profile = args[:destination_connection_profile] if args.key?(:destination_connection_profile) @gcs_destination_config = args[:gcs_destination_config] if args.key?(:gcs_destination_config) end end # Request message for 'discover' ConnectionProfile request. class DiscoverConnectionProfileRequest include Google::Apis::Core::Hashable # A set of reusable connection configurations to be used as a source or # destination for a stream. # Corresponds to the JSON property `connectionProfile` # @return [Google::Apis::DatastreamV1::ConnectionProfile] attr_accessor :connection_profile # A reference to an existing connection profile. # Corresponds to the JSON property `connectionProfileName` # @return [String] attr_accessor :connection_profile_name # Whether to retrieve the full hierarchy of data objects (TRUE) or only the # current level (FALSE). # Corresponds to the JSON property `fullHierarchy` # @return [Boolean] attr_accessor :full_hierarchy alias_method :full_hierarchy?, :full_hierarchy # The number of hierarchy levels below the current level to be retrieved. # Corresponds to the JSON property `hierarchyDepth` # @return [Fixnum] attr_accessor :hierarchy_depth # MySQL database structure # Corresponds to the JSON property `mysqlRdbms` # @return [Google::Apis::DatastreamV1::MysqlRdbms] attr_accessor :mysql_rdbms # Oracle database structure. # Corresponds to the JSON property `oracleRdbms` # @return [Google::Apis::DatastreamV1::OracleRdbms] attr_accessor :oracle_rdbms # PostgreSQL database structure. # Corresponds to the JSON property `postgresqlRdbms` # @return [Google::Apis::DatastreamV1::PostgresqlRdbms] attr_accessor :postgresql_rdbms def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @connection_profile = args[:connection_profile] if args.key?(:connection_profile) @connection_profile_name = args[:connection_profile_name] if args.key?(:connection_profile_name) @full_hierarchy = args[:full_hierarchy] if args.key?(:full_hierarchy) @hierarchy_depth = args[:hierarchy_depth] if args.key?(:hierarchy_depth) @mysql_rdbms = args[:mysql_rdbms] if args.key?(:mysql_rdbms) @oracle_rdbms = args[:oracle_rdbms] if args.key?(:oracle_rdbms) @postgresql_rdbms = args[:postgresql_rdbms] if args.key?(:postgresql_rdbms) end end # Response from a discover request. class DiscoverConnectionProfileResponse include Google::Apis::Core::Hashable # MySQL database structure # Corresponds to the JSON property `mysqlRdbms` # @return [Google::Apis::DatastreamV1::MysqlRdbms] attr_accessor :mysql_rdbms # Oracle database structure. # Corresponds to the JSON property `oracleRdbms` # @return [Google::Apis::DatastreamV1::OracleRdbms] attr_accessor :oracle_rdbms # PostgreSQL database structure. # Corresponds to the JSON property `postgresqlRdbms` # @return [Google::Apis::DatastreamV1::PostgresqlRdbms] attr_accessor :postgresql_rdbms def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @mysql_rdbms = args[:mysql_rdbms] if args.key?(:mysql_rdbms) @oracle_rdbms = args[:oracle_rdbms] if args.key?(:oracle_rdbms) @postgresql_rdbms = args[:postgresql_rdbms] if args.key?(:postgresql_rdbms) end end # Configuration to drop large object values. class DropLargeObjects include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # A generic empty message that you can re-use to avoid defining duplicated empty # messages in your APIs. A typical example is to use it as the request or the # response type of an API method. For instance: service Foo ` rpc Bar(google. # protobuf.Empty) returns (google.protobuf.Empty); ` class Empty include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # Represent a user-facing Error. class Error include Google::Apis::Core::Hashable # Additional information about the error. # Corresponds to the JSON property `details` # @return [Hash] attr_accessor :details # The time when the error occurred. # Corresponds to the JSON property `errorTime` # @return [String] attr_accessor :error_time # A unique identifier for this specific error, allowing it to be traced # throughout the system in logs and API responses. # Corresponds to the JSON property `errorUuid` # @return [String] attr_accessor :error_uuid # A message containing more information about the error that occurred. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message # A title that explains the reason for the error. # Corresponds to the JSON property `reason` # @return [String] attr_accessor :reason def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @details = args[:details] if args.key?(:details) @error_time = args[:error_time] if args.key?(:error_time) @error_uuid = args[:error_uuid] if args.key?(:error_uuid) @message = args[:message] if args.key?(:message) @reason = args[:reason] if args.key?(:reason) end end # Response message for a 'FetchStaticIps' response. class FetchStaticIpsResponse include Google::Apis::Core::Hashable # A token that can be sent as `page_token` to retrieve the next page. If this # field is omitted, there are no subsequent pages. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # list of static ips by account # Corresponds to the JSON property `staticIps` # @return [Array] attr_accessor :static_ips def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @static_ips = args[:static_ips] if args.key?(:static_ips) end end # Forward SSH Tunnel connectivity. class ForwardSshTunnelConnectivity include Google::Apis::Core::Hashable # Required. Hostname for the SSH tunnel. # Corresponds to the JSON property `hostname` # @return [String] attr_accessor :hostname # Input only. SSH password. # Corresponds to the JSON property `password` # @return [String] attr_accessor :password # Port for the SSH tunnel, default value is 22. # Corresponds to the JSON property `port` # @return [Fixnum] attr_accessor :port # Input only. SSH private key. # Corresponds to the JSON property `privateKey` # @return [String] attr_accessor :private_key # Required. Username for the SSH tunnel. # Corresponds to the JSON property `username` # @return [String] attr_accessor :username def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @hostname = args[:hostname] if args.key?(:hostname) @password = args[:password] if args.key?(:password) @port = args[:port] if args.key?(:port) @private_key = args[:private_key] if args.key?(:private_key) @username = args[:username] if args.key?(:username) end end # Google Cloud Storage destination configuration class GcsDestinationConfig include Google::Apis::Core::Hashable # AVRO file format configuration. # Corresponds to the JSON property `avroFileFormat` # @return [Google::Apis::DatastreamV1::AvroFileFormat] attr_accessor :avro_file_format # The maximum duration for which new events are added before a file is closed # and a new file is created. Values within the range of 15-60 seconds are # allowed. # Corresponds to the JSON property `fileRotationInterval` # @return [String] attr_accessor :file_rotation_interval # The maximum file size to be saved in the bucket. # Corresponds to the JSON property `fileRotationMb` # @return [Fixnum] attr_accessor :file_rotation_mb # JSON file format configuration. # Corresponds to the JSON property `jsonFileFormat` # @return [Google::Apis::DatastreamV1::JsonFileFormat] attr_accessor :json_file_format # Path inside the Cloud Storage bucket to write data to. # Corresponds to the JSON property `path` # @return [String] attr_accessor :path def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @avro_file_format = args[:avro_file_format] if args.key?(:avro_file_format) @file_rotation_interval = args[:file_rotation_interval] if args.key?(:file_rotation_interval) @file_rotation_mb = args[:file_rotation_mb] if args.key?(:file_rotation_mb) @json_file_format = args[:json_file_format] if args.key?(:json_file_format) @path = args[:path] if args.key?(:path) end end # Cloud Storage bucket profile. class GcsProfile include Google::Apis::Core::Hashable # Required. The Cloud Storage bucket name. # Corresponds to the JSON property `bucket` # @return [String] attr_accessor :bucket # The root path inside the Cloud Storage bucket. # Corresponds to the JSON property `rootPath` # @return [String] attr_accessor :root_path def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bucket = args[:bucket] if args.key?(:bucket) @root_path = args[:root_path] if args.key?(:root_path) end end # JSON file format configuration. class JsonFileFormat include Google::Apis::Core::Hashable # Compression of the loaded JSON file. # Corresponds to the JSON property `compression` # @return [String] attr_accessor :compression # The schema file format along JSON data files. # Corresponds to the JSON property `schemaFileFormat` # @return [String] attr_accessor :schema_file_format def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @compression = args[:compression] if args.key?(:compression) @schema_file_format = args[:schema_file_format] if args.key?(:schema_file_format) end end # Response message for listing connection profiles. class ListConnectionProfilesResponse include Google::Apis::Core::Hashable # List of connection profiles. # Corresponds to the JSON property `connectionProfiles` # @return [Array] attr_accessor :connection_profiles # A token, which can be sent as `page_token` to retrieve the next page. If this # field is omitted, there are no subsequent pages. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # Locations that could not be reached. # Corresponds to the JSON property `unreachable` # @return [Array] attr_accessor :unreachable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @connection_profiles = args[:connection_profiles] if args.key?(:connection_profiles) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @unreachable = args[:unreachable] if args.key?(:unreachable) end end # The response message for Locations.ListLocations. class ListLocationsResponse include Google::Apis::Core::Hashable # A list of locations that matches the specified filter in the request. # Corresponds to the JSON property `locations` # @return [Array] attr_accessor :locations # The standard List next-page token. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @locations = args[:locations] if args.key?(:locations) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # The response message for Operations.ListOperations. class ListOperationsResponse include Google::Apis::Core::Hashable # The standard List next-page token. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # A list of operations that matches the specified filter in the request. # Corresponds to the JSON property `operations` # @return [Array] attr_accessor :operations def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @operations = args[:operations] if args.key?(:operations) end end # Response containing a list of private connection configurations. class ListPrivateConnectionsResponse include Google::Apis::Core::Hashable # A token, which can be sent as `page_token` to retrieve the next page. If this # field is omitted, there are no subsequent pages. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # List of private connectivity configurations. # Corresponds to the JSON property `privateConnections` # @return [Array] attr_accessor :private_connections # Locations that could not be reached. # Corresponds to the JSON property `unreachable` # @return [Array] attr_accessor :unreachable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @private_connections = args[:private_connections] if args.key?(:private_connections) @unreachable = args[:unreachable] if args.key?(:unreachable) end end # Route list response. class ListRoutesResponse include Google::Apis::Core::Hashable # A token, which can be sent as `page_token` to retrieve the next page. If this # field is omitted, there are no subsequent pages. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # List of Routes. # Corresponds to the JSON property `routes` # @return [Array] attr_accessor :routes # Locations that could not be reached. # Corresponds to the JSON property `unreachable` # @return [Array] attr_accessor :unreachable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @routes = args[:routes] if args.key?(:routes) @unreachable = args[:unreachable] if args.key?(:unreachable) end end # Response containing the objects for a stream. class ListStreamObjectsResponse include Google::Apis::Core::Hashable # A token, which can be sent as `page_token` to retrieve the next page. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # List of stream objects. # Corresponds to the JSON property `streamObjects` # @return [Array] attr_accessor :stream_objects def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @stream_objects = args[:stream_objects] if args.key?(:stream_objects) end end # Response message for listing streams. class ListStreamsResponse include Google::Apis::Core::Hashable # A token, which can be sent as `page_token` to retrieve the next page. If this # field is omitted, there are no subsequent pages. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # List of streams # Corresponds to the JSON property `streams` # @return [Array] attr_accessor :streams # Locations that could not be reached. # Corresponds to the JSON property `unreachable` # @return [Array] attr_accessor :unreachable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @streams = args[:streams] if args.key?(:streams) @unreachable = args[:unreachable] if args.key?(:unreachable) end end # A resource that represents a Google Cloud location. class Location include Google::Apis::Core::Hashable # The friendly name for this location, typically a nearby city name. For example, # "Tokyo". # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Cross-service attributes for the location. For example `"cloud.googleapis.com/ # region": "us-east1"` # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # The canonical id for this location. For example: `"us-east1"`. # Corresponds to the JSON property `locationId` # @return [String] attr_accessor :location_id # Service-specific metadata. For example the available capacity at the given # location. # Corresponds to the JSON property `metadata` # @return [Hash] attr_accessor :metadata # Resource name for the location, which may vary between implementations. For # example: `"projects/example-project/locations/us-east1"` # Corresponds to the JSON property `name` # @return [String] attr_accessor :name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @display_name = args[:display_name] if args.key?(:display_name) @labels = args[:labels] if args.key?(:labels) @location_id = args[:location_id] if args.key?(:location_id) @metadata = args[:metadata] if args.key?(:metadata) @name = args[:name] if args.key?(:name) end end # Request for looking up a specific stream object by its source object # identifier. class LookupStreamObjectRequest include Google::Apis::Core::Hashable # Represents an identifier of an object in the data source. # Corresponds to the JSON property `sourceObjectIdentifier` # @return [Google::Apis::DatastreamV1::SourceObjectIdentifier] attr_accessor :source_object_identifier def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @source_object_identifier = args[:source_object_identifier] if args.key?(:source_object_identifier) end end # CDC strategy to start replicating from the most recent position in the source. class MostRecentStartPosition include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # MySQL Column. class MysqlColumn include Google::Apis::Core::Hashable # Column collation. # Corresponds to the JSON property `collation` # @return [String] attr_accessor :collation # Column name. # Corresponds to the JSON property `column` # @return [String] attr_accessor :column # The MySQL data type. Full data types list can be found here: https://dev.mysql. # com/doc/refman/8.0/en/data-types.html # Corresponds to the JSON property `dataType` # @return [String] attr_accessor :data_type # Column length. # Corresponds to the JSON property `length` # @return [Fixnum] attr_accessor :length # Whether or not the column can accept a null value. # Corresponds to the JSON property `nullable` # @return [Boolean] attr_accessor :nullable alias_method :nullable?, :nullable # The ordinal position of the column in the table. # Corresponds to the JSON property `ordinalPosition` # @return [Fixnum] attr_accessor :ordinal_position # Column precision. # Corresponds to the JSON property `precision` # @return [Fixnum] attr_accessor :precision # Whether or not the column represents a primary key. # Corresponds to the JSON property `primaryKey` # @return [Boolean] attr_accessor :primary_key alias_method :primary_key?, :primary_key # Column scale. # Corresponds to the JSON property `scale` # @return [Fixnum] attr_accessor :scale def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @collation = args[:collation] if args.key?(:collation) @column = args[:column] if args.key?(:column) @data_type = args[:data_type] if args.key?(:data_type) @length = args[:length] if args.key?(:length) @nullable = args[:nullable] if args.key?(:nullable) @ordinal_position = args[:ordinal_position] if args.key?(:ordinal_position) @precision = args[:precision] if args.key?(:precision) @primary_key = args[:primary_key] if args.key?(:primary_key) @scale = args[:scale] if args.key?(:scale) end end # MySQL database. class MysqlDatabase include Google::Apis::Core::Hashable # Database name. # Corresponds to the JSON property `database` # @return [String] attr_accessor :database # Tables in the database. # Corresponds to the JSON property `mysqlTables` # @return [Array] attr_accessor :mysql_tables def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @database = args[:database] if args.key?(:database) @mysql_tables = args[:mysql_tables] if args.key?(:mysql_tables) end end # MySQL log position class MysqlLogPosition include Google::Apis::Core::Hashable # The binary log file name. # Corresponds to the JSON property `logFile` # @return [String] attr_accessor :log_file # The position within the binary log file. Default is head of file. # Corresponds to the JSON property `logPosition` # @return [Fixnum] attr_accessor :log_position def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @log_file = args[:log_file] if args.key?(:log_file) @log_position = args[:log_position] if args.key?(:log_position) end end # Mysql data source object identifier. class MysqlObjectIdentifier include Google::Apis::Core::Hashable # Required. The database name. # Corresponds to the JSON property `database` # @return [String] attr_accessor :database # Required. The table name. # Corresponds to the JSON property `table` # @return [String] attr_accessor :table def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @database = args[:database] if args.key?(:database) @table = args[:table] if args.key?(:table) end end # MySQL database profile. class MysqlProfile include Google::Apis::Core::Hashable # Required. Hostname for the MySQL connection. # Corresponds to the JSON property `hostname` # @return [String] attr_accessor :hostname # Required. Input only. Password for the MySQL connection. # Corresponds to the JSON property `password` # @return [String] attr_accessor :password # Port for the MySQL connection, default value is 3306. # Corresponds to the JSON property `port` # @return [Fixnum] attr_accessor :port # MySQL SSL configuration information. # Corresponds to the JSON property `sslConfig` # @return [Google::Apis::DatastreamV1::MysqlSslConfig] attr_accessor :ssl_config # Required. Username for the MySQL connection. # Corresponds to the JSON property `username` # @return [String] attr_accessor :username def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @hostname = args[:hostname] if args.key?(:hostname) @password = args[:password] if args.key?(:password) @port = args[:port] if args.key?(:port) @ssl_config = args[:ssl_config] if args.key?(:ssl_config) @username = args[:username] if args.key?(:username) end end # MySQL database structure class MysqlRdbms include Google::Apis::Core::Hashable # Mysql databases on the server # Corresponds to the JSON property `mysqlDatabases` # @return [Array] attr_accessor :mysql_databases def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @mysql_databases = args[:mysql_databases] if args.key?(:mysql_databases) end end # MySQL source configuration class MysqlSourceConfig include Google::Apis::Core::Hashable # MySQL database structure # Corresponds to the JSON property `excludeObjects` # @return [Google::Apis::DatastreamV1::MysqlRdbms] attr_accessor :exclude_objects # MySQL database structure # Corresponds to the JSON property `includeObjects` # @return [Google::Apis::DatastreamV1::MysqlRdbms] attr_accessor :include_objects # Maximum number of concurrent backfill tasks. The number should be non negative. # If not set (or set to 0), the system's default value will be used. # Corresponds to the JSON property `maxConcurrentBackfillTasks` # @return [Fixnum] attr_accessor :max_concurrent_backfill_tasks # Maximum number of concurrent CDC tasks. The number should be non negative. If # not set (or set to 0), the system's default value will be used. # Corresponds to the JSON property `maxConcurrentCdcTasks` # @return [Fixnum] attr_accessor :max_concurrent_cdc_tasks def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @exclude_objects = args[:exclude_objects] if args.key?(:exclude_objects) @include_objects = args[:include_objects] if args.key?(:include_objects) @max_concurrent_backfill_tasks = args[:max_concurrent_backfill_tasks] if args.key?(:max_concurrent_backfill_tasks) @max_concurrent_cdc_tasks = args[:max_concurrent_cdc_tasks] if args.key?(:max_concurrent_cdc_tasks) end end # MySQL SSL configuration information. class MysqlSslConfig include Google::Apis::Core::Hashable # Input only. PEM-encoded certificate of the CA that signed the source database # server's certificate. # Corresponds to the JSON property `caCertificate` # @return [String] attr_accessor :ca_certificate # Output only. Indicates whether the ca_certificate field is set. # Corresponds to the JSON property `caCertificateSet` # @return [Boolean] attr_accessor :ca_certificate_set alias_method :ca_certificate_set?, :ca_certificate_set # Input only. PEM-encoded certificate that will be used by the replica to # authenticate against the source database server. If this field is used then # the 'client_key' and the 'ca_certificate' fields are mandatory. # Corresponds to the JSON property `clientCertificate` # @return [String] attr_accessor :client_certificate # Output only. Indicates whether the client_certificate field is set. # Corresponds to the JSON property `clientCertificateSet` # @return [Boolean] attr_accessor :client_certificate_set alias_method :client_certificate_set?, :client_certificate_set # Input only. PEM-encoded private key associated with the Client Certificate. If # this field is used then the 'client_certificate' and the 'ca_certificate' # fields are mandatory. # Corresponds to the JSON property `clientKey` # @return [String] attr_accessor :client_key # Output only. Indicates whether the client_key field is set. # Corresponds to the JSON property `clientKeySet` # @return [Boolean] attr_accessor :client_key_set alias_method :client_key_set?, :client_key_set def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ca_certificate = args[:ca_certificate] if args.key?(:ca_certificate) @ca_certificate_set = args[:ca_certificate_set] if args.key?(:ca_certificate_set) @client_certificate = args[:client_certificate] if args.key?(:client_certificate) @client_certificate_set = args[:client_certificate_set] if args.key?(:client_certificate_set) @client_key = args[:client_key] if args.key?(:client_key) @client_key_set = args[:client_key_set] if args.key?(:client_key_set) end end # MySQL table. class MysqlTable include Google::Apis::Core::Hashable # MySQL columns in the database. When unspecified as part of include/exclude # objects, includes/excludes everything. # Corresponds to the JSON property `mysqlColumns` # @return [Array] attr_accessor :mysql_columns # Table name. # Corresponds to the JSON property `table` # @return [String] attr_accessor :table def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @mysql_columns = args[:mysql_columns] if args.key?(:mysql_columns) @table = args[:table] if args.key?(:table) end end # CDC strategy to resume replication from the next available position in the # source. class NextAvailableStartPosition include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # This resource represents a long-running operation that is the result of a # network API call. class Operation include Google::Apis::Core::Hashable # If the value is `false`, it means the operation is still in progress. If `true` # , the operation is completed, and either `error` or `response` is available. # Corresponds to the JSON property `done` # @return [Boolean] attr_accessor :done alias_method :done?, :done # The `Status` type defines a logical error model that is suitable for different # programming environments, including REST APIs and RPC APIs. It is used by [ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of # data: error code, error message, and error details. You can find out more # about this error model and how to work with it in the [API Design Guide](https: # //cloud.google.com/apis/design/errors). # Corresponds to the JSON property `error` # @return [Google::Apis::DatastreamV1::Status] attr_accessor :error # Service-specific metadata associated with the operation. It typically contains # progress information and common metadata such as create time. Some services # might not provide such metadata. Any method that returns a long-running # operation should document the metadata type, if any. # Corresponds to the JSON property `metadata` # @return [Hash] attr_accessor :metadata # The server-assigned name, which is only unique within the same service that # originally returns it. If you use the default HTTP mapping, the `name` should # be a resource name ending with `operations/`unique_id``. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The normal, successful response of the operation. If the original method # returns no data on success, such as `Delete`, the response is `google.protobuf. # Empty`. If the original method is standard `Get`/`Create`/`Update`, the # response should be the resource. For other methods, the response should have # the type `XxxResponse`, where `Xxx` is the original method name. For example, # if the original method name is `TakeSnapshot()`, the inferred response type is # `TakeSnapshotResponse`. # Corresponds to the JSON property `response` # @return [Hash] attr_accessor :response def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @done = args[:done] if args.key?(:done) @error = args[:error] if args.key?(:error) @metadata = args[:metadata] if args.key?(:metadata) @name = args[:name] if args.key?(:name) @response = args[:response] if args.key?(:response) end end # Represents the metadata of the long-running operation. class OperationMetadata include Google::Apis::Core::Hashable # Output only. API version used to start the operation. # Corresponds to the JSON property `apiVersion` # @return [String] attr_accessor :api_version # Output only. The time the operation was created. # Corresponds to the JSON property `createTime` # @return [String] attr_accessor :create_time # Output only. The time the operation finished running. # Corresponds to the JSON property `endTime` # @return [String] attr_accessor :end_time # Output only. Identifies whether the user has requested cancellation of the # operation. Operations that have successfully been cancelled have Operation. # error value with a google.rpc.Status.code of 1, corresponding to `Code. # CANCELLED`. # Corresponds to the JSON property `requestedCancellation` # @return [Boolean] attr_accessor :requested_cancellation alias_method :requested_cancellation?, :requested_cancellation # Output only. Human-readable status of the operation, if any. # Corresponds to the JSON property `statusMessage` # @return [String] attr_accessor :status_message # Output only. Server-defined resource path for the target of the operation. # Corresponds to the JSON property `target` # @return [String] attr_accessor :target # Contains the current validation results. # Corresponds to the JSON property `validationResult` # @return [Google::Apis::DatastreamV1::ValidationResult] attr_accessor :validation_result # Output only. Name of the verb executed by the operation. # Corresponds to the JSON property `verb` # @return [String] attr_accessor :verb def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @api_version = args[:api_version] if args.key?(:api_version) @create_time = args[:create_time] if args.key?(:create_time) @end_time = args[:end_time] if args.key?(:end_time) @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation) @status_message = args[:status_message] if args.key?(:status_message) @target = args[:target] if args.key?(:target) @validation_result = args[:validation_result] if args.key?(:validation_result) @verb = args[:verb] if args.key?(:verb) end end # Oracle Column. class OracleColumn include Google::Apis::Core::Hashable # Column name. # Corresponds to the JSON property `column` # @return [String] attr_accessor :column # The Oracle data type. # Corresponds to the JSON property `dataType` # @return [String] attr_accessor :data_type # Column encoding. # Corresponds to the JSON property `encoding` # @return [String] attr_accessor :encoding # Column length. # Corresponds to the JSON property `length` # @return [Fixnum] attr_accessor :length # Whether or not the column can accept a null value. # Corresponds to the JSON property `nullable` # @return [Boolean] attr_accessor :nullable alias_method :nullable?, :nullable # The ordinal position of the column in the table. # Corresponds to the JSON property `ordinalPosition` # @return [Fixnum] attr_accessor :ordinal_position # Column precision. # Corresponds to the JSON property `precision` # @return [Fixnum] attr_accessor :precision # Whether or not the column represents a primary key. # Corresponds to the JSON property `primaryKey` # @return [Boolean] attr_accessor :primary_key alias_method :primary_key?, :primary_key # Column scale. # Corresponds to the JSON property `scale` # @return [Fixnum] attr_accessor :scale def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @column = args[:column] if args.key?(:column) @data_type = args[:data_type] if args.key?(:data_type) @encoding = args[:encoding] if args.key?(:encoding) @length = args[:length] if args.key?(:length) @nullable = args[:nullable] if args.key?(:nullable) @ordinal_position = args[:ordinal_position] if args.key?(:ordinal_position) @precision = args[:precision] if args.key?(:precision) @primary_key = args[:primary_key] if args.key?(:primary_key) @scale = args[:scale] if args.key?(:scale) end end # Oracle data source object identifier. class OracleObjectIdentifier include Google::Apis::Core::Hashable # Required. The schema name. # Corresponds to the JSON property `schema` # @return [String] attr_accessor :schema # Required. The table name. # Corresponds to the JSON property `table` # @return [String] attr_accessor :table def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @schema = args[:schema] if args.key?(:schema) @table = args[:table] if args.key?(:table) end end # Oracle database profile. class OracleProfile include Google::Apis::Core::Hashable # Connection string attributes # Corresponds to the JSON property `connectionAttributes` # @return [Hash] attr_accessor :connection_attributes # Required. Database for the Oracle connection. # Corresponds to the JSON property `databaseService` # @return [String] attr_accessor :database_service # Required. Hostname for the Oracle connection. # Corresponds to the JSON property `hostname` # @return [String] attr_accessor :hostname # Required. Password for the Oracle connection. # Corresponds to the JSON property `password` # @return [String] attr_accessor :password # Port for the Oracle connection, default value is 1521. # Corresponds to the JSON property `port` # @return [Fixnum] attr_accessor :port # Required. Username for the Oracle connection. # Corresponds to the JSON property `username` # @return [String] attr_accessor :username def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @connection_attributes = args[:connection_attributes] if args.key?(:connection_attributes) @database_service = args[:database_service] if args.key?(:database_service) @hostname = args[:hostname] if args.key?(:hostname) @password = args[:password] if args.key?(:password) @port = args[:port] if args.key?(:port) @username = args[:username] if args.key?(:username) end end # Oracle database structure. class OracleRdbms include Google::Apis::Core::Hashable # Oracle schemas/databases in the database server. # Corresponds to the JSON property `oracleSchemas` # @return [Array] attr_accessor :oracle_schemas def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @oracle_schemas = args[:oracle_schemas] if args.key?(:oracle_schemas) end end # Oracle schema. class OracleSchema include Google::Apis::Core::Hashable # Tables in the schema. # Corresponds to the JSON property `oracleTables` # @return [Array] attr_accessor :oracle_tables # Schema name. # Corresponds to the JSON property `schema` # @return [String] attr_accessor :schema def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @oracle_tables = args[:oracle_tables] if args.key?(:oracle_tables) @schema = args[:schema] if args.key?(:schema) end end # Oracle data source configuration class OracleSourceConfig include Google::Apis::Core::Hashable # Configuration to drop large object values. # Corresponds to the JSON property `dropLargeObjects` # @return [Google::Apis::DatastreamV1::DropLargeObjects] attr_accessor :drop_large_objects # Oracle database structure. # Corresponds to the JSON property `excludeObjects` # @return [Google::Apis::DatastreamV1::OracleRdbms] attr_accessor :exclude_objects # Oracle database structure. # Corresponds to the JSON property `includeObjects` # @return [Google::Apis::DatastreamV1::OracleRdbms] attr_accessor :include_objects # Maximum number of concurrent backfill tasks. The number should be non-negative. # If not set (or set to 0), the system's default value is used. # Corresponds to the JSON property `maxConcurrentBackfillTasks` # @return [Fixnum] attr_accessor :max_concurrent_backfill_tasks # Maximum number of concurrent CDC tasks. The number should be non-negative. If # not set (or set to 0), the system's default value is used. # Corresponds to the JSON property `maxConcurrentCdcTasks` # @return [Fixnum] attr_accessor :max_concurrent_cdc_tasks # Configuration to stream large object values. # Corresponds to the JSON property `streamLargeObjects` # @return [Google::Apis::DatastreamV1::StreamLargeObjects] attr_accessor :stream_large_objects def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @drop_large_objects = args[:drop_large_objects] if args.key?(:drop_large_objects) @exclude_objects = args[:exclude_objects] if args.key?(:exclude_objects) @include_objects = args[:include_objects] if args.key?(:include_objects) @max_concurrent_backfill_tasks = args[:max_concurrent_backfill_tasks] if args.key?(:max_concurrent_backfill_tasks) @max_concurrent_cdc_tasks = args[:max_concurrent_cdc_tasks] if args.key?(:max_concurrent_cdc_tasks) @stream_large_objects = args[:stream_large_objects] if args.key?(:stream_large_objects) end end # Oracle table. class OracleTable include Google::Apis::Core::Hashable # Oracle columns in the schema. When unspecified as part of include/exclude # objects, includes/excludes everything. # Corresponds to the JSON property `oracleColumns` # @return [Array] attr_accessor :oracle_columns # Table name. # Corresponds to the JSON property `table` # @return [String] attr_accessor :table def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @oracle_columns = args[:oracle_columns] if args.key?(:oracle_columns) @table = args[:table] if args.key?(:table) end end # PostgreSQL Column. class PostgresqlColumn include Google::Apis::Core::Hashable # Column name. # Corresponds to the JSON property `column` # @return [String] attr_accessor :column # The PostgreSQL data type. # Corresponds to the JSON property `dataType` # @return [String] attr_accessor :data_type # Column length. # Corresponds to the JSON property `length` # @return [Fixnum] attr_accessor :length # Whether or not the column can accept a null value. # Corresponds to the JSON property `nullable` # @return [Boolean] attr_accessor :nullable alias_method :nullable?, :nullable # The ordinal position of the column in the table. # Corresponds to the JSON property `ordinalPosition` # @return [Fixnum] attr_accessor :ordinal_position # Column precision. # Corresponds to the JSON property `precision` # @return [Fixnum] attr_accessor :precision # Whether or not the column represents a primary key. # Corresponds to the JSON property `primaryKey` # @return [Boolean] attr_accessor :primary_key alias_method :primary_key?, :primary_key # Column scale. # Corresponds to the JSON property `scale` # @return [Fixnum] attr_accessor :scale def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @column = args[:column] if args.key?(:column) @data_type = args[:data_type] if args.key?(:data_type) @length = args[:length] if args.key?(:length) @nullable = args[:nullable] if args.key?(:nullable) @ordinal_position = args[:ordinal_position] if args.key?(:ordinal_position) @precision = args[:precision] if args.key?(:precision) @primary_key = args[:primary_key] if args.key?(:primary_key) @scale = args[:scale] if args.key?(:scale) end end # PostgreSQL data source object identifier. class PostgresqlObjectIdentifier include Google::Apis::Core::Hashable # Required. The schema name. # Corresponds to the JSON property `schema` # @return [String] attr_accessor :schema # Required. The table name. # Corresponds to the JSON property `table` # @return [String] attr_accessor :table def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @schema = args[:schema] if args.key?(:schema) @table = args[:table] if args.key?(:table) end end # PostgreSQL database profile. class PostgresqlProfile include Google::Apis::Core::Hashable # Required. Database for the PostgreSQL connection. # Corresponds to the JSON property `database` # @return [String] attr_accessor :database # Required. Hostname for the PostgreSQL connection. # Corresponds to the JSON property `hostname` # @return [String] attr_accessor :hostname # Required. Password for the PostgreSQL connection. # Corresponds to the JSON property `password` # @return [String] attr_accessor :password # Port for the PostgreSQL connection, default value is 5432. # Corresponds to the JSON property `port` # @return [Fixnum] attr_accessor :port # Required. Username for the PostgreSQL connection. # Corresponds to the JSON property `username` # @return [String] attr_accessor :username def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @database = args[:database] if args.key?(:database) @hostname = args[:hostname] if args.key?(:hostname) @password = args[:password] if args.key?(:password) @port = args[:port] if args.key?(:port) @username = args[:username] if args.key?(:username) end end # PostgreSQL database structure. class PostgresqlRdbms include Google::Apis::Core::Hashable # PostgreSQL schemas in the database server. # Corresponds to the JSON property `postgresqlSchemas` # @return [Array] attr_accessor :postgresql_schemas def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @postgresql_schemas = args[:postgresql_schemas] if args.key?(:postgresql_schemas) end end # PostgreSQL schema. class PostgresqlSchema include Google::Apis::Core::Hashable # Tables in the schema. # Corresponds to the JSON property `postgresqlTables` # @return [Array] attr_accessor :postgresql_tables # Schema name. # Corresponds to the JSON property `schema` # @return [String] attr_accessor :schema def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @postgresql_tables = args[:postgresql_tables] if args.key?(:postgresql_tables) @schema = args[:schema] if args.key?(:schema) end end # PostgreSQL data source configuration class PostgresqlSourceConfig include Google::Apis::Core::Hashable # PostgreSQL database structure. # Corresponds to the JSON property `excludeObjects` # @return [Google::Apis::DatastreamV1::PostgresqlRdbms] attr_accessor :exclude_objects # PostgreSQL database structure. # Corresponds to the JSON property `includeObjects` # @return [Google::Apis::DatastreamV1::PostgresqlRdbms] attr_accessor :include_objects # Maximum number of concurrent backfill tasks. The number should be non negative. # If not set (or set to 0), the system's default value will be used. # Corresponds to the JSON property `maxConcurrentBackfillTasks` # @return [Fixnum] attr_accessor :max_concurrent_backfill_tasks # Required. The name of the publication that includes the set of all tables that # are defined in the stream's include_objects. # Corresponds to the JSON property `publication` # @return [String] attr_accessor :publication # Required. Immutable. The name of the logical replication slot that's # configured with the pgoutput plugin. # Corresponds to the JSON property `replicationSlot` # @return [String] attr_accessor :replication_slot def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @exclude_objects = args[:exclude_objects] if args.key?(:exclude_objects) @include_objects = args[:include_objects] if args.key?(:include_objects) @max_concurrent_backfill_tasks = args[:max_concurrent_backfill_tasks] if args.key?(:max_concurrent_backfill_tasks) @publication = args[:publication] if args.key?(:publication) @replication_slot = args[:replication_slot] if args.key?(:replication_slot) end end # PostgreSQL table. class PostgresqlTable include Google::Apis::Core::Hashable # PostgreSQL columns in the schema. When unspecified as part of include/exclude # objects, includes/excludes everything. # Corresponds to the JSON property `postgresqlColumns` # @return [Array] attr_accessor :postgresql_columns # Table name. # Corresponds to the JSON property `table` # @return [String] attr_accessor :table def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @postgresql_columns = args[:postgresql_columns] if args.key?(:postgresql_columns) @table = args[:table] if args.key?(:table) end end # The PrivateConnection resource is used to establish private connectivity # between Datastream and a customer's network. class PrivateConnection include Google::Apis::Core::Hashable # Output only. The create time of the resource. # Corresponds to the JSON property `createTime` # @return [String] attr_accessor :create_time # Required. Display name. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Represent a user-facing Error. # Corresponds to the JSON property `error` # @return [Google::Apis::DatastreamV1::Error] attr_accessor :error # Labels. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # Output only. The resource's name. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Output only. The state of the Private Connection. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state # Output only. The update time of the resource. # Corresponds to the JSON property `updateTime` # @return [String] attr_accessor :update_time # The VPC Peering configuration is used to create VPC peering between Datastream # and the consumer's VPC. # Corresponds to the JSON property `vpcPeeringConfig` # @return [Google::Apis::DatastreamV1::VpcPeeringConfig] attr_accessor :vpc_peering_config def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @create_time = args[:create_time] if args.key?(:create_time) @display_name = args[:display_name] if args.key?(:display_name) @error = args[:error] if args.key?(:error) @labels = args[:labels] if args.key?(:labels) @name = args[:name] if args.key?(:name) @state = args[:state] if args.key?(:state) @update_time = args[:update_time] if args.key?(:update_time) @vpc_peering_config = args[:vpc_peering_config] if args.key?(:vpc_peering_config) end end # Private Connectivity class PrivateConnectivity include Google::Apis::Core::Hashable # Required. A reference to a private connection resource. Format: `projects/` # project`/locations/`location`/privateConnections/`name`` # Corresponds to the JSON property `privateConnection` # @return [String] attr_accessor :private_connection def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @private_connection = args[:private_connection] if args.key?(:private_connection) end end # The route resource is the child of the private connection resource, used for # defining a route for a private connection. class Route include Google::Apis::Core::Hashable # Output only. The create time of the resource. # Corresponds to the JSON property `createTime` # @return [String] attr_accessor :create_time # Required. Destination address for connection # Corresponds to the JSON property `destinationAddress` # @return [String] attr_accessor :destination_address # Destination port for connection # Corresponds to the JSON property `destinationPort` # @return [Fixnum] attr_accessor :destination_port # Required. Display name. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Labels. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # Output only. The resource's name. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Output only. The update time of the resource. # Corresponds to the JSON property `updateTime` # @return [String] attr_accessor :update_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @create_time = args[:create_time] if args.key?(:create_time) @destination_address = args[:destination_address] if args.key?(:destination_address) @destination_port = args[:destination_port] if args.key?(:destination_port) @display_name = args[:display_name] if args.key?(:display_name) @labels = args[:labels] if args.key?(:labels) @name = args[:name] if args.key?(:name) @update_time = args[:update_time] if args.key?(:update_time) end end # Request message for running a stream. class RunStreamRequest include Google::Apis::Core::Hashable # The strategy that the stream uses for CDC replication. # Corresponds to the JSON property `cdcStrategy` # @return [Google::Apis::DatastreamV1::CdcStrategy] attr_accessor :cdc_strategy def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @cdc_strategy = args[:cdc_strategy] if args.key?(:cdc_strategy) end end # A single target dataset to which all data will be streamed. class SingleTargetDataset include Google::Apis::Core::Hashable # The dataset ID of the target dataset. DatasetIds allowed characters: https:// # cloud.google.com/bigquery/docs/reference/rest/v2/datasets#datasetreference. # Corresponds to the JSON property `datasetId` # @return [String] attr_accessor :dataset_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @dataset_id = args[:dataset_id] if args.key?(:dataset_id) end end # The configuration of the stream source. class SourceConfig include Google::Apis::Core::Hashable # MySQL source configuration # Corresponds to the JSON property `mysqlSourceConfig` # @return [Google::Apis::DatastreamV1::MysqlSourceConfig] attr_accessor :mysql_source_config # Oracle data source configuration # Corresponds to the JSON property `oracleSourceConfig` # @return [Google::Apis::DatastreamV1::OracleSourceConfig] attr_accessor :oracle_source_config # PostgreSQL data source configuration # Corresponds to the JSON property `postgresqlSourceConfig` # @return [Google::Apis::DatastreamV1::PostgresqlSourceConfig] attr_accessor :postgresql_source_config # Required. Source connection profile resoource. Format: `projects/`project`/ # locations/`location`/connectionProfiles/`name`` # Corresponds to the JSON property `sourceConnectionProfile` # @return [String] attr_accessor :source_connection_profile def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @mysql_source_config = args[:mysql_source_config] if args.key?(:mysql_source_config) @oracle_source_config = args[:oracle_source_config] if args.key?(:oracle_source_config) @postgresql_source_config = args[:postgresql_source_config] if args.key?(:postgresql_source_config) @source_connection_profile = args[:source_connection_profile] if args.key?(:source_connection_profile) end end # Destination datasets are created so that hierarchy of the destination data # objects matches the source hierarchy. class SourceHierarchyDatasets include Google::Apis::Core::Hashable # Dataset template used for dynamic dataset creation. # Corresponds to the JSON property `datasetTemplate` # @return [Google::Apis::DatastreamV1::DatasetTemplate] attr_accessor :dataset_template def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @dataset_template = args[:dataset_template] if args.key?(:dataset_template) end end # Represents an identifier of an object in the data source. class SourceObjectIdentifier include Google::Apis::Core::Hashable # Mysql data source object identifier. # Corresponds to the JSON property `mysqlIdentifier` # @return [Google::Apis::DatastreamV1::MysqlObjectIdentifier] attr_accessor :mysql_identifier # Oracle data source object identifier. # Corresponds to the JSON property `oracleIdentifier` # @return [Google::Apis::DatastreamV1::OracleObjectIdentifier] attr_accessor :oracle_identifier # PostgreSQL data source object identifier. # Corresponds to the JSON property `postgresqlIdentifier` # @return [Google::Apis::DatastreamV1::PostgresqlObjectIdentifier] attr_accessor :postgresql_identifier def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @mysql_identifier = args[:mysql_identifier] if args.key?(:mysql_identifier) @oracle_identifier = args[:oracle_identifier] if args.key?(:oracle_identifier) @postgresql_identifier = args[:postgresql_identifier] if args.key?(:postgresql_identifier) end end # CDC strategy to start replicating from a specific position in the source. class SpecificStartPosition include Google::Apis::Core::Hashable # MySQL log position # Corresponds to the JSON property `mysqlLogPosition` # @return [Google::Apis::DatastreamV1::MysqlLogPosition] attr_accessor :mysql_log_position def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @mysql_log_position = args[:mysql_log_position] if args.key?(:mysql_log_position) end end # Request for manually initiating a backfill job for a specific stream object. class StartBackfillJobRequest include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # Response for manually initiating a backfill job for a specific stream object. class StartBackfillJobResponse include Google::Apis::Core::Hashable # A specific stream object (e.g a specific DB table). # Corresponds to the JSON property `object` # @return [Google::Apis::DatastreamV1::StreamObject] attr_accessor :object def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @object = args[:object] if args.key?(:object) end end # Static IP address connectivity. Used when the source database is configured to # allow incoming connections from the Datastream public IP addresses for the # region specified in the connection profile. class StaticServiceIpConnectivity include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # The `Status` type defines a logical error model that is suitable for different # programming environments, including REST APIs and RPC APIs. It is used by [ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of # data: error code, error message, and error details. You can find out more # about this error model and how to work with it in the [API Design Guide](https: # //cloud.google.com/apis/design/errors). class Status include Google::Apis::Core::Hashable # The status code, which should be an enum value of google.rpc.Code. # Corresponds to the JSON property `code` # @return [Fixnum] attr_accessor :code # A list of messages that carry the error details. There is a common set of # message types for APIs to use. # Corresponds to the JSON property `details` # @return [Array>] attr_accessor :details # A developer-facing error message, which should be in English. Any user-facing # error message should be localized and sent in the google.rpc.Status.details # field, or localized by the client. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @details = args[:details] if args.key?(:details) @message = args[:message] if args.key?(:message) end end # Request for manually stopping a running backfill job for a specific stream # object. class StopBackfillJobRequest include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # Response for manually stop a backfill job for a specific stream object. class StopBackfillJobResponse include Google::Apis::Core::Hashable # A specific stream object (e.g a specific DB table). # Corresponds to the JSON property `object` # @return [Google::Apis::DatastreamV1::StreamObject] attr_accessor :object def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @object = args[:object] if args.key?(:object) end end # A resource representing streaming data from a source to a destination. class Stream include Google::Apis::Core::Hashable # Backfill strategy to automatically backfill the Stream's objects. Specific # objects can be excluded. # Corresponds to the JSON property `backfillAll` # @return [Google::Apis::DatastreamV1::BackfillAllStrategy] attr_accessor :backfill_all # Backfill strategy to disable automatic backfill for the Stream's objects. # Corresponds to the JSON property `backfillNone` # @return [Google::Apis::DatastreamV1::BackfillNoneStrategy] attr_accessor :backfill_none # Output only. The creation time of the stream. # Corresponds to the JSON property `createTime` # @return [String] attr_accessor :create_time # Immutable. A reference to a KMS encryption key. If provided, it will be used # to encrypt the data. If left blank, data will be encrypted using an internal # Stream-specific encryption key provisioned through KMS. # Corresponds to the JSON property `customerManagedEncryptionKey` # @return [String] attr_accessor :customer_managed_encryption_key # The configuration of the stream destination. # Corresponds to the JSON property `destinationConfig` # @return [Google::Apis::DatastreamV1::DestinationConfig] attr_accessor :destination_config # Required. Display name. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Output only. Errors on the Stream. # Corresponds to the JSON property `errors` # @return [Array] attr_accessor :errors # Labels. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # Output only. The stream's name. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The configuration of the stream source. # Corresponds to the JSON property `sourceConfig` # @return [Google::Apis::DatastreamV1::SourceConfig] attr_accessor :source_config # The state of the stream. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state # Output only. The last update time of the stream. # Corresponds to the JSON property `updateTime` # @return [String] attr_accessor :update_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @backfill_all = args[:backfill_all] if args.key?(:backfill_all) @backfill_none = args[:backfill_none] if args.key?(:backfill_none) @create_time = args[:create_time] if args.key?(:create_time) @customer_managed_encryption_key = args[:customer_managed_encryption_key] if args.key?(:customer_managed_encryption_key) @destination_config = args[:destination_config] if args.key?(:destination_config) @display_name = args[:display_name] if args.key?(:display_name) @errors = args[:errors] if args.key?(:errors) @labels = args[:labels] if args.key?(:labels) @name = args[:name] if args.key?(:name) @source_config = args[:source_config] if args.key?(:source_config) @state = args[:state] if args.key?(:state) @update_time = args[:update_time] if args.key?(:update_time) end end # Configuration to stream large object values. class StreamLargeObjects include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # A specific stream object (e.g a specific DB table). class StreamObject include Google::Apis::Core::Hashable # Represents a backfill job on a specific stream object. # Corresponds to the JSON property `backfillJob` # @return [Google::Apis::DatastreamV1::BackfillJob] attr_accessor :backfill_job # Output only. The creation time of the object. # Corresponds to the JSON property `createTime` # @return [String] attr_accessor :create_time # Required. Display name. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Output only. Active errors on the object. # Corresponds to the JSON property `errors` # @return [Array] attr_accessor :errors # Output only. The object resource's name. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Represents an identifier of an object in the data source. # Corresponds to the JSON property `sourceObject` # @return [Google::Apis::DatastreamV1::SourceObjectIdentifier] attr_accessor :source_object # Output only. The last update time of the object. # Corresponds to the JSON property `updateTime` # @return [String] attr_accessor :update_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @backfill_job = args[:backfill_job] if args.key?(:backfill_job) @create_time = args[:create_time] if args.key?(:create_time) @display_name = args[:display_name] if args.key?(:display_name) @errors = args[:errors] if args.key?(:errors) @name = args[:name] if args.key?(:name) @source_object = args[:source_object] if args.key?(:source_object) @update_time = args[:update_time] if args.key?(:update_time) end end # A validation to perform on a stream. class Validation include Google::Apis::Core::Hashable # A custom code identifying this validation. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # A short description of the validation. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Messages reflecting the validation results. # Corresponds to the JSON property `message` # @return [Array] attr_accessor :message # Output only. Validation execution status. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @description = args[:description] if args.key?(:description) @message = args[:message] if args.key?(:message) @state = args[:state] if args.key?(:state) end end # Represent user-facing validation result message. class ValidationMessage include Google::Apis::Core::Hashable # A custom code identifying this specific message. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # Message severity level (warning or error). # Corresponds to the JSON property `level` # @return [String] attr_accessor :level # The result of the validation. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message # Additional metadata related to the result. # Corresponds to the JSON property `metadata` # @return [Hash] attr_accessor :metadata def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @level = args[:level] if args.key?(:level) @message = args[:message] if args.key?(:message) @metadata = args[:metadata] if args.key?(:metadata) end end # Contains the current validation results. class ValidationResult include Google::Apis::Core::Hashable # A list of validations (includes both executed as well as not executed # validations). # Corresponds to the JSON property `validations` # @return [Array] attr_accessor :validations def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @validations = args[:validations] if args.key?(:validations) end end # The VPC Peering configuration is used to create VPC peering between Datastream # and the consumer's VPC. class VpcPeeringConfig include Google::Apis::Core::Hashable # Required. A free subnet for peering. (CIDR of /29) # Corresponds to the JSON property `subnet` # @return [String] attr_accessor :subnet # Required. Fully qualified name of the VPC that Datastream will peer to. Format: # `projects/`project`/global/`networks`/`name`` # Corresponds to the JSON property `vpc` # @return [String] attr_accessor :vpc def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @subnet = args[:subnet] if args.key?(:subnet) @vpc = args[:vpc] if args.key?(:vpc) end end end end end