You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
683 lines
19 KiB
683 lines
19 KiB
// Copyright 2021 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.v1alpha1; |
|
|
|
import "google/api/field_behavior.proto"; |
|
import "google/api/resource.proto"; |
|
import "google/protobuf/duration.proto"; |
|
import "google/protobuf/timestamp.proto"; |
|
|
|
option go_package = "cloud.google.com/go/datastream/apiv1alpha1/datastreampb;datastreampb"; |
|
option java_multiple_files = true; |
|
option java_outer_classname = "CloudDatastreamResourcesProto"; |
|
option java_package = "com.google.cloud.datastream.v1alpha1"; |
|
option csharp_namespace = "Google.Cloud.Datastream.V1Alpha1"; |
|
option php_namespace = "Google\\Cloud\\Datastream\\V1alpha1"; |
|
option ruby_package = "Google::Cloud::Datastream::V1alpha1"; |
|
|
|
// 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; |
|
} |
|
|
|
// Cloud Storage bucket profile. |
|
message GcsProfile { |
|
// Required. The full project and resource path for Cloud Storage bucket including the |
|
// name. |
|
string bucket_name = 1 [(google.api.field_behavior) = REQUIRED]; |
|
|
|
// The root path inside the Cloud Storage bucket. |
|
string root_path = 2; |
|
} |
|
|
|
// No connectivity settings. |
|
message NoConnectivitySettings { |
|
|
|
} |
|
|
|
// 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 Datastream will peer to. |
|
string vpc_name = 1 [(google.api.field_behavior) = REQUIRED]; |
|
|
|
// 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 { |
|
STATE_UNSPECIFIED = 0; |
|
|
|
// The private connection is in creation state - creating resources. |
|
CREATING = 1; |
|
|
|
// The private connection has been created with all of it's resources. |
|
CREATED = 2; |
|
|
|
// The private connection creation has failed. |
|
FAILED = 3; |
|
} |
|
|
|
// 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 { |
|
string private_connection_name = 1 [(google.api.field_behavior) = REQUIRED]; |
|
} |
|
|
|
// The Route resource is the child of the PrivateConnection resource. |
|
// It used to define a route for a PrivateConnection setup. |
|
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 = 11 [(google.api.field_behavior) = INPUT_ONLY]; |
|
|
|
// Output only. Indicates whether the client_key field is set. |
|
bool client_key_set = 12 [(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 = 13 [(google.api.field_behavior) = INPUT_ONLY]; |
|
|
|
// Output only. Indicates whether the client_certificate field is set. |
|
bool client_certificate_set = 14 [(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 = 15 [(google.api.field_behavior) = INPUT_ONLY]; |
|
|
|
// Output only. Indicates whether the ca_certificate field is set. |
|
bool ca_certificate_set = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
} |
|
|
|
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; |
|
} |
|
|
|
// Connectivity options used to establish a connection to the profile. |
|
oneof connectivity { |
|
// No connectivity option chosen. |
|
NoConnectivitySettings no_connectivity = 200; |
|
|
|
// Static Service IP connectivity. |
|
StaticServiceIpConnectivity static_service_ip_connectivity = 201; |
|
|
|
// Forward SSH tunnel connectivity. |
|
ForwardSshTunnelConnectivity forward_ssh_connectivity = 202; |
|
|
|
// Private connectivity. |
|
PrivateConnectivity private_connectivity = 203; |
|
} |
|
} |
|
|
|
// Oracle Column. |
|
message OracleColumn { |
|
// Column name. |
|
string column_name = 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_name = 1; |
|
|
|
// Oracle columns in the schema. |
|
// When unspecified as part of inclue/exclude lists, includes/excludes |
|
// everything. |
|
repeated OracleColumn oracle_columns = 2; |
|
} |
|
|
|
// Oracle schema. |
|
message OracleSchema { |
|
// Schema name. |
|
string schema_name = 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 { |
|
// Oracle objects to include in the stream. |
|
OracleRdbms allowlist = 1; |
|
|
|
// Oracle objects to exclude from the stream. |
|
OracleRdbms rejectlist = 2; |
|
} |
|
|
|
// MySQL Column. |
|
message MysqlColumn { |
|
// Column name. |
|
string column_name = 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_name = 1; |
|
|
|
// MySQL columns in the database. |
|
// When unspecified as part of include/exclude lists, includes/excludes |
|
// everything. |
|
repeated MysqlColumn mysql_columns = 2; |
|
} |
|
|
|
// MySQL database. |
|
message MysqlDatabase { |
|
// Database name. |
|
string database_name = 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 allowlist = 1; |
|
|
|
// MySQL objects to exclude from the stream. |
|
MysqlRdbms rejectlist = 2; |
|
} |
|
|
|
// The configuration of the stream source. |
|
message SourceConfig { |
|
// Required. Source connection profile identifier. |
|
string source_connection_profile_name = 1 [(google.api.field_behavior) = REQUIRED]; |
|
|
|
// 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; |
|
} |
|
} |
|
|
|
// AVRO file format configuration. |
|
message AvroFileFormat { |
|
|
|
} |
|
|
|
// File format in Cloud Storage. |
|
enum GcsFileFormat { |
|
option deprecated = true; |
|
|
|
// Unspecified Cloud Storage file format. |
|
GCS_FILE_FORMAT_UNSPECIFIED = 0; |
|
|
|
// Avro file format |
|
AVRO = 1; |
|
} |
|
|
|
// 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 format configuration. |
|
message JsonFileFormat { |
|
// 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; |
|
|
|
// File format that data should be written in. |
|
// Deprecated field - use file_format instead. |
|
GcsFileFormat gcs_file_format = 2 [deprecated = true]; |
|
|
|
// The maximum file size to be saved in the bucket. |
|
int32 file_rotation_mb = 3; |
|
|
|
// 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 = 4; |
|
|
|
// 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; |
|
} |
|
} |
|
|
|
// The configuration of the stream destination. |
|
message DestinationConfig { |
|
// Required. Destination connection profile identifier. |
|
string destination_connection_profile_name = 1 [(google.api.field_behavior) = REQUIRED]; |
|
|
|
// Stream configuration that is specific to the data destination type. |
|
oneof destination_stream_config { |
|
GcsDestinationConfig gcs_destination_config = 100; |
|
} |
|
} |
|
|
|
message Stream { |
|
option (google.api.resource) = { |
|
type: "datastream.googleapis.com/Stream" |
|
pattern: "projects/{project}/locations/{location}/streams/{stream}" |
|
}; |
|
|
|
// 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; |
|
} |
|
} |
|
|
|
// Backfill strategy to disable automatic backfill for the Stream's objects. |
|
message BackfillNoneStrategy { |
|
|
|
} |
|
|
|
// Stream state. |
|
enum State { |
|
// Unspecified stream state. |
|
STATE_UNSPECIFIED = 0; |
|
|
|
// The stream has been created. |
|
CREATED = 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; |
|
} |
|
|
|
// 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]; |
|
} |
|
|
|
// 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; |
|
} |
|
|
|
message Validation { |
|
// Validation execution status. |
|
enum Status { |
|
// Unspecified status. |
|
STATUS_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. |
|
Status status = 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; |
|
}
|
|
|