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 Worker 22*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb"; 23*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 24*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ProcessingProto"; 25*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.dataplex.v1"; 26*d5c09012SAndroid Build Coastguard Worker 27*d5c09012SAndroid Build Coastguard Worker// DataScan scheduling and trigger settings. 28*d5c09012SAndroid Build Coastguard Workermessage Trigger { 29*d5c09012SAndroid Build Coastguard Worker // The scan runs once via `RunDataScan` API. 30*d5c09012SAndroid Build Coastguard Worker message OnDemand {} 31*d5c09012SAndroid Build Coastguard Worker 32*d5c09012SAndroid Build Coastguard Worker // The scan is scheduled to run periodically. 33*d5c09012SAndroid Build Coastguard Worker message Schedule { 34*d5c09012SAndroid Build Coastguard Worker // Required. [Cron](https://en.wikipedia.org/wiki/Cron) schedule for running 35*d5c09012SAndroid Build Coastguard Worker // scans periodically. 36*d5c09012SAndroid Build Coastguard Worker // 37*d5c09012SAndroid Build Coastguard Worker // To explicitly set a timezone in the cron tab, apply a prefix in the 38*d5c09012SAndroid Build Coastguard Worker // cron tab: **"CRON_TZ=${IANA_TIME_ZONE}"** or **"TZ=${IANA_TIME_ZONE}"**. 39*d5c09012SAndroid Build Coastguard Worker // The **${IANA_TIME_ZONE}** may only be a valid string from IANA time zone 40*d5c09012SAndroid Build Coastguard Worker // database 41*d5c09012SAndroid Build Coastguard Worker // ([wikipedia](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)). 42*d5c09012SAndroid Build Coastguard Worker // For example, `CRON_TZ=America/New_York 1 * * * *`, or 43*d5c09012SAndroid Build Coastguard Worker // `TZ=America/New_York 1 * * * *`. 44*d5c09012SAndroid Build Coastguard Worker // 45*d5c09012SAndroid Build Coastguard Worker // This field is required for Schedule scans. 46*d5c09012SAndroid Build Coastguard Worker string cron = 1 [(google.api.field_behavior) = REQUIRED]; 47*d5c09012SAndroid Build Coastguard Worker } 48*d5c09012SAndroid Build Coastguard Worker 49*d5c09012SAndroid Build Coastguard Worker // DataScan scheduling and trigger settings. 50*d5c09012SAndroid Build Coastguard Worker // 51*d5c09012SAndroid Build Coastguard Worker // If not specified, the default is `onDemand`. 52*d5c09012SAndroid Build Coastguard Worker oneof mode { 53*d5c09012SAndroid Build Coastguard Worker // The scan runs once via `RunDataScan` API. 54*d5c09012SAndroid Build Coastguard Worker OnDemand on_demand = 100; 55*d5c09012SAndroid Build Coastguard Worker 56*d5c09012SAndroid Build Coastguard Worker // The scan is scheduled to run periodically. 57*d5c09012SAndroid Build Coastguard Worker Schedule schedule = 101; 58*d5c09012SAndroid Build Coastguard Worker } 59*d5c09012SAndroid Build Coastguard Worker} 60*d5c09012SAndroid Build Coastguard Worker 61*d5c09012SAndroid Build Coastguard Worker// The data source for DataScan. 62*d5c09012SAndroid Build Coastguard Workermessage DataSource { 63*d5c09012SAndroid Build Coastguard Worker // The source is required and immutable. Once it is set, it cannot be change 64*d5c09012SAndroid Build Coastguard Worker // to others. 65*d5c09012SAndroid Build Coastguard Worker oneof source { 66*d5c09012SAndroid Build Coastguard Worker // Immutable. The Dataplex entity that represents the data source (e.g. 67*d5c09012SAndroid Build Coastguard Worker // BigQuery table) for DataScan, of the form: 68*d5c09012SAndroid Build Coastguard Worker // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}`. 69*d5c09012SAndroid Build Coastguard Worker string entity = 100 [ 70*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = IMMUTABLE, 71*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 72*d5c09012SAndroid Build Coastguard Worker type: "dataplex.googleapis.com/Entity" 73*d5c09012SAndroid Build Coastguard Worker } 74*d5c09012SAndroid Build Coastguard Worker ]; 75*d5c09012SAndroid Build Coastguard Worker 76*d5c09012SAndroid Build Coastguard Worker // Immutable. The service-qualified full resource name of the cloud resource 77*d5c09012SAndroid Build Coastguard Worker // for a DataScan job to scan against. The field could be: BigQuery table of 78*d5c09012SAndroid Build Coastguard Worker // type "TABLE" for DataProfileScan/DataQualityScan Format: 79*d5c09012SAndroid Build Coastguard Worker // //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID 80*d5c09012SAndroid Build Coastguard Worker string resource = 101 [(google.api.field_behavior) = IMMUTABLE]; 81*d5c09012SAndroid Build Coastguard Worker } 82*d5c09012SAndroid Build Coastguard Worker} 83*d5c09012SAndroid Build Coastguard Worker 84*d5c09012SAndroid Build Coastguard Worker// The data scanned during processing (e.g. in incremental DataScan) 85*d5c09012SAndroid Build Coastguard Workermessage ScannedData { 86*d5c09012SAndroid Build Coastguard Worker // A data range denoted by a pair of start/end values of a field. 87*d5c09012SAndroid Build Coastguard Worker message IncrementalField { 88*d5c09012SAndroid Build Coastguard Worker // The field that contains values which monotonically increases over time 89*d5c09012SAndroid Build Coastguard Worker // (e.g. a timestamp column). 90*d5c09012SAndroid Build Coastguard Worker string field = 1; 91*d5c09012SAndroid Build Coastguard Worker 92*d5c09012SAndroid Build Coastguard Worker // Value that marks the start of the range. 93*d5c09012SAndroid Build Coastguard Worker string start = 2; 94*d5c09012SAndroid Build Coastguard Worker 95*d5c09012SAndroid Build Coastguard Worker // Value that marks the end of the range. 96*d5c09012SAndroid Build Coastguard Worker string end = 3; 97*d5c09012SAndroid Build Coastguard Worker } 98*d5c09012SAndroid Build Coastguard Worker 99*d5c09012SAndroid Build Coastguard Worker // The range of scanned data 100*d5c09012SAndroid Build Coastguard Worker oneof data_range { 101*d5c09012SAndroid Build Coastguard Worker // The range denoted by values of an incremental field 102*d5c09012SAndroid Build Coastguard Worker IncrementalField incremental_field = 1; 103*d5c09012SAndroid Build Coastguard Worker } 104*d5c09012SAndroid Build Coastguard Worker} 105