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