| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 | // 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.bigquery.migration.v2;option csharp_namespace = "Google.Cloud.BigQuery.Migration.V2";option go_package = "google.golang.org/genproto/googleapis/cloud/bigquery/migration/v2;migration";option java_multiple_files = true;option java_outer_classname = "TranslationConfigProto";option java_package = "com.google.cloud.bigquery.migration.v2";option php_namespace = "Google\\Cloud\\BigQuery\\Migration\\V2";// The translation config to capture necessary settings for a translation task// and subtask.message TranslationConfigDetails {  // The chosen path where the source for input files will be found.  oneof source_location {    // The Cloud Storage path for a directory of files to translate in a task.    string gcs_source_path = 1;  }  // The chosen path where the destination for output files will be found.  oneof target_location {    // The Cloud Storage path to write back the corresponding input files to.    string gcs_target_path = 2;  }  // The dialect of the input files.  Dialect source_dialect = 3;  // The target dialect for the engine to translate the input to.  Dialect target_dialect = 4;  // The mapping of full SQL object names from their current state to the  // desired output.  oneof output_name_mapping {    // The mapping of objects to their desired output names in list form.    ObjectNameMappingList name_mapping_list = 5;  }  // The default source environment values for the translation.  SourceEnv source_env = 6;}// The possible dialect options for translation.message Dialect {  // The possible dialect options that this message represents.  oneof dialect_value {    // The BigQuery dialect    BigQueryDialect bigquery_dialect = 1;    // The HiveQL dialect    HiveQLDialect hiveql_dialect = 2;    // The Redshift dialect    RedshiftDialect redshift_dialect = 3;    // The Teradata dialect    TeradataDialect teradata_dialect = 4;    // The Oracle dialect    OracleDialect oracle_dialect = 5;    // The SparkSQL dialect    SparkSQLDialect sparksql_dialect = 6;    // The Snowflake dialect    SnowflakeDialect snowflake_dialect = 7;    // The Netezza dialect    NetezzaDialect netezza_dialect = 8;    // The Azure Synapse dialect    AzureSynapseDialect azure_synapse_dialect = 9;    // The Vertica dialect    VerticaDialect vertica_dialect = 10;    // The SQL Server dialect    SQLServerDialect sql_server_dialect = 11;    // The Postgresql dialect    PostgresqlDialect postgresql_dialect = 12;    // The Presto dialect    PrestoDialect presto_dialect = 13;    // The MySQL dialect    MySQLDialect mysql_dialect = 14;  }}// The dialect definition for BigQuery.message BigQueryDialect {}// The dialect definition for HiveQL.message HiveQLDialect {}// The dialect definition for Redshift.message RedshiftDialect {}// The dialect definition for Teradata.message TeradataDialect {  // The sub-dialect options for Teradata.  enum Mode {    // Unspecified mode.    MODE_UNSPECIFIED = 0;    // Teradata SQL mode.    SQL = 1;    // BTEQ mode (which includes SQL).    BTEQ = 2;  }  // Which Teradata sub-dialect mode the user specifies.  Mode mode = 1;}// The dialect definition for Oracle.message OracleDialect {}// The dialect definition for SparkSQL.message SparkSQLDialect {}// The dialect definition for Snowflake.message SnowflakeDialect {}// The dialect definition for Netezza.message NetezzaDialect {}// The dialect definition for Azure Synapse.message AzureSynapseDialect {}// The dialect definition for Vertica.message VerticaDialect {}// The dialect definition for SQL Server.message SQLServerDialect {}// The dialect definition for Postgresql.message PostgresqlDialect {}// The dialect definition for Presto.message PrestoDialect {}// The dialect definition for MySQL.message MySQLDialect {}// Represents a map of name mappings using a list of key:value proto messages of// existing name to desired output name.message ObjectNameMappingList {  // The elements of the object name map.  repeated ObjectNameMapping name_map = 1;}// Represents a key-value pair of NameMappingKey to NameMappingValue to// represent the mapping of SQL names from the input value to desired output.message ObjectNameMapping {  // The name of the object in source that is being mapped.  NameMappingKey source = 1;  // The desired target name of the object that is being mapped.  NameMappingValue target = 2;}// The potential components of a full name mapping that will be mapped// during translation in the source data warehouse.message NameMappingKey {  // The type of the object that is being mapped.  enum Type {    // Unspecified name mapping type.    TYPE_UNSPECIFIED = 0;    // The object being mapped is a database.    DATABASE = 1;    // The object being mapped is a schema.    SCHEMA = 2;    // The object being mapped is a relation.    RELATION = 3;    // The object being mapped is an attribute.    ATTRIBUTE = 4;    // The object being mapped is a relation alias.    RELATION_ALIAS = 5;    // The object being mapped is a an attribute alias.    ATTRIBUTE_ALIAS = 6;    // The object being mapped is a function.    FUNCTION = 7;  }  // The type of object that is being mapped.  Type type = 1;  // The database name (BigQuery project ID equivalent in the source data  // warehouse).  string database = 2;  // The schema name (BigQuery dataset equivalent in the source data warehouse).  string schema = 3;  // The relation name (BigQuery table or view equivalent in the source data  // warehouse).  string relation = 4;  // The attribute name (BigQuery column equivalent in the source data  // warehouse).  string attribute = 5;}// The potential components of a full name mapping that will be mapped// during translation in the target data warehouse.message NameMappingValue {  // The database name (BigQuery project ID equivalent in the target data  // warehouse).  string database = 1;  // The schema name (BigQuery dataset equivalent in the target data warehouse).  string schema = 2;  // The relation name (BigQuery table or view equivalent in the target data  // warehouse).  string relation = 3;  // The attribute name (BigQuery column equivalent in the target data  // warehouse).  string attribute = 4;}// Represents the default source environment values for the translation.message SourceEnv {  // The default database name to fully qualify SQL objects when their database  // name is missing.  string default_database = 1;  // The schema search path. When SQL objects are missing schema name,  // translation engine will search through this list to find the value.  repeated string schema_search_path = 2;}
 |