# frozen_string_literal: true # Copyright 2022 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Auto-generated by gapic-generator-ruby. DO NOT EDIT! module Google module Cloud module Datastream module V1 # Oracle database profile. # @!attribute [rw] hostname # @return [::String] # Required. Hostname for the Oracle connection. # @!attribute [rw] port # @return [::Integer] # Port for the Oracle connection, default value is 1521. # @!attribute [rw] username # @return [::String] # Required. Username for the Oracle connection. # @!attribute [rw] password # @return [::String] # Required. Password for the Oracle connection. # @!attribute [rw] database_service # @return [::String] # Required. Database for the Oracle connection. # @!attribute [rw] connection_attributes # @return [::Google::Protobuf::Map{::String => ::String}] # Connection string attributes class OracleProfile include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class ConnectionAttributesEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # MySQL database profile. # @!attribute [rw] hostname # @return [::String] # Required. Hostname for the MySQL connection. # @!attribute [rw] port # @return [::Integer] # Port for the MySQL connection, default value is 3306. # @!attribute [rw] username # @return [::String] # Required. Username for the MySQL connection. # @!attribute [rw] password # @return [::String] # Required. Input only. Password for the MySQL connection. # @!attribute [rw] ssl_config # @return [::Google::Cloud::Datastream::V1::MysqlSslConfig] # SSL configuration for the MySQL connection. class MysqlProfile include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # PostgreSQL database profile. # @!attribute [rw] hostname # @return [::String] # Required. Hostname for the PostgreSQL connection. # @!attribute [rw] port # @return [::Integer] # Port for the PostgreSQL connection, default value is 5432. # @!attribute [rw] username # @return [::String] # Required. Username for the PostgreSQL connection. # @!attribute [rw] password # @return [::String] # Required. Password for the PostgreSQL connection. # @!attribute [rw] database # @return [::String] # Required. Database for the PostgreSQL connection. class PostgresqlProfile include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Cloud Storage bucket profile. # @!attribute [rw] bucket # @return [::String] # Required. The Cloud Storage bucket name. # @!attribute [rw] root_path # @return [::String] # The root path inside the Cloud Storage bucket. class GcsProfile include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # BigQuery warehouse profile. class BigQueryProfile include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Static IP address connectivity. class StaticServiceIpConnectivity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Forward SSH Tunnel connectivity. # @!attribute [rw] hostname # @return [::String] # Required. Hostname for the SSH tunnel. # @!attribute [rw] username # @return [::String] # Required. Username for the SSH tunnel. # @!attribute [rw] port # @return [::Integer] # Port for the SSH tunnel, default value is 22. # @!attribute [rw] password # @return [::String] # Input only. SSH password. # @!attribute [rw] private_key # @return [::String] # Input only. SSH private key. class ForwardSshTunnelConnectivity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The VPC Peering configuration is used to create VPC peering between # Datastream and the consumer's VPC. # @!attribute [rw] vpc # @return [::String] # Required. Fully qualified name of the VPC that Datastream will peer to. # Format: `projects/{project}/global/{networks}/{name}` # @!attribute [rw] subnet # @return [::String] # Required. A free subnet for peering. (CIDR of /29) class VpcPeeringConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The PrivateConnection resource is used to establish private connectivity # between Datastream and a customer's network. # @!attribute [r] name # @return [::String] # Output only. The resource's name. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The create time of the resource. # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. The update time of the resource. # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # Labels. # @!attribute [rw] display_name # @return [::String] # Required. Display name. # @!attribute [r] state # @return [::Google::Cloud::Datastream::V1::PrivateConnection::State] # Output only. The state of the Private Connection. # @!attribute [r] error # @return [::Google::Cloud::Datastream::V1::Error] # Output only. In case of error, the details of the error in a user-friendly format. # @!attribute [rw] vpc_peering_config # @return [::Google::Cloud::Datastream::V1::VpcPeeringConfig] # VPC Peering Config. class PrivateConnection include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Private Connection state. module State # Unspecified state. STATE_UNSPECIFIED = 0 # The private connection is in creation state - creating resources. CREATING = 1 # The private connection has been created with all of its resources. CREATED = 2 # The private connection creation has failed. FAILED = 3 # The private connection is being deleted. DELETING = 4 # Delete request has failed, resource is in invalid state. FAILED_TO_DELETE = 5 end end # Private Connectivity # @!attribute [rw] private_connection # @return [::String] # Required. A reference to a private connection resource. # Format: `projects/{project}/locations/{location}/privateConnections/{name}` class PrivateConnectivity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The route resource is the child of the private connection resource, # used for defining a route for a private connection. # @!attribute [r] name # @return [::String] # Output only. The resource's name. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The create time of the resource. # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. The update time of the resource. # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # Labels. # @!attribute [rw] display_name # @return [::String] # Required. Display name. # @!attribute [rw] destination_address # @return [::String] # Required. Destination address for connection # @!attribute [rw] destination_port # @return [::Integer] # Destination port for connection class Route include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # MySQL SSL configuration information. # @!attribute [rw] client_key # @return [::String] # 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. # @!attribute [r] client_key_set # @return [::Boolean] # Output only. Indicates whether the client_key field is set. # @!attribute [rw] client_certificate # @return [::String] # 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. # @!attribute [r] client_certificate_set # @return [::Boolean] # Output only. Indicates whether the client_certificate field is set. # @!attribute [rw] ca_certificate # @return [::String] # Input only. PEM-encoded certificate of the CA that signed the source database # server's certificate. # @!attribute [r] ca_certificate_set # @return [::Boolean] # Output only. Indicates whether the ca_certificate field is set. class MysqlSslConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A set of reusable connection configurations to be used as a source or # destination for a stream. # @!attribute [r] name # @return [::String] # Output only. The resource's name. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The create time of the resource. # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. The update time of the resource. # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # Labels. # @!attribute [rw] display_name # @return [::String] # Required. Display name. # @!attribute [rw] oracle_profile # @return [::Google::Cloud::Datastream::V1::OracleProfile] # Oracle ConnectionProfile configuration. # @!attribute [rw] gcs_profile # @return [::Google::Cloud::Datastream::V1::GcsProfile] # Cloud Storage ConnectionProfile configuration. # @!attribute [rw] mysql_profile # @return [::Google::Cloud::Datastream::V1::MysqlProfile] # MySQL ConnectionProfile configuration. # @!attribute [rw] bigquery_profile # @return [::Google::Cloud::Datastream::V1::BigQueryProfile] # BigQuery Connection Profile configuration. # @!attribute [rw] postgresql_profile # @return [::Google::Cloud::Datastream::V1::PostgresqlProfile] # PostgreSQL Connection Profile configuration. # @!attribute [rw] static_service_ip_connectivity # @return [::Google::Cloud::Datastream::V1::StaticServiceIpConnectivity] # Static Service IP connectivity. # @!attribute [rw] forward_ssh_connectivity # @return [::Google::Cloud::Datastream::V1::ForwardSshTunnelConnectivity] # Forward SSH tunnel connectivity. # @!attribute [rw] private_connectivity # @return [::Google::Cloud::Datastream::V1::PrivateConnectivity] # Private connectivity. class ConnectionProfile include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # Oracle Column. # @!attribute [rw] column # @return [::String] # Column name. # @!attribute [rw] data_type # @return [::String] # The Oracle data type. # @!attribute [rw] length # @return [::Integer] # Column length. # @!attribute [rw] precision # @return [::Integer] # Column precision. # @!attribute [rw] scale # @return [::Integer] # Column scale. # @!attribute [rw] encoding # @return [::String] # Column encoding. # @!attribute [rw] primary_key # @return [::Boolean] # Whether or not the column represents a primary key. # @!attribute [rw] nullable # @return [::Boolean] # Whether or not the column can accept a null value. # @!attribute [rw] ordinal_position # @return [::Integer] # The ordinal position of the column in the table. class OracleColumn include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Oracle table. # @!attribute [rw] table # @return [::String] # Table name. # @!attribute [rw] oracle_columns # @return [::Array<::Google::Cloud::Datastream::V1::OracleColumn>] # Oracle columns in the schema. # When unspecified as part of include/exclude objects, includes/excludes # everything. class OracleTable include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Oracle schema. # @!attribute [rw] schema # @return [::String] # Schema name. # @!attribute [rw] oracle_tables # @return [::Array<::Google::Cloud::Datastream::V1::OracleTable>] # Tables in the schema. class OracleSchema include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Oracle database structure. # @!attribute [rw] oracle_schemas # @return [::Array<::Google::Cloud::Datastream::V1::OracleSchema>] # Oracle schemas/databases in the database server. class OracleRdbms include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Oracle data source configuration # @!attribute [rw] include_objects # @return [::Google::Cloud::Datastream::V1::OracleRdbms] # Oracle objects to include in the stream. # @!attribute [rw] exclude_objects # @return [::Google::Cloud::Datastream::V1::OracleRdbms] # Oracle objects to exclude from the stream. # @!attribute [rw] max_concurrent_cdc_tasks # @return [::Integer] # Maximum number of concurrent CDC tasks. The number should be non negative. # If not set (or set to 0), the system's default value will be used. # @!attribute [rw] drop_large_objects # @return [::Google::Cloud::Datastream::V1::OracleSourceConfig::DropLargeObjects] # Drop large object values. # @!attribute [rw] stream_large_objects # @return [::Google::Cloud::Datastream::V1::OracleSourceConfig::StreamLargeObjects] # Stream large object values. class OracleSourceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Configuration to drop large object values. class DropLargeObjects include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration to stream large object values. class StreamLargeObjects include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # PostgreSQL Column. # @!attribute [rw] column # @return [::String] # Column name. # @!attribute [rw] data_type # @return [::String] # The PostgreSQL data type. # @!attribute [rw] length # @return [::Integer] # Column length. # @!attribute [rw] precision # @return [::Integer] # Column precision. # @!attribute [rw] scale # @return [::Integer] # Column scale. # @!attribute [rw] primary_key # @return [::Boolean] # Whether or not the column represents a primary key. # @!attribute [rw] nullable # @return [::Boolean] # Whether or not the column can accept a null value. # @!attribute [rw] ordinal_position # @return [::Integer] # The ordinal position of the column in the table. class PostgresqlColumn include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # PostgreSQL table. # @!attribute [rw] table # @return [::String] # Table name. # @!attribute [rw] postgresql_columns # @return [::Array<::Google::Cloud::Datastream::V1::PostgresqlColumn>] # PostgreSQL columns in the schema. # When unspecified as part of include/exclude objects, # includes/excludes everything. class PostgresqlTable include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # PostgreSQL schema. # @!attribute [rw] schema # @return [::String] # Schema name. # @!attribute [rw] postgresql_tables # @return [::Array<::Google::Cloud::Datastream::V1::PostgresqlTable>] # Tables in the schema. class PostgresqlSchema include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # PostgreSQL database structure. # @!attribute [rw] postgresql_schemas # @return [::Array<::Google::Cloud::Datastream::V1::PostgresqlSchema>] # PostgreSQL schemas in the database server. class PostgresqlRdbms include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # PostgreSQL data source configuration # @!attribute [rw] include_objects # @return [::Google::Cloud::Datastream::V1::PostgresqlRdbms] # PostgreSQL objects to include in the stream. # @!attribute [rw] exclude_objects # @return [::Google::Cloud::Datastream::V1::PostgresqlRdbms] # PostgreSQL objects to exclude from the stream. # @!attribute [rw] replication_slot # @return [::String] # Required. The name of the logical replication slot that's configured with the # pgoutput plugin. # @!attribute [rw] publication # @return [::String] # Required. The name of the publication that includes the set of all tables that are # defined in the stream's include_objects. class PostgresqlSourceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # MySQL Column. # @!attribute [rw] column # @return [::String] # Column name. # @!attribute [rw] data_type # @return [::String] # The MySQL data type. Full data types list can be found here: # https://dev.mysql.com/doc/refman/8.0/en/data-types.html # @!attribute [rw] length # @return [::Integer] # Column length. # @!attribute [rw] collation # @return [::String] # Column collation. # @!attribute [rw] primary_key # @return [::Boolean] # Whether or not the column represents a primary key. # @!attribute [rw] nullable # @return [::Boolean] # Whether or not the column can accept a null value. # @!attribute [rw] ordinal_position # @return [::Integer] # The ordinal position of the column in the table. class MysqlColumn include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # MySQL table. # @!attribute [rw] table # @return [::String] # Table name. # @!attribute [rw] mysql_columns # @return [::Array<::Google::Cloud::Datastream::V1::MysqlColumn>] # MySQL columns in the database. # When unspecified as part of include/exclude objects, includes/excludes # everything. class MysqlTable include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # MySQL database. # @!attribute [rw] database # @return [::String] # Database name. # @!attribute [rw] mysql_tables # @return [::Array<::Google::Cloud::Datastream::V1::MysqlTable>] # Tables in the database. class MysqlDatabase include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # MySQL database structure # @!attribute [rw] mysql_databases # @return [::Array<::Google::Cloud::Datastream::V1::MysqlDatabase>] # Mysql databases on the server class MysqlRdbms include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # MySQL source configuration # @!attribute [rw] include_objects # @return [::Google::Cloud::Datastream::V1::MysqlRdbms] # MySQL objects to retrieve from the source. # @!attribute [rw] exclude_objects # @return [::Google::Cloud::Datastream::V1::MysqlRdbms] # MySQL objects to exclude from the stream. # @!attribute [rw] max_concurrent_cdc_tasks # @return [::Integer] # Maximum number of concurrent CDC tasks. The number should be non negative. # If not set (or set to 0), the system's default value will be used. class MysqlSourceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The configuration of the stream source. # @!attribute [rw] source_connection_profile # @return [::String] # Required. Source connection profile resoource. # Format: `projects/{project}/locations/{location}/connectionProfiles/{name}` # @!attribute [rw] oracle_source_config # @return [::Google::Cloud::Datastream::V1::OracleSourceConfig] # Oracle data source configuration. # @!attribute [rw] mysql_source_config # @return [::Google::Cloud::Datastream::V1::MysqlSourceConfig] # MySQL data source configuration. # @!attribute [rw] postgresql_source_config # @return [::Google::Cloud::Datastream::V1::PostgresqlSourceConfig] # PostgreSQL data source configuration. class SourceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # AVRO file format configuration. class AvroFileFormat include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # JSON file format configuration. # @!attribute [rw] schema_file_format # @return [::Google::Cloud::Datastream::V1::JsonFileFormat::SchemaFileFormat] # The schema file format along JSON data files. # @!attribute [rw] compression # @return [::Google::Cloud::Datastream::V1::JsonFileFormat::JsonCompression] # Compression of the loaded JSON file. class JsonFileFormat include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Schema file format. module SchemaFileFormat # Unspecified schema file format. SCHEMA_FILE_FORMAT_UNSPECIFIED = 0 # Do not attach schema file. NO_SCHEMA_FILE = 1 # Avro schema format. AVRO_SCHEMA_FILE = 2 end # Json file compression. module JsonCompression # Unspecified json file compression. JSON_COMPRESSION_UNSPECIFIED = 0 # Do not compress JSON file. NO_COMPRESSION = 1 # Gzip compression. GZIP = 2 end end # Google Cloud Storage destination configuration # @!attribute [rw] path # @return [::String] # Path inside the Cloud Storage bucket to write data to. # @!attribute [rw] file_rotation_mb # @return [::Integer] # The maximum file size to be saved in the bucket. # @!attribute [rw] file_rotation_interval # @return [::Google::Protobuf::Duration] # The maximum duration for which new events are added before a file is # closed and a new file is created. # @!attribute [rw] avro_file_format # @return [::Google::Cloud::Datastream::V1::AvroFileFormat] # AVRO file format configuration. # @!attribute [rw] json_file_format # @return [::Google::Cloud::Datastream::V1::JsonFileFormat] # JSON file format configuration. class GcsDestinationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] single_target_dataset # @return [::Google::Cloud::Datastream::V1::BigQueryDestinationConfig::SingleTargetDataset] # Single destination dataset. # @!attribute [rw] source_hierarchy_datasets # @return [::Google::Cloud::Datastream::V1::BigQueryDestinationConfig::SourceHierarchyDatasets] # Source hierarchy datasets. # @!attribute [rw] data_freshness # @return [::Google::Protobuf::Duration] # The guaranteed data freshness (in seconds) when querying tables created by # the stream. Editing this field will only affect new tables created in the # future, but existing tables will not be impacted. Lower values mean that # queries will return fresher data, but may result in higher cost. class BigQueryDestinationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A single target dataset to which all data will be streamed. # @!attribute [rw] dataset_id # @return [::String] class SingleTargetDataset include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Destination datasets are created so that hierarchy of the destination data # objects matches the source hierarchy. # @!attribute [rw] dataset_template # @return [::Google::Cloud::Datastream::V1::BigQueryDestinationConfig::SourceHierarchyDatasets::DatasetTemplate] class SourceHierarchyDatasets include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Dataset template used for dynamic dataset creation. # @!attribute [rw] location # @return [::String] # Required. The geographic location where the dataset should reside. See # https://cloud.google.com/bigquery/docs/locations for supported # locations. # @!attribute [rw] dataset_id_prefix # @return [::String] # If supplied, every created dataset will have its name prefixed by the # provided value. The prefix and name will be separated by an underscore. # i.e. _. # @!attribute [rw] kms_key_name # @return [::String] # Describes the Cloud KMS encryption key that will be used to # protect destination BigQuery table. The BigQuery Service Account # associated with your project requires access to this encryption key. # i.e. # projects/\\{project}/locations/\\{location}/keyRings/\\{key_ring}/cryptoKeys/\\{cryptoKey}. # See https://cloud.google.com/bigquery/docs/customer-managed-encryption # for more information. class DatasetTemplate include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # The configuration of the stream destination. # @!attribute [rw] destination_connection_profile # @return [::String] # Required. Destination connection profile resource. # Format: `projects/{project}/locations/{location}/connectionProfiles/{name}` # @!attribute [rw] gcs_destination_config # @return [::Google::Cloud::Datastream::V1::GcsDestinationConfig] # A configuration for how data should be loaded to Cloud Storage. # @!attribute [rw] bigquery_destination_config # @return [::Google::Cloud::Datastream::V1::BigQueryDestinationConfig] # BigQuery destination configuration. class DestinationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A resource representing streaming data from a source to a destination. # @!attribute [r] name # @return [::String] # Output only. The stream's name. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The creation time of the stream. # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. The last update time of the stream. # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # Labels. # @!attribute [rw] display_name # @return [::String] # Required. Display name. # @!attribute [rw] source_config # @return [::Google::Cloud::Datastream::V1::SourceConfig] # Required. Source connection profile configuration. # @!attribute [rw] destination_config # @return [::Google::Cloud::Datastream::V1::DestinationConfig] # Required. Destination connection profile configuration. # @!attribute [rw] state # @return [::Google::Cloud::Datastream::V1::Stream::State] # The state of the stream. # @!attribute [rw] backfill_all # @return [::Google::Cloud::Datastream::V1::Stream::BackfillAllStrategy] # Automatically backfill objects included in the stream source # configuration. Specific objects can be excluded. # @!attribute [rw] backfill_none # @return [::Google::Cloud::Datastream::V1::Stream::BackfillNoneStrategy] # Do not automatically backfill any objects. # @!attribute [r] errors # @return [::Array<::Google::Cloud::Datastream::V1::Error>] # Output only. Errors on the Stream. # @!attribute [rw] customer_managed_encryption_key # @return [::String] # 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. class Stream include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Backfill strategy to automatically backfill the Stream's objects. # Specific objects can be excluded. # @!attribute [rw] oracle_excluded_objects # @return [::Google::Cloud::Datastream::V1::OracleRdbms] # Oracle data source objects to avoid backfilling. # @!attribute [rw] mysql_excluded_objects # @return [::Google::Cloud::Datastream::V1::MysqlRdbms] # MySQL data source objects to avoid backfilling. # @!attribute [rw] postgresql_excluded_objects # @return [::Google::Cloud::Datastream::V1::PostgresqlRdbms] # PostgreSQL data source objects to avoid backfilling. class BackfillAllStrategy include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Backfill strategy to disable automatic backfill for the Stream's objects. class BackfillNoneStrategy include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Stream state. module State # Unspecified stream state. STATE_UNSPECIFIED = 0 # The stream has been created but has not yet started streaming data. NOT_STARTED = 1 # The stream is running. RUNNING = 2 # The stream is paused. PAUSED = 3 # The stream is in maintenance mode. # # Updates are rejected on the resource in this state. MAINTENANCE = 4 # The stream is experiencing an error that is preventing data from being # streamed. FAILED = 5 # The stream has experienced a terminal failure. FAILED_PERMANENTLY = 6 # The stream is starting, but not yet running. STARTING = 7 # The Stream is no longer reading new events, but still writing events in # the buffer. DRAINING = 8 end end # A specific stream object (e.g a specific DB table). # @!attribute [r] name # @return [::String] # Output only. The object resource's name. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The creation time of the object. # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. The last update time of the object. # @!attribute [rw] display_name # @return [::String] # Required. Display name. # @!attribute [r] errors # @return [::Array<::Google::Cloud::Datastream::V1::Error>] # Output only. Active errors on the object. # @!attribute [rw] backfill_job # @return [::Google::Cloud::Datastream::V1::BackfillJob] # The latest backfill job that was initiated for the stream object. # @!attribute [rw] source_object # @return [::Google::Cloud::Datastream::V1::SourceObjectIdentifier] # The object identifier in the data source. class StreamObject include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Represents an identifier of an object in the data source. # @!attribute [rw] oracle_identifier # @return [::Google::Cloud::Datastream::V1::SourceObjectIdentifier::OracleObjectIdentifier] # Oracle data source object identifier. # @!attribute [rw] mysql_identifier # @return [::Google::Cloud::Datastream::V1::SourceObjectIdentifier::MysqlObjectIdentifier] # Mysql data source object identifier. # @!attribute [rw] postgresql_identifier # @return [::Google::Cloud::Datastream::V1::SourceObjectIdentifier::PostgresqlObjectIdentifier] # PostgreSQL data source object identifier. class SourceObjectIdentifier include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Oracle data source object identifier. # @!attribute [rw] schema # @return [::String] # Required. The schema name. # @!attribute [rw] table # @return [::String] # Required. The table name. class OracleObjectIdentifier include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # PostgreSQL data source object identifier. # @!attribute [rw] schema # @return [::String] # Required. The schema name. # @!attribute [rw] table # @return [::String] # Required. The table name. class PostgresqlObjectIdentifier include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Mysql data source object identifier. # @!attribute [rw] database # @return [::String] # Required. The database name. # @!attribute [rw] table # @return [::String] # Required. The table name. class MysqlObjectIdentifier include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # Represents a backfill job on a specific stream object. # @!attribute [rw] state # @return [::Google::Cloud::Datastream::V1::BackfillJob::State] # Backfill job state. # @!attribute [rw] trigger # @return [::Google::Cloud::Datastream::V1::BackfillJob::Trigger] # Backfill job's triggering reason. # @!attribute [r] last_start_time # @return [::Google::Protobuf::Timestamp] # Output only. Backfill job's start time. # @!attribute [r] last_end_time # @return [::Google::Protobuf::Timestamp] # Output only. Backfill job's end time. # @!attribute [r] errors # @return [::Array<::Google::Cloud::Datastream::V1::Error>] # Output only. Errors which caused the backfill job to fail. class BackfillJob include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # State of the stream object's backfill job. module State # Default value. STATE_UNSPECIFIED = 0 # Backfill job was never started for the stream object (stream has backfill # strategy defined as manual or object was explicitly excluded from # automatic backfill). NOT_STARTED = 1 # Backfill job will start pending available resources. PENDING = 2 # Backfill job is running. ACTIVE = 3 # Backfill job stopped (next job run will start from beginning). STOPPED = 4 # Backfill job failed (due to an error). FAILED = 5 # Backfill completed successfully. COMPLETED = 6 # Backfill job failed since the table structure is currently unsupported # for backfill. UNSUPPORTED = 7 end # Triggering reason for a backfill job. module Trigger # Default value. TRIGGER_UNSPECIFIED = 0 # Object backfill job was triggered automatically according to the stream's # backfill strategy. AUTOMATIC = 1 # Object backfill job was triggered manually using the dedicated API. MANUAL = 2 end end # Represent a user-facing Error. # @!attribute [rw] reason # @return [::String] # A title that explains the reason for the error. # @!attribute [rw] error_uuid # @return [::String] # A unique identifier for this specific error, # allowing it to be traced throughout the system in logs and API responses. # @!attribute [rw] message # @return [::String] # A message containing more information about the error that occurred. # @!attribute [rw] error_time # @return [::Google::Protobuf::Timestamp] # The time when the error occurred. # @!attribute [rw] details # @return [::Google::Protobuf::Map{::String => ::String}] # Additional information about the error. class Error include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class DetailsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # Contains the current validation results. # @!attribute [rw] validations # @return [::Array<::Google::Cloud::Datastream::V1::Validation>] # A list of validations (includes both executed as well as not executed # validations). class ValidationResult include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A validation to perform on a stream. # @!attribute [rw] description # @return [::String] # A short description of the validation. # @!attribute [rw] state # @return [::Google::Cloud::Datastream::V1::Validation::State] # Validation execution status. # @!attribute [rw] message # @return [::Array<::Google::Cloud::Datastream::V1::ValidationMessage>] # Messages reflecting the validation results. # @!attribute [rw] code # @return [::String] # A custom code identifying this validation. class Validation include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Validation execution state. module State # Unspecified state. STATE_UNSPECIFIED = 0 # Validation did not execute. NOT_EXECUTED = 1 # Validation failed. FAILED = 2 # Validation passed. PASSED = 3 end end # Represent user-facing validation result message. # @!attribute [rw] message # @return [::String] # The result of the validation. # @!attribute [rw] level # @return [::Google::Cloud::Datastream::V1::ValidationMessage::Level] # Message severity level (warning or error). # @!attribute [rw] metadata # @return [::Google::Protobuf::Map{::String => ::String}] # Additional metadata related to the result. # @!attribute [rw] code # @return [::String] # A custom code identifying this specific message. class ValidationMessage include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class MetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Validation message level. module Level # Unspecified level. LEVEL_UNSPECIFIED = 0 # Potentially cause issues with the Stream. WARNING = 1 # Definitely cause issues with the Stream. ERROR = 2 end end end end end end