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