xref: /aosp_15_r20/external/googleapis/google/cloud/dataplex/v1/metadata.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage google.cloud.dataplex.v1;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/annotations.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
25*d5c09012SAndroid Build Coastguard Worker
26*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb";
27*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
28*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "MetadataProto";
29*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.dataplex.v1";
30*d5c09012SAndroid Build Coastguard Worker
31*d5c09012SAndroid Build Coastguard Worker// Metadata service manages metadata resources such as tables, filesets and
32*d5c09012SAndroid Build Coastguard Worker// partitions.
33*d5c09012SAndroid Build Coastguard Workerservice MetadataService {
34*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "dataplex.googleapis.com";
35*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
36*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform";
37*d5c09012SAndroid Build Coastguard Worker
38*d5c09012SAndroid Build Coastguard Worker  // Create a metadata entity.
39*d5c09012SAndroid Build Coastguard Worker  rpc CreateEntity(CreateEntityRequest) returns (Entity) {
40*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
41*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/entities"
42*d5c09012SAndroid Build Coastguard Worker      body: "entity"
43*d5c09012SAndroid Build Coastguard Worker    };
44*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,entity";
45*d5c09012SAndroid Build Coastguard Worker  }
46*d5c09012SAndroid Build Coastguard Worker
47*d5c09012SAndroid Build Coastguard Worker  // Update a metadata entity. Only supports full resource update.
48*d5c09012SAndroid Build Coastguard Worker  rpc UpdateEntity(UpdateEntityRequest) returns (Entity) {
49*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
50*d5c09012SAndroid Build Coastguard Worker      put: "/v1/{entity.name=projects/*/locations/*/lakes/*/zones/*/entities/*}"
51*d5c09012SAndroid Build Coastguard Worker      body: "entity"
52*d5c09012SAndroid Build Coastguard Worker    };
53*d5c09012SAndroid Build Coastguard Worker  }
54*d5c09012SAndroid Build Coastguard Worker
55*d5c09012SAndroid Build Coastguard Worker  // Delete a metadata entity.
56*d5c09012SAndroid Build Coastguard Worker  rpc DeleteEntity(DeleteEntityRequest) returns (google.protobuf.Empty) {
57*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
58*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=projects/*/locations/*/lakes/*/zones/*/entities/*}"
59*d5c09012SAndroid Build Coastguard Worker    };
60*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
61*d5c09012SAndroid Build Coastguard Worker  }
62*d5c09012SAndroid Build Coastguard Worker
63*d5c09012SAndroid Build Coastguard Worker  // Get a metadata entity.
64*d5c09012SAndroid Build Coastguard Worker  rpc GetEntity(GetEntityRequest) returns (Entity) {
65*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
66*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=projects/*/locations/*/lakes/*/zones/*/entities/*}"
67*d5c09012SAndroid Build Coastguard Worker    };
68*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
69*d5c09012SAndroid Build Coastguard Worker  }
70*d5c09012SAndroid Build Coastguard Worker
71*d5c09012SAndroid Build Coastguard Worker  // List metadata entities in a zone.
72*d5c09012SAndroid Build Coastguard Worker  rpc ListEntities(ListEntitiesRequest) returns (ListEntitiesResponse) {
73*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
74*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*/locations/*/lakes/*/zones/*}/entities"
75*d5c09012SAndroid Build Coastguard Worker    };
76*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
77*d5c09012SAndroid Build Coastguard Worker  }
78*d5c09012SAndroid Build Coastguard Worker
79*d5c09012SAndroid Build Coastguard Worker  // Create a metadata partition.
80*d5c09012SAndroid Build Coastguard Worker  rpc CreatePartition(CreatePartitionRequest) returns (Partition) {
81*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
82*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=projects/*/locations/*/lakes/*/zones/*/entities/*}/partitions"
83*d5c09012SAndroid Build Coastguard Worker      body: "partition"
84*d5c09012SAndroid Build Coastguard Worker    };
85*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,partition";
86*d5c09012SAndroid Build Coastguard Worker  }
87*d5c09012SAndroid Build Coastguard Worker
88*d5c09012SAndroid Build Coastguard Worker  // Delete a metadata partition.
89*d5c09012SAndroid Build Coastguard Worker  rpc DeletePartition(DeletePartitionRequest) returns (google.protobuf.Empty) {
90*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
91*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=projects/*/locations/*/lakes/*/zones/*/entities/*/partitions/**}"
92*d5c09012SAndroid Build Coastguard Worker    };
93*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
94*d5c09012SAndroid Build Coastguard Worker  }
95*d5c09012SAndroid Build Coastguard Worker
96*d5c09012SAndroid Build Coastguard Worker  // Get a metadata partition of an entity.
97*d5c09012SAndroid Build Coastguard Worker  rpc GetPartition(GetPartitionRequest) returns (Partition) {
98*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
99*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=projects/*/locations/*/lakes/*/zones/*/entities/*/partitions/**}"
100*d5c09012SAndroid Build Coastguard Worker    };
101*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
102*d5c09012SAndroid Build Coastguard Worker  }
103*d5c09012SAndroid Build Coastguard Worker
104*d5c09012SAndroid Build Coastguard Worker  // List metadata partitions of an entity.
105*d5c09012SAndroid Build Coastguard Worker  rpc ListPartitions(ListPartitionsRequest) returns (ListPartitionsResponse) {
106*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
107*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*/locations/*/lakes/*/zones/*/entities/*}/partitions"
108*d5c09012SAndroid Build Coastguard Worker    };
109*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
110*d5c09012SAndroid Build Coastguard Worker  }
111*d5c09012SAndroid Build Coastguard Worker}
112*d5c09012SAndroid Build Coastguard Worker
113*d5c09012SAndroid Build Coastguard Worker// Create a metadata entity request.
114*d5c09012SAndroid Build Coastguard Workermessage CreateEntityRequest {
115*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the parent zone:
116*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}`.
117*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
118*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
119*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dataplex.googleapis.com/Zone" }
120*d5c09012SAndroid Build Coastguard Worker  ];
121*d5c09012SAndroid Build Coastguard Worker
122*d5c09012SAndroid Build Coastguard Worker  // Required. Entity resource.
123*d5c09012SAndroid Build Coastguard Worker  Entity entity = 3 [(google.api.field_behavior) = REQUIRED];
124*d5c09012SAndroid Build Coastguard Worker
125*d5c09012SAndroid Build Coastguard Worker  // Optional. Only validate the request, but do not perform mutations.
126*d5c09012SAndroid Build Coastguard Worker  // The default is false.
127*d5c09012SAndroid Build Coastguard Worker  bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL];
128*d5c09012SAndroid Build Coastguard Worker}
129*d5c09012SAndroid Build Coastguard Worker
130*d5c09012SAndroid Build Coastguard Worker// Update a metadata entity request.
131*d5c09012SAndroid Build Coastguard Worker// The exiting entity will be fully replaced by the entity in the request.
132*d5c09012SAndroid Build Coastguard Worker// The entity ID is mutable. To modify the ID, use the current entity ID in the
133*d5c09012SAndroid Build Coastguard Worker// request URL and specify the new ID in the request body.
134*d5c09012SAndroid Build Coastguard Workermessage UpdateEntityRequest {
135*d5c09012SAndroid Build Coastguard Worker  // Required. Update description.
136*d5c09012SAndroid Build Coastguard Worker  Entity entity = 2 [(google.api.field_behavior) = REQUIRED];
137*d5c09012SAndroid Build Coastguard Worker
138*d5c09012SAndroid Build Coastguard Worker  // Optional. Only validate the request, but do not perform mutations.
139*d5c09012SAndroid Build Coastguard Worker  // The default is false.
140*d5c09012SAndroid Build Coastguard Worker  bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL];
141*d5c09012SAndroid Build Coastguard Worker}
142*d5c09012SAndroid Build Coastguard Worker
143*d5c09012SAndroid Build Coastguard Worker// Delete a metadata entity request.
144*d5c09012SAndroid Build Coastguard Workermessage DeleteEntityRequest {
145*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the entity:
146*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}`.
147*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
148*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
149*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dataplex.googleapis.com/Entity" }
150*d5c09012SAndroid Build Coastguard Worker  ];
151*d5c09012SAndroid Build Coastguard Worker
152*d5c09012SAndroid Build Coastguard Worker  // Required. The etag associated with the entity, which can be retrieved with
153*d5c09012SAndroid Build Coastguard Worker  // a [GetEntity][] request.
154*d5c09012SAndroid Build Coastguard Worker  string etag = 2 [(google.api.field_behavior) = REQUIRED];
155*d5c09012SAndroid Build Coastguard Worker}
156*d5c09012SAndroid Build Coastguard Worker
157*d5c09012SAndroid Build Coastguard Worker// List metadata entities request.
158*d5c09012SAndroid Build Coastguard Workermessage ListEntitiesRequest {
159*d5c09012SAndroid Build Coastguard Worker  // Entity views.
160*d5c09012SAndroid Build Coastguard Worker  enum EntityView {
161*d5c09012SAndroid Build Coastguard Worker    // The default unset value. Return both table and fileset entities
162*d5c09012SAndroid Build Coastguard Worker    // if unspecified.
163*d5c09012SAndroid Build Coastguard Worker    ENTITY_VIEW_UNSPECIFIED = 0;
164*d5c09012SAndroid Build Coastguard Worker
165*d5c09012SAndroid Build Coastguard Worker    // Only list table entities.
166*d5c09012SAndroid Build Coastguard Worker    TABLES = 1;
167*d5c09012SAndroid Build Coastguard Worker
168*d5c09012SAndroid Build Coastguard Worker    // Only list fileset entities.
169*d5c09012SAndroid Build Coastguard Worker    FILESETS = 2;
170*d5c09012SAndroid Build Coastguard Worker  }
171*d5c09012SAndroid Build Coastguard Worker
172*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the parent zone:
173*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}`.
174*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
175*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
176*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dataplex.googleapis.com/Zone" }
177*d5c09012SAndroid Build Coastguard Worker  ];
178*d5c09012SAndroid Build Coastguard Worker
179*d5c09012SAndroid Build Coastguard Worker  // Required. Specify the entity view to make a partial list request.
180*d5c09012SAndroid Build Coastguard Worker  EntityView view = 2 [(google.api.field_behavior) = REQUIRED];
181*d5c09012SAndroid Build Coastguard Worker
182*d5c09012SAndroid Build Coastguard Worker  // Optional. Maximum number of entities to return. The service may return
183*d5c09012SAndroid Build Coastguard Worker  // fewer than this value. If unspecified, 100 entities will be returned by
184*d5c09012SAndroid Build Coastguard Worker  // default. The maximum value is 500; larger values will will be truncated to
185*d5c09012SAndroid Build Coastguard Worker  // 500.
186*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
187*d5c09012SAndroid Build Coastguard Worker
188*d5c09012SAndroid Build Coastguard Worker  // Optional. Page token received from a previous `ListEntities` call. Provide
189*d5c09012SAndroid Build Coastguard Worker  // this to retrieve the subsequent page. When paginating, all other parameters
190*d5c09012SAndroid Build Coastguard Worker  // provided to `ListEntities` must match the call that provided the
191*d5c09012SAndroid Build Coastguard Worker  // page token.
192*d5c09012SAndroid Build Coastguard Worker  string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
193*d5c09012SAndroid Build Coastguard Worker
194*d5c09012SAndroid Build Coastguard Worker  // Optional. The following filter parameters can be added to the URL to limit
195*d5c09012SAndroid Build Coastguard Worker  // the entities returned by the API:
196*d5c09012SAndroid Build Coastguard Worker  //
197*d5c09012SAndroid Build Coastguard Worker  // - Entity ID: ?filter="id=entityID"
198*d5c09012SAndroid Build Coastguard Worker  // - Asset ID: ?filter="asset=assetID"
199*d5c09012SAndroid Build Coastguard Worker  // - Data path ?filter="data_path=gs://my-bucket"
200*d5c09012SAndroid Build Coastguard Worker  // - Is HIVE compatible: ?filter="hive_compatible=true"
201*d5c09012SAndroid Build Coastguard Worker  // - Is BigQuery compatible: ?filter="bigquery_compatible=true"
202*d5c09012SAndroid Build Coastguard Worker  string filter = 5 [(google.api.field_behavior) = OPTIONAL];
203*d5c09012SAndroid Build Coastguard Worker}
204*d5c09012SAndroid Build Coastguard Worker
205*d5c09012SAndroid Build Coastguard Worker// List metadata entities response.
206*d5c09012SAndroid Build Coastguard Workermessage ListEntitiesResponse {
207*d5c09012SAndroid Build Coastguard Worker  // Entities in the specified parent zone.
208*d5c09012SAndroid Build Coastguard Worker  repeated Entity entities = 1;
209*d5c09012SAndroid Build Coastguard Worker
210*d5c09012SAndroid Build Coastguard Worker  // Token to retrieve the next page of results, or empty if there are no
211*d5c09012SAndroid Build Coastguard Worker  // remaining results in the list.
212*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
213*d5c09012SAndroid Build Coastguard Worker}
214*d5c09012SAndroid Build Coastguard Worker
215*d5c09012SAndroid Build Coastguard Worker// Get metadata entity request.
216*d5c09012SAndroid Build Coastguard Workermessage GetEntityRequest {
217*d5c09012SAndroid Build Coastguard Worker  // Entity views for get entity partial result.
218*d5c09012SAndroid Build Coastguard Worker  enum EntityView {
219*d5c09012SAndroid Build Coastguard Worker    // The API will default to the `BASIC` view.
220*d5c09012SAndroid Build Coastguard Worker    ENTITY_VIEW_UNSPECIFIED = 0;
221*d5c09012SAndroid Build Coastguard Worker
222*d5c09012SAndroid Build Coastguard Worker    // Minimal view that does not include the schema.
223*d5c09012SAndroid Build Coastguard Worker    BASIC = 1;
224*d5c09012SAndroid Build Coastguard Worker
225*d5c09012SAndroid Build Coastguard Worker    // Include basic information and schema.
226*d5c09012SAndroid Build Coastguard Worker    SCHEMA = 2;
227*d5c09012SAndroid Build Coastguard Worker
228*d5c09012SAndroid Build Coastguard Worker    // Include everything. Currently, this is the same as the SCHEMA view.
229*d5c09012SAndroid Build Coastguard Worker    FULL = 4;
230*d5c09012SAndroid Build Coastguard Worker  }
231*d5c09012SAndroid Build Coastguard Worker
232*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the entity:
233*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}.`
234*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
235*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
236*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dataplex.googleapis.com/Entity" }
237*d5c09012SAndroid Build Coastguard Worker  ];
238*d5c09012SAndroid Build Coastguard Worker
239*d5c09012SAndroid Build Coastguard Worker  // Optional. Used to select the subset of entity information to return.
240*d5c09012SAndroid Build Coastguard Worker  // Defaults to `BASIC`.
241*d5c09012SAndroid Build Coastguard Worker  EntityView view = 2 [(google.api.field_behavior) = OPTIONAL];
242*d5c09012SAndroid Build Coastguard Worker}
243*d5c09012SAndroid Build Coastguard Worker
244*d5c09012SAndroid Build Coastguard Worker// List metadata partitions request.
245*d5c09012SAndroid Build Coastguard Workermessage ListPartitionsRequest {
246*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the parent entity:
247*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}`.
248*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
249*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
250*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dataplex.googleapis.com/Entity" }
251*d5c09012SAndroid Build Coastguard Worker  ];
252*d5c09012SAndroid Build Coastguard Worker
253*d5c09012SAndroid Build Coastguard Worker  // Optional. Maximum number of partitions to return. The service may return
254*d5c09012SAndroid Build Coastguard Worker  // fewer than this value. If unspecified, 100 partitions will be returned by
255*d5c09012SAndroid Build Coastguard Worker  // default. The maximum page size is 500; larger values will will be truncated
256*d5c09012SAndroid Build Coastguard Worker  // to 500.
257*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
258*d5c09012SAndroid Build Coastguard Worker
259*d5c09012SAndroid Build Coastguard Worker  // Optional. Page token received from a previous `ListPartitions` call.
260*d5c09012SAndroid Build Coastguard Worker  // Provide this to retrieve the subsequent page. When paginating, all other
261*d5c09012SAndroid Build Coastguard Worker  // parameters provided to `ListPartitions` must match the call that provided
262*d5c09012SAndroid Build Coastguard Worker  // the page token.
263*d5c09012SAndroid Build Coastguard Worker  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
264*d5c09012SAndroid Build Coastguard Worker
265*d5c09012SAndroid Build Coastguard Worker  // Optional. Filter the partitions returned to the caller using a key value
266*d5c09012SAndroid Build Coastguard Worker  // pair expression. Supported operators and syntax:
267*d5c09012SAndroid Build Coastguard Worker  //
268*d5c09012SAndroid Build Coastguard Worker  // - logic operators: AND, OR
269*d5c09012SAndroid Build Coastguard Worker  // - comparison operators: <, >, >=, <= ,=, !=
270*d5c09012SAndroid Build Coastguard Worker  // - LIKE operators:
271*d5c09012SAndroid Build Coastguard Worker  //   - The right hand of a LIKE operator supports "." and
272*d5c09012SAndroid Build Coastguard Worker  //     "*" for wildcard searches, for example "value1 LIKE ".*oo.*"
273*d5c09012SAndroid Build Coastguard Worker  // - parenthetical grouping: ( )
274*d5c09012SAndroid Build Coastguard Worker  //
275*d5c09012SAndroid Build Coastguard Worker  // Sample filter expression: `?filter="key1 < value1 OR key2 > value2"
276*d5c09012SAndroid Build Coastguard Worker  //
277*d5c09012SAndroid Build Coastguard Worker  // **Notes:**
278*d5c09012SAndroid Build Coastguard Worker  //
279*d5c09012SAndroid Build Coastguard Worker  // - Keys to the left of operators are case insensitive.
280*d5c09012SAndroid Build Coastguard Worker  // - Partition results are sorted first by creation time, then by
281*d5c09012SAndroid Build Coastguard Worker  //   lexicographic order.
282*d5c09012SAndroid Build Coastguard Worker  // - Up to 20 key value filter pairs are allowed, but due to performance
283*d5c09012SAndroid Build Coastguard Worker  //   considerations, only the first 10 will be used as a filter.
284*d5c09012SAndroid Build Coastguard Worker  string filter = 4 [(google.api.field_behavior) = OPTIONAL];
285*d5c09012SAndroid Build Coastguard Worker}
286*d5c09012SAndroid Build Coastguard Worker
287*d5c09012SAndroid Build Coastguard Worker// Create metadata partition request.
288*d5c09012SAndroid Build Coastguard Workermessage CreatePartitionRequest {
289*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the parent zone:
290*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}`.
291*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
292*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
293*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dataplex.googleapis.com/Entity" }
294*d5c09012SAndroid Build Coastguard Worker  ];
295*d5c09012SAndroid Build Coastguard Worker
296*d5c09012SAndroid Build Coastguard Worker  // Required. Partition resource.
297*d5c09012SAndroid Build Coastguard Worker  Partition partition = 3 [(google.api.field_behavior) = REQUIRED];
298*d5c09012SAndroid Build Coastguard Worker
299*d5c09012SAndroid Build Coastguard Worker  // Optional. Only validate the request, but do not perform mutations.
300*d5c09012SAndroid Build Coastguard Worker  // The default is false.
301*d5c09012SAndroid Build Coastguard Worker  bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL];
302*d5c09012SAndroid Build Coastguard Worker}
303*d5c09012SAndroid Build Coastguard Worker
304*d5c09012SAndroid Build Coastguard Worker// Delete metadata partition request.
305*d5c09012SAndroid Build Coastguard Workermessage DeletePartitionRequest {
306*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the partition.
307*d5c09012SAndroid Build Coastguard Worker  // format:
308*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}/partitions/{partition_value_path}`.
309*d5c09012SAndroid Build Coastguard Worker  // The {partition_value_path} segment consists of an ordered sequence of
310*d5c09012SAndroid Build Coastguard Worker  // partition values separated by "/". All values must be provided.
311*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
312*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
313*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
314*d5c09012SAndroid Build Coastguard Worker      type: "dataplex.googleapis.com/Partition"
315*d5c09012SAndroid Build Coastguard Worker    }
316*d5c09012SAndroid Build Coastguard Worker  ];
317*d5c09012SAndroid Build Coastguard Worker
318*d5c09012SAndroid Build Coastguard Worker  // Optional. The etag associated with the partition.
319*d5c09012SAndroid Build Coastguard Worker  string etag = 2 [deprecated = true, (google.api.field_behavior) = OPTIONAL];
320*d5c09012SAndroid Build Coastguard Worker}
321*d5c09012SAndroid Build Coastguard Worker
322*d5c09012SAndroid Build Coastguard Worker// List metadata partitions response.
323*d5c09012SAndroid Build Coastguard Workermessage ListPartitionsResponse {
324*d5c09012SAndroid Build Coastguard Worker  // Partitions under the specified parent entity.
325*d5c09012SAndroid Build Coastguard Worker  repeated Partition partitions = 1;
326*d5c09012SAndroid Build Coastguard Worker
327*d5c09012SAndroid Build Coastguard Worker  // Token to retrieve the next page of results, or empty if there are no
328*d5c09012SAndroid Build Coastguard Worker  // remaining results in the list.
329*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
330*d5c09012SAndroid Build Coastguard Worker}
331*d5c09012SAndroid Build Coastguard Worker
332*d5c09012SAndroid Build Coastguard Worker// Get metadata partition request.
333*d5c09012SAndroid Build Coastguard Workermessage GetPartitionRequest {
334*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the partition:
335*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}/partitions/{partition_value_path}`.
336*d5c09012SAndroid Build Coastguard Worker  // The {partition_value_path} segment consists of an ordered sequence of
337*d5c09012SAndroid Build Coastguard Worker  // partition values separated by "/". All values must be provided.
338*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
339*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
340*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
341*d5c09012SAndroid Build Coastguard Worker      type: "dataplex.googleapis.com/Partition"
342*d5c09012SAndroid Build Coastguard Worker    }
343*d5c09012SAndroid Build Coastguard Worker  ];
344*d5c09012SAndroid Build Coastguard Worker}
345*d5c09012SAndroid Build Coastguard Worker
346*d5c09012SAndroid Build Coastguard Worker// Represents tables and fileset metadata contained within a zone.
347*d5c09012SAndroid Build Coastguard Workermessage Entity {
348*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
349*d5c09012SAndroid Build Coastguard Worker    type: "dataplex.googleapis.com/Entity"
350*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/lakes/{lake}/zones/{zone}/entities/{entity}"
351*d5c09012SAndroid Build Coastguard Worker  };
352*d5c09012SAndroid Build Coastguard Worker
353*d5c09012SAndroid Build Coastguard Worker  // The type of entity.
354*d5c09012SAndroid Build Coastguard Worker  enum Type {
355*d5c09012SAndroid Build Coastguard Worker    // Type unspecified.
356*d5c09012SAndroid Build Coastguard Worker    TYPE_UNSPECIFIED = 0;
357*d5c09012SAndroid Build Coastguard Worker
358*d5c09012SAndroid Build Coastguard Worker    // Structured and semi-structured data.
359*d5c09012SAndroid Build Coastguard Worker    TABLE = 1;
360*d5c09012SAndroid Build Coastguard Worker
361*d5c09012SAndroid Build Coastguard Worker    // Unstructured data.
362*d5c09012SAndroid Build Coastguard Worker    FILESET = 2;
363*d5c09012SAndroid Build Coastguard Worker  }
364*d5c09012SAndroid Build Coastguard Worker
365*d5c09012SAndroid Build Coastguard Worker  // Provides compatibility information for various metadata stores.
366*d5c09012SAndroid Build Coastguard Worker  message CompatibilityStatus {
367*d5c09012SAndroid Build Coastguard Worker    // Provides compatibility information for a specific metadata store.
368*d5c09012SAndroid Build Coastguard Worker    message Compatibility {
369*d5c09012SAndroid Build Coastguard Worker      // Output only. Whether the entity is compatible and can be represented in
370*d5c09012SAndroid Build Coastguard Worker      // the metadata store.
371*d5c09012SAndroid Build Coastguard Worker      bool compatible = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
372*d5c09012SAndroid Build Coastguard Worker
373*d5c09012SAndroid Build Coastguard Worker      // Output only. Provides additional detail if the entity is incompatible
374*d5c09012SAndroid Build Coastguard Worker      // with the metadata store.
375*d5c09012SAndroid Build Coastguard Worker      string reason = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
376*d5c09012SAndroid Build Coastguard Worker    }
377*d5c09012SAndroid Build Coastguard Worker
378*d5c09012SAndroid Build Coastguard Worker    // Output only. Whether this entity is compatible with Hive Metastore.
379*d5c09012SAndroid Build Coastguard Worker    Compatibility hive_metastore = 1
380*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OUTPUT_ONLY];
381*d5c09012SAndroid Build Coastguard Worker
382*d5c09012SAndroid Build Coastguard Worker    // Output only. Whether this entity is compatible with BigQuery.
383*d5c09012SAndroid Build Coastguard Worker    Compatibility bigquery = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
384*d5c09012SAndroid Build Coastguard Worker  }
385*d5c09012SAndroid Build Coastguard Worker
386*d5c09012SAndroid Build Coastguard Worker  // Output only. The resource name of the entity, of the form:
387*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{id}`.
388*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
389*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OUTPUT_ONLY,
390*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dataplex.googleapis.com/Entity" }
391*d5c09012SAndroid Build Coastguard Worker  ];
392*d5c09012SAndroid Build Coastguard Worker
393*d5c09012SAndroid Build Coastguard Worker  // Optional. Display name must be shorter than or equal to 256 characters.
394*d5c09012SAndroid Build Coastguard Worker  string display_name = 2 [(google.api.field_behavior) = OPTIONAL];
395*d5c09012SAndroid Build Coastguard Worker
396*d5c09012SAndroid Build Coastguard Worker  // Optional. User friendly longer description text. Must be shorter than or
397*d5c09012SAndroid Build Coastguard Worker  // equal to 1024 characters.
398*d5c09012SAndroid Build Coastguard Worker  string description = 3 [(google.api.field_behavior) = OPTIONAL];
399*d5c09012SAndroid Build Coastguard Worker
400*d5c09012SAndroid Build Coastguard Worker  // Output only. The time when the entity was created.
401*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 5
402*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
403*d5c09012SAndroid Build Coastguard Worker
404*d5c09012SAndroid Build Coastguard Worker  // Output only. The time when the entity was last updated.
405*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 6
406*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
407*d5c09012SAndroid Build Coastguard Worker
408*d5c09012SAndroid Build Coastguard Worker  // Required. A user-provided entity ID. It is mutable, and will be used as the
409*d5c09012SAndroid Build Coastguard Worker  // published table name. Specifying a new ID in an update entity
410*d5c09012SAndroid Build Coastguard Worker  // request will override the existing value.
411*d5c09012SAndroid Build Coastguard Worker  // The ID must contain only letters (a-z, A-Z), numbers (0-9), and
412*d5c09012SAndroid Build Coastguard Worker  // underscores, and consist of 256 or fewer characters.
413*d5c09012SAndroid Build Coastguard Worker  string id = 7 [(google.api.field_behavior) = REQUIRED];
414*d5c09012SAndroid Build Coastguard Worker
415*d5c09012SAndroid Build Coastguard Worker  // Optional. The etag associated with the entity, which can be retrieved with
416*d5c09012SAndroid Build Coastguard Worker  // a [GetEntity][] request. Required for update and delete requests.
417*d5c09012SAndroid Build Coastguard Worker  string etag = 8 [(google.api.field_behavior) = OPTIONAL];
418*d5c09012SAndroid Build Coastguard Worker
419*d5c09012SAndroid Build Coastguard Worker  // Required. Immutable. The type of entity.
420*d5c09012SAndroid Build Coastguard Worker  Type type = 10 [
421*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
422*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = IMMUTABLE
423*d5c09012SAndroid Build Coastguard Worker  ];
424*d5c09012SAndroid Build Coastguard Worker
425*d5c09012SAndroid Build Coastguard Worker  // Required. Immutable. The ID of the asset associated with the storage
426*d5c09012SAndroid Build Coastguard Worker  // location containing the entity data. The entity must be with in the same
427*d5c09012SAndroid Build Coastguard Worker  // zone with the asset.
428*d5c09012SAndroid Build Coastguard Worker  string asset = 11 [
429*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
430*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = IMMUTABLE
431*d5c09012SAndroid Build Coastguard Worker  ];
432*d5c09012SAndroid Build Coastguard Worker
433*d5c09012SAndroid Build Coastguard Worker  // Required. Immutable. The storage path of the entity data.
434*d5c09012SAndroid Build Coastguard Worker  // For Cloud Storage data, this is the fully-qualified path to the entity,
435*d5c09012SAndroid Build Coastguard Worker  // such as `gs://bucket/path/to/data`. For BigQuery data, this is the name of
436*d5c09012SAndroid Build Coastguard Worker  // the table resource, such as
437*d5c09012SAndroid Build Coastguard Worker  // `projects/project_id/datasets/dataset_id/tables/table_id`.
438*d5c09012SAndroid Build Coastguard Worker  string data_path = 12 [
439*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
440*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = IMMUTABLE
441*d5c09012SAndroid Build Coastguard Worker  ];
442*d5c09012SAndroid Build Coastguard Worker
443*d5c09012SAndroid Build Coastguard Worker  // Optional. The set of items within the data path constituting the data in
444*d5c09012SAndroid Build Coastguard Worker  // the entity, represented as a glob path. Example:
445*d5c09012SAndroid Build Coastguard Worker  // `gs://bucket/path/to/data/**/*.csv`.
446*d5c09012SAndroid Build Coastguard Worker  string data_path_pattern = 13 [(google.api.field_behavior) = OPTIONAL];
447*d5c09012SAndroid Build Coastguard Worker
448*d5c09012SAndroid Build Coastguard Worker  // Output only. The name of the associated Data Catalog entry.
449*d5c09012SAndroid Build Coastguard Worker  string catalog_entry = 14 [(google.api.field_behavior) = OUTPUT_ONLY];
450*d5c09012SAndroid Build Coastguard Worker
451*d5c09012SAndroid Build Coastguard Worker  // Required. Immutable. Identifies the storage system of the entity data.
452*d5c09012SAndroid Build Coastguard Worker  StorageSystem system = 15 [
453*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
454*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = IMMUTABLE
455*d5c09012SAndroid Build Coastguard Worker  ];
456*d5c09012SAndroid Build Coastguard Worker
457*d5c09012SAndroid Build Coastguard Worker  // Required. Identifies the storage format of the entity data.
458*d5c09012SAndroid Build Coastguard Worker  // It does not apply to entities with data stored in BigQuery.
459*d5c09012SAndroid Build Coastguard Worker  StorageFormat format = 16 [(google.api.field_behavior) = REQUIRED];
460*d5c09012SAndroid Build Coastguard Worker
461*d5c09012SAndroid Build Coastguard Worker  // Output only. Metadata stores that the entity is compatible with.
462*d5c09012SAndroid Build Coastguard Worker  CompatibilityStatus compatibility = 19
463*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
464*d5c09012SAndroid Build Coastguard Worker
465*d5c09012SAndroid Build Coastguard Worker  // Output only. Identifies the access mechanism to the entity. Not user
466*d5c09012SAndroid Build Coastguard Worker  // settable.
467*d5c09012SAndroid Build Coastguard Worker  StorageAccess access = 21 [(google.api.field_behavior) = OUTPUT_ONLY];
468*d5c09012SAndroid Build Coastguard Worker
469*d5c09012SAndroid Build Coastguard Worker  // Output only. System generated unique ID for the Entity. This ID will be
470*d5c09012SAndroid Build Coastguard Worker  // different if the Entity is deleted and re-created with the same name.
471*d5c09012SAndroid Build Coastguard Worker  string uid = 22 [(google.api.field_behavior) = OUTPUT_ONLY];
472*d5c09012SAndroid Build Coastguard Worker
473*d5c09012SAndroid Build Coastguard Worker  // Required. The description of the data structure and layout.
474*d5c09012SAndroid Build Coastguard Worker  // The schema is not included in list responses. It is only included in
475*d5c09012SAndroid Build Coastguard Worker  // `SCHEMA` and `FULL` entity views of a `GetEntity` response.
476*d5c09012SAndroid Build Coastguard Worker  Schema schema = 50 [(google.api.field_behavior) = REQUIRED];
477*d5c09012SAndroid Build Coastguard Worker}
478*d5c09012SAndroid Build Coastguard Worker
479*d5c09012SAndroid Build Coastguard Worker// Represents partition metadata contained within entity instances.
480*d5c09012SAndroid Build Coastguard Workermessage Partition {
481*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
482*d5c09012SAndroid Build Coastguard Worker    type: "dataplex.googleapis.com/Partition"
483*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/lakes/{lake}/zones/{zone}/entities/{entity}/partitions/{partition}"
484*d5c09012SAndroid Build Coastguard Worker  };
485*d5c09012SAndroid Build Coastguard Worker
486*d5c09012SAndroid Build Coastguard Worker  // Output only. Partition values used in the HTTP URL must be
487*d5c09012SAndroid Build Coastguard Worker  // double encoded. For example, `url_encode(url_encode(value))` can be used
488*d5c09012SAndroid Build Coastguard Worker  // to encode "US:CA/CA#Sunnyvale so that the request URL ends
489*d5c09012SAndroid Build Coastguard Worker  // with "/partitions/US%253ACA/CA%2523Sunnyvale".
490*d5c09012SAndroid Build Coastguard Worker  // The name field in the response retains the encoded format.
491*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
492*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OUTPUT_ONLY,
493*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
494*d5c09012SAndroid Build Coastguard Worker      type: "dataplex.googleapis.com/Partition"
495*d5c09012SAndroid Build Coastguard Worker    }
496*d5c09012SAndroid Build Coastguard Worker  ];
497*d5c09012SAndroid Build Coastguard Worker
498*d5c09012SAndroid Build Coastguard Worker  // Required. Immutable. The set of values representing the partition, which
499*d5c09012SAndroid Build Coastguard Worker  // correspond to the partition schema defined in the parent entity.
500*d5c09012SAndroid Build Coastguard Worker  repeated string values = 2 [
501*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
502*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = IMMUTABLE
503*d5c09012SAndroid Build Coastguard Worker  ];
504*d5c09012SAndroid Build Coastguard Worker
505*d5c09012SAndroid Build Coastguard Worker  // Required. Immutable. The location of the entity data within the partition,
506*d5c09012SAndroid Build Coastguard Worker  // for example, `gs://bucket/path/to/entity/key1=value1/key2=value2`. Or
507*d5c09012SAndroid Build Coastguard Worker  // `projects/<project_id>/datasets/<dataset_id>/tables/<table_id>`
508*d5c09012SAndroid Build Coastguard Worker  string location = 3 [
509*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
510*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = IMMUTABLE
511*d5c09012SAndroid Build Coastguard Worker  ];
512*d5c09012SAndroid Build Coastguard Worker
513*d5c09012SAndroid Build Coastguard Worker  // Optional. The etag for this partition.
514*d5c09012SAndroid Build Coastguard Worker  string etag = 4 [deprecated = true, (google.api.field_behavior) = OPTIONAL];
515*d5c09012SAndroid Build Coastguard Worker}
516*d5c09012SAndroid Build Coastguard Worker
517*d5c09012SAndroid Build Coastguard Worker// Schema information describing the structure and layout of the data.
518*d5c09012SAndroid Build Coastguard Workermessage Schema {
519*d5c09012SAndroid Build Coastguard Worker  // Type information for fields in schemas and partition schemas.
520*d5c09012SAndroid Build Coastguard Worker  enum Type {
521*d5c09012SAndroid Build Coastguard Worker    // SchemaType unspecified.
522*d5c09012SAndroid Build Coastguard Worker    TYPE_UNSPECIFIED = 0;
523*d5c09012SAndroid Build Coastguard Worker
524*d5c09012SAndroid Build Coastguard Worker    // Boolean field.
525*d5c09012SAndroid Build Coastguard Worker    BOOLEAN = 1;
526*d5c09012SAndroid Build Coastguard Worker
527*d5c09012SAndroid Build Coastguard Worker    // Single byte numeric field.
528*d5c09012SAndroid Build Coastguard Worker    BYTE = 2;
529*d5c09012SAndroid Build Coastguard Worker
530*d5c09012SAndroid Build Coastguard Worker    // 16-bit numeric field.
531*d5c09012SAndroid Build Coastguard Worker    INT16 = 3;
532*d5c09012SAndroid Build Coastguard Worker
533*d5c09012SAndroid Build Coastguard Worker    // 32-bit numeric field.
534*d5c09012SAndroid Build Coastguard Worker    INT32 = 4;
535*d5c09012SAndroid Build Coastguard Worker
536*d5c09012SAndroid Build Coastguard Worker    // 64-bit numeric field.
537*d5c09012SAndroid Build Coastguard Worker    INT64 = 5;
538*d5c09012SAndroid Build Coastguard Worker
539*d5c09012SAndroid Build Coastguard Worker    // Floating point numeric field.
540*d5c09012SAndroid Build Coastguard Worker    FLOAT = 6;
541*d5c09012SAndroid Build Coastguard Worker
542*d5c09012SAndroid Build Coastguard Worker    // Double precision numeric field.
543*d5c09012SAndroid Build Coastguard Worker    DOUBLE = 7;
544*d5c09012SAndroid Build Coastguard Worker
545*d5c09012SAndroid Build Coastguard Worker    // Real value numeric field.
546*d5c09012SAndroid Build Coastguard Worker    DECIMAL = 8;
547*d5c09012SAndroid Build Coastguard Worker
548*d5c09012SAndroid Build Coastguard Worker    // Sequence of characters field.
549*d5c09012SAndroid Build Coastguard Worker    STRING = 9;
550*d5c09012SAndroid Build Coastguard Worker
551*d5c09012SAndroid Build Coastguard Worker    // Sequence of bytes field.
552*d5c09012SAndroid Build Coastguard Worker    BINARY = 10;
553*d5c09012SAndroid Build Coastguard Worker
554*d5c09012SAndroid Build Coastguard Worker    // Date and time field.
555*d5c09012SAndroid Build Coastguard Worker    TIMESTAMP = 11;
556*d5c09012SAndroid Build Coastguard Worker
557*d5c09012SAndroid Build Coastguard Worker    // Date field.
558*d5c09012SAndroid Build Coastguard Worker    DATE = 12;
559*d5c09012SAndroid Build Coastguard Worker
560*d5c09012SAndroid Build Coastguard Worker    // Time field.
561*d5c09012SAndroid Build Coastguard Worker    TIME = 13;
562*d5c09012SAndroid Build Coastguard Worker
563*d5c09012SAndroid Build Coastguard Worker    // Structured field. Nested fields that define the structure of the map.
564*d5c09012SAndroid Build Coastguard Worker    // If all nested fields are nullable, this field represents a union.
565*d5c09012SAndroid Build Coastguard Worker    RECORD = 14;
566*d5c09012SAndroid Build Coastguard Worker
567*d5c09012SAndroid Build Coastguard Worker    // Null field that does not have values.
568*d5c09012SAndroid Build Coastguard Worker    NULL = 100;
569*d5c09012SAndroid Build Coastguard Worker  }
570*d5c09012SAndroid Build Coastguard Worker
571*d5c09012SAndroid Build Coastguard Worker  // Additional qualifiers to define field semantics.
572*d5c09012SAndroid Build Coastguard Worker  enum Mode {
573*d5c09012SAndroid Build Coastguard Worker    // Mode unspecified.
574*d5c09012SAndroid Build Coastguard Worker    MODE_UNSPECIFIED = 0;
575*d5c09012SAndroid Build Coastguard Worker
576*d5c09012SAndroid Build Coastguard Worker    // The field has required semantics.
577*d5c09012SAndroid Build Coastguard Worker    REQUIRED = 1;
578*d5c09012SAndroid Build Coastguard Worker
579*d5c09012SAndroid Build Coastguard Worker    // The field has optional semantics, and may be null.
580*d5c09012SAndroid Build Coastguard Worker    NULLABLE = 2;
581*d5c09012SAndroid Build Coastguard Worker
582*d5c09012SAndroid Build Coastguard Worker    // The field has repeated (0 or more) semantics, and is a list of values.
583*d5c09012SAndroid Build Coastguard Worker    REPEATED = 3;
584*d5c09012SAndroid Build Coastguard Worker  }
585*d5c09012SAndroid Build Coastguard Worker
586*d5c09012SAndroid Build Coastguard Worker  // Represents a column field within a table schema.
587*d5c09012SAndroid Build Coastguard Worker  message SchemaField {
588*d5c09012SAndroid Build Coastguard Worker    // Required. The name of the field. Must contain only letters, numbers and
589*d5c09012SAndroid Build Coastguard Worker    // underscores, with a maximum length of 767 characters,
590*d5c09012SAndroid Build Coastguard Worker    // and must begin with a letter or underscore.
591*d5c09012SAndroid Build Coastguard Worker    string name = 1 [(google.api.field_behavior) = REQUIRED];
592*d5c09012SAndroid Build Coastguard Worker
593*d5c09012SAndroid Build Coastguard Worker    // Optional. User friendly field description. Must be less than or equal to
594*d5c09012SAndroid Build Coastguard Worker    // 1024 characters.
595*d5c09012SAndroid Build Coastguard Worker    string description = 2 [(google.api.field_behavior) = OPTIONAL];
596*d5c09012SAndroid Build Coastguard Worker
597*d5c09012SAndroid Build Coastguard Worker    // Required. The type of field.
598*d5c09012SAndroid Build Coastguard Worker    Type type = 3 [(google.api.field_behavior) = REQUIRED];
599*d5c09012SAndroid Build Coastguard Worker
600*d5c09012SAndroid Build Coastguard Worker    // Required. Additional field semantics.
601*d5c09012SAndroid Build Coastguard Worker    Mode mode = 4 [(google.api.field_behavior) = REQUIRED];
602*d5c09012SAndroid Build Coastguard Worker
603*d5c09012SAndroid Build Coastguard Worker    // Optional. Any nested field for complex types.
604*d5c09012SAndroid Build Coastguard Worker    repeated SchemaField fields = 10 [(google.api.field_behavior) = OPTIONAL];
605*d5c09012SAndroid Build Coastguard Worker  }
606*d5c09012SAndroid Build Coastguard Worker
607*d5c09012SAndroid Build Coastguard Worker  // Represents a key field within the entity's partition structure. You could
608*d5c09012SAndroid Build Coastguard Worker  // have up to 20 partition fields, but only the first 10 partitions have the
609*d5c09012SAndroid Build Coastguard Worker  // filtering ability due to performance consideration. **Note:**
610*d5c09012SAndroid Build Coastguard Worker  // Partition fields are immutable.
611*d5c09012SAndroid Build Coastguard Worker  message PartitionField {
612*d5c09012SAndroid Build Coastguard Worker    // Required. Partition field name must consist of letters, numbers, and
613*d5c09012SAndroid Build Coastguard Worker    // underscores only, with a maximum of length of 256 characters, and must
614*d5c09012SAndroid Build Coastguard Worker    // begin with a letter or underscore..
615*d5c09012SAndroid Build Coastguard Worker    string name = 1 [(google.api.field_behavior) = REQUIRED];
616*d5c09012SAndroid Build Coastguard Worker
617*d5c09012SAndroid Build Coastguard Worker    // Required. Immutable. The type of field.
618*d5c09012SAndroid Build Coastguard Worker    Type type = 2 [
619*d5c09012SAndroid Build Coastguard Worker      (google.api.field_behavior) = REQUIRED,
620*d5c09012SAndroid Build Coastguard Worker      (google.api.field_behavior) = IMMUTABLE
621*d5c09012SAndroid Build Coastguard Worker    ];
622*d5c09012SAndroid Build Coastguard Worker  }
623*d5c09012SAndroid Build Coastguard Worker
624*d5c09012SAndroid Build Coastguard Worker  // The structure of paths within the entity, which represent partitions.
625*d5c09012SAndroid Build Coastguard Worker  enum PartitionStyle {
626*d5c09012SAndroid Build Coastguard Worker    // PartitionStyle unspecified
627*d5c09012SAndroid Build Coastguard Worker    PARTITION_STYLE_UNSPECIFIED = 0;
628*d5c09012SAndroid Build Coastguard Worker
629*d5c09012SAndroid Build Coastguard Worker    // Partitions are hive-compatible.
630*d5c09012SAndroid Build Coastguard Worker    // Examples: `gs://bucket/path/to/table/dt=2019-10-31/lang=en`,
631*d5c09012SAndroid Build Coastguard Worker    // `gs://bucket/path/to/table/dt=2019-10-31/lang=en/late`.
632*d5c09012SAndroid Build Coastguard Worker    HIVE_COMPATIBLE = 1;
633*d5c09012SAndroid Build Coastguard Worker  }
634*d5c09012SAndroid Build Coastguard Worker
635*d5c09012SAndroid Build Coastguard Worker  // Required. Set to `true` if user-managed or `false` if managed by Dataplex.
636*d5c09012SAndroid Build Coastguard Worker  // The default is `false` (managed by Dataplex).
637*d5c09012SAndroid Build Coastguard Worker  //
638*d5c09012SAndroid Build Coastguard Worker  // - Set to `false`to enable Dataplex discovery to update the schema.
639*d5c09012SAndroid Build Coastguard Worker  //   including new data discovery, schema inference, and schema evolution.
640*d5c09012SAndroid Build Coastguard Worker  //   Users retain the ability to input and edit the schema. Dataplex
641*d5c09012SAndroid Build Coastguard Worker  //   treats schema input by the user as though produced
642*d5c09012SAndroid Build Coastguard Worker  //   by a previous Dataplex discovery operation, and it will
643*d5c09012SAndroid Build Coastguard Worker  //   evolve the schema and take action based on that treatment.
644*d5c09012SAndroid Build Coastguard Worker  //
645*d5c09012SAndroid Build Coastguard Worker  // - Set to `true` to fully manage the entity
646*d5c09012SAndroid Build Coastguard Worker  //   schema. This setting guarantees that Dataplex will not
647*d5c09012SAndroid Build Coastguard Worker  //   change schema fields.
648*d5c09012SAndroid Build Coastguard Worker  bool user_managed = 1 [(google.api.field_behavior) = REQUIRED];
649*d5c09012SAndroid Build Coastguard Worker
650*d5c09012SAndroid Build Coastguard Worker  // Optional. The sequence of fields describing data in table entities.
651*d5c09012SAndroid Build Coastguard Worker  // **Note:** BigQuery SchemaFields are immutable.
652*d5c09012SAndroid Build Coastguard Worker  repeated SchemaField fields = 2 [(google.api.field_behavior) = OPTIONAL];
653*d5c09012SAndroid Build Coastguard Worker
654*d5c09012SAndroid Build Coastguard Worker  // Optional. The sequence of fields describing the partition structure in
655*d5c09012SAndroid Build Coastguard Worker  // entities. If this field is empty, there are no partitions within the data.
656*d5c09012SAndroid Build Coastguard Worker  repeated PartitionField partition_fields = 3
657*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
658*d5c09012SAndroid Build Coastguard Worker
659*d5c09012SAndroid Build Coastguard Worker  // Optional. The structure of paths containing partition data within the
660*d5c09012SAndroid Build Coastguard Worker  // entity.
661*d5c09012SAndroid Build Coastguard Worker  PartitionStyle partition_style = 4 [(google.api.field_behavior) = OPTIONAL];
662*d5c09012SAndroid Build Coastguard Worker}
663*d5c09012SAndroid Build Coastguard Worker
664*d5c09012SAndroid Build Coastguard Worker// Describes the format of the data within its storage location.
665*d5c09012SAndroid Build Coastguard Workermessage StorageFormat {
666*d5c09012SAndroid Build Coastguard Worker  // Describes CSV and similar semi-structured data formats.
667*d5c09012SAndroid Build Coastguard Worker  message CsvOptions {
668*d5c09012SAndroid Build Coastguard Worker    // Optional. The character encoding of the data. Accepts "US-ASCII",
669*d5c09012SAndroid Build Coastguard Worker    // "UTF-8", and "ISO-8859-1". Defaults to UTF-8 if unspecified.
670*d5c09012SAndroid Build Coastguard Worker    string encoding = 1 [(google.api.field_behavior) = OPTIONAL];
671*d5c09012SAndroid Build Coastguard Worker
672*d5c09012SAndroid Build Coastguard Worker    // Optional. The number of rows to interpret as header rows that should be
673*d5c09012SAndroid Build Coastguard Worker    // skipped when reading data rows. Defaults to 0.
674*d5c09012SAndroid Build Coastguard Worker    int32 header_rows = 2 [(google.api.field_behavior) = OPTIONAL];
675*d5c09012SAndroid Build Coastguard Worker
676*d5c09012SAndroid Build Coastguard Worker    // Optional. The delimiter used to separate values. Defaults to ','.
677*d5c09012SAndroid Build Coastguard Worker    string delimiter = 3 [(google.api.field_behavior) = OPTIONAL];
678*d5c09012SAndroid Build Coastguard Worker
679*d5c09012SAndroid Build Coastguard Worker    // Optional. The character used to quote column values. Accepts '"'
680*d5c09012SAndroid Build Coastguard Worker    // (double quotation mark) or ''' (single quotation mark). Defaults to
681*d5c09012SAndroid Build Coastguard Worker    // '"' (double quotation mark) if unspecified.
682*d5c09012SAndroid Build Coastguard Worker    string quote = 4 [(google.api.field_behavior) = OPTIONAL];
683*d5c09012SAndroid Build Coastguard Worker  }
684*d5c09012SAndroid Build Coastguard Worker
685*d5c09012SAndroid Build Coastguard Worker  // Describes JSON data format.
686*d5c09012SAndroid Build Coastguard Worker  message JsonOptions {
687*d5c09012SAndroid Build Coastguard Worker    // Optional. The character encoding of the data. Accepts "US-ASCII", "UTF-8"
688*d5c09012SAndroid Build Coastguard Worker    // and "ISO-8859-1". Defaults to UTF-8 if not specified.
689*d5c09012SAndroid Build Coastguard Worker    string encoding = 1 [(google.api.field_behavior) = OPTIONAL];
690*d5c09012SAndroid Build Coastguard Worker  }
691*d5c09012SAndroid Build Coastguard Worker
692*d5c09012SAndroid Build Coastguard Worker  // Describes Iceberg data format.
693*d5c09012SAndroid Build Coastguard Worker  message IcebergOptions {
694*d5c09012SAndroid Build Coastguard Worker    // Optional. The location of where the iceberg metadata is present, must be
695*d5c09012SAndroid Build Coastguard Worker    // within the table path
696*d5c09012SAndroid Build Coastguard Worker    string metadata_location = 1 [(google.api.field_behavior) = OPTIONAL];
697*d5c09012SAndroid Build Coastguard Worker  }
698*d5c09012SAndroid Build Coastguard Worker
699*d5c09012SAndroid Build Coastguard Worker  // The specific file format of the data.
700*d5c09012SAndroid Build Coastguard Worker  enum Format {
701*d5c09012SAndroid Build Coastguard Worker    // Format unspecified.
702*d5c09012SAndroid Build Coastguard Worker    FORMAT_UNSPECIFIED = 0;
703*d5c09012SAndroid Build Coastguard Worker
704*d5c09012SAndroid Build Coastguard Worker    // Parquet-formatted structured data.
705*d5c09012SAndroid Build Coastguard Worker    PARQUET = 1;
706*d5c09012SAndroid Build Coastguard Worker
707*d5c09012SAndroid Build Coastguard Worker    // Avro-formatted structured data.
708*d5c09012SAndroid Build Coastguard Worker    AVRO = 2;
709*d5c09012SAndroid Build Coastguard Worker
710*d5c09012SAndroid Build Coastguard Worker    // Orc-formatted structured data.
711*d5c09012SAndroid Build Coastguard Worker    ORC = 3;
712*d5c09012SAndroid Build Coastguard Worker
713*d5c09012SAndroid Build Coastguard Worker    // Csv-formatted semi-structured data.
714*d5c09012SAndroid Build Coastguard Worker    CSV = 100;
715*d5c09012SAndroid Build Coastguard Worker
716*d5c09012SAndroid Build Coastguard Worker    // Json-formatted semi-structured data.
717*d5c09012SAndroid Build Coastguard Worker    JSON = 101;
718*d5c09012SAndroid Build Coastguard Worker
719*d5c09012SAndroid Build Coastguard Worker    // Image data formats (such as jpg and png).
720*d5c09012SAndroid Build Coastguard Worker    IMAGE = 200;
721*d5c09012SAndroid Build Coastguard Worker
722*d5c09012SAndroid Build Coastguard Worker    // Audio data formats (such as mp3, and wav).
723*d5c09012SAndroid Build Coastguard Worker    AUDIO = 201;
724*d5c09012SAndroid Build Coastguard Worker
725*d5c09012SAndroid Build Coastguard Worker    // Video data formats (such as mp4 and mpg).
726*d5c09012SAndroid Build Coastguard Worker    VIDEO = 202;
727*d5c09012SAndroid Build Coastguard Worker
728*d5c09012SAndroid Build Coastguard Worker    // Textual data formats (such as txt and xml).
729*d5c09012SAndroid Build Coastguard Worker    TEXT = 203;
730*d5c09012SAndroid Build Coastguard Worker
731*d5c09012SAndroid Build Coastguard Worker    // TensorFlow record format.
732*d5c09012SAndroid Build Coastguard Worker    TFRECORD = 204;
733*d5c09012SAndroid Build Coastguard Worker
734*d5c09012SAndroid Build Coastguard Worker    // Data that doesn't match a specific format.
735*d5c09012SAndroid Build Coastguard Worker    OTHER = 1000;
736*d5c09012SAndroid Build Coastguard Worker
737*d5c09012SAndroid Build Coastguard Worker    // Data of an unknown format.
738*d5c09012SAndroid Build Coastguard Worker    UNKNOWN = 1001;
739*d5c09012SAndroid Build Coastguard Worker  }
740*d5c09012SAndroid Build Coastguard Worker
741*d5c09012SAndroid Build Coastguard Worker  // The specific compressed file format of the data.
742*d5c09012SAndroid Build Coastguard Worker  enum CompressionFormat {
743*d5c09012SAndroid Build Coastguard Worker    // CompressionFormat unspecified. Implies uncompressed data.
744*d5c09012SAndroid Build Coastguard Worker    COMPRESSION_FORMAT_UNSPECIFIED = 0;
745*d5c09012SAndroid Build Coastguard Worker
746*d5c09012SAndroid Build Coastguard Worker    // GZip compressed set of files.
747*d5c09012SAndroid Build Coastguard Worker    GZIP = 2;
748*d5c09012SAndroid Build Coastguard Worker
749*d5c09012SAndroid Build Coastguard Worker    // BZip2 compressed set of files.
750*d5c09012SAndroid Build Coastguard Worker    BZIP2 = 3;
751*d5c09012SAndroid Build Coastguard Worker  }
752*d5c09012SAndroid Build Coastguard Worker
753*d5c09012SAndroid Build Coastguard Worker  // Output only. The data format associated with the stored data, which
754*d5c09012SAndroid Build Coastguard Worker  // represents content type values. The value is inferred from mime type.
755*d5c09012SAndroid Build Coastguard Worker  Format format = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
756*d5c09012SAndroid Build Coastguard Worker
757*d5c09012SAndroid Build Coastguard Worker  // Optional. The compression type associated with the stored data.
758*d5c09012SAndroid Build Coastguard Worker  // If unspecified, the data is uncompressed.
759*d5c09012SAndroid Build Coastguard Worker  CompressionFormat compression_format = 2
760*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
761*d5c09012SAndroid Build Coastguard Worker
762*d5c09012SAndroid Build Coastguard Worker  // Required. The mime type descriptor for the data. Must match the pattern
763*d5c09012SAndroid Build Coastguard Worker  // {type}/{subtype}. Supported values:
764*d5c09012SAndroid Build Coastguard Worker  //
765*d5c09012SAndroid Build Coastguard Worker  // - application/x-parquet
766*d5c09012SAndroid Build Coastguard Worker  // - application/x-avro
767*d5c09012SAndroid Build Coastguard Worker  // - application/x-orc
768*d5c09012SAndroid Build Coastguard Worker  // - application/x-tfrecord
769*d5c09012SAndroid Build Coastguard Worker  // - application/x-parquet+iceberg
770*d5c09012SAndroid Build Coastguard Worker  // - application/x-avro+iceberg
771*d5c09012SAndroid Build Coastguard Worker  // - application/x-orc+iceberg
772*d5c09012SAndroid Build Coastguard Worker  // - application/json
773*d5c09012SAndroid Build Coastguard Worker  // - application/{subtypes}
774*d5c09012SAndroid Build Coastguard Worker  // - text/csv
775*d5c09012SAndroid Build Coastguard Worker  // - text/<subtypes>
776*d5c09012SAndroid Build Coastguard Worker  // - image/{image subtype}
777*d5c09012SAndroid Build Coastguard Worker  // - video/{video subtype}
778*d5c09012SAndroid Build Coastguard Worker  // - audio/{audio subtype}
779*d5c09012SAndroid Build Coastguard Worker  string mime_type = 3 [(google.api.field_behavior) = REQUIRED];
780*d5c09012SAndroid Build Coastguard Worker
781*d5c09012SAndroid Build Coastguard Worker  // Additional format-specific options.
782*d5c09012SAndroid Build Coastguard Worker  oneof options {
783*d5c09012SAndroid Build Coastguard Worker    // Optional. Additional information about CSV formatted data.
784*d5c09012SAndroid Build Coastguard Worker    CsvOptions csv = 10 [(google.api.field_behavior) = OPTIONAL];
785*d5c09012SAndroid Build Coastguard Worker
786*d5c09012SAndroid Build Coastguard Worker    // Optional. Additional information about CSV formatted data.
787*d5c09012SAndroid Build Coastguard Worker    JsonOptions json = 11 [(google.api.field_behavior) = OPTIONAL];
788*d5c09012SAndroid Build Coastguard Worker
789*d5c09012SAndroid Build Coastguard Worker    // Optional. Additional information about iceberg tables.
790*d5c09012SAndroid Build Coastguard Worker    IcebergOptions iceberg = 12 [(google.api.field_behavior) = OPTIONAL];
791*d5c09012SAndroid Build Coastguard Worker  }
792*d5c09012SAndroid Build Coastguard Worker}
793*d5c09012SAndroid Build Coastguard Worker
794*d5c09012SAndroid Build Coastguard Worker// Describes the access mechanism of the data within its storage location.
795*d5c09012SAndroid Build Coastguard Workermessage StorageAccess {
796*d5c09012SAndroid Build Coastguard Worker  // Access Mode determines how data stored within the Entity is read.
797*d5c09012SAndroid Build Coastguard Worker  enum AccessMode {
798*d5c09012SAndroid Build Coastguard Worker    // Access mode unspecified.
799*d5c09012SAndroid Build Coastguard Worker    ACCESS_MODE_UNSPECIFIED = 0;
800*d5c09012SAndroid Build Coastguard Worker
801*d5c09012SAndroid Build Coastguard Worker    // Default. Data is accessed directly using storage APIs.
802*d5c09012SAndroid Build Coastguard Worker    DIRECT = 1;
803*d5c09012SAndroid Build Coastguard Worker
804*d5c09012SAndroid Build Coastguard Worker    // Data is accessed through a managed interface using BigQuery APIs.
805*d5c09012SAndroid Build Coastguard Worker    MANAGED = 2;
806*d5c09012SAndroid Build Coastguard Worker  }
807*d5c09012SAndroid Build Coastguard Worker
808*d5c09012SAndroid Build Coastguard Worker  // Output only. Describes the read access mechanism of the data. Not user
809*d5c09012SAndroid Build Coastguard Worker  // settable.
810*d5c09012SAndroid Build Coastguard Worker  AccessMode read = 21 [(google.api.field_behavior) = OUTPUT_ONLY];
811*d5c09012SAndroid Build Coastguard Worker}
812*d5c09012SAndroid Build Coastguard Worker
813*d5c09012SAndroid Build Coastguard Worker// Identifies the cloud system that manages the data storage.
814*d5c09012SAndroid Build Coastguard Workerenum StorageSystem {
815*d5c09012SAndroid Build Coastguard Worker  // Storage system unspecified.
816*d5c09012SAndroid Build Coastguard Worker  STORAGE_SYSTEM_UNSPECIFIED = 0;
817*d5c09012SAndroid Build Coastguard Worker
818*d5c09012SAndroid Build Coastguard Worker  // The entity data is contained within a Cloud Storage bucket.
819*d5c09012SAndroid Build Coastguard Worker  CLOUD_STORAGE = 1;
820*d5c09012SAndroid Build Coastguard Worker
821*d5c09012SAndroid Build Coastguard Worker  // The entity data is contained within a BigQuery dataset.
822*d5c09012SAndroid Build Coastguard Worker  BIGQUERY = 2;
823*d5c09012SAndroid Build Coastguard Worker}
824