lib/google/apis/datastream_v1/classes.rb in google-apis-datastream_v1-0.1.0 vs lib/google/apis/datastream_v1/classes.rb in google-apis-datastream_v1-0.2.0
- old
+ new
@@ -20,10 +20,105 @@
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
+
+ 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)
+ 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<Google::Apis::DatastreamV1::Error>]
+ 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
+
+ # 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
+
# The request message for Operations.CancelOperation.
class CancelOperationRequest
include Google::Apis::Core::Hashable
def initialize(**args)
@@ -33,10 +128,193 @@
# Update properties of this object
def update!(**args)
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
+
+ # 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<String,String>]
+ 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
+
+ # Private Connectivity
+ # Corresponds to the JSON property `privateConnectivity`
+ # @return [Google::Apis::DatastreamV1::PrivateConnectivity]
+ attr_accessor :private_connectivity
+
+ # Static IP address connectivity.
+ # 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)
+ @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)
+ @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
+
+ # The configuration of the stream destination.
+ class DestinationConfig
+ include Google::Apis::Core::Hashable
+
+ # 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)
+ @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
+
+ 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)
+ 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
+
+ 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)
+ 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); ` The JSON representation for
# `Empty` is empty JSON object ````.
@@ -94,10 +372,205 @@
@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<String>]
+ 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.
+ # 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<Google::Apis::DatastreamV1::ConnectionProfile>]
+ 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<String>]
+ 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.
@@ -144,10 +617,131 @@
@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<Google::Apis::DatastreamV1::PrivateConnection>]
+ attr_accessor :private_connections
+
+ # Locations that could not be reached.
+ # Corresponds to the JSON property `unreachable`
+ # @return [Array<String>]
+ 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<Google::Apis::DatastreamV1::Route>]
+ attr_accessor :routes
+
+ # Locations that could not be reached.
+ # Corresponds to the JSON property `unreachable`
+ # @return [Array<String>]
+ 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<Google::Apis::DatastreamV1::StreamObject>]
+ 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<Google::Apis::DatastreamV1::Stream>]
+ attr_accessor :streams
+
+ # Locations that could not be reached.
+ # Corresponds to the JSON property `unreachable`
+ # @return [Array<String>]
+ 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 Google Cloud Platform location.
class Location
include Google::Apis::Core::Hashable
# The friendly name for this location, typically a nearby city name. For example,
@@ -191,10 +785,308 @@
@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
+
+ # 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
+
+ # 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
+
+ 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)
+ @primary_key = args[:primary_key] if args.key?(:primary_key)
+ 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<Google::Apis::DatastreamV1::MysqlTable>]
+ 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 data source object identifier.
+ class MysqlObjectIdentifier
+ include Google::Apis::Core::Hashable
+
+ # The database name.
+ # Corresponds to the JSON property `database`
+ # @return [String]
+ attr_accessor :database
+
+ # 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<Google::Apis::DatastreamV1::MysqlDatabase>]
+ 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
+
+ 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)
+ 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
+ # lists, includes/excludes everything.
+ # Corresponds to the JSON property `mysqlColumns`
+ # @return [Array<Google::Apis::DatastreamV1::MysqlColumn>]
+ 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
+
# This resource represents a long-running operation that is the result of a
# network API call.
class Operation
include Google::Apis::Core::Hashable
@@ -318,10 +1210,489 @@
@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
+
+ # The schema name.
+ # Corresponds to the JSON property `schema`
+ # @return [String]
+ attr_accessor :schema
+
+ # 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<String,String>]
+ 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<Google::Apis::DatastreamV1::OracleSchema>]
+ 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<Google::Apis::DatastreamV1::OracleTable>]
+ 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
+
+ # 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
+
+ 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)
+ end
+ end
+
+ # Oracle table.
+ class OracleTable
+ include Google::Apis::Core::Hashable
+
+ # Oracle columns in the schema. When unspecified as part of inclue/exclude lists,
+ # includes/excludes everything.
+ # Corresponds to the JSON property `oracleColumns`
+ # @return [Array<Google::Apis::DatastreamV1::OracleColumn>]
+ 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
+
+ # 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<String,String>]
+ 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<String,String>]
+ 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
+
+ # 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
+
+ # 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)
+ @source_connection_profile = args[:source_connection_profile] if args.key?(:source_connection_profile)
+ 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
+
+ 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)
+ 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.
+ 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:
@@ -357,10 +1728,186 @@
@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<Google::Apis::DatastreamV1::Error>]
+ attr_accessor :errors
+
+ # Labels.
+ # Corresponds to the JSON property `labels`
+ # @return [Hash<String,String>]
+ 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
+
+ # 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<Google::Apis::DatastreamV1::Error>]
+ 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.
@@ -448,9 +1995,37 @@
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) TODO(b/172995841) add
+ # validators.
+ # 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