xref: /aosp_15_r20/external/googleapis/google/cloud/dataplex/v1/resources.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/field_behavior.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/duration.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
23*d5c09012SAndroid Build Coastguard Worker
24*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb";
25*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
26*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ResourcesProto";
27*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.dataplex.v1";
28*d5c09012SAndroid Build Coastguard Worker
29*d5c09012SAndroid Build Coastguard Worker// A lake is a centralized repository for managing enterprise data across the
30*d5c09012SAndroid Build Coastguard Worker// organization distributed across many cloud projects, and stored in a variety
31*d5c09012SAndroid Build Coastguard Worker// of storage services such as Google Cloud Storage and BigQuery. The resources
32*d5c09012SAndroid Build Coastguard Worker// attached to a lake are referred to as managed resources. Data within these
33*d5c09012SAndroid Build Coastguard Worker// managed resources can be structured or unstructured. A lake provides data
34*d5c09012SAndroid Build Coastguard Worker// admins with tools to organize, secure and manage their data at scale, and
35*d5c09012SAndroid Build Coastguard Worker// provides data scientists and data engineers an integrated experience to
36*d5c09012SAndroid Build Coastguard Worker// easily search, discover, analyze and transform data and associated metadata.
37*d5c09012SAndroid Build Coastguard Workermessage Lake {
38*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
39*d5c09012SAndroid Build Coastguard Worker    type: "dataplex.googleapis.com/Lake"
40*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/lakes/{lake}"
41*d5c09012SAndroid Build Coastguard Worker  };
42*d5c09012SAndroid Build Coastguard Worker
43*d5c09012SAndroid Build Coastguard Worker  // Settings to manage association of Dataproc Metastore with a lake.
44*d5c09012SAndroid Build Coastguard Worker  message Metastore {
45*d5c09012SAndroid Build Coastguard Worker    // Optional. A relative reference to the Dataproc Metastore
46*d5c09012SAndroid Build Coastguard Worker    // (https://cloud.google.com/dataproc-metastore/docs) service associated
47*d5c09012SAndroid Build Coastguard Worker    // with the lake:
48*d5c09012SAndroid Build Coastguard Worker    // `projects/{project_id}/locations/{location_id}/services/{service_id}`
49*d5c09012SAndroid Build Coastguard Worker    string service = 1 [(google.api.field_behavior) = OPTIONAL];
50*d5c09012SAndroid Build Coastguard Worker  }
51*d5c09012SAndroid Build Coastguard Worker
52*d5c09012SAndroid Build Coastguard Worker  // Status of Lake and Dataproc Metastore service instance association.
53*d5c09012SAndroid Build Coastguard Worker  message MetastoreStatus {
54*d5c09012SAndroid Build Coastguard Worker    // Current state of association.
55*d5c09012SAndroid Build Coastguard Worker    enum State {
56*d5c09012SAndroid Build Coastguard Worker      // Unspecified.
57*d5c09012SAndroid Build Coastguard Worker      STATE_UNSPECIFIED = 0;
58*d5c09012SAndroid Build Coastguard Worker
59*d5c09012SAndroid Build Coastguard Worker      // A Metastore service instance is not associated with the lake.
60*d5c09012SAndroid Build Coastguard Worker      NONE = 1;
61*d5c09012SAndroid Build Coastguard Worker
62*d5c09012SAndroid Build Coastguard Worker      // A Metastore service instance is attached to the lake.
63*d5c09012SAndroid Build Coastguard Worker      READY = 2;
64*d5c09012SAndroid Build Coastguard Worker
65*d5c09012SAndroid Build Coastguard Worker      // Attach/detach is in progress.
66*d5c09012SAndroid Build Coastguard Worker      UPDATING = 3;
67*d5c09012SAndroid Build Coastguard Worker
68*d5c09012SAndroid Build Coastguard Worker      // Attach/detach could not be done due to errors.
69*d5c09012SAndroid Build Coastguard Worker      ERROR = 4;
70*d5c09012SAndroid Build Coastguard Worker    }
71*d5c09012SAndroid Build Coastguard Worker
72*d5c09012SAndroid Build Coastguard Worker    // Current state of association.
73*d5c09012SAndroid Build Coastguard Worker    State state = 1;
74*d5c09012SAndroid Build Coastguard Worker
75*d5c09012SAndroid Build Coastguard Worker    // Additional information about the current status.
76*d5c09012SAndroid Build Coastguard Worker    string message = 2;
77*d5c09012SAndroid Build Coastguard Worker
78*d5c09012SAndroid Build Coastguard Worker    // Last update time of the metastore status of the lake.
79*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Timestamp update_time = 3;
80*d5c09012SAndroid Build Coastguard Worker
81*d5c09012SAndroid Build Coastguard Worker    // The URI of the endpoint used to access the Metastore service.
82*d5c09012SAndroid Build Coastguard Worker    string endpoint = 4;
83*d5c09012SAndroid Build Coastguard Worker  }
84*d5c09012SAndroid Build Coastguard Worker
85*d5c09012SAndroid Build Coastguard Worker  // Output only. The relative resource name of the lake, of the form:
86*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`.
87*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
88*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OUTPUT_ONLY,
89*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dataplex.googleapis.com/Lake" }
90*d5c09012SAndroid Build Coastguard Worker  ];
91*d5c09012SAndroid Build Coastguard Worker
92*d5c09012SAndroid Build Coastguard Worker  // Optional. User friendly display name.
93*d5c09012SAndroid Build Coastguard Worker  string display_name = 2 [(google.api.field_behavior) = OPTIONAL];
94*d5c09012SAndroid Build Coastguard Worker
95*d5c09012SAndroid Build Coastguard Worker  // Output only. System generated globally unique ID for the lake. This ID will
96*d5c09012SAndroid Build Coastguard Worker  // be different if the lake is deleted and re-created with the same name.
97*d5c09012SAndroid Build Coastguard Worker  string uid = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
98*d5c09012SAndroid Build Coastguard Worker
99*d5c09012SAndroid Build Coastguard Worker  // Output only. The time when the lake was created.
100*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 4
101*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
102*d5c09012SAndroid Build Coastguard Worker
103*d5c09012SAndroid Build Coastguard Worker  // Output only. The time when the lake was last updated.
104*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 5
105*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
106*d5c09012SAndroid Build Coastguard Worker
107*d5c09012SAndroid Build Coastguard Worker  // Optional. User-defined labels for the lake.
108*d5c09012SAndroid Build Coastguard Worker  map<string, string> labels = 6 [(google.api.field_behavior) = OPTIONAL];
109*d5c09012SAndroid Build Coastguard Worker
110*d5c09012SAndroid Build Coastguard Worker  // Optional. Description of the lake.
111*d5c09012SAndroid Build Coastguard Worker  string description = 7 [(google.api.field_behavior) = OPTIONAL];
112*d5c09012SAndroid Build Coastguard Worker
113*d5c09012SAndroid Build Coastguard Worker  // Output only. Current state of the lake.
114*d5c09012SAndroid Build Coastguard Worker  State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
115*d5c09012SAndroid Build Coastguard Worker
116*d5c09012SAndroid Build Coastguard Worker  // Output only. Service account associated with this lake. This service
117*d5c09012SAndroid Build Coastguard Worker  // account must be authorized to access or operate on resources managed by the
118*d5c09012SAndroid Build Coastguard Worker  // lake.
119*d5c09012SAndroid Build Coastguard Worker  string service_account = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
120*d5c09012SAndroid Build Coastguard Worker
121*d5c09012SAndroid Build Coastguard Worker  // Optional. Settings to manage lake and Dataproc Metastore service instance
122*d5c09012SAndroid Build Coastguard Worker  // association.
123*d5c09012SAndroid Build Coastguard Worker  Metastore metastore = 102 [(google.api.field_behavior) = OPTIONAL];
124*d5c09012SAndroid Build Coastguard Worker
125*d5c09012SAndroid Build Coastguard Worker  // Output only. Aggregated status of the underlying assets of the lake.
126*d5c09012SAndroid Build Coastguard Worker  AssetStatus asset_status = 103 [(google.api.field_behavior) = OUTPUT_ONLY];
127*d5c09012SAndroid Build Coastguard Worker
128*d5c09012SAndroid Build Coastguard Worker  // Output only. Metastore status of the lake.
129*d5c09012SAndroid Build Coastguard Worker  MetastoreStatus metastore_status = 104
130*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
131*d5c09012SAndroid Build Coastguard Worker}
132*d5c09012SAndroid Build Coastguard Worker
133*d5c09012SAndroid Build Coastguard Worker// Aggregated status of the underlying assets of a lake or zone.
134*d5c09012SAndroid Build Coastguard Workermessage AssetStatus {
135*d5c09012SAndroid Build Coastguard Worker  // Last update time of the status.
136*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 1;
137*d5c09012SAndroid Build Coastguard Worker
138*d5c09012SAndroid Build Coastguard Worker  // Number of active assets.
139*d5c09012SAndroid Build Coastguard Worker  int32 active_assets = 2;
140*d5c09012SAndroid Build Coastguard Worker
141*d5c09012SAndroid Build Coastguard Worker  // Number of assets that are in process of updating the security policy on
142*d5c09012SAndroid Build Coastguard Worker  // attached resources.
143*d5c09012SAndroid Build Coastguard Worker  int32 security_policy_applying_assets = 3;
144*d5c09012SAndroid Build Coastguard Worker}
145*d5c09012SAndroid Build Coastguard Worker
146*d5c09012SAndroid Build Coastguard Worker// A zone represents a logical group of related assets within a lake. A zone can
147*d5c09012SAndroid Build Coastguard Worker// be used to map to organizational structure or represent stages of data
148*d5c09012SAndroid Build Coastguard Worker// readiness from raw to curated. It provides managing behavior that is shared
149*d5c09012SAndroid Build Coastguard Worker// or inherited by all contained assets.
150*d5c09012SAndroid Build Coastguard Workermessage Zone {
151*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
152*d5c09012SAndroid Build Coastguard Worker    type: "dataplex.googleapis.com/Zone"
153*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/lakes/{lake}/zones/{zone}"
154*d5c09012SAndroid Build Coastguard Worker  };
155*d5c09012SAndroid Build Coastguard Worker
156*d5c09012SAndroid Build Coastguard Worker  // Type of zone.
157*d5c09012SAndroid Build Coastguard Worker  enum Type {
158*d5c09012SAndroid Build Coastguard Worker    // Zone type not specified.
159*d5c09012SAndroid Build Coastguard Worker    TYPE_UNSPECIFIED = 0;
160*d5c09012SAndroid Build Coastguard Worker
161*d5c09012SAndroid Build Coastguard Worker    // A zone that contains data that needs further processing before it is
162*d5c09012SAndroid Build Coastguard Worker    // considered generally ready for consumption and analytics workloads.
163*d5c09012SAndroid Build Coastguard Worker    RAW = 1;
164*d5c09012SAndroid Build Coastguard Worker
165*d5c09012SAndroid Build Coastguard Worker    // A zone that contains data that is considered to be ready for broader
166*d5c09012SAndroid Build Coastguard Worker    // consumption and analytics workloads. Curated structured data stored in
167*d5c09012SAndroid Build Coastguard Worker    // Cloud Storage must conform to certain file formats (parquet, avro and
168*d5c09012SAndroid Build Coastguard Worker    // orc) and organized in a hive-compatible directory layout.
169*d5c09012SAndroid Build Coastguard Worker    CURATED = 2;
170*d5c09012SAndroid Build Coastguard Worker  }
171*d5c09012SAndroid Build Coastguard Worker
172*d5c09012SAndroid Build Coastguard Worker  // Settings for resources attached as assets within a zone.
173*d5c09012SAndroid Build Coastguard Worker  message ResourceSpec {
174*d5c09012SAndroid Build Coastguard Worker    // Location type of the resources attached to a zone.
175*d5c09012SAndroid Build Coastguard Worker    enum LocationType {
176*d5c09012SAndroid Build Coastguard Worker      // Unspecified location type.
177*d5c09012SAndroid Build Coastguard Worker      LOCATION_TYPE_UNSPECIFIED = 0;
178*d5c09012SAndroid Build Coastguard Worker
179*d5c09012SAndroid Build Coastguard Worker      // Resources that are associated with a single region.
180*d5c09012SAndroid Build Coastguard Worker      SINGLE_REGION = 1;
181*d5c09012SAndroid Build Coastguard Worker
182*d5c09012SAndroid Build Coastguard Worker      // Resources that are associated with a multi-region location.
183*d5c09012SAndroid Build Coastguard Worker      MULTI_REGION = 2;
184*d5c09012SAndroid Build Coastguard Worker    }
185*d5c09012SAndroid Build Coastguard Worker
186*d5c09012SAndroid Build Coastguard Worker    // Required. Immutable. The location type of the resources that are allowed
187*d5c09012SAndroid Build Coastguard Worker    // to be attached to the assets within this zone.
188*d5c09012SAndroid Build Coastguard Worker    LocationType location_type = 1 [
189*d5c09012SAndroid Build Coastguard Worker      (google.api.field_behavior) = REQUIRED,
190*d5c09012SAndroid Build Coastguard Worker      (google.api.field_behavior) = IMMUTABLE
191*d5c09012SAndroid Build Coastguard Worker    ];
192*d5c09012SAndroid Build Coastguard Worker  }
193*d5c09012SAndroid Build Coastguard Worker
194*d5c09012SAndroid Build Coastguard Worker  // Settings to manage the metadata discovery and publishing in a zone.
195*d5c09012SAndroid Build Coastguard Worker  message DiscoverySpec {
196*d5c09012SAndroid Build Coastguard Worker    // Describe CSV and similar semi-structured data formats.
197*d5c09012SAndroid Build Coastguard Worker    message CsvOptions {
198*d5c09012SAndroid Build Coastguard Worker      // Optional. The number of rows to interpret as header rows that should be
199*d5c09012SAndroid Build Coastguard Worker      // skipped when reading data rows.
200*d5c09012SAndroid Build Coastguard Worker      int32 header_rows = 1 [(google.api.field_behavior) = OPTIONAL];
201*d5c09012SAndroid Build Coastguard Worker
202*d5c09012SAndroid Build Coastguard Worker      // Optional. The delimiter being used to separate values. This defaults to
203*d5c09012SAndroid Build Coastguard Worker      // ','.
204*d5c09012SAndroid Build Coastguard Worker      string delimiter = 2 [(google.api.field_behavior) = OPTIONAL];
205*d5c09012SAndroid Build Coastguard Worker
206*d5c09012SAndroid Build Coastguard Worker      // Optional. The character encoding of the data. The default is UTF-8.
207*d5c09012SAndroid Build Coastguard Worker      string encoding = 3 [(google.api.field_behavior) = OPTIONAL];
208*d5c09012SAndroid Build Coastguard Worker
209*d5c09012SAndroid Build Coastguard Worker      // Optional. Whether to disable the inference of data type for CSV data.
210*d5c09012SAndroid Build Coastguard Worker      // If true, all columns will be registered as strings.
211*d5c09012SAndroid Build Coastguard Worker      bool disable_type_inference = 4 [(google.api.field_behavior) = OPTIONAL];
212*d5c09012SAndroid Build Coastguard Worker    }
213*d5c09012SAndroid Build Coastguard Worker
214*d5c09012SAndroid Build Coastguard Worker    // Describe JSON data format.
215*d5c09012SAndroid Build Coastguard Worker    message JsonOptions {
216*d5c09012SAndroid Build Coastguard Worker      // Optional. The character encoding of the data. The default is UTF-8.
217*d5c09012SAndroid Build Coastguard Worker      string encoding = 1 [(google.api.field_behavior) = OPTIONAL];
218*d5c09012SAndroid Build Coastguard Worker
219*d5c09012SAndroid Build Coastguard Worker      // Optional. Whether to disable the inference of data type for Json data.
220*d5c09012SAndroid Build Coastguard Worker      // If true, all columns will be registered as their primitive types
221*d5c09012SAndroid Build Coastguard Worker      // (strings, number or boolean).
222*d5c09012SAndroid Build Coastguard Worker      bool disable_type_inference = 2 [(google.api.field_behavior) = OPTIONAL];
223*d5c09012SAndroid Build Coastguard Worker    }
224*d5c09012SAndroid Build Coastguard Worker
225*d5c09012SAndroid Build Coastguard Worker    // Required. Whether discovery is enabled.
226*d5c09012SAndroid Build Coastguard Worker    bool enabled = 1 [(google.api.field_behavior) = REQUIRED];
227*d5c09012SAndroid Build Coastguard Worker
228*d5c09012SAndroid Build Coastguard Worker    // Optional. The list of patterns to apply for selecting data to include
229*d5c09012SAndroid Build Coastguard Worker    // during discovery if only a subset of the data should considered. For
230*d5c09012SAndroid Build Coastguard Worker    // Cloud Storage bucket assets, these are interpreted as glob patterns used
231*d5c09012SAndroid Build Coastguard Worker    // to match object names. For BigQuery dataset assets, these are interpreted
232*d5c09012SAndroid Build Coastguard Worker    // as patterns to match table names.
233*d5c09012SAndroid Build Coastguard Worker    repeated string include_patterns = 2
234*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OPTIONAL];
235*d5c09012SAndroid Build Coastguard Worker
236*d5c09012SAndroid Build Coastguard Worker    // Optional. The list of patterns to apply for selecting data to exclude
237*d5c09012SAndroid Build Coastguard Worker    // during discovery.  For Cloud Storage bucket assets, these are interpreted
238*d5c09012SAndroid Build Coastguard Worker    // as glob patterns used to match object names. For BigQuery dataset assets,
239*d5c09012SAndroid Build Coastguard Worker    // these are interpreted as patterns to match table names.
240*d5c09012SAndroid Build Coastguard Worker    repeated string exclude_patterns = 3
241*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OPTIONAL];
242*d5c09012SAndroid Build Coastguard Worker
243*d5c09012SAndroid Build Coastguard Worker    // Optional. Configuration for CSV data.
244*d5c09012SAndroid Build Coastguard Worker    CsvOptions csv_options = 4 [(google.api.field_behavior) = OPTIONAL];
245*d5c09012SAndroid Build Coastguard Worker
246*d5c09012SAndroid Build Coastguard Worker    // Optional. Configuration for Json data.
247*d5c09012SAndroid Build Coastguard Worker    JsonOptions json_options = 5 [(google.api.field_behavior) = OPTIONAL];
248*d5c09012SAndroid Build Coastguard Worker
249*d5c09012SAndroid Build Coastguard Worker    // Determines when discovery is triggered.
250*d5c09012SAndroid Build Coastguard Worker    oneof trigger {
251*d5c09012SAndroid Build Coastguard Worker      // Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for
252*d5c09012SAndroid Build Coastguard Worker      // running discovery periodically. Successive discovery runs must be
253*d5c09012SAndroid Build Coastguard Worker      // scheduled at least 60 minutes apart. The default value is to run
254*d5c09012SAndroid Build Coastguard Worker      // discovery every 60 minutes. To explicitly set a timezone to the cron
255*d5c09012SAndroid Build Coastguard Worker      // tab, apply a prefix in the cron tab: "CRON_TZ=${IANA_TIME_ZONE}" or
256*d5c09012SAndroid Build Coastguard Worker      // TZ=${IANA_TIME_ZONE}". The ${IANA_TIME_ZONE} may only be a valid string
257*d5c09012SAndroid Build Coastguard Worker      // from IANA time zone database. For example, `CRON_TZ=America/New_York 1
258*d5c09012SAndroid Build Coastguard Worker      // * * * *`, or `TZ=America/New_York 1 * * * *`.
259*d5c09012SAndroid Build Coastguard Worker      string schedule = 10 [(google.api.field_behavior) = OPTIONAL];
260*d5c09012SAndroid Build Coastguard Worker    }
261*d5c09012SAndroid Build Coastguard Worker  }
262*d5c09012SAndroid Build Coastguard Worker
263*d5c09012SAndroid Build Coastguard Worker  // Output only. The relative resource name of the zone, of the form:
264*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}`.
265*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
266*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OUTPUT_ONLY,
267*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dataplex.googleapis.com/Zone" }
268*d5c09012SAndroid Build Coastguard Worker  ];
269*d5c09012SAndroid Build Coastguard Worker
270*d5c09012SAndroid Build Coastguard Worker  // Optional. User friendly display name.
271*d5c09012SAndroid Build Coastguard Worker  string display_name = 2 [(google.api.field_behavior) = OPTIONAL];
272*d5c09012SAndroid Build Coastguard Worker
273*d5c09012SAndroid Build Coastguard Worker  // Output only. System generated globally unique ID for the zone. This ID will
274*d5c09012SAndroid Build Coastguard Worker  // be different if the zone is deleted and re-created with the same name.
275*d5c09012SAndroid Build Coastguard Worker  string uid = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
276*d5c09012SAndroid Build Coastguard Worker
277*d5c09012SAndroid Build Coastguard Worker  // Output only. The time when the zone was created.
278*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 4
279*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
280*d5c09012SAndroid Build Coastguard Worker
281*d5c09012SAndroid Build Coastguard Worker  // Output only. The time when the zone was last updated.
282*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 5
283*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
284*d5c09012SAndroid Build Coastguard Worker
285*d5c09012SAndroid Build Coastguard Worker  // Optional. User defined labels for the zone.
286*d5c09012SAndroid Build Coastguard Worker  map<string, string> labels = 6 [(google.api.field_behavior) = OPTIONAL];
287*d5c09012SAndroid Build Coastguard Worker
288*d5c09012SAndroid Build Coastguard Worker  // Optional. Description of the zone.
289*d5c09012SAndroid Build Coastguard Worker  string description = 7 [(google.api.field_behavior) = OPTIONAL];
290*d5c09012SAndroid Build Coastguard Worker
291*d5c09012SAndroid Build Coastguard Worker  // Output only. Current state of the zone.
292*d5c09012SAndroid Build Coastguard Worker  State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
293*d5c09012SAndroid Build Coastguard Worker
294*d5c09012SAndroid Build Coastguard Worker  // Required. Immutable. The type of the zone.
295*d5c09012SAndroid Build Coastguard Worker  Type type = 9 [
296*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
297*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = IMMUTABLE
298*d5c09012SAndroid Build Coastguard Worker  ];
299*d5c09012SAndroid Build Coastguard Worker
300*d5c09012SAndroid Build Coastguard Worker  // Optional. Specification of the discovery feature applied to data in this
301*d5c09012SAndroid Build Coastguard Worker  // zone.
302*d5c09012SAndroid Build Coastguard Worker  DiscoverySpec discovery_spec = 103 [(google.api.field_behavior) = OPTIONAL];
303*d5c09012SAndroid Build Coastguard Worker
304*d5c09012SAndroid Build Coastguard Worker  // Required. Specification of the resources that are referenced by the assets
305*d5c09012SAndroid Build Coastguard Worker  // within this zone.
306*d5c09012SAndroid Build Coastguard Worker  ResourceSpec resource_spec = 104 [(google.api.field_behavior) = REQUIRED];
307*d5c09012SAndroid Build Coastguard Worker
308*d5c09012SAndroid Build Coastguard Worker  // Output only. Aggregated status of the underlying assets of the zone.
309*d5c09012SAndroid Build Coastguard Worker  AssetStatus asset_status = 105 [(google.api.field_behavior) = OUTPUT_ONLY];
310*d5c09012SAndroid Build Coastguard Worker}
311*d5c09012SAndroid Build Coastguard Worker
312*d5c09012SAndroid Build Coastguard Worker// Action represents an issue requiring administrator action for resolution.
313*d5c09012SAndroid Build Coastguard Workermessage Action {
314*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
315*d5c09012SAndroid Build Coastguard Worker    type: "dataplex.googleapis.com/Action"
316*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/lakes/{lake}/actions/{action}"
317*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/lakes/{lake}/zones/{zone}/actions/{action}"
318*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/lakes/{lake}/zones/{zone}/assets/{asset}/actions/{action}"
319*d5c09012SAndroid Build Coastguard Worker  };
320*d5c09012SAndroid Build Coastguard Worker
321*d5c09012SAndroid Build Coastguard Worker  // The category of issues.
322*d5c09012SAndroid Build Coastguard Worker  enum Category {
323*d5c09012SAndroid Build Coastguard Worker    // Unspecified category.
324*d5c09012SAndroid Build Coastguard Worker    CATEGORY_UNSPECIFIED = 0;
325*d5c09012SAndroid Build Coastguard Worker
326*d5c09012SAndroid Build Coastguard Worker    // Resource management related issues.
327*d5c09012SAndroid Build Coastguard Worker    RESOURCE_MANAGEMENT = 1;
328*d5c09012SAndroid Build Coastguard Worker
329*d5c09012SAndroid Build Coastguard Worker    // Security policy related issues.
330*d5c09012SAndroid Build Coastguard Worker    SECURITY_POLICY = 2;
331*d5c09012SAndroid Build Coastguard Worker
332*d5c09012SAndroid Build Coastguard Worker    // Data and discovery related issues.
333*d5c09012SAndroid Build Coastguard Worker    DATA_DISCOVERY = 3;
334*d5c09012SAndroid Build Coastguard Worker  }
335*d5c09012SAndroid Build Coastguard Worker
336*d5c09012SAndroid Build Coastguard Worker  // Action details for resource references in assets that cannot be located.
337*d5c09012SAndroid Build Coastguard Worker  message MissingResource {}
338*d5c09012SAndroid Build Coastguard Worker
339*d5c09012SAndroid Build Coastguard Worker  // Action details for unauthorized resource issues raised to indicate that the
340*d5c09012SAndroid Build Coastguard Worker  // service account associated with the lake instance is not authorized to
341*d5c09012SAndroid Build Coastguard Worker  // access or manage the resource associated with an asset.
342*d5c09012SAndroid Build Coastguard Worker  message UnauthorizedResource {}
343*d5c09012SAndroid Build Coastguard Worker
344*d5c09012SAndroid Build Coastguard Worker  // Failed to apply security policy to the managed resource(s) under a
345*d5c09012SAndroid Build Coastguard Worker  // lake, zone or an asset. For a lake or zone resource, one or more underlying
346*d5c09012SAndroid Build Coastguard Worker  // assets has a failure applying security policy to the associated managed
347*d5c09012SAndroid Build Coastguard Worker  // resource.
348*d5c09012SAndroid Build Coastguard Worker  message FailedSecurityPolicyApply {
349*d5c09012SAndroid Build Coastguard Worker    // Resource name of one of the assets with failing security policy
350*d5c09012SAndroid Build Coastguard Worker    // application. Populated for a lake or zone resource only.
351*d5c09012SAndroid Build Coastguard Worker    string asset = 1;
352*d5c09012SAndroid Build Coastguard Worker  }
353*d5c09012SAndroid Build Coastguard Worker
354*d5c09012SAndroid Build Coastguard Worker  // Action details for invalid or unsupported data files detected by discovery.
355*d5c09012SAndroid Build Coastguard Worker  message InvalidDataFormat {
356*d5c09012SAndroid Build Coastguard Worker    // The list of data locations sampled and used for format/schema
357*d5c09012SAndroid Build Coastguard Worker    // inference.
358*d5c09012SAndroid Build Coastguard Worker    repeated string sampled_data_locations = 1;
359*d5c09012SAndroid Build Coastguard Worker
360*d5c09012SAndroid Build Coastguard Worker    // The expected data format of the entity.
361*d5c09012SAndroid Build Coastguard Worker    string expected_format = 2;
362*d5c09012SAndroid Build Coastguard Worker
363*d5c09012SAndroid Build Coastguard Worker    // The new unexpected data format within the entity.
364*d5c09012SAndroid Build Coastguard Worker    string new_format = 3;
365*d5c09012SAndroid Build Coastguard Worker  }
366*d5c09012SAndroid Build Coastguard Worker
367*d5c09012SAndroid Build Coastguard Worker  // Action details for incompatible schemas detected by discovery.
368*d5c09012SAndroid Build Coastguard Worker  message IncompatibleDataSchema {
369*d5c09012SAndroid Build Coastguard Worker    // Whether the action relates to a schema that is incompatible or modified.
370*d5c09012SAndroid Build Coastguard Worker    enum SchemaChange {
371*d5c09012SAndroid Build Coastguard Worker      // Schema change unspecified.
372*d5c09012SAndroid Build Coastguard Worker      SCHEMA_CHANGE_UNSPECIFIED = 0;
373*d5c09012SAndroid Build Coastguard Worker
374*d5c09012SAndroid Build Coastguard Worker      // Newly discovered schema is incompatible with existing schema.
375*d5c09012SAndroid Build Coastguard Worker      INCOMPATIBLE = 1;
376*d5c09012SAndroid Build Coastguard Worker
377*d5c09012SAndroid Build Coastguard Worker      // Newly discovered schema has changed from existing schema for data in a
378*d5c09012SAndroid Build Coastguard Worker      // curated zone.
379*d5c09012SAndroid Build Coastguard Worker      MODIFIED = 2;
380*d5c09012SAndroid Build Coastguard Worker    }
381*d5c09012SAndroid Build Coastguard Worker
382*d5c09012SAndroid Build Coastguard Worker    // The name of the table containing invalid data.
383*d5c09012SAndroid Build Coastguard Worker    string table = 1;
384*d5c09012SAndroid Build Coastguard Worker
385*d5c09012SAndroid Build Coastguard Worker    // The existing and expected schema of the table. The schema is provided as
386*d5c09012SAndroid Build Coastguard Worker    // a JSON formatted structure listing columns and data types.
387*d5c09012SAndroid Build Coastguard Worker    string existing_schema = 2;
388*d5c09012SAndroid Build Coastguard Worker
389*d5c09012SAndroid Build Coastguard Worker    // The new and incompatible schema within the table. The schema is provided
390*d5c09012SAndroid Build Coastguard Worker    // as a JSON formatted structured listing columns and data types.
391*d5c09012SAndroid Build Coastguard Worker    string new_schema = 3;
392*d5c09012SAndroid Build Coastguard Worker
393*d5c09012SAndroid Build Coastguard Worker    // The list of data locations sampled and used for format/schema
394*d5c09012SAndroid Build Coastguard Worker    // inference.
395*d5c09012SAndroid Build Coastguard Worker    repeated string sampled_data_locations = 4;
396*d5c09012SAndroid Build Coastguard Worker
397*d5c09012SAndroid Build Coastguard Worker    // Whether the action relates to a schema that is incompatible or modified.
398*d5c09012SAndroid Build Coastguard Worker    SchemaChange schema_change = 5;
399*d5c09012SAndroid Build Coastguard Worker  }
400*d5c09012SAndroid Build Coastguard Worker
401*d5c09012SAndroid Build Coastguard Worker  // Action details for invalid or unsupported partitions detected by discovery.
402*d5c09012SAndroid Build Coastguard Worker  message InvalidDataPartition {
403*d5c09012SAndroid Build Coastguard Worker    // The expected partition structure.
404*d5c09012SAndroid Build Coastguard Worker    enum PartitionStructure {
405*d5c09012SAndroid Build Coastguard Worker      // PartitionStructure unspecified.
406*d5c09012SAndroid Build Coastguard Worker      PARTITION_STRUCTURE_UNSPECIFIED = 0;
407*d5c09012SAndroid Build Coastguard Worker
408*d5c09012SAndroid Build Coastguard Worker      // Consistent hive-style partition definition (both raw and curated zone).
409*d5c09012SAndroid Build Coastguard Worker      CONSISTENT_KEYS = 1;
410*d5c09012SAndroid Build Coastguard Worker
411*d5c09012SAndroid Build Coastguard Worker      // Hive style partition definition (curated zone only).
412*d5c09012SAndroid Build Coastguard Worker      HIVE_STYLE_KEYS = 2;
413*d5c09012SAndroid Build Coastguard Worker    }
414*d5c09012SAndroid Build Coastguard Worker
415*d5c09012SAndroid Build Coastguard Worker    // The issue type of InvalidDataPartition.
416*d5c09012SAndroid Build Coastguard Worker    PartitionStructure expected_structure = 1;
417*d5c09012SAndroid Build Coastguard Worker  }
418*d5c09012SAndroid Build Coastguard Worker
419*d5c09012SAndroid Build Coastguard Worker  // Action details for absence of data detected by discovery.
420*d5c09012SAndroid Build Coastguard Worker  message MissingData {}
421*d5c09012SAndroid Build Coastguard Worker
422*d5c09012SAndroid Build Coastguard Worker  // Action details for invalid data arrangement.
423*d5c09012SAndroid Build Coastguard Worker  message InvalidDataOrganization {}
424*d5c09012SAndroid Build Coastguard Worker
425*d5c09012SAndroid Build Coastguard Worker  // The category of issue associated with the action.
426*d5c09012SAndroid Build Coastguard Worker  Category category = 1;
427*d5c09012SAndroid Build Coastguard Worker
428*d5c09012SAndroid Build Coastguard Worker  // Detailed description of the issue requiring action.
429*d5c09012SAndroid Build Coastguard Worker  string issue = 2;
430*d5c09012SAndroid Build Coastguard Worker
431*d5c09012SAndroid Build Coastguard Worker  // The time that the issue was detected.
432*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp detect_time = 4;
433*d5c09012SAndroid Build Coastguard Worker
434*d5c09012SAndroid Build Coastguard Worker  // Output only. The relative resource name of the action, of the form:
435*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location}/lakes/{lake}/actions/{action}`
436*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location}/lakes/{lake}/zones/{zone}/actions/{action}`
437*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location}/lakes/{lake}/zones/{zone}/assets/{asset}/actions/{action}`.
438*d5c09012SAndroid Build Coastguard Worker  string name = 5 [
439*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OUTPUT_ONLY,
440*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dataplex.googleapis.com/Action" }
441*d5c09012SAndroid Build Coastguard Worker  ];
442*d5c09012SAndroid Build Coastguard Worker
443*d5c09012SAndroid Build Coastguard Worker  // Output only. The relative resource name of the lake, of the form:
444*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}`.
445*d5c09012SAndroid Build Coastguard Worker  string lake = 6 [
446*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OUTPUT_ONLY,
447*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dataplex.googleapis.com/Lake" }
448*d5c09012SAndroid Build Coastguard Worker  ];
449*d5c09012SAndroid Build Coastguard Worker
450*d5c09012SAndroid Build Coastguard Worker  // Output only. The relative resource name of the zone, of the form:
451*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}`.
452*d5c09012SAndroid Build Coastguard Worker  string zone = 7 [
453*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OUTPUT_ONLY,
454*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dataplex.googleapis.com/Zone" }
455*d5c09012SAndroid Build Coastguard Worker  ];
456*d5c09012SAndroid Build Coastguard Worker
457*d5c09012SAndroid Build Coastguard Worker  // Output only. The relative resource name of the asset, of the form:
458*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}`.
459*d5c09012SAndroid Build Coastguard Worker  string asset = 8 [
460*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OUTPUT_ONLY,
461*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dataplex.googleapis.com/Asset" }
462*d5c09012SAndroid Build Coastguard Worker  ];
463*d5c09012SAndroid Build Coastguard Worker
464*d5c09012SAndroid Build Coastguard Worker  // The list of data locations associated with this action. Cloud Storage
465*d5c09012SAndroid Build Coastguard Worker  // locations are represented as URI paths(E.g.
466*d5c09012SAndroid Build Coastguard Worker  // `gs://bucket/table1/year=2020/month=Jan/`). BigQuery locations refer to
467*d5c09012SAndroid Build Coastguard Worker  // resource names(E.g.
468*d5c09012SAndroid Build Coastguard Worker  // `bigquery.googleapis.com/projects/project-id/datasets/dataset-id`).
469*d5c09012SAndroid Build Coastguard Worker  repeated string data_locations = 9;
470*d5c09012SAndroid Build Coastguard Worker
471*d5c09012SAndroid Build Coastguard Worker  // Additional details about the action based on the action category.
472*d5c09012SAndroid Build Coastguard Worker  oneof details {
473*d5c09012SAndroid Build Coastguard Worker    // Details for issues related to invalid or unsupported data formats.
474*d5c09012SAndroid Build Coastguard Worker    InvalidDataFormat invalid_data_format = 10;
475*d5c09012SAndroid Build Coastguard Worker
476*d5c09012SAndroid Build Coastguard Worker    // Details for issues related to incompatible schemas detected within data.
477*d5c09012SAndroid Build Coastguard Worker    IncompatibleDataSchema incompatible_data_schema = 11;
478*d5c09012SAndroid Build Coastguard Worker
479*d5c09012SAndroid Build Coastguard Worker    // Details for issues related to invalid or unsupported data partition
480*d5c09012SAndroid Build Coastguard Worker    // structure.
481*d5c09012SAndroid Build Coastguard Worker    InvalidDataPartition invalid_data_partition = 12;
482*d5c09012SAndroid Build Coastguard Worker
483*d5c09012SAndroid Build Coastguard Worker    // Details for issues related to absence of data within managed resources.
484*d5c09012SAndroid Build Coastguard Worker    MissingData missing_data = 13;
485*d5c09012SAndroid Build Coastguard Worker
486*d5c09012SAndroid Build Coastguard Worker    // Details for issues related to absence of a managed resource.
487*d5c09012SAndroid Build Coastguard Worker    MissingResource missing_resource = 14;
488*d5c09012SAndroid Build Coastguard Worker
489*d5c09012SAndroid Build Coastguard Worker    // Details for issues related to lack of permissions to access data
490*d5c09012SAndroid Build Coastguard Worker    // resources.
491*d5c09012SAndroid Build Coastguard Worker    UnauthorizedResource unauthorized_resource = 15;
492*d5c09012SAndroid Build Coastguard Worker
493*d5c09012SAndroid Build Coastguard Worker    // Details for issues related to applying security policy.
494*d5c09012SAndroid Build Coastguard Worker    FailedSecurityPolicyApply failed_security_policy_apply = 21;
495*d5c09012SAndroid Build Coastguard Worker
496*d5c09012SAndroid Build Coastguard Worker    // Details for issues related to invalid data arrangement.
497*d5c09012SAndroid Build Coastguard Worker    InvalidDataOrganization invalid_data_organization = 22;
498*d5c09012SAndroid Build Coastguard Worker  }
499*d5c09012SAndroid Build Coastguard Worker}
500*d5c09012SAndroid Build Coastguard Worker
501*d5c09012SAndroid Build Coastguard Worker// An asset represents a cloud resource that is being managed within a lake as a
502*d5c09012SAndroid Build Coastguard Worker// member of a zone.
503*d5c09012SAndroid Build Coastguard Workermessage Asset {
504*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
505*d5c09012SAndroid Build Coastguard Worker    type: "dataplex.googleapis.com/Asset"
506*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/lakes/{lake}/zones/{zone}/assets/{asset}"
507*d5c09012SAndroid Build Coastguard Worker  };
508*d5c09012SAndroid Build Coastguard Worker
509*d5c09012SAndroid Build Coastguard Worker  // Security policy status of the asset. Data security policy, i.e., readers,
510*d5c09012SAndroid Build Coastguard Worker  // writers & owners, should be specified in the lake/zone/asset IAM policy.
511*d5c09012SAndroid Build Coastguard Worker  message SecurityStatus {
512*d5c09012SAndroid Build Coastguard Worker    // The state of the security policy.
513*d5c09012SAndroid Build Coastguard Worker    enum State {
514*d5c09012SAndroid Build Coastguard Worker      // State unspecified.
515*d5c09012SAndroid Build Coastguard Worker      STATE_UNSPECIFIED = 0;
516*d5c09012SAndroid Build Coastguard Worker
517*d5c09012SAndroid Build Coastguard Worker      // Security policy has been successfully applied to the attached resource.
518*d5c09012SAndroid Build Coastguard Worker      READY = 1;
519*d5c09012SAndroid Build Coastguard Worker
520*d5c09012SAndroid Build Coastguard Worker      // Security policy is in the process of being applied to the attached
521*d5c09012SAndroid Build Coastguard Worker      // resource.
522*d5c09012SAndroid Build Coastguard Worker      APPLYING = 2;
523*d5c09012SAndroid Build Coastguard Worker
524*d5c09012SAndroid Build Coastguard Worker      // Security policy could not be applied to the attached resource due to
525*d5c09012SAndroid Build Coastguard Worker      // errors.
526*d5c09012SAndroid Build Coastguard Worker      ERROR = 3;
527*d5c09012SAndroid Build Coastguard Worker    }
528*d5c09012SAndroid Build Coastguard Worker
529*d5c09012SAndroid Build Coastguard Worker    // The current state of the security policy applied to the attached
530*d5c09012SAndroid Build Coastguard Worker    // resource.
531*d5c09012SAndroid Build Coastguard Worker    State state = 1;
532*d5c09012SAndroid Build Coastguard Worker
533*d5c09012SAndroid Build Coastguard Worker    // Additional information about the current state.
534*d5c09012SAndroid Build Coastguard Worker    string message = 2;
535*d5c09012SAndroid Build Coastguard Worker
536*d5c09012SAndroid Build Coastguard Worker    // Last update time of the status.
537*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Timestamp update_time = 3;
538*d5c09012SAndroid Build Coastguard Worker  }
539*d5c09012SAndroid Build Coastguard Worker
540*d5c09012SAndroid Build Coastguard Worker  // Settings to manage the metadata discovery and publishing for an asset.
541*d5c09012SAndroid Build Coastguard Worker  message DiscoverySpec {
542*d5c09012SAndroid Build Coastguard Worker    // Describe CSV and similar semi-structured data formats.
543*d5c09012SAndroid Build Coastguard Worker    message CsvOptions {
544*d5c09012SAndroid Build Coastguard Worker      // Optional. The number of rows to interpret as header rows that should be
545*d5c09012SAndroid Build Coastguard Worker      // skipped when reading data rows.
546*d5c09012SAndroid Build Coastguard Worker      int32 header_rows = 1 [(google.api.field_behavior) = OPTIONAL];
547*d5c09012SAndroid Build Coastguard Worker
548*d5c09012SAndroid Build Coastguard Worker      // Optional. The delimiter being used to separate values. This defaults to
549*d5c09012SAndroid Build Coastguard Worker      // ','.
550*d5c09012SAndroid Build Coastguard Worker      string delimiter = 2 [(google.api.field_behavior) = OPTIONAL];
551*d5c09012SAndroid Build Coastguard Worker
552*d5c09012SAndroid Build Coastguard Worker      // Optional. The character encoding of the data. The default is UTF-8.
553*d5c09012SAndroid Build Coastguard Worker      string encoding = 3 [(google.api.field_behavior) = OPTIONAL];
554*d5c09012SAndroid Build Coastguard Worker
555*d5c09012SAndroid Build Coastguard Worker      // Optional. Whether to disable the inference of data type for CSV data.
556*d5c09012SAndroid Build Coastguard Worker      // If true, all columns will be registered as strings.
557*d5c09012SAndroid Build Coastguard Worker      bool disable_type_inference = 4 [(google.api.field_behavior) = OPTIONAL];
558*d5c09012SAndroid Build Coastguard Worker    }
559*d5c09012SAndroid Build Coastguard Worker
560*d5c09012SAndroid Build Coastguard Worker    // Describe JSON data format.
561*d5c09012SAndroid Build Coastguard Worker    message JsonOptions {
562*d5c09012SAndroid Build Coastguard Worker      // Optional. The character encoding of the data. The default is UTF-8.
563*d5c09012SAndroid Build Coastguard Worker      string encoding = 1 [(google.api.field_behavior) = OPTIONAL];
564*d5c09012SAndroid Build Coastguard Worker
565*d5c09012SAndroid Build Coastguard Worker      // Optional. Whether to disable the inference of data type for Json data.
566*d5c09012SAndroid Build Coastguard Worker      // If true, all columns will be registered as their primitive types
567*d5c09012SAndroid Build Coastguard Worker      // (strings, number or boolean).
568*d5c09012SAndroid Build Coastguard Worker      bool disable_type_inference = 2 [(google.api.field_behavior) = OPTIONAL];
569*d5c09012SAndroid Build Coastguard Worker    }
570*d5c09012SAndroid Build Coastguard Worker
571*d5c09012SAndroid Build Coastguard Worker    // Optional. Whether discovery is enabled.
572*d5c09012SAndroid Build Coastguard Worker    bool enabled = 1 [(google.api.field_behavior) = OPTIONAL];
573*d5c09012SAndroid Build Coastguard Worker
574*d5c09012SAndroid Build Coastguard Worker    // Optional. The list of patterns to apply for selecting data to include
575*d5c09012SAndroid Build Coastguard Worker    // during discovery if only a subset of the data should considered.  For
576*d5c09012SAndroid Build Coastguard Worker    // Cloud Storage bucket assets, these are interpreted as glob patterns used
577*d5c09012SAndroid Build Coastguard Worker    // to match object names. For BigQuery dataset assets, these are interpreted
578*d5c09012SAndroid Build Coastguard Worker    // as patterns to match table names.
579*d5c09012SAndroid Build Coastguard Worker    repeated string include_patterns = 2
580*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OPTIONAL];
581*d5c09012SAndroid Build Coastguard Worker
582*d5c09012SAndroid Build Coastguard Worker    // Optional. The list of patterns to apply for selecting data to exclude
583*d5c09012SAndroid Build Coastguard Worker    // during discovery.  For Cloud Storage bucket assets, these are interpreted
584*d5c09012SAndroid Build Coastguard Worker    // as glob patterns used to match object names. For BigQuery dataset assets,
585*d5c09012SAndroid Build Coastguard Worker    // these are interpreted as patterns to match table names.
586*d5c09012SAndroid Build Coastguard Worker    repeated string exclude_patterns = 3
587*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OPTIONAL];
588*d5c09012SAndroid Build Coastguard Worker
589*d5c09012SAndroid Build Coastguard Worker    // Optional. Configuration for CSV data.
590*d5c09012SAndroid Build Coastguard Worker    CsvOptions csv_options = 4 [(google.api.field_behavior) = OPTIONAL];
591*d5c09012SAndroid Build Coastguard Worker
592*d5c09012SAndroid Build Coastguard Worker    // Optional. Configuration for Json data.
593*d5c09012SAndroid Build Coastguard Worker    JsonOptions json_options = 5 [(google.api.field_behavior) = OPTIONAL];
594*d5c09012SAndroid Build Coastguard Worker
595*d5c09012SAndroid Build Coastguard Worker    // Determines when discovery is triggered.
596*d5c09012SAndroid Build Coastguard Worker    oneof trigger {
597*d5c09012SAndroid Build Coastguard Worker      // Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for
598*d5c09012SAndroid Build Coastguard Worker      // running discovery periodically. Successive discovery runs must be
599*d5c09012SAndroid Build Coastguard Worker      // scheduled at least 60 minutes apart. The default value is to run
600*d5c09012SAndroid Build Coastguard Worker      // discovery every 60 minutes. To explicitly set a timezone to the cron
601*d5c09012SAndroid Build Coastguard Worker      // tab, apply a prefix in the cron tab: "CRON_TZ=${IANA_TIME_ZONE}" or
602*d5c09012SAndroid Build Coastguard Worker      // TZ=${IANA_TIME_ZONE}". The ${IANA_TIME_ZONE} may only be a valid string
603*d5c09012SAndroid Build Coastguard Worker      // from IANA time zone database. For example, `CRON_TZ=America/New_York 1
604*d5c09012SAndroid Build Coastguard Worker      // * * * *`, or `TZ=America/New_York 1 * * * *`.
605*d5c09012SAndroid Build Coastguard Worker      string schedule = 10 [(google.api.field_behavior) = OPTIONAL];
606*d5c09012SAndroid Build Coastguard Worker    }
607*d5c09012SAndroid Build Coastguard Worker  }
608*d5c09012SAndroid Build Coastguard Worker
609*d5c09012SAndroid Build Coastguard Worker  // Identifies the cloud resource that is referenced by this asset.
610*d5c09012SAndroid Build Coastguard Worker  message ResourceSpec {
611*d5c09012SAndroid Build Coastguard Worker    // Type of resource.
612*d5c09012SAndroid Build Coastguard Worker    enum Type {
613*d5c09012SAndroid Build Coastguard Worker      // Type not specified.
614*d5c09012SAndroid Build Coastguard Worker      TYPE_UNSPECIFIED = 0;
615*d5c09012SAndroid Build Coastguard Worker
616*d5c09012SAndroid Build Coastguard Worker      // Cloud Storage bucket.
617*d5c09012SAndroid Build Coastguard Worker      STORAGE_BUCKET = 1;
618*d5c09012SAndroid Build Coastguard Worker
619*d5c09012SAndroid Build Coastguard Worker      // BigQuery dataset.
620*d5c09012SAndroid Build Coastguard Worker      BIGQUERY_DATASET = 2;
621*d5c09012SAndroid Build Coastguard Worker    }
622*d5c09012SAndroid Build Coastguard Worker
623*d5c09012SAndroid Build Coastguard Worker    // Access Mode determines how data stored within the resource is read. This
624*d5c09012SAndroid Build Coastguard Worker    // is only applicable to storage bucket assets.
625*d5c09012SAndroid Build Coastguard Worker    enum AccessMode {
626*d5c09012SAndroid Build Coastguard Worker      // Access mode unspecified.
627*d5c09012SAndroid Build Coastguard Worker      ACCESS_MODE_UNSPECIFIED = 0;
628*d5c09012SAndroid Build Coastguard Worker
629*d5c09012SAndroid Build Coastguard Worker      // Default. Data is accessed directly using storage APIs.
630*d5c09012SAndroid Build Coastguard Worker      DIRECT = 1;
631*d5c09012SAndroid Build Coastguard Worker
632*d5c09012SAndroid Build Coastguard Worker      // Data is accessed through a managed interface using BigQuery APIs.
633*d5c09012SAndroid Build Coastguard Worker      MANAGED = 2;
634*d5c09012SAndroid Build Coastguard Worker    }
635*d5c09012SAndroid Build Coastguard Worker
636*d5c09012SAndroid Build Coastguard Worker    // Immutable. Relative name of the cloud resource that contains the data
637*d5c09012SAndroid Build Coastguard Worker    // that is being managed within a lake. For example:
638*d5c09012SAndroid Build Coastguard Worker    //   `projects/{project_number}/buckets/{bucket_id}`
639*d5c09012SAndroid Build Coastguard Worker    //   `projects/{project_number}/datasets/{dataset_id}`
640*d5c09012SAndroid Build Coastguard Worker    string name = 1 [(google.api.field_behavior) = IMMUTABLE];
641*d5c09012SAndroid Build Coastguard Worker
642*d5c09012SAndroid Build Coastguard Worker    // Required. Immutable. Type of resource.
643*d5c09012SAndroid Build Coastguard Worker    Type type = 2 [
644*d5c09012SAndroid Build Coastguard Worker      (google.api.field_behavior) = REQUIRED,
645*d5c09012SAndroid Build Coastguard Worker      (google.api.field_behavior) = IMMUTABLE
646*d5c09012SAndroid Build Coastguard Worker    ];
647*d5c09012SAndroid Build Coastguard Worker
648*d5c09012SAndroid Build Coastguard Worker    // Optional. Determines how read permissions are handled for each asset and
649*d5c09012SAndroid Build Coastguard Worker    // their associated tables. Only available to storage buckets assets.
650*d5c09012SAndroid Build Coastguard Worker    AccessMode read_access_mode = 5 [(google.api.field_behavior) = OPTIONAL];
651*d5c09012SAndroid Build Coastguard Worker  }
652*d5c09012SAndroid Build Coastguard Worker
653*d5c09012SAndroid Build Coastguard Worker  // Status of the resource referenced by an asset.
654*d5c09012SAndroid Build Coastguard Worker  message ResourceStatus {
655*d5c09012SAndroid Build Coastguard Worker    // The state of a resource.
656*d5c09012SAndroid Build Coastguard Worker    enum State {
657*d5c09012SAndroid Build Coastguard Worker      // State unspecified.
658*d5c09012SAndroid Build Coastguard Worker      STATE_UNSPECIFIED = 0;
659*d5c09012SAndroid Build Coastguard Worker
660*d5c09012SAndroid Build Coastguard Worker      // Resource does not have any errors.
661*d5c09012SAndroid Build Coastguard Worker      READY = 1;
662*d5c09012SAndroid Build Coastguard Worker
663*d5c09012SAndroid Build Coastguard Worker      // Resource has errors.
664*d5c09012SAndroid Build Coastguard Worker      ERROR = 2;
665*d5c09012SAndroid Build Coastguard Worker    }
666*d5c09012SAndroid Build Coastguard Worker
667*d5c09012SAndroid Build Coastguard Worker    // The current state of the managed resource.
668*d5c09012SAndroid Build Coastguard Worker    State state = 1;
669*d5c09012SAndroid Build Coastguard Worker
670*d5c09012SAndroid Build Coastguard Worker    // Additional information about the current state.
671*d5c09012SAndroid Build Coastguard Worker    string message = 2;
672*d5c09012SAndroid Build Coastguard Worker
673*d5c09012SAndroid Build Coastguard Worker    // Last update time of the status.
674*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Timestamp update_time = 3;
675*d5c09012SAndroid Build Coastguard Worker
676*d5c09012SAndroid Build Coastguard Worker    // Output only. Service account associated with the BigQuery Connection.
677*d5c09012SAndroid Build Coastguard Worker    string managed_access_identity = 4
678*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OUTPUT_ONLY];
679*d5c09012SAndroid Build Coastguard Worker  }
680*d5c09012SAndroid Build Coastguard Worker
681*d5c09012SAndroid Build Coastguard Worker  // Status of discovery for an asset.
682*d5c09012SAndroid Build Coastguard Worker  message DiscoveryStatus {
683*d5c09012SAndroid Build Coastguard Worker    // Current state of discovery.
684*d5c09012SAndroid Build Coastguard Worker    enum State {
685*d5c09012SAndroid Build Coastguard Worker      // State is unspecified.
686*d5c09012SAndroid Build Coastguard Worker      STATE_UNSPECIFIED = 0;
687*d5c09012SAndroid Build Coastguard Worker
688*d5c09012SAndroid Build Coastguard Worker      // Discovery for the asset is scheduled.
689*d5c09012SAndroid Build Coastguard Worker      SCHEDULED = 1;
690*d5c09012SAndroid Build Coastguard Worker
691*d5c09012SAndroid Build Coastguard Worker      // Discovery for the asset is running.
692*d5c09012SAndroid Build Coastguard Worker      IN_PROGRESS = 2;
693*d5c09012SAndroid Build Coastguard Worker
694*d5c09012SAndroid Build Coastguard Worker      // Discovery for the asset is currently paused (e.g. due to a lack
695*d5c09012SAndroid Build Coastguard Worker      // of available resources). It will be automatically resumed.
696*d5c09012SAndroid Build Coastguard Worker      PAUSED = 3;
697*d5c09012SAndroid Build Coastguard Worker
698*d5c09012SAndroid Build Coastguard Worker      // Discovery for the asset is disabled.
699*d5c09012SAndroid Build Coastguard Worker      DISABLED = 5;
700*d5c09012SAndroid Build Coastguard Worker    }
701*d5c09012SAndroid Build Coastguard Worker
702*d5c09012SAndroid Build Coastguard Worker    // The aggregated data statistics for the asset reported by discovery.
703*d5c09012SAndroid Build Coastguard Worker    message Stats {
704*d5c09012SAndroid Build Coastguard Worker      // The count of data items within the referenced resource.
705*d5c09012SAndroid Build Coastguard Worker      int64 data_items = 1;
706*d5c09012SAndroid Build Coastguard Worker
707*d5c09012SAndroid Build Coastguard Worker      // The number of stored data bytes within the referenced resource.
708*d5c09012SAndroid Build Coastguard Worker      int64 data_size = 2;
709*d5c09012SAndroid Build Coastguard Worker
710*d5c09012SAndroid Build Coastguard Worker      // The count of table entities within the referenced resource.
711*d5c09012SAndroid Build Coastguard Worker      int64 tables = 3;
712*d5c09012SAndroid Build Coastguard Worker
713*d5c09012SAndroid Build Coastguard Worker      // The count of fileset entities within the referenced resource.
714*d5c09012SAndroid Build Coastguard Worker      int64 filesets = 4;
715*d5c09012SAndroid Build Coastguard Worker    }
716*d5c09012SAndroid Build Coastguard Worker
717*d5c09012SAndroid Build Coastguard Worker    // The current status of the discovery feature.
718*d5c09012SAndroid Build Coastguard Worker    State state = 1;
719*d5c09012SAndroid Build Coastguard Worker
720*d5c09012SAndroid Build Coastguard Worker    // Additional information about the current state.
721*d5c09012SAndroid Build Coastguard Worker    string message = 2;
722*d5c09012SAndroid Build Coastguard Worker
723*d5c09012SAndroid Build Coastguard Worker    // Last update time of the status.
724*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Timestamp update_time = 3;
725*d5c09012SAndroid Build Coastguard Worker
726*d5c09012SAndroid Build Coastguard Worker    // The start time of the last discovery run.
727*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Timestamp last_run_time = 4;
728*d5c09012SAndroid Build Coastguard Worker
729*d5c09012SAndroid Build Coastguard Worker    // Data Stats of the asset reported by discovery.
730*d5c09012SAndroid Build Coastguard Worker    Stats stats = 6;
731*d5c09012SAndroid Build Coastguard Worker
732*d5c09012SAndroid Build Coastguard Worker    // The duration of the last discovery run.
733*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Duration last_run_duration = 7;
734*d5c09012SAndroid Build Coastguard Worker  }
735*d5c09012SAndroid Build Coastguard Worker
736*d5c09012SAndroid Build Coastguard Worker  // Output only. The relative resource name of the asset, of the form:
737*d5c09012SAndroid Build Coastguard Worker  // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}`.
738*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
739*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OUTPUT_ONLY,
740*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dataplex.googleapis.com/Asset" }
741*d5c09012SAndroid Build Coastguard Worker  ];
742*d5c09012SAndroid Build Coastguard Worker
743*d5c09012SAndroid Build Coastguard Worker  // Optional. User friendly display name.
744*d5c09012SAndroid Build Coastguard Worker  string display_name = 2 [(google.api.field_behavior) = OPTIONAL];
745*d5c09012SAndroid Build Coastguard Worker
746*d5c09012SAndroid Build Coastguard Worker  // Output only. System generated globally unique ID for the asset. This ID
747*d5c09012SAndroid Build Coastguard Worker  // will be different if the asset is deleted and re-created with the same
748*d5c09012SAndroid Build Coastguard Worker  // name.
749*d5c09012SAndroid Build Coastguard Worker  string uid = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
750*d5c09012SAndroid Build Coastguard Worker
751*d5c09012SAndroid Build Coastguard Worker  // Output only. The time when the asset was created.
752*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 4
753*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
754*d5c09012SAndroid Build Coastguard Worker
755*d5c09012SAndroid Build Coastguard Worker  // Output only. The time when the asset was last updated.
756*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 5
757*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
758*d5c09012SAndroid Build Coastguard Worker
759*d5c09012SAndroid Build Coastguard Worker  // Optional. User defined labels for the asset.
760*d5c09012SAndroid Build Coastguard Worker  map<string, string> labels = 6 [(google.api.field_behavior) = OPTIONAL];
761*d5c09012SAndroid Build Coastguard Worker
762*d5c09012SAndroid Build Coastguard Worker  // Optional. Description of the asset.
763*d5c09012SAndroid Build Coastguard Worker  string description = 7 [(google.api.field_behavior) = OPTIONAL];
764*d5c09012SAndroid Build Coastguard Worker
765*d5c09012SAndroid Build Coastguard Worker  // Output only. Current state of the asset.
766*d5c09012SAndroid Build Coastguard Worker  State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
767*d5c09012SAndroid Build Coastguard Worker
768*d5c09012SAndroid Build Coastguard Worker  // Required. Specification of the resource that is referenced by this asset.
769*d5c09012SAndroid Build Coastguard Worker  ResourceSpec resource_spec = 100 [(google.api.field_behavior) = REQUIRED];
770*d5c09012SAndroid Build Coastguard Worker
771*d5c09012SAndroid Build Coastguard Worker  // Output only. Status of the resource referenced by this asset.
772*d5c09012SAndroid Build Coastguard Worker  ResourceStatus resource_status = 101
773*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
774*d5c09012SAndroid Build Coastguard Worker
775*d5c09012SAndroid Build Coastguard Worker  // Output only. Status of the security policy applied to resource referenced
776*d5c09012SAndroid Build Coastguard Worker  // by this asset.
777*d5c09012SAndroid Build Coastguard Worker  SecurityStatus security_status = 103
778*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
779*d5c09012SAndroid Build Coastguard Worker
780*d5c09012SAndroid Build Coastguard Worker  // Optional. Specification of the discovery feature applied to data referenced
781*d5c09012SAndroid Build Coastguard Worker  // by this asset. When this spec is left unset, the asset will use the spec
782*d5c09012SAndroid Build Coastguard Worker  // set on the parent zone.
783*d5c09012SAndroid Build Coastguard Worker  DiscoverySpec discovery_spec = 106 [(google.api.field_behavior) = OPTIONAL];
784*d5c09012SAndroid Build Coastguard Worker
785*d5c09012SAndroid Build Coastguard Worker  // Output only. Status of the discovery feature applied to data referenced by
786*d5c09012SAndroid Build Coastguard Worker  // this asset.
787*d5c09012SAndroid Build Coastguard Worker  DiscoveryStatus discovery_status = 107
788*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
789*d5c09012SAndroid Build Coastguard Worker}
790*d5c09012SAndroid Build Coastguard Worker
791*d5c09012SAndroid Build Coastguard Worker// State of a resource.
792*d5c09012SAndroid Build Coastguard Workerenum State {
793*d5c09012SAndroid Build Coastguard Worker  // State is not specified.
794*d5c09012SAndroid Build Coastguard Worker  STATE_UNSPECIFIED = 0;
795*d5c09012SAndroid Build Coastguard Worker
796*d5c09012SAndroid Build Coastguard Worker  // Resource is active, i.e., ready to use.
797*d5c09012SAndroid Build Coastguard Worker  ACTIVE = 1;
798*d5c09012SAndroid Build Coastguard Worker
799*d5c09012SAndroid Build Coastguard Worker  // Resource is under creation.
800*d5c09012SAndroid Build Coastguard Worker  CREATING = 2;
801*d5c09012SAndroid Build Coastguard Worker
802*d5c09012SAndroid Build Coastguard Worker  // Resource is under deletion.
803*d5c09012SAndroid Build Coastguard Worker  DELETING = 3;
804*d5c09012SAndroid Build Coastguard Worker
805*d5c09012SAndroid Build Coastguard Worker  // Resource is active but has unresolved actions.
806*d5c09012SAndroid Build Coastguard Worker  ACTION_REQUIRED = 4;
807*d5c09012SAndroid Build Coastguard Worker}
808