• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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