123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023 |
- // 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
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- syntax = "proto3";
- package google.cloud.datastream.v1;
- import "google/api/field_behavior.proto";
- import "google/api/resource.proto";
- import "google/protobuf/duration.proto";
- import "google/protobuf/timestamp.proto";
- option csharp_namespace = "Google.Cloud.Datastream.V1";
- option go_package = "google.golang.org/genproto/googleapis/cloud/datastream/v1;datastream";
- option java_multiple_files = true;
- option java_outer_classname = "DatastreamResourcesProto";
- option java_package = "com.google.cloud.datastream.v1";
- option php_namespace = "Google\\Cloud\\Datastream\\V1";
- option ruby_package = "Google::Cloud::Datastream::V1";
- option (google.api.resource_definition) = {
- type: "compute.googleapis.com/Networks"
- pattern: "projects/{project}/global/networks/{network}"
- };
- // Oracle database profile.
- message OracleProfile {
- // Required. Hostname for the Oracle connection.
- string hostname = 1 [(google.api.field_behavior) = REQUIRED];
- // Port for the Oracle connection, default value is 1521.
- int32 port = 2;
- // Required. Username for the Oracle connection.
- string username = 3 [(google.api.field_behavior) = REQUIRED];
- // Required. Password for the Oracle connection.
- string password = 4 [(google.api.field_behavior) = REQUIRED];
- // Required. Database for the Oracle connection.
- string database_service = 5 [(google.api.field_behavior) = REQUIRED];
- // Connection string attributes
- map<string, string> connection_attributes = 6;
- }
- // MySQL database profile.
- message MysqlProfile {
- // Required. Hostname for the MySQL connection.
- string hostname = 1 [(google.api.field_behavior) = REQUIRED];
- // Port for the MySQL connection, default value is 3306.
- int32 port = 2;
- // Required. Username for the MySQL connection.
- string username = 3 [(google.api.field_behavior) = REQUIRED];
- // Required. Input only. Password for the MySQL connection.
- string password = 4 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.field_behavior) = INPUT_ONLY
- ];
- // SSL configuration for the MySQL connection.
- MysqlSslConfig ssl_config = 5;
- }
- // PostgreSQL database profile.
- message PostgresqlProfile {
- // Required. Hostname for the PostgreSQL connection.
- string hostname = 1 [(google.api.field_behavior) = REQUIRED];
- // Port for the PostgreSQL connection, default value is 5432.
- int32 port = 2;
- // Required. Username for the PostgreSQL connection.
- string username = 3 [(google.api.field_behavior) = REQUIRED];
- // Required. Password for the PostgreSQL connection.
- string password = 4 [(google.api.field_behavior) = REQUIRED];
- // Required. Database for the PostgreSQL connection.
- string database = 5 [(google.api.field_behavior) = REQUIRED];
- }
- // Cloud Storage bucket profile.
- message GcsProfile {
- // Required. The Cloud Storage bucket name.
- string bucket = 1 [(google.api.field_behavior) = REQUIRED];
- // The root path inside the Cloud Storage bucket.
- string root_path = 2;
- }
- // BigQuery warehouse profile.
- message BigQueryProfile {
- }
- // Static IP address connectivity.
- message StaticServiceIpConnectivity {
- }
- // Forward SSH Tunnel connectivity.
- message ForwardSshTunnelConnectivity {
- // Required. Hostname for the SSH tunnel.
- string hostname = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. Username for the SSH tunnel.
- string username = 2 [(google.api.field_behavior) = REQUIRED];
- // Port for the SSH tunnel, default value is 22.
- int32 port = 3;
- oneof authentication_method {
- // Input only. SSH password.
- string password = 100 [(google.api.field_behavior) = INPUT_ONLY];
- // Input only. SSH private key.
- string private_key = 101 [(google.api.field_behavior) = INPUT_ONLY];
- }
- }
- // The VPC Peering configuration is used to create VPC peering between
- // Datastream and the consumer's VPC.
- message VpcPeeringConfig {
- // Required. Fully qualified name of the VPC that Datastream will peer to.
- // Format: `projects/{project}/global/{networks}/{name}`
- string vpc = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "compute.googleapis.com/Networks"
- }
- ];
- // Required. A free subnet for peering. (CIDR of /29)
- string subnet = 2 [(google.api.field_behavior) = REQUIRED];
- }
- // The PrivateConnection resource is used to establish private connectivity
- // between Datastream and a customer's network.
- message PrivateConnection {
- option (google.api.resource) = {
- type: "datastream.googleapis.com/PrivateConnection"
- pattern: "projects/{project}/locations/{location}/privateConnections/{private_connection}"
- };
- // Private Connection state.
- enum 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;
- }
- // Output only. The resource's name.
- string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The create time of the resource.
- google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The update time of the resource.
- google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Labels.
- map<string, string> labels = 4;
- // Required. Display name.
- string display_name = 5 [(google.api.field_behavior) = REQUIRED];
- // Output only. The state of the Private Connection.
- State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. In case of error, the details of the error in a user-friendly format.
- Error error = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
- // VPC Peering Config.
- VpcPeeringConfig vpc_peering_config = 100;
- }
- // Private Connectivity
- message PrivateConnectivity {
- // Required. A reference to a private connection resource.
- // Format: `projects/{project}/locations/{location}/privateConnections/{name}`
- string private_connection = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datastream.googleapis.com/PrivateConnection"
- }
- ];
- }
- // The route resource is the child of the private connection resource,
- // used for defining a route for a private connection.
- message Route {
- option (google.api.resource) = {
- type: "datastream.googleapis.com/Route"
- pattern: "projects/{project}/locations/{location}/privateConnections/{private_connection}/routes/{route}"
- };
- // Output only. The resource's name.
- string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The create time of the resource.
- google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The update time of the resource.
- google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Labels.
- map<string, string> labels = 4;
- // Required. Display name.
- string display_name = 5 [(google.api.field_behavior) = REQUIRED];
- // Required. Destination address for connection
- string destination_address = 6 [(google.api.field_behavior) = REQUIRED];
- // Destination port for connection
- int32 destination_port = 7;
- }
- // MySQL SSL configuration information.
- message MysqlSslConfig {
- // 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.
- string client_key = 1 [(google.api.field_behavior) = INPUT_ONLY];
- // Output only. Indicates whether the client_key field is set.
- bool client_key_set = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
- // 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.
- string client_certificate = 3 [(google.api.field_behavior) = INPUT_ONLY];
- // Output only. Indicates whether the client_certificate field is set.
- bool client_certificate_set = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Input only. PEM-encoded certificate of the CA that signed the source database
- // server's certificate.
- string ca_certificate = 5 [(google.api.field_behavior) = INPUT_ONLY];
- // Output only. Indicates whether the ca_certificate field is set.
- bool ca_certificate_set = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
- // A set of reusable connection configurations to be used as a source or
- // destination for a stream.
- message ConnectionProfile {
- option (google.api.resource) = {
- type: "datastream.googleapis.com/ConnectionProfile"
- pattern: "projects/{project}/locations/{location}/connectionProfiles/{connection_profile}"
- };
- // Output only. The resource's name.
- string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The create time of the resource.
- google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The update time of the resource.
- google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Labels.
- map<string, string> labels = 4;
- // Required. Display name.
- string display_name = 5 [(google.api.field_behavior) = REQUIRED];
- // Connection configuration for the ConnectionProfile.
- oneof profile {
- // Oracle ConnectionProfile configuration.
- OracleProfile oracle_profile = 100;
- // Cloud Storage ConnectionProfile configuration.
- GcsProfile gcs_profile = 101;
- // MySQL ConnectionProfile configuration.
- MysqlProfile mysql_profile = 102;
- // BigQuery Connection Profile configuration.
- BigQueryProfile bigquery_profile = 103;
- // PostgreSQL Connection Profile configuration.
- PostgresqlProfile postgresql_profile = 104;
- }
- // Connectivity options used to establish a connection to the profile.
- oneof connectivity {
- // Static Service IP connectivity.
- StaticServiceIpConnectivity static_service_ip_connectivity = 200;
- // Forward SSH tunnel connectivity.
- ForwardSshTunnelConnectivity forward_ssh_connectivity = 201;
- // Private connectivity.
- PrivateConnectivity private_connectivity = 202;
- }
- }
- // Oracle Column.
- message OracleColumn {
- // Column name.
- string column = 1;
- // The Oracle data type.
- string data_type = 2;
- // Column length.
- int32 length = 3;
- // Column precision.
- int32 precision = 4;
- // Column scale.
- int32 scale = 5;
- // Column encoding.
- string encoding = 6;
- // Whether or not the column represents a primary key.
- bool primary_key = 7;
- // Whether or not the column can accept a null value.
- bool nullable = 8;
- // The ordinal position of the column in the table.
- int32 ordinal_position = 9;
- }
- // Oracle table.
- message OracleTable {
- // Table name.
- string table = 1;
- // Oracle columns in the schema.
- // When unspecified as part of include/exclude objects, includes/excludes
- // everything.
- repeated OracleColumn oracle_columns = 2;
- }
- // Oracle schema.
- message OracleSchema {
- // Schema name.
- string schema = 1;
- // Tables in the schema.
- repeated OracleTable oracle_tables = 2;
- }
- // Oracle database structure.
- message OracleRdbms {
- // Oracle schemas/databases in the database server.
- repeated OracleSchema oracle_schemas = 1;
- }
- // Oracle data source configuration
- message OracleSourceConfig {
- // Configuration to drop large object values.
- message DropLargeObjects {
- }
- // Configuration to stream large object values.
- message StreamLargeObjects {
- }
- // Oracle objects to include in the stream.
- OracleRdbms include_objects = 1;
- // Oracle objects to exclude from the stream.
- OracleRdbms exclude_objects = 2;
- // 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.
- int32 max_concurrent_cdc_tasks = 3;
- // The configuration for handle Oracle large objects.
- oneof large_objects_handling {
- // Drop large object values.
- DropLargeObjects drop_large_objects = 100;
- // Stream large object values.
- StreamLargeObjects stream_large_objects = 102;
- }
- }
- // PostgreSQL Column.
- message PostgresqlColumn {
- // Column name.
- string column = 1;
- // The PostgreSQL data type.
- string data_type = 2;
- // Column length.
- int32 length = 3;
- // Column precision.
- int32 precision = 4;
- // Column scale.
- int32 scale = 5;
- // Whether or not the column represents a primary key.
- bool primary_key = 7;
- // Whether or not the column can accept a null value.
- bool nullable = 8;
- // The ordinal position of the column in the table.
- int32 ordinal_position = 9;
- }
- // PostgreSQL table.
- message PostgresqlTable {
- // Table name.
- string table = 1;
- // PostgreSQL columns in the schema.
- // When unspecified as part of include/exclude objects,
- // includes/excludes everything.
- repeated PostgresqlColumn postgresql_columns = 2;
- }
- // PostgreSQL schema.
- message PostgresqlSchema {
- // Schema name.
- string schema = 1;
- // Tables in the schema.
- repeated PostgresqlTable postgresql_tables = 2;
- }
- // PostgreSQL database structure.
- message PostgresqlRdbms {
- // PostgreSQL schemas in the database server.
- repeated PostgresqlSchema postgresql_schemas = 1;
- }
- // PostgreSQL data source configuration
- message PostgresqlSourceConfig {
- // PostgreSQL objects to include in the stream.
- PostgresqlRdbms include_objects = 1;
- // PostgreSQL objects to exclude from the stream.
- PostgresqlRdbms exclude_objects = 2;
- // Required. The name of the logical replication slot that's configured with the
- // pgoutput plugin.
- string replication_slot = 3 [(google.api.field_behavior) = REQUIRED];
- // Required. The name of the publication that includes the set of all tables that are
- // defined in the stream's include_objects.
- string publication = 4 [(google.api.field_behavior) = REQUIRED];
- }
- // MySQL Column.
- message MysqlColumn {
- // Column name.
- string column = 1;
- // The MySQL data type. Full data types list can be found here:
- // https://dev.mysql.com/doc/refman/8.0/en/data-types.html
- string data_type = 2;
- // Column length.
- int32 length = 3;
- // Column collation.
- string collation = 4;
- // Whether or not the column represents a primary key.
- bool primary_key = 5;
- // Whether or not the column can accept a null value.
- bool nullable = 6;
- // The ordinal position of the column in the table.
- int32 ordinal_position = 7;
- }
- // MySQL table.
- message MysqlTable {
- // Table name.
- string table = 1;
- // MySQL columns in the database.
- // When unspecified as part of include/exclude objects, includes/excludes
- // everything.
- repeated MysqlColumn mysql_columns = 2;
- }
- // MySQL database.
- message MysqlDatabase {
- // Database name.
- string database = 1;
- // Tables in the database.
- repeated MysqlTable mysql_tables = 2;
- }
- // MySQL database structure
- message MysqlRdbms {
- // Mysql databases on the server
- repeated MysqlDatabase mysql_databases = 1;
- }
- // MySQL source configuration
- message MysqlSourceConfig {
- // MySQL objects to retrieve from the source.
- MysqlRdbms include_objects = 1;
- // MySQL objects to exclude from the stream.
- MysqlRdbms exclude_objects = 2;
- // 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.
- int32 max_concurrent_cdc_tasks = 3;
- }
- // The configuration of the stream source.
- message SourceConfig {
- // Required. Source connection profile resoource.
- // Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`
- string source_connection_profile = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datastream.googleapis.com/ConnectionProfile"
- }
- ];
- // Stream configuration that is specific to the data source type.
- oneof source_stream_config {
- // Oracle data source configuration.
- OracleSourceConfig oracle_source_config = 100;
- // MySQL data source configuration.
- MysqlSourceConfig mysql_source_config = 101;
- // PostgreSQL data source configuration.
- PostgresqlSourceConfig postgresql_source_config = 102;
- }
- }
- // AVRO file format configuration.
- message AvroFileFormat {
- }
- // JSON file format configuration.
- message JsonFileFormat {
- // Schema file format.
- enum 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;
- }
- // Json file compression.
- enum JsonCompression {
- // Unspecified json file compression.
- JSON_COMPRESSION_UNSPECIFIED = 0;
- // Do not compress JSON file.
- NO_COMPRESSION = 1;
- // Gzip compression.
- GZIP = 2;
- }
- // The schema file format along JSON data files.
- SchemaFileFormat schema_file_format = 1;
- // Compression of the loaded JSON file.
- JsonCompression compression = 2;
- }
- // Google Cloud Storage destination configuration
- message GcsDestinationConfig {
- // Path inside the Cloud Storage bucket to write data to.
- string path = 1;
- // The maximum file size to be saved in the bucket.
- int32 file_rotation_mb = 2;
- // The maximum duration for which new events are added before a file is
- // closed and a new file is created.
- google.protobuf.Duration file_rotation_interval = 3;
- // File Format that the data should be written in.
- oneof file_format {
- // AVRO file format configuration.
- AvroFileFormat avro_file_format = 100;
- // JSON file format configuration.
- JsonFileFormat json_file_format = 101;
- }
- }
- message BigQueryDestinationConfig {
- // A single target dataset to which all data will be streamed.
- message SingleTargetDataset {
- string dataset_id = 1;
- }
- // Destination datasets are created so that hierarchy of the destination data
- // objects matches the source hierarchy.
- message SourceHierarchyDatasets {
- // Dataset template used for dynamic dataset creation.
- message DatasetTemplate {
- // Required. The geographic location where the dataset should reside. See
- // https://cloud.google.com/bigquery/docs/locations for supported
- // locations.
- string location = 1 [(google.api.field_behavior) = REQUIRED];
- // 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. <prefix>_<dataset_name>.
- string dataset_id_prefix = 2;
- // 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.
- string kms_key_name = 3;
- }
- DatasetTemplate dataset_template = 2;
- }
- // Target dataset(s) configuration.
- oneof dataset_config {
- // Single destination dataset.
- SingleTargetDataset single_target_dataset = 201;
- // Source hierarchy datasets.
- SourceHierarchyDatasets source_hierarchy_datasets = 202;
- }
- // 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.
- google.protobuf.Duration data_freshness = 300;
- }
- // The configuration of the stream destination.
- message DestinationConfig {
- // Required. Destination connection profile resource.
- // Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`
- string destination_connection_profile = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datastream.googleapis.com/ConnectionProfile"
- }
- ];
- // Stream configuration that is specific to the data destination type.
- oneof destination_stream_config {
- // A configuration for how data should be loaded to Cloud Storage.
- GcsDestinationConfig gcs_destination_config = 100;
- // BigQuery destination configuration.
- BigQueryDestinationConfig bigquery_destination_config = 101;
- }
- }
- // A resource representing streaming data from a source to a destination.
- message Stream {
- option (google.api.resource) = {
- type: "datastream.googleapis.com/Stream"
- pattern: "projects/{project}/locations/{location}/streams/{stream}"
- };
- // Stream state.
- enum 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;
- }
- // Backfill strategy to automatically backfill the Stream's objects.
- // Specific objects can be excluded.
- message BackfillAllStrategy {
- // List of objects to exclude.
- oneof excluded_objects {
- // Oracle data source objects to avoid backfilling.
- OracleRdbms oracle_excluded_objects = 1;
- // MySQL data source objects to avoid backfilling.
- MysqlRdbms mysql_excluded_objects = 2;
- // PostgreSQL data source objects to avoid backfilling.
- PostgresqlRdbms postgresql_excluded_objects = 3;
- }
- }
- // Backfill strategy to disable automatic backfill for the Stream's objects.
- message BackfillNoneStrategy {
- }
- // Output only. The stream's name.
- string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The creation time of the stream.
- google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The last update time of the stream.
- google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Labels.
- map<string, string> labels = 4;
- // Required. Display name.
- string display_name = 5 [(google.api.field_behavior) = REQUIRED];
- // Required. Source connection profile configuration.
- SourceConfig source_config = 6 [(google.api.field_behavior) = REQUIRED];
- // Required. Destination connection profile configuration.
- DestinationConfig destination_config = 7 [(google.api.field_behavior) = REQUIRED];
- // The state of the stream.
- State state = 8;
- // Stream backfill strategy.
- oneof backfill_strategy {
- // Automatically backfill objects included in the stream source
- // configuration. Specific objects can be excluded.
- BackfillAllStrategy backfill_all = 101;
- // Do not automatically backfill any objects.
- BackfillNoneStrategy backfill_none = 102;
- }
- // Output only. Errors on the Stream.
- repeated Error errors = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
- // 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.
- optional string customer_managed_encryption_key = 10 [(google.api.field_behavior) = IMMUTABLE];
- }
- // A specific stream object (e.g a specific DB table).
- message StreamObject {
- option (google.api.resource) = {
- type: "datastream.googleapis.com/StreamObject"
- pattern: "projects/{project}/locations/{location}/streams/{stream}/objects/{object}"
- };
- // Output only. The object resource's name.
- string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The creation time of the object.
- google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The last update time of the object.
- google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Required. Display name.
- string display_name = 5 [(google.api.field_behavior) = REQUIRED];
- // Output only. Active errors on the object.
- repeated Error errors = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
- // The latest backfill job that was initiated for the stream object.
- BackfillJob backfill_job = 7;
- // The object identifier in the data source.
- SourceObjectIdentifier source_object = 8;
- }
- // Represents an identifier of an object in the data source.
- message SourceObjectIdentifier {
- // Oracle data source object identifier.
- message OracleObjectIdentifier {
- // Required. The schema name.
- string schema = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. The table name.
- string table = 2 [(google.api.field_behavior) = REQUIRED];
- }
- // PostgreSQL data source object identifier.
- message PostgresqlObjectIdentifier {
- // Required. The schema name.
- string schema = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. The table name.
- string table = 2 [(google.api.field_behavior) = REQUIRED];
- }
- // Mysql data source object identifier.
- message MysqlObjectIdentifier {
- // Required. The database name.
- string database = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. The table name.
- string table = 2 [(google.api.field_behavior) = REQUIRED];
- }
- // The identifier for an object in the data source.
- oneof source_identifier {
- // Oracle data source object identifier.
- OracleObjectIdentifier oracle_identifier = 1;
- // Mysql data source object identifier.
- MysqlObjectIdentifier mysql_identifier = 2;
- // PostgreSQL data source object identifier.
- PostgresqlObjectIdentifier postgresql_identifier = 3;
- }
- }
- // Represents a backfill job on a specific stream object.
- message BackfillJob {
- // State of the stream object's backfill job.
- enum 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;
- }
- // Triggering reason for a backfill job.
- enum 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;
- }
- // Backfill job state.
- State state = 1;
- // Backfill job's triggering reason.
- Trigger trigger = 2;
- // Output only. Backfill job's start time.
- google.protobuf.Timestamp last_start_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. Backfill job's end time.
- google.protobuf.Timestamp last_end_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. Errors which caused the backfill job to fail.
- repeated Error errors = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
- // Represent a user-facing Error.
- message Error {
- // A title that explains the reason for the error.
- string reason = 1;
- // A unique identifier for this specific error,
- // allowing it to be traced throughout the system in logs and API responses.
- string error_uuid = 2;
- // A message containing more information about the error that occurred.
- string message = 3;
- // The time when the error occurred.
- google.protobuf.Timestamp error_time = 4;
- // Additional information about the error.
- map<string, string> details = 5;
- }
- // Contains the current validation results.
- message ValidationResult {
- // A list of validations (includes both executed as well as not executed
- // validations).
- repeated Validation validations = 1;
- }
- // A validation to perform on a stream.
- message Validation {
- // Validation execution state.
- enum State {
- // Unspecified state.
- STATE_UNSPECIFIED = 0;
- // Validation did not execute.
- NOT_EXECUTED = 1;
- // Validation failed.
- FAILED = 2;
- // Validation passed.
- PASSED = 3;
- }
- // A short description of the validation.
- string description = 1;
- // Validation execution status.
- State state = 2;
- // Messages reflecting the validation results.
- repeated ValidationMessage message = 3;
- // A custom code identifying this validation.
- string code = 4;
- }
- // Represent user-facing validation result message.
- message ValidationMessage {
- // Validation message level.
- enum Level {
- // Unspecified level.
- LEVEL_UNSPECIFIED = 0;
- // Potentially cause issues with the Stream.
- WARNING = 1;
- // Definitely cause issues with the Stream.
- ERROR = 2;
- }
- // The result of the validation.
- string message = 1;
- // Message severity level (warning or error).
- Level level = 2;
- // Additional metadata related to the result.
- map<string, string> metadata = 3;
- // A custom code identifying this specific message.
- string code = 4;
- }
|