1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.cloud.datacatalog.v1; 18 19option cc_enable_arenas = true; 20option csharp_namespace = "Google.Cloud.DataCatalog.V1"; 21option go_package = "cloud.google.com/go/datacatalog/apiv1/datacatalogpb;datacatalogpb"; 22option java_multiple_files = true; 23option java_outer_classname = "PhysicalSchemaProto"; 24option java_package = "com.google.cloud.datacatalog.v1"; 25option php_namespace = "Google\\Cloud\\DataCatalog\\V1"; 26option ruby_package = "Google::Cloud::DataCatalog::V1"; 27 28// Native schema used by a resource represented as an entry. Used by query 29// engines for deserializing and parsing source data. 30message PhysicalSchema { 31 // Schema in Avro JSON format. 32 message AvroSchema { 33 // JSON source of the Avro schema. 34 string text = 1; 35 } 36 37 // Schema in Thrift format. 38 message ThriftSchema { 39 // Thrift IDL source of the schema. 40 string text = 1; 41 } 42 43 // Schema in protocol buffer format. 44 message ProtobufSchema { 45 // Protocol buffer source of the schema. 46 string text = 1; 47 } 48 49 // Marks a Parquet-encoded data source. 50 message ParquetSchema {} 51 52 // Marks an ORC-encoded data source. 53 message OrcSchema {} 54 55 // Marks a CSV-encoded data source. 56 message CsvSchema {} 57 58 oneof schema { 59 // Schema in Avro JSON format. 60 AvroSchema avro = 1; 61 62 // Schema in Thrift format. 63 ThriftSchema thrift = 2; 64 65 // Schema in protocol buffer format. 66 ProtobufSchema protobuf = 3; 67 68 // Marks a Parquet-encoded data source. 69 ParquetSchema parquet = 4; 70 71 // Marks an ORC-encoded data source. 72 OrcSchema orc = 5; 73 74 // Marks a CSV-encoded data source. 75 CsvSchema csv = 6; 76 } 77} 78