xref: /aosp_15_r20/external/googleapis/google/cloud/dataplex/v1/datascans.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/cloud/dataplex/v1/data_profile.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/dataplex/v1/data_quality.proto";
25*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/dataplex/v1/processing.proto";
26*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/dataplex/v1/resources.proto";
27*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/dataplex/v1/service.proto";
28*d5c09012SAndroid Build Coastguard Workerimport "google/longrunning/operations.proto";
29*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto";
30*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto";
31*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
32*d5c09012SAndroid Build Coastguard Worker
33*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb";
34*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
35*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "DataScansProto";
36*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.dataplex.v1";
37*d5c09012SAndroid Build Coastguard Worker
38*d5c09012SAndroid Build Coastguard Worker// DataScanService manages DataScan resources which can be configured to run
39*d5c09012SAndroid Build Coastguard Worker// various types of data scanning workload and generate enriched metadata (e.g.
40*d5c09012SAndroid Build Coastguard Worker// Data Profile, Data Quality) for the data source.
41*d5c09012SAndroid Build Coastguard Workerservice DataScanService {
42*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "dataplex.googleapis.com";
43*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
44*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform";
45*d5c09012SAndroid Build Coastguard Worker
46*d5c09012SAndroid Build Coastguard Worker  // Creates a DataScan resource.
47*d5c09012SAndroid Build Coastguard Worker  rpc CreateDataScan(CreateDataScanRequest)
48*d5c09012SAndroid Build Coastguard Worker      returns (google.longrunning.Operation) {
49*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
50*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=projects/*/locations/*}/dataScans"
51*d5c09012SAndroid Build Coastguard Worker      body: "data_scan"
52*d5c09012SAndroid Build Coastguard Worker    };
53*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,data_scan,data_scan_id";
54*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
55*d5c09012SAndroid Build Coastguard Worker      response_type: "DataScan"
56*d5c09012SAndroid Build Coastguard Worker      metadata_type: "OperationMetadata"
57*d5c09012SAndroid Build Coastguard Worker    };
58*d5c09012SAndroid Build Coastguard Worker  }
59*d5c09012SAndroid Build Coastguard Worker
60*d5c09012SAndroid Build Coastguard Worker  // Updates a DataScan resource.
61*d5c09012SAndroid Build Coastguard Worker  rpc UpdateDataScan(UpdateDataScanRequest)
62*d5c09012SAndroid Build Coastguard Worker      returns (google.longrunning.Operation) {
63*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
64*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{data_scan.name=projects/*/locations/*/dataScans/*}"
65*d5c09012SAndroid Build Coastguard Worker      body: "data_scan"
66*d5c09012SAndroid Build Coastguard Worker    };
67*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "data_scan,update_mask";
68*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
69*d5c09012SAndroid Build Coastguard Worker      response_type: "DataScan"
70*d5c09012SAndroid Build Coastguard Worker      metadata_type: "OperationMetadata"
71*d5c09012SAndroid Build Coastguard Worker    };
72*d5c09012SAndroid Build Coastguard Worker  }
73*d5c09012SAndroid Build Coastguard Worker
74*d5c09012SAndroid Build Coastguard Worker  // Deletes a DataScan resource.
75*d5c09012SAndroid Build Coastguard Worker  rpc DeleteDataScan(DeleteDataScanRequest)
76*d5c09012SAndroid Build Coastguard Worker      returns (google.longrunning.Operation) {
77*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
78*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=projects/*/locations/*/dataScans/*}"
79*d5c09012SAndroid Build Coastguard Worker    };
80*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
81*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
82*d5c09012SAndroid Build Coastguard Worker      response_type: "google.protobuf.Empty"
83*d5c09012SAndroid Build Coastguard Worker      metadata_type: "OperationMetadata"
84*d5c09012SAndroid Build Coastguard Worker    };
85*d5c09012SAndroid Build Coastguard Worker  }
86*d5c09012SAndroid Build Coastguard Worker
87*d5c09012SAndroid Build Coastguard Worker  // Gets a DataScan resource.
88*d5c09012SAndroid Build Coastguard Worker  rpc GetDataScan(GetDataScanRequest) returns (DataScan) {
89*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
90*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=projects/*/locations/*/dataScans/*}"
91*d5c09012SAndroid Build Coastguard Worker    };
92*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
93*d5c09012SAndroid Build Coastguard Worker  }
94*d5c09012SAndroid Build Coastguard Worker
95*d5c09012SAndroid Build Coastguard Worker  // Lists DataScans.
96*d5c09012SAndroid Build Coastguard Worker  rpc ListDataScans(ListDataScansRequest) returns (ListDataScansResponse) {
97*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
98*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*/locations/*}/dataScans"
99*d5c09012SAndroid Build Coastguard Worker    };
100*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
101*d5c09012SAndroid Build Coastguard Worker  }
102*d5c09012SAndroid Build Coastguard Worker
103*d5c09012SAndroid Build Coastguard Worker  // Runs an on-demand execution of a DataScan
104*d5c09012SAndroid Build Coastguard Worker  rpc RunDataScan(RunDataScanRequest) returns (RunDataScanResponse) {
105*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
106*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{name=projects/*/locations/*/dataScans/*}:run"
107*d5c09012SAndroid Build Coastguard Worker      body: "*"
108*d5c09012SAndroid Build Coastguard Worker    };
109*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
110*d5c09012SAndroid Build Coastguard Worker  }
111*d5c09012SAndroid Build Coastguard Worker
112*d5c09012SAndroid Build Coastguard Worker  // Gets a DataScanJob resource.
113*d5c09012SAndroid Build Coastguard Worker  rpc GetDataScanJob(GetDataScanJobRequest) returns (DataScanJob) {
114*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
115*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=projects/*/locations/*/dataScans/*/jobs/*}"
116*d5c09012SAndroid Build Coastguard Worker    };
117*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
118*d5c09012SAndroid Build Coastguard Worker  }
119*d5c09012SAndroid Build Coastguard Worker
120*d5c09012SAndroid Build Coastguard Worker  // Lists DataScanJobs under the given DataScan.
121*d5c09012SAndroid Build Coastguard Worker  rpc ListDataScanJobs(ListDataScanJobsRequest)
122*d5c09012SAndroid Build Coastguard Worker      returns (ListDataScanJobsResponse) {
123*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
124*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*/locations/*/dataScans/*}/jobs"
125*d5c09012SAndroid Build Coastguard Worker    };
126*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
127*d5c09012SAndroid Build Coastguard Worker  }
128*d5c09012SAndroid Build Coastguard Worker
129*d5c09012SAndroid Build Coastguard Worker  // Generates recommended DataQualityRule from a data profiling DataScan.
130*d5c09012SAndroid Build Coastguard Worker  rpc GenerateDataQualityRules(GenerateDataQualityRulesRequest)
131*d5c09012SAndroid Build Coastguard Worker      returns (GenerateDataQualityRulesResponse) {
132*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
133*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{name=projects/*/locations/*/dataScans/*}:generateDataQualityRules"
134*d5c09012SAndroid Build Coastguard Worker      body: "*"
135*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
136*d5c09012SAndroid Build Coastguard Worker        post: "/v1/{name=projects/*/locations/*/dataScans/*/jobs/*}:generateDataQualityRules"
137*d5c09012SAndroid Build Coastguard Worker        body: "*"
138*d5c09012SAndroid Build Coastguard Worker      }
139*d5c09012SAndroid Build Coastguard Worker    };
140*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
141*d5c09012SAndroid Build Coastguard Worker  }
142*d5c09012SAndroid Build Coastguard Worker}
143*d5c09012SAndroid Build Coastguard Worker
144*d5c09012SAndroid Build Coastguard Worker// Create dataScan request.
145*d5c09012SAndroid Build Coastguard Workermessage CreateDataScanRequest {
146*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the parent location:
147*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location_id}`
148*d5c09012SAndroid Build Coastguard Worker  // where `project` refers to a *project_id* or *project_number* and
149*d5c09012SAndroid Build Coastguard Worker  // `location_id` refers to a GCP region.
150*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
151*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
152*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
153*d5c09012SAndroid Build Coastguard Worker      type: "locations.googleapis.com/Location"
154*d5c09012SAndroid Build Coastguard Worker    }
155*d5c09012SAndroid Build Coastguard Worker  ];
156*d5c09012SAndroid Build Coastguard Worker
157*d5c09012SAndroid Build Coastguard Worker  // Required. DataScan resource.
158*d5c09012SAndroid Build Coastguard Worker  DataScan data_scan = 2 [(google.api.field_behavior) = REQUIRED];
159*d5c09012SAndroid Build Coastguard Worker
160*d5c09012SAndroid Build Coastguard Worker  // Required. DataScan identifier.
161*d5c09012SAndroid Build Coastguard Worker  //
162*d5c09012SAndroid Build Coastguard Worker  // * Must contain only lowercase letters, numbers and hyphens.
163*d5c09012SAndroid Build Coastguard Worker  // * Must start with a letter.
164*d5c09012SAndroid Build Coastguard Worker  // * Must end with a number or a letter.
165*d5c09012SAndroid Build Coastguard Worker  // * Must be between 1-63 characters.
166*d5c09012SAndroid Build Coastguard Worker  // * Must be unique within the customer project / location.
167*d5c09012SAndroid Build Coastguard Worker  string data_scan_id = 3 [(google.api.field_behavior) = REQUIRED];
168*d5c09012SAndroid Build Coastguard Worker
169*d5c09012SAndroid Build Coastguard Worker  // Optional. Only validate the request, but do not perform mutations.
170*d5c09012SAndroid Build Coastguard Worker  // The default is `false`.
171*d5c09012SAndroid Build Coastguard Worker  bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL];
172*d5c09012SAndroid Build Coastguard Worker}
173*d5c09012SAndroid Build Coastguard Worker
174*d5c09012SAndroid Build Coastguard Worker// Update dataScan request.
175*d5c09012SAndroid Build Coastguard Workermessage UpdateDataScanRequest {
176*d5c09012SAndroid Build Coastguard Worker  // Required. DataScan resource to be updated.
177*d5c09012SAndroid Build Coastguard Worker  //
178*d5c09012SAndroid Build Coastguard Worker  // Only fields specified in `update_mask` are updated.
179*d5c09012SAndroid Build Coastguard Worker  DataScan data_scan = 1 [(google.api.field_behavior) = REQUIRED];
180*d5c09012SAndroid Build Coastguard Worker
181*d5c09012SAndroid Build Coastguard Worker  // Required. Mask of fields to update.
182*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 2
183*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = REQUIRED];
184*d5c09012SAndroid Build Coastguard Worker
185*d5c09012SAndroid Build Coastguard Worker  // Optional. Only validate the request, but do not perform mutations.
186*d5c09012SAndroid Build Coastguard Worker  // The default is `false`.
187*d5c09012SAndroid Build Coastguard Worker  bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL];
188*d5c09012SAndroid Build Coastguard Worker}
189*d5c09012SAndroid Build Coastguard Worker
190*d5c09012SAndroid Build Coastguard Worker// Delete dataScan request.
191*d5c09012SAndroid Build Coastguard Workermessage DeleteDataScanRequest {
192*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the dataScan:
193*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}`
194*d5c09012SAndroid Build Coastguard Worker  // where `project` refers to a *project_id* or *project_number* and
195*d5c09012SAndroid Build Coastguard Worker  // `location_id` refers to a GCP region.
196*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
197*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
198*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
199*d5c09012SAndroid Build Coastguard Worker      type: "dataplex.googleapis.com/DataScan"
200*d5c09012SAndroid Build Coastguard Worker    }
201*d5c09012SAndroid Build Coastguard Worker  ];
202*d5c09012SAndroid Build Coastguard Worker}
203*d5c09012SAndroid Build Coastguard Worker
204*d5c09012SAndroid Build Coastguard Worker// Get dataScan request.
205*d5c09012SAndroid Build Coastguard Workermessage GetDataScanRequest {
206*d5c09012SAndroid Build Coastguard Worker  // DataScan view options.
207*d5c09012SAndroid Build Coastguard Worker  enum DataScanView {
208*d5c09012SAndroid Build Coastguard Worker    // The API will default to the `BASIC` view.
209*d5c09012SAndroid Build Coastguard Worker    DATA_SCAN_VIEW_UNSPECIFIED = 0;
210*d5c09012SAndroid Build Coastguard Worker
211*d5c09012SAndroid Build Coastguard Worker    // Basic view that does not include *spec* and *result*.
212*d5c09012SAndroid Build Coastguard Worker    BASIC = 1;
213*d5c09012SAndroid Build Coastguard Worker
214*d5c09012SAndroid Build Coastguard Worker    // Include everything.
215*d5c09012SAndroid Build Coastguard Worker    FULL = 10;
216*d5c09012SAndroid Build Coastguard Worker  }
217*d5c09012SAndroid Build Coastguard Worker
218*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the dataScan:
219*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}`
220*d5c09012SAndroid Build Coastguard Worker  // where `project` refers to a *project_id* or *project_number* and
221*d5c09012SAndroid Build Coastguard Worker  // `location_id` refers to a GCP region.
222*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
223*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
224*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
225*d5c09012SAndroid Build Coastguard Worker      type: "dataplex.googleapis.com/DataScan"
226*d5c09012SAndroid Build Coastguard Worker    }
227*d5c09012SAndroid Build Coastguard Worker  ];
228*d5c09012SAndroid Build Coastguard Worker
229*d5c09012SAndroid Build Coastguard Worker  // Optional. Select the DataScan view to return. Defaults to `BASIC`.
230*d5c09012SAndroid Build Coastguard Worker  DataScanView view = 2 [(google.api.field_behavior) = OPTIONAL];
231*d5c09012SAndroid Build Coastguard Worker}
232*d5c09012SAndroid Build Coastguard Worker
233*d5c09012SAndroid Build Coastguard Worker// List dataScans request.
234*d5c09012SAndroid Build Coastguard Workermessage ListDataScansRequest {
235*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the parent location:
236*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location_id}`
237*d5c09012SAndroid Build Coastguard Worker  // where `project` refers to a *project_id* or *project_number* and
238*d5c09012SAndroid Build Coastguard Worker  // `location_id` refers to a GCP region.
239*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
240*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
241*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
242*d5c09012SAndroid Build Coastguard Worker      type: "locations.googleapis.com/Location"
243*d5c09012SAndroid Build Coastguard Worker    }
244*d5c09012SAndroid Build Coastguard Worker  ];
245*d5c09012SAndroid Build Coastguard Worker
246*d5c09012SAndroid Build Coastguard Worker  // Optional. Maximum number of dataScans to return. The service may return
247*d5c09012SAndroid Build Coastguard Worker  // fewer than this value. If unspecified, at most 500 scans will be returned.
248*d5c09012SAndroid Build Coastguard Worker  // The maximum value is 1000; values above 1000 will be coerced to 1000.
249*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
250*d5c09012SAndroid Build Coastguard Worker
251*d5c09012SAndroid Build Coastguard Worker  // Optional. Page token received from a previous `ListDataScans` call. Provide
252*d5c09012SAndroid Build Coastguard Worker  // this to retrieve the subsequent page. When paginating, all other parameters
253*d5c09012SAndroid Build Coastguard Worker  // provided to `ListDataScans` must match the call that provided the
254*d5c09012SAndroid Build Coastguard Worker  // page token.
255*d5c09012SAndroid Build Coastguard Worker  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
256*d5c09012SAndroid Build Coastguard Worker
257*d5c09012SAndroid Build Coastguard Worker  // Optional. Filter request.
258*d5c09012SAndroid Build Coastguard Worker  string filter = 4 [(google.api.field_behavior) = OPTIONAL];
259*d5c09012SAndroid Build Coastguard Worker
260*d5c09012SAndroid Build Coastguard Worker  // Optional. Order by fields (`name` or `create_time`) for the result.
261*d5c09012SAndroid Build Coastguard Worker  // If not specified, the ordering is undefined.
262*d5c09012SAndroid Build Coastguard Worker  string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
263*d5c09012SAndroid Build Coastguard Worker}
264*d5c09012SAndroid Build Coastguard Worker
265*d5c09012SAndroid Build Coastguard Worker// List dataScans response.
266*d5c09012SAndroid Build Coastguard Workermessage ListDataScansResponse {
267*d5c09012SAndroid Build Coastguard Worker  // DataScans (`BASIC` view only) under the given parent location.
268*d5c09012SAndroid Build Coastguard Worker  repeated DataScan data_scans = 1;
269*d5c09012SAndroid Build Coastguard Worker
270*d5c09012SAndroid Build Coastguard Worker  // Token to retrieve the next page of results, or empty if there are no more
271*d5c09012SAndroid Build Coastguard Worker  // results in the list.
272*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
273*d5c09012SAndroid Build Coastguard Worker
274*d5c09012SAndroid Build Coastguard Worker  // Locations that could not be reached.
275*d5c09012SAndroid Build Coastguard Worker  repeated string unreachable = 3;
276*d5c09012SAndroid Build Coastguard Worker}
277*d5c09012SAndroid Build Coastguard Worker
278*d5c09012SAndroid Build Coastguard Worker// Run DataScan Request
279*d5c09012SAndroid Build Coastguard Workermessage RunDataScanRequest {
280*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the DataScan:
281*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}`.
282*d5c09012SAndroid Build Coastguard Worker  // where `project` refers to a *project_id* or *project_number* and
283*d5c09012SAndroid Build Coastguard Worker  // `location_id` refers to a GCP region.
284*d5c09012SAndroid Build Coastguard Worker  //
285*d5c09012SAndroid Build Coastguard Worker  // Only **OnDemand** data scans are allowed.
286*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
287*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
288*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
289*d5c09012SAndroid Build Coastguard Worker      type: "dataplex.googleapis.com/DataScan"
290*d5c09012SAndroid Build Coastguard Worker    }
291*d5c09012SAndroid Build Coastguard Worker  ];
292*d5c09012SAndroid Build Coastguard Worker}
293*d5c09012SAndroid Build Coastguard Worker
294*d5c09012SAndroid Build Coastguard Worker// Run DataScan Response.
295*d5c09012SAndroid Build Coastguard Workermessage RunDataScanResponse {
296*d5c09012SAndroid Build Coastguard Worker  // DataScanJob created by RunDataScan request.
297*d5c09012SAndroid Build Coastguard Worker  DataScanJob job = 1;
298*d5c09012SAndroid Build Coastguard Worker}
299*d5c09012SAndroid Build Coastguard Worker
300*d5c09012SAndroid Build Coastguard Worker// Get DataScanJob request.
301*d5c09012SAndroid Build Coastguard Workermessage GetDataScanJobRequest {
302*d5c09012SAndroid Build Coastguard Worker  // DataScanJob view options.
303*d5c09012SAndroid Build Coastguard Worker  enum DataScanJobView {
304*d5c09012SAndroid Build Coastguard Worker    // The API will default to the `BASIC` view.
305*d5c09012SAndroid Build Coastguard Worker    DATA_SCAN_JOB_VIEW_UNSPECIFIED = 0;
306*d5c09012SAndroid Build Coastguard Worker
307*d5c09012SAndroid Build Coastguard Worker    // Basic view that does not include *spec* and *result*.
308*d5c09012SAndroid Build Coastguard Worker    BASIC = 1;
309*d5c09012SAndroid Build Coastguard Worker
310*d5c09012SAndroid Build Coastguard Worker    // Include everything.
311*d5c09012SAndroid Build Coastguard Worker    FULL = 10;
312*d5c09012SAndroid Build Coastguard Worker  }
313*d5c09012SAndroid Build Coastguard Worker
314*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the DataScanJob:
315*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}/jobs/{data_scan_job_id}`
316*d5c09012SAndroid Build Coastguard Worker  // where `project` refers to a *project_id* or *project_number* and
317*d5c09012SAndroid Build Coastguard Worker  // `location_id` refers to a GCP region.
318*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
319*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
320*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
321*d5c09012SAndroid Build Coastguard Worker      type: "dataplex.googleapis.com/DataScanJob"
322*d5c09012SAndroid Build Coastguard Worker    }
323*d5c09012SAndroid Build Coastguard Worker  ];
324*d5c09012SAndroid Build Coastguard Worker
325*d5c09012SAndroid Build Coastguard Worker  // Optional. Select the DataScanJob view to return. Defaults to `BASIC`.
326*d5c09012SAndroid Build Coastguard Worker  DataScanJobView view = 2 [(google.api.field_behavior) = OPTIONAL];
327*d5c09012SAndroid Build Coastguard Worker}
328*d5c09012SAndroid Build Coastguard Worker
329*d5c09012SAndroid Build Coastguard Worker// List DataScanJobs request.
330*d5c09012SAndroid Build Coastguard Workermessage ListDataScanJobsRequest {
331*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the parent environment:
332*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}`
333*d5c09012SAndroid Build Coastguard Worker  // where `project` refers to a *project_id* or *project_number* and
334*d5c09012SAndroid Build Coastguard Worker  // `location_id` refers to a GCP region.
335*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
336*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
337*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
338*d5c09012SAndroid Build Coastguard Worker      type: "dataplex.googleapis.com/DataScan"
339*d5c09012SAndroid Build Coastguard Worker    }
340*d5c09012SAndroid Build Coastguard Worker  ];
341*d5c09012SAndroid Build Coastguard Worker
342*d5c09012SAndroid Build Coastguard Worker  // Optional. Maximum number of DataScanJobs to return. The service may return
343*d5c09012SAndroid Build Coastguard Worker  // fewer than this value. If unspecified, at most 10 DataScanJobs will be
344*d5c09012SAndroid Build Coastguard Worker  // returned. The maximum value is 1000; values above 1000 will be coerced to
345*d5c09012SAndroid Build Coastguard Worker  // 1000.
346*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
347*d5c09012SAndroid Build Coastguard Worker
348*d5c09012SAndroid Build Coastguard Worker  // Optional. Page token received from a previous `ListDataScanJobs` call.
349*d5c09012SAndroid Build Coastguard Worker  // Provide this to retrieve the subsequent page. When paginating, all other
350*d5c09012SAndroid Build Coastguard Worker  // parameters provided to `ListDataScanJobs` must match the call that provided
351*d5c09012SAndroid Build Coastguard Worker  // the page token.
352*d5c09012SAndroid Build Coastguard Worker  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
353*d5c09012SAndroid Build Coastguard Worker
354*d5c09012SAndroid Build Coastguard Worker  // Optional. An expression for filtering the results of the ListDataScanJobs
355*d5c09012SAndroid Build Coastguard Worker  // request.
356*d5c09012SAndroid Build Coastguard Worker  //
357*d5c09012SAndroid Build Coastguard Worker  // If unspecified, all datascan jobs will be returned. Multiple filters can be
358*d5c09012SAndroid Build Coastguard Worker  // applied (with `AND`, `OR` logical operators). Filters are case-sensitive.
359*d5c09012SAndroid Build Coastguard Worker  //
360*d5c09012SAndroid Build Coastguard Worker  // Allowed fields are:
361*d5c09012SAndroid Build Coastguard Worker  //
362*d5c09012SAndroid Build Coastguard Worker  // - `start_time`
363*d5c09012SAndroid Build Coastguard Worker  // - `end_time`
364*d5c09012SAndroid Build Coastguard Worker  //
365*d5c09012SAndroid Build Coastguard Worker  // `start_time` and `end_time` expect RFC-3339 formatted strings (e.g.
366*d5c09012SAndroid Build Coastguard Worker  // 2018-10-08T18:30:00-07:00).
367*d5c09012SAndroid Build Coastguard Worker  //
368*d5c09012SAndroid Build Coastguard Worker  // For instance, 'start_time > 2018-10-08T00:00:00.123456789Z AND end_time <
369*d5c09012SAndroid Build Coastguard Worker  // 2018-10-09T00:00:00.123456789Z' limits results to DataScanJobs between
370*d5c09012SAndroid Build Coastguard Worker  // specified start and end times.
371*d5c09012SAndroid Build Coastguard Worker  string filter = 4 [(google.api.field_behavior) = OPTIONAL];
372*d5c09012SAndroid Build Coastguard Worker}
373*d5c09012SAndroid Build Coastguard Worker
374*d5c09012SAndroid Build Coastguard Worker// List DataScanJobs response.
375*d5c09012SAndroid Build Coastguard Workermessage ListDataScanJobsResponse {
376*d5c09012SAndroid Build Coastguard Worker  // DataScanJobs (`BASIC` view only) under a given dataScan.
377*d5c09012SAndroid Build Coastguard Worker  repeated DataScanJob data_scan_jobs = 1;
378*d5c09012SAndroid Build Coastguard Worker
379*d5c09012SAndroid Build Coastguard Worker  // Token to retrieve the next page of results, or empty if there are no more
380*d5c09012SAndroid Build Coastguard Worker  // results in the list.
381*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
382*d5c09012SAndroid Build Coastguard Worker}
383*d5c09012SAndroid Build Coastguard Worker
384*d5c09012SAndroid Build Coastguard Worker// Generate recommended DataQualityRules request.
385*d5c09012SAndroid Build Coastguard Workermessage GenerateDataQualityRulesRequest {
386*d5c09012SAndroid Build Coastguard Worker  // Required. The name should be either
387*d5c09012SAndroid Build Coastguard Worker  // * the name of a datascan with at least one successful completed data
388*d5c09012SAndroid Build Coastguard Worker  // profiling job, or
389*d5c09012SAndroid Build Coastguard Worker  // * the name of a successful completed data profiling datascan job.
390*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = REQUIRED];
391*d5c09012SAndroid Build Coastguard Worker}
392*d5c09012SAndroid Build Coastguard Worker
393*d5c09012SAndroid Build Coastguard Worker// Generate recommended DataQualityRules response.
394*d5c09012SAndroid Build Coastguard Workermessage GenerateDataQualityRulesResponse {
395*d5c09012SAndroid Build Coastguard Worker  // Generated recommended {@link DataQualityRule}s.
396*d5c09012SAndroid Build Coastguard Worker  repeated DataQualityRule rule = 1;
397*d5c09012SAndroid Build Coastguard Worker}
398*d5c09012SAndroid Build Coastguard Worker
399*d5c09012SAndroid Build Coastguard Worker// Represents a user-visible job which provides the insights for the related
400*d5c09012SAndroid Build Coastguard Worker// data source.
401*d5c09012SAndroid Build Coastguard Worker//
402*d5c09012SAndroid Build Coastguard Worker// For example:
403*d5c09012SAndroid Build Coastguard Worker//
404*d5c09012SAndroid Build Coastguard Worker// * Data Quality: generates queries based on the rules and runs against the
405*d5c09012SAndroid Build Coastguard Worker//   data to get data quality check results.
406*d5c09012SAndroid Build Coastguard Worker// * Data Profile: analyzes the data in table(s) and generates insights about
407*d5c09012SAndroid Build Coastguard Worker//   the structure, content and relationships (such as null percent,
408*d5c09012SAndroid Build Coastguard Worker//   cardinality, min/max/mean, etc).
409*d5c09012SAndroid Build Coastguard Workermessage DataScan {
410*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
411*d5c09012SAndroid Build Coastguard Worker    type: "dataplex.googleapis.com/DataScan"
412*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/dataScans/{dataScan}"
413*d5c09012SAndroid Build Coastguard Worker  };
414*d5c09012SAndroid Build Coastguard Worker
415*d5c09012SAndroid Build Coastguard Worker  // DataScan execution settings.
416*d5c09012SAndroid Build Coastguard Worker  message ExecutionSpec {
417*d5c09012SAndroid Build Coastguard Worker    // Optional. Spec related to how often and when a scan should be triggered.
418*d5c09012SAndroid Build Coastguard Worker    //
419*d5c09012SAndroid Build Coastguard Worker    // If not specified, the default is `OnDemand`, which means the scan will
420*d5c09012SAndroid Build Coastguard Worker    // not run until the user calls `RunDataScan` API.
421*d5c09012SAndroid Build Coastguard Worker    Trigger trigger = 1 [(google.api.field_behavior) = OPTIONAL];
422*d5c09012SAndroid Build Coastguard Worker
423*d5c09012SAndroid Build Coastguard Worker    // Spec related to incremental scan of the data
424*d5c09012SAndroid Build Coastguard Worker    //
425*d5c09012SAndroid Build Coastguard Worker    // When an option is selected for incremental scan, it cannot be unset or
426*d5c09012SAndroid Build Coastguard Worker    // changed. If not specified, a data scan will run for all data in the
427*d5c09012SAndroid Build Coastguard Worker    // table.
428*d5c09012SAndroid Build Coastguard Worker    oneof incremental {
429*d5c09012SAndroid Build Coastguard Worker      // Immutable. The unnested field (of type *Date* or *Timestamp*) that
430*d5c09012SAndroid Build Coastguard Worker      // contains values which monotonically increase over time.
431*d5c09012SAndroid Build Coastguard Worker      //
432*d5c09012SAndroid Build Coastguard Worker      // If not specified, a data scan will run for all data in the table.
433*d5c09012SAndroid Build Coastguard Worker      string field = 100 [(google.api.field_behavior) = IMMUTABLE];
434*d5c09012SAndroid Build Coastguard Worker    }
435*d5c09012SAndroid Build Coastguard Worker  }
436*d5c09012SAndroid Build Coastguard Worker
437*d5c09012SAndroid Build Coastguard Worker  // Status of the data scan execution.
438*d5c09012SAndroid Build Coastguard Worker  message ExecutionStatus {
439*d5c09012SAndroid Build Coastguard Worker    // The time when the latest DataScanJob started.
440*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Timestamp latest_job_start_time = 4;
441*d5c09012SAndroid Build Coastguard Worker
442*d5c09012SAndroid Build Coastguard Worker    // The time when the latest DataScanJob ended.
443*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Timestamp latest_job_end_time = 5;
444*d5c09012SAndroid Build Coastguard Worker  }
445*d5c09012SAndroid Build Coastguard Worker
446*d5c09012SAndroid Build Coastguard Worker  // Output only. The relative resource name of the scan, of the form:
447*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location_id}/dataScans/{datascan_id}`,
448*d5c09012SAndroid Build Coastguard Worker  // where `project` refers to a *project_id* or *project_number* and
449*d5c09012SAndroid Build Coastguard Worker  // `location_id` refers to a GCP region.
450*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
451*d5c09012SAndroid Build Coastguard Worker
452*d5c09012SAndroid Build Coastguard Worker  // Output only. System generated globally unique ID for the scan. This ID will
453*d5c09012SAndroid Build Coastguard Worker  // be different if the scan is deleted and re-created with the same name.
454*d5c09012SAndroid Build Coastguard Worker  string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
455*d5c09012SAndroid Build Coastguard Worker
456*d5c09012SAndroid Build Coastguard Worker  // Optional. Description of the scan.
457*d5c09012SAndroid Build Coastguard Worker  //
458*d5c09012SAndroid Build Coastguard Worker  // * Must be between 1-1024 characters.
459*d5c09012SAndroid Build Coastguard Worker  string description = 3 [(google.api.field_behavior) = OPTIONAL];
460*d5c09012SAndroid Build Coastguard Worker
461*d5c09012SAndroid Build Coastguard Worker  // Optional. User friendly display name.
462*d5c09012SAndroid Build Coastguard Worker  //
463*d5c09012SAndroid Build Coastguard Worker  // * Must be between 1-256 characters.
464*d5c09012SAndroid Build Coastguard Worker  string display_name = 4 [(google.api.field_behavior) = OPTIONAL];
465*d5c09012SAndroid Build Coastguard Worker
466*d5c09012SAndroid Build Coastguard Worker  // Optional. User-defined labels for the scan.
467*d5c09012SAndroid Build Coastguard Worker  map<string, string> labels = 5 [(google.api.field_behavior) = OPTIONAL];
468*d5c09012SAndroid Build Coastguard Worker
469*d5c09012SAndroid Build Coastguard Worker  // Output only. Current state of the DataScan.
470*d5c09012SAndroid Build Coastguard Worker  State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
471*d5c09012SAndroid Build Coastguard Worker
472*d5c09012SAndroid Build Coastguard Worker  // Output only. The time when the scan was created.
473*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 7
474*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
475*d5c09012SAndroid Build Coastguard Worker
476*d5c09012SAndroid Build Coastguard Worker  // Output only. The time when the scan was last updated.
477*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 8
478*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
479*d5c09012SAndroid Build Coastguard Worker
480*d5c09012SAndroid Build Coastguard Worker  // Required. The data source for DataScan.
481*d5c09012SAndroid Build Coastguard Worker  DataSource data = 9 [(google.api.field_behavior) = REQUIRED];
482*d5c09012SAndroid Build Coastguard Worker
483*d5c09012SAndroid Build Coastguard Worker  // Optional. DataScan execution settings.
484*d5c09012SAndroid Build Coastguard Worker  //
485*d5c09012SAndroid Build Coastguard Worker  // If not specified, the fields in it will use their default values.
486*d5c09012SAndroid Build Coastguard Worker  ExecutionSpec execution_spec = 10 [(google.api.field_behavior) = OPTIONAL];
487*d5c09012SAndroid Build Coastguard Worker
488*d5c09012SAndroid Build Coastguard Worker  // Output only. Status of the data scan execution.
489*d5c09012SAndroid Build Coastguard Worker  ExecutionStatus execution_status = 11
490*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
491*d5c09012SAndroid Build Coastguard Worker
492*d5c09012SAndroid Build Coastguard Worker  // Output only. The type of DataScan.
493*d5c09012SAndroid Build Coastguard Worker  DataScanType type = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
494*d5c09012SAndroid Build Coastguard Worker
495*d5c09012SAndroid Build Coastguard Worker  // Data Scan related setting.
496*d5c09012SAndroid Build Coastguard Worker  // It is required and immutable which means once data_quality_spec is set, it
497*d5c09012SAndroid Build Coastguard Worker  // cannot be changed to data_profile_spec.
498*d5c09012SAndroid Build Coastguard Worker  oneof spec {
499*d5c09012SAndroid Build Coastguard Worker    // DataQualityScan related setting.
500*d5c09012SAndroid Build Coastguard Worker    DataQualitySpec data_quality_spec = 100;
501*d5c09012SAndroid Build Coastguard Worker
502*d5c09012SAndroid Build Coastguard Worker    // DataProfileScan related setting.
503*d5c09012SAndroid Build Coastguard Worker    DataProfileSpec data_profile_spec = 101;
504*d5c09012SAndroid Build Coastguard Worker  }
505*d5c09012SAndroid Build Coastguard Worker
506*d5c09012SAndroid Build Coastguard Worker  // The result of the data scan.
507*d5c09012SAndroid Build Coastguard Worker  oneof result {
508*d5c09012SAndroid Build Coastguard Worker    // Output only. The result of the data quality scan.
509*d5c09012SAndroid Build Coastguard Worker    DataQualityResult data_quality_result = 200
510*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OUTPUT_ONLY];
511*d5c09012SAndroid Build Coastguard Worker
512*d5c09012SAndroid Build Coastguard Worker    // Output only. The result of the data profile scan.
513*d5c09012SAndroid Build Coastguard Worker    DataProfileResult data_profile_result = 201
514*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OUTPUT_ONLY];
515*d5c09012SAndroid Build Coastguard Worker  }
516*d5c09012SAndroid Build Coastguard Worker}
517*d5c09012SAndroid Build Coastguard Worker
518*d5c09012SAndroid Build Coastguard Worker// A DataScanJob represents an instance of DataScan execution.
519*d5c09012SAndroid Build Coastguard Workermessage DataScanJob {
520*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
521*d5c09012SAndroid Build Coastguard Worker    type: "dataplex.googleapis.com/DataScanJob"
522*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/dataScans/{dataScan}/jobs/{job}"
523*d5c09012SAndroid Build Coastguard Worker  };
524*d5c09012SAndroid Build Coastguard Worker
525*d5c09012SAndroid Build Coastguard Worker  // Execution state for the DataScanJob.
526*d5c09012SAndroid Build Coastguard Worker  enum State {
527*d5c09012SAndroid Build Coastguard Worker    // The DataScanJob state is unspecified.
528*d5c09012SAndroid Build Coastguard Worker    STATE_UNSPECIFIED = 0;
529*d5c09012SAndroid Build Coastguard Worker
530*d5c09012SAndroid Build Coastguard Worker    // The DataScanJob is running.
531*d5c09012SAndroid Build Coastguard Worker    RUNNING = 1;
532*d5c09012SAndroid Build Coastguard Worker
533*d5c09012SAndroid Build Coastguard Worker    // The DataScanJob is canceling.
534*d5c09012SAndroid Build Coastguard Worker    CANCELING = 2;
535*d5c09012SAndroid Build Coastguard Worker
536*d5c09012SAndroid Build Coastguard Worker    // The DataScanJob cancellation was successful.
537*d5c09012SAndroid Build Coastguard Worker    CANCELLED = 3;
538*d5c09012SAndroid Build Coastguard Worker
539*d5c09012SAndroid Build Coastguard Worker    // The DataScanJob completed successfully.
540*d5c09012SAndroid Build Coastguard Worker    SUCCEEDED = 4;
541*d5c09012SAndroid Build Coastguard Worker
542*d5c09012SAndroid Build Coastguard Worker    // The DataScanJob is no longer running due to an error.
543*d5c09012SAndroid Build Coastguard Worker    FAILED = 5;
544*d5c09012SAndroid Build Coastguard Worker
545*d5c09012SAndroid Build Coastguard Worker    // The DataScanJob has been created but not started to run yet.
546*d5c09012SAndroid Build Coastguard Worker    PENDING = 7;
547*d5c09012SAndroid Build Coastguard Worker  }
548*d5c09012SAndroid Build Coastguard Worker
549*d5c09012SAndroid Build Coastguard Worker  // Output only. The relative resource name of the DataScanJob, of the form:
550*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location_id}/dataScans/{datascan_id}/jobs/{job_id}`,
551*d5c09012SAndroid Build Coastguard Worker  // where `project` refers to a *project_id* or *project_number* and
552*d5c09012SAndroid Build Coastguard Worker  // `location_id` refers to a GCP region.
553*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
554*d5c09012SAndroid Build Coastguard Worker
555*d5c09012SAndroid Build Coastguard Worker  // Output only. System generated globally unique ID for the DataScanJob.
556*d5c09012SAndroid Build Coastguard Worker  string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
557*d5c09012SAndroid Build Coastguard Worker
558*d5c09012SAndroid Build Coastguard Worker  // Output only. The time when the DataScanJob was started.
559*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp start_time = 3
560*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
561*d5c09012SAndroid Build Coastguard Worker
562*d5c09012SAndroid Build Coastguard Worker  // Output only. The time when the DataScanJob ended.
563*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp end_time = 4
564*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
565*d5c09012SAndroid Build Coastguard Worker
566*d5c09012SAndroid Build Coastguard Worker  // Output only. Execution state for the DataScanJob.
567*d5c09012SAndroid Build Coastguard Worker  State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
568*d5c09012SAndroid Build Coastguard Worker
569*d5c09012SAndroid Build Coastguard Worker  // Output only. Additional information about the current state.
570*d5c09012SAndroid Build Coastguard Worker  string message = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
571*d5c09012SAndroid Build Coastguard Worker
572*d5c09012SAndroid Build Coastguard Worker  // Output only. The type of the parent DataScan.
573*d5c09012SAndroid Build Coastguard Worker  DataScanType type = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
574*d5c09012SAndroid Build Coastguard Worker
575*d5c09012SAndroid Build Coastguard Worker  // Data Scan related setting.
576*d5c09012SAndroid Build Coastguard Worker  oneof spec {
577*d5c09012SAndroid Build Coastguard Worker    // Output only. DataQualityScan related setting.
578*d5c09012SAndroid Build Coastguard Worker    DataQualitySpec data_quality_spec = 100
579*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OUTPUT_ONLY];
580*d5c09012SAndroid Build Coastguard Worker
581*d5c09012SAndroid Build Coastguard Worker    // Output only. DataProfileScan related setting.
582*d5c09012SAndroid Build Coastguard Worker    DataProfileSpec data_profile_spec = 101
583*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OUTPUT_ONLY];
584*d5c09012SAndroid Build Coastguard Worker  }
585*d5c09012SAndroid Build Coastguard Worker
586*d5c09012SAndroid Build Coastguard Worker  // The result of the data scan.
587*d5c09012SAndroid Build Coastguard Worker  oneof result {
588*d5c09012SAndroid Build Coastguard Worker    // Output only. The result of the data quality scan.
589*d5c09012SAndroid Build Coastguard Worker    DataQualityResult data_quality_result = 200
590*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OUTPUT_ONLY];
591*d5c09012SAndroid Build Coastguard Worker
592*d5c09012SAndroid Build Coastguard Worker    // Output only. The result of the data profile scan.
593*d5c09012SAndroid Build Coastguard Worker    DataProfileResult data_profile_result = 201
594*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OUTPUT_ONLY];
595*d5c09012SAndroid Build Coastguard Worker  }
596*d5c09012SAndroid Build Coastguard Worker}
597*d5c09012SAndroid Build Coastguard Worker
598*d5c09012SAndroid Build Coastguard Worker// The type of DataScan.
599*d5c09012SAndroid Build Coastguard Workerenum DataScanType {
600*d5c09012SAndroid Build Coastguard Worker  // The DataScan type is unspecified.
601*d5c09012SAndroid Build Coastguard Worker  DATA_SCAN_TYPE_UNSPECIFIED = 0;
602*d5c09012SAndroid Build Coastguard Worker
603*d5c09012SAndroid Build Coastguard Worker  // Data Quality scan.
604*d5c09012SAndroid Build Coastguard Worker  DATA_QUALITY = 1;
605*d5c09012SAndroid Build Coastguard Worker
606*d5c09012SAndroid Build Coastguard Worker  // Data Profile scan.
607*d5c09012SAndroid Build Coastguard Worker  DATA_PROFILE = 2;
608*d5c09012SAndroid Build Coastguard Worker}
609