google-apis-dataplex_v1 0.17.0 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -657,6 +657,12 @@ module Google
657
657
  # @return [String]
658
658
  attr_accessor :name
659
659
 
660
+ # Optional. Determines how read permissions are handled for each asset and their
661
+ # associated tables. Only available to storage buckets assets.
662
+ # Corresponds to the JSON property `readAccessMode`
663
+ # @return [String]
664
+ attr_accessor :read_access_mode
665
+
660
666
  # Required. Immutable. Type of resource.
661
667
  # Corresponds to the JSON property `type`
662
668
  # @return [String]
@@ -669,6 +675,7 @@ module Google
669
675
  # Update properties of this object
670
676
  def update!(**args)
671
677
  @name = args[:name] if args.key?(:name)
678
+ @read_access_mode = args[:read_access_mode] if args.key?(:read_access_mode)
672
679
  @type = args[:type] if args.key?(:type)
673
680
  end
674
681
  end
@@ -896,132 +903,1181 @@ module Google
896
903
  end
897
904
  end
898
905
 
899
- # These messages contain information about the execution of a datascan. The
900
- # monitored resource is 'DataScan'
901
- class GoogleCloudDataplexV1DataScanEvent
906
+ # DataProfileResult defines the output of DataProfileScan. Each field of the
907
+ # table will have field type specific profile result.
908
+ class GoogleCloudDataplexV1DataProfileResult
902
909
  include Google::Apis::Core::Hashable
903
910
 
904
- # Data profile result for data scan job.
905
- # Corresponds to the JSON property `dataProfile`
906
- # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataScanEventDataProfileResult]
907
- attr_accessor :data_profile
911
+ # Profile information describing the structure and layout of the data and
912
+ # contains the profile info.
913
+ # Corresponds to the JSON property `profile`
914
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileResultProfile]
915
+ attr_accessor :profile
908
916
 
909
- # Data quality result for data scan job.
910
- # Corresponds to the JSON property `dataQuality`
911
- # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataScanEventDataQualityResult]
912
- attr_accessor :data_quality
917
+ # The count of all rows in the sampled data. Return 0, if zero rows.
918
+ # Corresponds to the JSON property `rowCount`
919
+ # @return [Fixnum]
920
+ attr_accessor :row_count
913
921
 
914
- # The data source of the data scan
915
- # Corresponds to the JSON property `dataSource`
922
+ # The data scanned during processing (e.g. in incremental DataScan)
923
+ # Corresponds to the JSON property `scannedData`
924
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ScannedData]
925
+ attr_accessor :scanned_data
926
+
927
+ def initialize(**args)
928
+ update!(**args)
929
+ end
930
+
931
+ # Update properties of this object
932
+ def update!(**args)
933
+ @profile = args[:profile] if args.key?(:profile)
934
+ @row_count = args[:row_count] if args.key?(:row_count)
935
+ @scanned_data = args[:scanned_data] if args.key?(:scanned_data)
936
+ end
937
+ end
938
+
939
+ # Profile information describing the structure and layout of the data and
940
+ # contains the profile info.
941
+ class GoogleCloudDataplexV1DataProfileResultProfile
942
+ include Google::Apis::Core::Hashable
943
+
944
+ # The sequence of fields describing data in table entities.
945
+ # Corresponds to the JSON property `fields`
946
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileResultProfileField>]
947
+ attr_accessor :fields
948
+
949
+ def initialize(**args)
950
+ update!(**args)
951
+ end
952
+
953
+ # Update properties of this object
954
+ def update!(**args)
955
+ @fields = args[:fields] if args.key?(:fields)
956
+ end
957
+ end
958
+
959
+ # Represents a column field within a table schema.
960
+ class GoogleCloudDataplexV1DataProfileResultProfileField
961
+ include Google::Apis::Core::Hashable
962
+
963
+ # The mode of the field. Its value will be: REQUIRED, if it is a required field.
964
+ # NULLABLE, if it is an optional field. REPEATED, if it is a repeated field.
965
+ # Corresponds to the JSON property `mode`
916
966
  # @return [String]
917
- attr_accessor :data_source
967
+ attr_accessor :mode
918
968
 
919
- # The time when the data scan job finished.
920
- # Corresponds to the JSON property `endTime`
969
+ # The name of the field.
970
+ # Corresponds to the JSON property `name`
921
971
  # @return [String]
922
- attr_accessor :end_time
972
+ attr_accessor :name
923
973
 
924
- # The identifier of the specific data scan job this log entry is for.
925
- # Corresponds to the JSON property `jobId`
974
+ # ProfileInfo defines the profile information for each schema field type.
975
+ # Corresponds to the JSON property `profile`
976
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfo]
977
+ attr_accessor :profile
978
+
979
+ # The field data type. Possible values include: STRING BYTE INT64 INT32 INT16
980
+ # DOUBLE FLOAT DECIMAL BOOLEAN BINARY TIMESTAMP DATE TIME NULL RECORD
981
+ # Corresponds to the JSON property `type`
926
982
  # @return [String]
927
- attr_accessor :job_id
983
+ attr_accessor :type
928
984
 
929
- # The message describing the data scan job event.
930
- # Corresponds to the JSON property `message`
985
+ def initialize(**args)
986
+ update!(**args)
987
+ end
988
+
989
+ # Update properties of this object
990
+ def update!(**args)
991
+ @mode = args[:mode] if args.key?(:mode)
992
+ @name = args[:name] if args.key?(:name)
993
+ @profile = args[:profile] if args.key?(:profile)
994
+ @type = args[:type] if args.key?(:type)
995
+ end
996
+ end
997
+
998
+ # ProfileInfo defines the profile information for each schema field type.
999
+ class GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfo
1000
+ include Google::Apis::Core::Hashable
1001
+
1002
+ # The ratio of rows that are distinct against the rows in the sampled data.
1003
+ # Corresponds to the JSON property `distinctRatio`
1004
+ # @return [Float]
1005
+ attr_accessor :distinct_ratio
1006
+
1007
+ # DoubleFieldInfo defines output for any double type field.
1008
+ # Corresponds to the JSON property `doubleProfile`
1009
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoDoubleFieldInfo]
1010
+ attr_accessor :double_profile
1011
+
1012
+ # IntegerFieldInfo defines output for any integer type field.
1013
+ # Corresponds to the JSON property `integerProfile`
1014
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoIntegerFieldInfo]
1015
+ attr_accessor :integer_profile
1016
+
1017
+ # The ratio of null rows against the rows in the sampled data.
1018
+ # Corresponds to the JSON property `nullRatio`
1019
+ # @return [Float]
1020
+ attr_accessor :null_ratio
1021
+
1022
+ # StringFieldInfo defines output info for any string type field.
1023
+ # Corresponds to the JSON property `stringProfile`
1024
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoStringFieldInfo]
1025
+ attr_accessor :string_profile
1026
+
1027
+ # The array of top N values of the field in the sampled data. Currently N is set
1028
+ # as 10 or equal to distinct values in the field, whichever is smaller. This
1029
+ # will be optional for complex non-groupable data-types such as JSON, ARRAY,
1030
+ # JSON, STRUCT.
1031
+ # Corresponds to the JSON property `topNValues`
1032
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoTopNValue>]
1033
+ attr_accessor :top_n_values
1034
+
1035
+ def initialize(**args)
1036
+ update!(**args)
1037
+ end
1038
+
1039
+ # Update properties of this object
1040
+ def update!(**args)
1041
+ @distinct_ratio = args[:distinct_ratio] if args.key?(:distinct_ratio)
1042
+ @double_profile = args[:double_profile] if args.key?(:double_profile)
1043
+ @integer_profile = args[:integer_profile] if args.key?(:integer_profile)
1044
+ @null_ratio = args[:null_ratio] if args.key?(:null_ratio)
1045
+ @string_profile = args[:string_profile] if args.key?(:string_profile)
1046
+ @top_n_values = args[:top_n_values] if args.key?(:top_n_values)
1047
+ end
1048
+ end
1049
+
1050
+ # DoubleFieldInfo defines output for any double type field.
1051
+ class GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoDoubleFieldInfo
1052
+ include Google::Apis::Core::Hashable
1053
+
1054
+ # The average of non-null values of double field in the sampled data. Return NaN,
1055
+ # if the field has a NaN. Optional if zero non-null rows.
1056
+ # Corresponds to the JSON property `average`
1057
+ # @return [Float]
1058
+ attr_accessor :average
1059
+
1060
+ # The maximum value of a double field in the sampled data. Return NaN, if the
1061
+ # field has a NaN. Optional if zero non-null rows.
1062
+ # Corresponds to the JSON property `max`
1063
+ # @return [Float]
1064
+ attr_accessor :max
1065
+
1066
+ # The minimum value of a double field in the sampled data. Return NaN, if the
1067
+ # field has a NaN. Optional if zero non-null rows.
1068
+ # Corresponds to the JSON property `min`
1069
+ # @return [Float]
1070
+ attr_accessor :min
1071
+
1072
+ # A quartile divide the numebr of data points into four parts, or quarters, of
1073
+ # more-or-less equal size. Three main quartiles used are: The first quartile (Q1)
1074
+ # splits off the lowest 25% of data from the highest 75%. It is also known as
1075
+ # the lower or 25th empirical quartile, as 25% of the data is below this point.
1076
+ # The second quartile (Q2) is the median of a data set. So, 50% of the data lies
1077
+ # below this point. The third quartile (Q3) splits off the highest 25% of data
1078
+ # from the lowest 75%. It is known as the upper or 75th empirical quartile, as
1079
+ # 75% of the data lies below this point. So, here the quartiles is provided as
1080
+ # an ordered list of quartile values, occurring in order Q1, median, Q3.
1081
+ # Corresponds to the JSON property `quartiles`
1082
+ # @return [Array<Float>]
1083
+ attr_accessor :quartiles
1084
+
1085
+ # The standard deviation of non-null of double field in the sampled data. Return
1086
+ # NaN, if the field has a NaN. Optional if zero non-null rows.
1087
+ # Corresponds to the JSON property `standardDeviation`
1088
+ # @return [Float]
1089
+ attr_accessor :standard_deviation
1090
+
1091
+ def initialize(**args)
1092
+ update!(**args)
1093
+ end
1094
+
1095
+ # Update properties of this object
1096
+ def update!(**args)
1097
+ @average = args[:average] if args.key?(:average)
1098
+ @max = args[:max] if args.key?(:max)
1099
+ @min = args[:min] if args.key?(:min)
1100
+ @quartiles = args[:quartiles] if args.key?(:quartiles)
1101
+ @standard_deviation = args[:standard_deviation] if args.key?(:standard_deviation)
1102
+ end
1103
+ end
1104
+
1105
+ # IntegerFieldInfo defines output for any integer type field.
1106
+ class GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoIntegerFieldInfo
1107
+ include Google::Apis::Core::Hashable
1108
+
1109
+ # The average of non-null values of integer field in the sampled data. Return
1110
+ # NaN, if the field has a NaN. Optional if zero non-null rows.
1111
+ # Corresponds to the JSON property `average`
1112
+ # @return [Float]
1113
+ attr_accessor :average
1114
+
1115
+ # The maximum value of an integer field in the sampled data. Return NaN, if the
1116
+ # field has a NaN. Optional if zero non-null rows.
1117
+ # Corresponds to the JSON property `max`
1118
+ # @return [Fixnum]
1119
+ attr_accessor :max
1120
+
1121
+ # The minimum value of an integer field in the sampled data. Return NaN, if the
1122
+ # field has a NaN. Optional if zero non-null rows.
1123
+ # Corresponds to the JSON property `min`
1124
+ # @return [Fixnum]
1125
+ attr_accessor :min
1126
+
1127
+ # A quartile divide the number of data points into four parts, or quarters, of
1128
+ # more-or-less equal size. Three main quartiles used are: The first quartile (Q1)
1129
+ # splits off the lowest 25% of data from the highest 75%. It is also known as
1130
+ # the lower or 25th empirical quartile, as 25% of the data is below this point.
1131
+ # The second quartile (Q2) is the median of a data set. So, 50% of the data lies
1132
+ # below this point. The third quartile (Q3) splits off the highest 25% of data
1133
+ # from the lowest 75%. It is known as the upper or 75th empirical quartile, as
1134
+ # 75% of the data lies below this point. So, here the quartiles is provided as
1135
+ # an ordered list of quartile values, occurring in order Q1, median, Q3.
1136
+ # Corresponds to the JSON property `quartiles`
1137
+ # @return [Array<Fixnum>]
1138
+ attr_accessor :quartiles
1139
+
1140
+ # The standard deviation of non-null of integer field in the sampled data.
1141
+ # Return NaN, if the field has a NaN. Optional if zero non-null rows.
1142
+ # Corresponds to the JSON property `standardDeviation`
1143
+ # @return [Float]
1144
+ attr_accessor :standard_deviation
1145
+
1146
+ def initialize(**args)
1147
+ update!(**args)
1148
+ end
1149
+
1150
+ # Update properties of this object
1151
+ def update!(**args)
1152
+ @average = args[:average] if args.key?(:average)
1153
+ @max = args[:max] if args.key?(:max)
1154
+ @min = args[:min] if args.key?(:min)
1155
+ @quartiles = args[:quartiles] if args.key?(:quartiles)
1156
+ @standard_deviation = args[:standard_deviation] if args.key?(:standard_deviation)
1157
+ end
1158
+ end
1159
+
1160
+ # StringFieldInfo defines output info for any string type field.
1161
+ class GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoStringFieldInfo
1162
+ include Google::Apis::Core::Hashable
1163
+
1164
+ # The average length of a string field in the sampled data. Optional if zero non-
1165
+ # null rows.
1166
+ # Corresponds to the JSON property `averageLength`
1167
+ # @return [Float]
1168
+ attr_accessor :average_length
1169
+
1170
+ # The maximum length of a string field in the sampled data. Optional if zero non-
1171
+ # null rows.
1172
+ # Corresponds to the JSON property `maxLength`
1173
+ # @return [Fixnum]
1174
+ attr_accessor :max_length
1175
+
1176
+ # The minimum length of the string field in the sampled data. Optional if zero
1177
+ # non-null rows.
1178
+ # Corresponds to the JSON property `minLength`
1179
+ # @return [Fixnum]
1180
+ attr_accessor :min_length
1181
+
1182
+ def initialize(**args)
1183
+ update!(**args)
1184
+ end
1185
+
1186
+ # Update properties of this object
1187
+ def update!(**args)
1188
+ @average_length = args[:average_length] if args.key?(:average_length)
1189
+ @max_length = args[:max_length] if args.key?(:max_length)
1190
+ @min_length = args[:min_length] if args.key?(:min_length)
1191
+ end
1192
+ end
1193
+
1194
+ # The TopNValue defines the structure of output of top N values of a field.
1195
+ class GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoTopNValue
1196
+ include Google::Apis::Core::Hashable
1197
+
1198
+ # The frequency count of the corresponding value in the field.
1199
+ # Corresponds to the JSON property `count`
1200
+ # @return [Fixnum]
1201
+ attr_accessor :count
1202
+
1203
+ # The value is the string value of the actual value from the field.
1204
+ # Corresponds to the JSON property `value`
931
1205
  # @return [String]
932
- attr_accessor :message
1206
+ attr_accessor :value
933
1207
 
934
- # The scope of the data scan (e.g. full, incremental).
935
- # Corresponds to the JSON property `scope`
1208
+ def initialize(**args)
1209
+ update!(**args)
1210
+ end
1211
+
1212
+ # Update properties of this object
1213
+ def update!(**args)
1214
+ @count = args[:count] if args.key?(:count)
1215
+ @value = args[:value] if args.key?(:value)
1216
+ end
1217
+ end
1218
+
1219
+ # DataProfileScan related setting.
1220
+ class GoogleCloudDataplexV1DataProfileSpec
1221
+ include Google::Apis::Core::Hashable
1222
+
1223
+ def initialize(**args)
1224
+ update!(**args)
1225
+ end
1226
+
1227
+ # Update properties of this object
1228
+ def update!(**args)
1229
+ end
1230
+ end
1231
+
1232
+ # DataQualityDimensionResult provides a more detailed, per-dimension level view
1233
+ # of the results.
1234
+ class GoogleCloudDataplexV1DataQualityDimensionResult
1235
+ include Google::Apis::Core::Hashable
1236
+
1237
+ # Whether the dimension passed or failed.
1238
+ # Corresponds to the JSON property `passed`
1239
+ # @return [Boolean]
1240
+ attr_accessor :passed
1241
+ alias_method :passed?, :passed
1242
+
1243
+ def initialize(**args)
1244
+ update!(**args)
1245
+ end
1246
+
1247
+ # Update properties of this object
1248
+ def update!(**args)
1249
+ @passed = args[:passed] if args.key?(:passed)
1250
+ end
1251
+ end
1252
+
1253
+ # The output of a DataQualityScan.
1254
+ class GoogleCloudDataplexV1DataQualityResult
1255
+ include Google::Apis::Core::Hashable
1256
+
1257
+ # A list of results at the dimension-level.
1258
+ # Corresponds to the JSON property `dimensions`
1259
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityDimensionResult>]
1260
+ attr_accessor :dimensions
1261
+
1262
+ # Overall data quality result -- true if all rules passed.
1263
+ # Corresponds to the JSON property `passed`
1264
+ # @return [Boolean]
1265
+ attr_accessor :passed
1266
+ alias_method :passed?, :passed
1267
+
1268
+ # The count of rows processed.
1269
+ # Corresponds to the JSON property `rowCount`
1270
+ # @return [Fixnum]
1271
+ attr_accessor :row_count
1272
+
1273
+ # A list of all the rules in a job, and their results.
1274
+ # Corresponds to the JSON property `rules`
1275
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRuleResult>]
1276
+ attr_accessor :rules
1277
+
1278
+ # The data scanned during processing (e.g. in incremental DataScan)
1279
+ # Corresponds to the JSON property `scannedData`
1280
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ScannedData]
1281
+ attr_accessor :scanned_data
1282
+
1283
+ def initialize(**args)
1284
+ update!(**args)
1285
+ end
1286
+
1287
+ # Update properties of this object
1288
+ def update!(**args)
1289
+ @dimensions = args[:dimensions] if args.key?(:dimensions)
1290
+ @passed = args[:passed] if args.key?(:passed)
1291
+ @row_count = args[:row_count] if args.key?(:row_count)
1292
+ @rules = args[:rules] if args.key?(:rules)
1293
+ @scanned_data = args[:scanned_data] if args.key?(:scanned_data)
1294
+ end
1295
+ end
1296
+
1297
+ # A rule captures data quality intent about a data source.
1298
+ class GoogleCloudDataplexV1DataQualityRule
1299
+ include Google::Apis::Core::Hashable
1300
+
1301
+ # Optional. The unnested column which this rule is evaluated against.
1302
+ # Corresponds to the JSON property `column`
936
1303
  # @return [String]
937
- attr_accessor :scope
1304
+ attr_accessor :column
938
1305
 
939
- # A version identifier of the spec which was used to execute this job.
940
- # Corresponds to the JSON property `specVersion`
1306
+ # Required. The dimension a rule belongs to. Results are also aggregated at the
1307
+ # dimension-level. Supported dimensions are "COMPLETENESS", "ACCURACY", "
1308
+ # CONSISTENCY", "VALIDITY", "UNIQUENESS", "INTEGRITY"
1309
+ # Corresponds to the JSON property `dimension`
941
1310
  # @return [String]
942
- attr_accessor :spec_version
1311
+ attr_accessor :dimension
943
1312
 
944
- # The time when the data scan job started to run.
945
- # Corresponds to the JSON property `startTime`
1313
+ # Optional. Rows with null values will automatically fail a rule, unless
1314
+ # ignore_null is true. In that case, such null rows are trivially considered
1315
+ # passing. Only applicable to ColumnMap rules.
1316
+ # Corresponds to the JSON property `ignoreNull`
1317
+ # @return [Boolean]
1318
+ attr_accessor :ignore_null
1319
+ alias_method :ignore_null?, :ignore_null
1320
+
1321
+ # Evaluates whether each column value is null.
1322
+ # Corresponds to the JSON property `nonNullExpectation`
1323
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRuleNonNullExpectation]
1324
+ attr_accessor :non_null_expectation
1325
+
1326
+ # Evaluates whether each column value lies between a specified range.
1327
+ # Corresponds to the JSON property `rangeExpectation`
1328
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRuleRangeExpectation]
1329
+ attr_accessor :range_expectation
1330
+
1331
+ # Evaluates whether each column value matches a specified regex.
1332
+ # Corresponds to the JSON property `regexExpectation`
1333
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRuleRegexExpectation]
1334
+ attr_accessor :regex_expectation
1335
+
1336
+ # Evaluates whether each row passes the specified condition. The SQL expression
1337
+ # needs to use BigQuery standard SQL syntax and should produce a boolean per row
1338
+ # as the result. Example: col1 >= 0 AND col2 < 10
1339
+ # Corresponds to the JSON property `rowConditionExpectation`
1340
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRuleRowConditionExpectation]
1341
+ attr_accessor :row_condition_expectation
1342
+
1343
+ # Evaluates whether each column value is contained by a specified set.
1344
+ # Corresponds to the JSON property `setExpectation`
1345
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRuleSetExpectation]
1346
+ attr_accessor :set_expectation
1347
+
1348
+ # Evaluates whether the column aggregate statistic lies between a specified
1349
+ # range.
1350
+ # Corresponds to the JSON property `statisticRangeExpectation`
1351
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRuleStatisticRangeExpectation]
1352
+ attr_accessor :statistic_range_expectation
1353
+
1354
+ # Evaluates whether the provided expression is true. The SQL expression needs to
1355
+ # use BigQuery standard SQL syntax and should produce a scalar boolean result.
1356
+ # Example: MIN(col1) >= 0
1357
+ # Corresponds to the JSON property `tableConditionExpectation`
1358
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRuleTableConditionExpectation]
1359
+ attr_accessor :table_condition_expectation
1360
+
1361
+ # Optional. The minimum ratio of passing_rows / total_rows required to pass this
1362
+ # rule, with a range of 0.0, 1.00 indicates default value (i.e. 1.0)
1363
+ # Corresponds to the JSON property `threshold`
1364
+ # @return [Float]
1365
+ attr_accessor :threshold
1366
+
1367
+ # Evaluates whether the column has duplicates.
1368
+ # Corresponds to the JSON property `uniquenessExpectation`
1369
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRuleUniquenessExpectation]
1370
+ attr_accessor :uniqueness_expectation
1371
+
1372
+ def initialize(**args)
1373
+ update!(**args)
1374
+ end
1375
+
1376
+ # Update properties of this object
1377
+ def update!(**args)
1378
+ @column = args[:column] if args.key?(:column)
1379
+ @dimension = args[:dimension] if args.key?(:dimension)
1380
+ @ignore_null = args[:ignore_null] if args.key?(:ignore_null)
1381
+ @non_null_expectation = args[:non_null_expectation] if args.key?(:non_null_expectation)
1382
+ @range_expectation = args[:range_expectation] if args.key?(:range_expectation)
1383
+ @regex_expectation = args[:regex_expectation] if args.key?(:regex_expectation)
1384
+ @row_condition_expectation = args[:row_condition_expectation] if args.key?(:row_condition_expectation)
1385
+ @set_expectation = args[:set_expectation] if args.key?(:set_expectation)
1386
+ @statistic_range_expectation = args[:statistic_range_expectation] if args.key?(:statistic_range_expectation)
1387
+ @table_condition_expectation = args[:table_condition_expectation] if args.key?(:table_condition_expectation)
1388
+ @threshold = args[:threshold] if args.key?(:threshold)
1389
+ @uniqueness_expectation = args[:uniqueness_expectation] if args.key?(:uniqueness_expectation)
1390
+ end
1391
+ end
1392
+
1393
+ # Evaluates whether each column value is null.
1394
+ class GoogleCloudDataplexV1DataQualityRuleNonNullExpectation
1395
+ include Google::Apis::Core::Hashable
1396
+
1397
+ def initialize(**args)
1398
+ update!(**args)
1399
+ end
1400
+
1401
+ # Update properties of this object
1402
+ def update!(**args)
1403
+ end
1404
+ end
1405
+
1406
+ # Evaluates whether each column value lies between a specified range.
1407
+ class GoogleCloudDataplexV1DataQualityRuleRangeExpectation
1408
+ include Google::Apis::Core::Hashable
1409
+
1410
+ # Optional. The maximum column value allowed for a row to pass this validation.
1411
+ # At least one of min_value and max_value need to be provided.
1412
+ # Corresponds to the JSON property `maxValue`
946
1413
  # @return [String]
947
- attr_accessor :start_time
1414
+ attr_accessor :max_value
948
1415
 
949
- # The status of the data scan job.
1416
+ # Optional. The minimum column value allowed for a row to pass this validation.
1417
+ # At least one of min_value and max_value need to be provided.
1418
+ # Corresponds to the JSON property `minValue`
1419
+ # @return [String]
1420
+ attr_accessor :min_value
1421
+
1422
+ # Optional. Whether each value needs to be strictly lesser than ('<') the
1423
+ # maximum, or if equality is allowed. Only relevant if a max_value has been
1424
+ # defined. Default = false.
1425
+ # Corresponds to the JSON property `strictMaxEnabled`
1426
+ # @return [Boolean]
1427
+ attr_accessor :strict_max_enabled
1428
+ alias_method :strict_max_enabled?, :strict_max_enabled
1429
+
1430
+ # Optional. Whether each value needs to be strictly greater than ('>') the
1431
+ # minimum, or if equality is allowed. Only relevant if a min_value has been
1432
+ # defined. Default = false.
1433
+ # Corresponds to the JSON property `strictMinEnabled`
1434
+ # @return [Boolean]
1435
+ attr_accessor :strict_min_enabled
1436
+ alias_method :strict_min_enabled?, :strict_min_enabled
1437
+
1438
+ def initialize(**args)
1439
+ update!(**args)
1440
+ end
1441
+
1442
+ # Update properties of this object
1443
+ def update!(**args)
1444
+ @max_value = args[:max_value] if args.key?(:max_value)
1445
+ @min_value = args[:min_value] if args.key?(:min_value)
1446
+ @strict_max_enabled = args[:strict_max_enabled] if args.key?(:strict_max_enabled)
1447
+ @strict_min_enabled = args[:strict_min_enabled] if args.key?(:strict_min_enabled)
1448
+ end
1449
+ end
1450
+
1451
+ # Evaluates whether each column value matches a specified regex.
1452
+ class GoogleCloudDataplexV1DataQualityRuleRegexExpectation
1453
+ include Google::Apis::Core::Hashable
1454
+
1455
+ #
1456
+ # Corresponds to the JSON property `regex`
1457
+ # @return [String]
1458
+ attr_accessor :regex
1459
+
1460
+ def initialize(**args)
1461
+ update!(**args)
1462
+ end
1463
+
1464
+ # Update properties of this object
1465
+ def update!(**args)
1466
+ @regex = args[:regex] if args.key?(:regex)
1467
+ end
1468
+ end
1469
+
1470
+ # DataQualityRuleResult provides a more detailed, per-rule level view of the
1471
+ # results.
1472
+ class GoogleCloudDataplexV1DataQualityRuleResult
1473
+ include Google::Apis::Core::Hashable
1474
+
1475
+ # The number of rows a rule was evaluated against. This field is only valid for
1476
+ # ColumnMap type rules. Evaluated count can be configured to either (1) include
1477
+ # all rows (default) - with null rows automatically failing rule evaluation OR (
1478
+ # 2) exclude null rows from the evaluated_count, by setting ignore_nulls = true
1479
+ # Corresponds to the JSON property `evaluatedCount`
1480
+ # @return [Fixnum]
1481
+ attr_accessor :evaluated_count
1482
+
1483
+ # The query to find rows that did not pass this rule. Only applies to ColumnMap
1484
+ # and RowCondition rules.
1485
+ # Corresponds to the JSON property `failingRowsQuery`
1486
+ # @return [String]
1487
+ attr_accessor :failing_rows_query
1488
+
1489
+ # The number of rows with null values in the specified column.
1490
+ # Corresponds to the JSON property `nullCount`
1491
+ # @return [Fixnum]
1492
+ attr_accessor :null_count
1493
+
1494
+ # The ratio of passed_count / evaluated_count. This field is only valid for
1495
+ # ColumnMap type rules.
1496
+ # Corresponds to the JSON property `passRatio`
1497
+ # @return [Float]
1498
+ attr_accessor :pass_ratio
1499
+
1500
+ # Whether the rule passed or failed.
1501
+ # Corresponds to the JSON property `passed`
1502
+ # @return [Boolean]
1503
+ attr_accessor :passed
1504
+ alias_method :passed?, :passed
1505
+
1506
+ # The number of rows which passed a rule evaluation. This field is only valid
1507
+ # for ColumnMap type rules.
1508
+ # Corresponds to the JSON property `passedCount`
1509
+ # @return [Fixnum]
1510
+ attr_accessor :passed_count
1511
+
1512
+ # A rule captures data quality intent about a data source.
1513
+ # Corresponds to the JSON property `rule`
1514
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRule]
1515
+ attr_accessor :rule
1516
+
1517
+ def initialize(**args)
1518
+ update!(**args)
1519
+ end
1520
+
1521
+ # Update properties of this object
1522
+ def update!(**args)
1523
+ @evaluated_count = args[:evaluated_count] if args.key?(:evaluated_count)
1524
+ @failing_rows_query = args[:failing_rows_query] if args.key?(:failing_rows_query)
1525
+ @null_count = args[:null_count] if args.key?(:null_count)
1526
+ @pass_ratio = args[:pass_ratio] if args.key?(:pass_ratio)
1527
+ @passed = args[:passed] if args.key?(:passed)
1528
+ @passed_count = args[:passed_count] if args.key?(:passed_count)
1529
+ @rule = args[:rule] if args.key?(:rule)
1530
+ end
1531
+ end
1532
+
1533
+ # Evaluates whether each row passes the specified condition. The SQL expression
1534
+ # needs to use BigQuery standard SQL syntax and should produce a boolean per row
1535
+ # as the result. Example: col1 >= 0 AND col2 < 10
1536
+ class GoogleCloudDataplexV1DataQualityRuleRowConditionExpectation
1537
+ include Google::Apis::Core::Hashable
1538
+
1539
+ #
1540
+ # Corresponds to the JSON property `sqlExpression`
1541
+ # @return [String]
1542
+ attr_accessor :sql_expression
1543
+
1544
+ def initialize(**args)
1545
+ update!(**args)
1546
+ end
1547
+
1548
+ # Update properties of this object
1549
+ def update!(**args)
1550
+ @sql_expression = args[:sql_expression] if args.key?(:sql_expression)
1551
+ end
1552
+ end
1553
+
1554
+ # Evaluates whether each column value is contained by a specified set.
1555
+ class GoogleCloudDataplexV1DataQualityRuleSetExpectation
1556
+ include Google::Apis::Core::Hashable
1557
+
1558
+ #
1559
+ # Corresponds to the JSON property `values`
1560
+ # @return [Array<String>]
1561
+ attr_accessor :values
1562
+
1563
+ def initialize(**args)
1564
+ update!(**args)
1565
+ end
1566
+
1567
+ # Update properties of this object
1568
+ def update!(**args)
1569
+ @values = args[:values] if args.key?(:values)
1570
+ end
1571
+ end
1572
+
1573
+ # Evaluates whether the column aggregate statistic lies between a specified
1574
+ # range.
1575
+ class GoogleCloudDataplexV1DataQualityRuleStatisticRangeExpectation
1576
+ include Google::Apis::Core::Hashable
1577
+
1578
+ # The maximum column statistic value allowed for a row to pass this validation.
1579
+ # At least one of min_value and max_value need to be provided.
1580
+ # Corresponds to the JSON property `maxValue`
1581
+ # @return [String]
1582
+ attr_accessor :max_value
1583
+
1584
+ # The minimum column statistic value allowed for a row to pass this validation.
1585
+ # At least one of min_value and max_value need to be provided.
1586
+ # Corresponds to the JSON property `minValue`
1587
+ # @return [String]
1588
+ attr_accessor :min_value
1589
+
1590
+ #
1591
+ # Corresponds to the JSON property `statistic`
1592
+ # @return [String]
1593
+ attr_accessor :statistic
1594
+
1595
+ # Whether column statistic needs to be strictly lesser than ('<') the maximum,
1596
+ # or if equality is allowed. Only relevant if a max_value has been defined.
1597
+ # Default = false.
1598
+ # Corresponds to the JSON property `strictMaxEnabled`
1599
+ # @return [Boolean]
1600
+ attr_accessor :strict_max_enabled
1601
+ alias_method :strict_max_enabled?, :strict_max_enabled
1602
+
1603
+ # Whether column statistic needs to be strictly greater than ('>') the minimum,
1604
+ # or if equality is allowed. Only relevant if a min_value has been defined.
1605
+ # Default = false.
1606
+ # Corresponds to the JSON property `strictMinEnabled`
1607
+ # @return [Boolean]
1608
+ attr_accessor :strict_min_enabled
1609
+ alias_method :strict_min_enabled?, :strict_min_enabled
1610
+
1611
+ def initialize(**args)
1612
+ update!(**args)
1613
+ end
1614
+
1615
+ # Update properties of this object
1616
+ def update!(**args)
1617
+ @max_value = args[:max_value] if args.key?(:max_value)
1618
+ @min_value = args[:min_value] if args.key?(:min_value)
1619
+ @statistic = args[:statistic] if args.key?(:statistic)
1620
+ @strict_max_enabled = args[:strict_max_enabled] if args.key?(:strict_max_enabled)
1621
+ @strict_min_enabled = args[:strict_min_enabled] if args.key?(:strict_min_enabled)
1622
+ end
1623
+ end
1624
+
1625
+ # Evaluates whether the provided expression is true. The SQL expression needs to
1626
+ # use BigQuery standard SQL syntax and should produce a scalar boolean result.
1627
+ # Example: MIN(col1) >= 0
1628
+ class GoogleCloudDataplexV1DataQualityRuleTableConditionExpectation
1629
+ include Google::Apis::Core::Hashable
1630
+
1631
+ #
1632
+ # Corresponds to the JSON property `sqlExpression`
1633
+ # @return [String]
1634
+ attr_accessor :sql_expression
1635
+
1636
+ def initialize(**args)
1637
+ update!(**args)
1638
+ end
1639
+
1640
+ # Update properties of this object
1641
+ def update!(**args)
1642
+ @sql_expression = args[:sql_expression] if args.key?(:sql_expression)
1643
+ end
1644
+ end
1645
+
1646
+ # Evaluates whether the column has duplicates.
1647
+ class GoogleCloudDataplexV1DataQualityRuleUniquenessExpectation
1648
+ include Google::Apis::Core::Hashable
1649
+
1650
+ def initialize(**args)
1651
+ update!(**args)
1652
+ end
1653
+
1654
+ # Update properties of this object
1655
+ def update!(**args)
1656
+ end
1657
+ end
1658
+
1659
+ # DataQualityScan related setting.
1660
+ class GoogleCloudDataplexV1DataQualitySpec
1661
+ include Google::Apis::Core::Hashable
1662
+
1663
+ # The list of rules to evaluate against a data source. At least one rule is
1664
+ # required.
1665
+ # Corresponds to the JSON property `rules`
1666
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRule>]
1667
+ attr_accessor :rules
1668
+
1669
+ def initialize(**args)
1670
+ update!(**args)
1671
+ end
1672
+
1673
+ # Update properties of this object
1674
+ def update!(**args)
1675
+ @rules = args[:rules] if args.key?(:rules)
1676
+ end
1677
+ end
1678
+
1679
+ # Represents a user-visible job which provides the insights for the related data
1680
+ # source. For examples: - Data Quality: generates queries based on the rules and
1681
+ # run against the data to get data quality check results. - Data Profile:
1682
+ # analyzes the data in table(s) and generates insights about the structure,
1683
+ # content and relationships (such as null percent, cardinality, min/max/mean,
1684
+ # etc).
1685
+ class GoogleCloudDataplexV1DataScan
1686
+ include Google::Apis::Core::Hashable
1687
+
1688
+ # Output only. The time when the scan was created.
1689
+ # Corresponds to the JSON property `createTime`
1690
+ # @return [String]
1691
+ attr_accessor :create_time
1692
+
1693
+ # The data source for DataScan.
1694
+ # Corresponds to the JSON property `data`
1695
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataSource]
1696
+ attr_accessor :data
1697
+
1698
+ # DataProfileResult defines the output of DataProfileScan. Each field of the
1699
+ # table will have field type specific profile result.
1700
+ # Corresponds to the JSON property `dataProfileResult`
1701
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileResult]
1702
+ attr_accessor :data_profile_result
1703
+
1704
+ # DataProfileScan related setting.
1705
+ # Corresponds to the JSON property `dataProfileSpec`
1706
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileSpec]
1707
+ attr_accessor :data_profile_spec
1708
+
1709
+ # The output of a DataQualityScan.
1710
+ # Corresponds to the JSON property `dataQualityResult`
1711
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityResult]
1712
+ attr_accessor :data_quality_result
1713
+
1714
+ # DataQualityScan related setting.
1715
+ # Corresponds to the JSON property `dataQualitySpec`
1716
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualitySpec]
1717
+ attr_accessor :data_quality_spec
1718
+
1719
+ # Optional. Description of the scan. * Must be between 1-1024 characters.
1720
+ # Corresponds to the JSON property `description`
1721
+ # @return [String]
1722
+ attr_accessor :description
1723
+
1724
+ # Optional. User friendly display name. * Must be between 1-256 characters.
1725
+ # Corresponds to the JSON property `displayName`
1726
+ # @return [String]
1727
+ attr_accessor :display_name
1728
+
1729
+ # DataScan execution settings.
1730
+ # Corresponds to the JSON property `executionSpec`
1731
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataScanExecutionSpec]
1732
+ attr_accessor :execution_spec
1733
+
1734
+ # Status of the data scan execution.
1735
+ # Corresponds to the JSON property `executionStatus`
1736
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataScanExecutionStatus]
1737
+ attr_accessor :execution_status
1738
+
1739
+ # Optional. User-defined labels for the scan.
1740
+ # Corresponds to the JSON property `labels`
1741
+ # @return [Hash<String,String>]
1742
+ attr_accessor :labels
1743
+
1744
+ # Output only. The relative resource name of the scan, of the form: projects/`
1745
+ # project`/locations/`location_id`/dataScans/`datascan_id`. where `project`
1746
+ # refers to a project_id or project_number and location_id refers to a GCP
1747
+ # region.
1748
+ # Corresponds to the JSON property `name`
1749
+ # @return [String]
1750
+ attr_accessor :name
1751
+
1752
+ # Output only. Current state of the DataScan.
1753
+ # Corresponds to the JSON property `state`
1754
+ # @return [String]
1755
+ attr_accessor :state
1756
+
1757
+ # Output only. The type of DataScan.
1758
+ # Corresponds to the JSON property `type`
1759
+ # @return [String]
1760
+ attr_accessor :type
1761
+
1762
+ # Output only. System generated globally unique ID for the scan. This ID will be
1763
+ # different if the scan is deleted and re-created with the same name.
1764
+ # Corresponds to the JSON property `uid`
1765
+ # @return [String]
1766
+ attr_accessor :uid
1767
+
1768
+ # Output only. The time when the scan was last updated.
1769
+ # Corresponds to the JSON property `updateTime`
1770
+ # @return [String]
1771
+ attr_accessor :update_time
1772
+
1773
+ def initialize(**args)
1774
+ update!(**args)
1775
+ end
1776
+
1777
+ # Update properties of this object
1778
+ def update!(**args)
1779
+ @create_time = args[:create_time] if args.key?(:create_time)
1780
+ @data = args[:data] if args.key?(:data)
1781
+ @data_profile_result = args[:data_profile_result] if args.key?(:data_profile_result)
1782
+ @data_profile_spec = args[:data_profile_spec] if args.key?(:data_profile_spec)
1783
+ @data_quality_result = args[:data_quality_result] if args.key?(:data_quality_result)
1784
+ @data_quality_spec = args[:data_quality_spec] if args.key?(:data_quality_spec)
1785
+ @description = args[:description] if args.key?(:description)
1786
+ @display_name = args[:display_name] if args.key?(:display_name)
1787
+ @execution_spec = args[:execution_spec] if args.key?(:execution_spec)
1788
+ @execution_status = args[:execution_status] if args.key?(:execution_status)
1789
+ @labels = args[:labels] if args.key?(:labels)
1790
+ @name = args[:name] if args.key?(:name)
1791
+ @state = args[:state] if args.key?(:state)
1792
+ @type = args[:type] if args.key?(:type)
1793
+ @uid = args[:uid] if args.key?(:uid)
1794
+ @update_time = args[:update_time] if args.key?(:update_time)
1795
+ end
1796
+ end
1797
+
1798
+ # These messages contain information about the execution of a datascan. The
1799
+ # monitored resource is 'DataScan'
1800
+ class GoogleCloudDataplexV1DataScanEvent
1801
+ include Google::Apis::Core::Hashable
1802
+
1803
+ # Data profile result for data scan job.
1804
+ # Corresponds to the JSON property `dataProfile`
1805
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataScanEventDataProfileResult]
1806
+ attr_accessor :data_profile
1807
+
1808
+ # Data quality result for data scan job.
1809
+ # Corresponds to the JSON property `dataQuality`
1810
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataScanEventDataQualityResult]
1811
+ attr_accessor :data_quality
1812
+
1813
+ # The data source of the data scan
1814
+ # Corresponds to the JSON property `dataSource`
1815
+ # @return [String]
1816
+ attr_accessor :data_source
1817
+
1818
+ # The time when the data scan job finished.
1819
+ # Corresponds to the JSON property `endTime`
1820
+ # @return [String]
1821
+ attr_accessor :end_time
1822
+
1823
+ # The identifier of the specific data scan job this log entry is for.
1824
+ # Corresponds to the JSON property `jobId`
1825
+ # @return [String]
1826
+ attr_accessor :job_id
1827
+
1828
+ # The message describing the data scan job event.
1829
+ # Corresponds to the JSON property `message`
1830
+ # @return [String]
1831
+ attr_accessor :message
1832
+
1833
+ # The scope of the data scan (e.g. full, incremental).
1834
+ # Corresponds to the JSON property `scope`
1835
+ # @return [String]
1836
+ attr_accessor :scope
1837
+
1838
+ # A version identifier of the spec which was used to execute this job.
1839
+ # Corresponds to the JSON property `specVersion`
1840
+ # @return [String]
1841
+ attr_accessor :spec_version
1842
+
1843
+ # The time when the data scan job started to run.
1844
+ # Corresponds to the JSON property `startTime`
1845
+ # @return [String]
1846
+ attr_accessor :start_time
1847
+
1848
+ # The status of the data scan job.
1849
+ # Corresponds to the JSON property `state`
1850
+ # @return [String]
1851
+ attr_accessor :state
1852
+
1853
+ # The trigger type of the data scan job.
1854
+ # Corresponds to the JSON property `trigger`
1855
+ # @return [String]
1856
+ attr_accessor :trigger
1857
+
1858
+ # The type of the data scan.
1859
+ # Corresponds to the JSON property `type`
1860
+ # @return [String]
1861
+ attr_accessor :type
1862
+
1863
+ def initialize(**args)
1864
+ update!(**args)
1865
+ end
1866
+
1867
+ # Update properties of this object
1868
+ def update!(**args)
1869
+ @data_profile = args[:data_profile] if args.key?(:data_profile)
1870
+ @data_quality = args[:data_quality] if args.key?(:data_quality)
1871
+ @data_source = args[:data_source] if args.key?(:data_source)
1872
+ @end_time = args[:end_time] if args.key?(:end_time)
1873
+ @job_id = args[:job_id] if args.key?(:job_id)
1874
+ @message = args[:message] if args.key?(:message)
1875
+ @scope = args[:scope] if args.key?(:scope)
1876
+ @spec_version = args[:spec_version] if args.key?(:spec_version)
1877
+ @start_time = args[:start_time] if args.key?(:start_time)
1878
+ @state = args[:state] if args.key?(:state)
1879
+ @trigger = args[:trigger] if args.key?(:trigger)
1880
+ @type = args[:type] if args.key?(:type)
1881
+ end
1882
+ end
1883
+
1884
+ # Data profile result for data scan job.
1885
+ class GoogleCloudDataplexV1DataScanEventDataProfileResult
1886
+ include Google::Apis::Core::Hashable
1887
+
1888
+ # The count of rows processed in the data scan job.
1889
+ # Corresponds to the JSON property `rowCount`
1890
+ # @return [Fixnum]
1891
+ attr_accessor :row_count
1892
+
1893
+ def initialize(**args)
1894
+ update!(**args)
1895
+ end
1896
+
1897
+ # Update properties of this object
1898
+ def update!(**args)
1899
+ @row_count = args[:row_count] if args.key?(:row_count)
1900
+ end
1901
+ end
1902
+
1903
+ # Data quality result for data scan job.
1904
+ class GoogleCloudDataplexV1DataScanEventDataQualityResult
1905
+ include Google::Apis::Core::Hashable
1906
+
1907
+ # The result of each dimension for data quality result. The key of the map is
1908
+ # the name of the dimension. The value is the bool value depicting whether the
1909
+ # dimension result was pass or not.
1910
+ # Corresponds to the JSON property `dimensionPassed`
1911
+ # @return [Hash<String,Boolean>]
1912
+ attr_accessor :dimension_passed
1913
+
1914
+ # Whether the data quality result was pass or not.
1915
+ # Corresponds to the JSON property `passed`
1916
+ # @return [Boolean]
1917
+ attr_accessor :passed
1918
+ alias_method :passed?, :passed
1919
+
1920
+ # The count of rows processed in the data scan job.
1921
+ # Corresponds to the JSON property `rowCount`
1922
+ # @return [Fixnum]
1923
+ attr_accessor :row_count
1924
+
1925
+ def initialize(**args)
1926
+ update!(**args)
1927
+ end
1928
+
1929
+ # Update properties of this object
1930
+ def update!(**args)
1931
+ @dimension_passed = args[:dimension_passed] if args.key?(:dimension_passed)
1932
+ @passed = args[:passed] if args.key?(:passed)
1933
+ @row_count = args[:row_count] if args.key?(:row_count)
1934
+ end
1935
+ end
1936
+
1937
+ # DataScan execution settings.
1938
+ class GoogleCloudDataplexV1DataScanExecutionSpec
1939
+ include Google::Apis::Core::Hashable
1940
+
1941
+ # Immutable. The unnested field (Date or Timestamp) that contains values that
1942
+ # monotonically increase over time.
1943
+ # Corresponds to the JSON property `field`
1944
+ # @return [String]
1945
+ attr_accessor :field
1946
+
1947
+ # DataScan scheduling and trigger settings.
1948
+ # Corresponds to the JSON property `trigger`
1949
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1Trigger]
1950
+ attr_accessor :trigger
1951
+
1952
+ def initialize(**args)
1953
+ update!(**args)
1954
+ end
1955
+
1956
+ # Update properties of this object
1957
+ def update!(**args)
1958
+ @field = args[:field] if args.key?(:field)
1959
+ @trigger = args[:trigger] if args.key?(:trigger)
1960
+ end
1961
+ end
1962
+
1963
+ # Status of the data scan execution.
1964
+ class GoogleCloudDataplexV1DataScanExecutionStatus
1965
+ include Google::Apis::Core::Hashable
1966
+
1967
+ # The time when the latest DataScanJob ended.
1968
+ # Corresponds to the JSON property `latestJobEndTime`
1969
+ # @return [String]
1970
+ attr_accessor :latest_job_end_time
1971
+
1972
+ # The time when the latest DataScanJob started.
1973
+ # Corresponds to the JSON property `latestJobStartTime`
1974
+ # @return [String]
1975
+ attr_accessor :latest_job_start_time
1976
+
1977
+ def initialize(**args)
1978
+ update!(**args)
1979
+ end
1980
+
1981
+ # Update properties of this object
1982
+ def update!(**args)
1983
+ @latest_job_end_time = args[:latest_job_end_time] if args.key?(:latest_job_end_time)
1984
+ @latest_job_start_time = args[:latest_job_start_time] if args.key?(:latest_job_start_time)
1985
+ end
1986
+ end
1987
+
1988
+ # A DataScanJob represents an instance of a data scan.
1989
+ class GoogleCloudDataplexV1DataScanJob
1990
+ include Google::Apis::Core::Hashable
1991
+
1992
+ # DataProfileResult defines the output of DataProfileScan. Each field of the
1993
+ # table will have field type specific profile result.
1994
+ # Corresponds to the JSON property `dataProfileResult`
1995
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileResult]
1996
+ attr_accessor :data_profile_result
1997
+
1998
+ # DataProfileScan related setting.
1999
+ # Corresponds to the JSON property `dataProfileSpec`
2000
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileSpec]
2001
+ attr_accessor :data_profile_spec
2002
+
2003
+ # The output of a DataQualityScan.
2004
+ # Corresponds to the JSON property `dataQualityResult`
2005
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityResult]
2006
+ attr_accessor :data_quality_result
2007
+
2008
+ # DataQualityScan related setting.
2009
+ # Corresponds to the JSON property `dataQualitySpec`
2010
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualitySpec]
2011
+ attr_accessor :data_quality_spec
2012
+
2013
+ # Output only. The time when the DataScanJob ended.
2014
+ # Corresponds to the JSON property `endTime`
2015
+ # @return [String]
2016
+ attr_accessor :end_time
2017
+
2018
+ # Output only. Additional information about the current state.
2019
+ # Corresponds to the JSON property `message`
2020
+ # @return [String]
2021
+ attr_accessor :message
2022
+
2023
+ # Output only. The relative resource name of the DataScanJob, of the form:
2024
+ # projects/`project`/locations/`location_id`/dataScans/`datascan_id`/jobs/`
2025
+ # job_id`. where `project` refers to a project_id or project_number and
2026
+ # location_id refers to a GCP region.
2027
+ # Corresponds to the JSON property `name`
2028
+ # @return [String]
2029
+ attr_accessor :name
2030
+
2031
+ # Output only. The time when the DataScanJob was started.
2032
+ # Corresponds to the JSON property `startTime`
2033
+ # @return [String]
2034
+ attr_accessor :start_time
2035
+
2036
+ # Output only. Execution state for the DataScanJob.
950
2037
  # Corresponds to the JSON property `state`
951
2038
  # @return [String]
952
2039
  attr_accessor :state
953
2040
 
954
- # The trigger type of the data scan job.
955
- # Corresponds to the JSON property `trigger`
956
- # @return [String]
957
- attr_accessor :trigger
958
-
959
- # The type of the data scan.
2041
+ # Output only. The type of the parent DataScan.
960
2042
  # Corresponds to the JSON property `type`
961
2043
  # @return [String]
962
2044
  attr_accessor :type
963
2045
 
2046
+ # Output only. System generated globally unique ID for the DataScanJob.
2047
+ # Corresponds to the JSON property `uid`
2048
+ # @return [String]
2049
+ attr_accessor :uid
2050
+
964
2051
  def initialize(**args)
965
2052
  update!(**args)
966
2053
  end
967
2054
 
968
2055
  # Update properties of this object
969
2056
  def update!(**args)
970
- @data_profile = args[:data_profile] if args.key?(:data_profile)
971
- @data_quality = args[:data_quality] if args.key?(:data_quality)
972
- @data_source = args[:data_source] if args.key?(:data_source)
2057
+ @data_profile_result = args[:data_profile_result] if args.key?(:data_profile_result)
2058
+ @data_profile_spec = args[:data_profile_spec] if args.key?(:data_profile_spec)
2059
+ @data_quality_result = args[:data_quality_result] if args.key?(:data_quality_result)
2060
+ @data_quality_spec = args[:data_quality_spec] if args.key?(:data_quality_spec)
973
2061
  @end_time = args[:end_time] if args.key?(:end_time)
974
- @job_id = args[:job_id] if args.key?(:job_id)
975
2062
  @message = args[:message] if args.key?(:message)
976
- @scope = args[:scope] if args.key?(:scope)
977
- @spec_version = args[:spec_version] if args.key?(:spec_version)
2063
+ @name = args[:name] if args.key?(:name)
978
2064
  @start_time = args[:start_time] if args.key?(:start_time)
979
2065
  @state = args[:state] if args.key?(:state)
980
- @trigger = args[:trigger] if args.key?(:trigger)
981
2066
  @type = args[:type] if args.key?(:type)
2067
+ @uid = args[:uid] if args.key?(:uid)
982
2068
  end
983
2069
  end
984
2070
 
985
- # Data profile result for data scan job.
986
- class GoogleCloudDataplexV1DataScanEventDataProfileResult
987
- include Google::Apis::Core::Hashable
988
-
989
- # The count of rows processed in the data scan job.
990
- # Corresponds to the JSON property `rowCount`
991
- # @return [Fixnum]
992
- attr_accessor :row_count
993
-
994
- def initialize(**args)
995
- update!(**args)
996
- end
997
-
998
- # Update properties of this object
999
- def update!(**args)
1000
- @row_count = args[:row_count] if args.key?(:row_count)
1001
- end
1002
- end
1003
-
1004
- # Data quality result for data scan job.
1005
- class GoogleCloudDataplexV1DataScanEventDataQualityResult
2071
+ # The data source for DataScan.
2072
+ class GoogleCloudDataplexV1DataSource
1006
2073
  include Google::Apis::Core::Hashable
1007
2074
 
1008
- # The result of each dimension for data quality result. The key of the map is
1009
- # the name of the dimension. The value is the bool value depicting whether the
1010
- # dimension result was pass or not.
1011
- # Corresponds to the JSON property `dimensionPassed`
1012
- # @return [Hash<String,Boolean>]
1013
- attr_accessor :dimension_passed
1014
-
1015
- # Whether the data quality result was pass or not.
1016
- # Corresponds to the JSON property `passed`
1017
- # @return [Boolean]
1018
- attr_accessor :passed
1019
- alias_method :passed?, :passed
1020
-
1021
- # The count of rows processed in the data scan job.
1022
- # Corresponds to the JSON property `rowCount`
1023
- # @return [Fixnum]
1024
- attr_accessor :row_count
2075
+ # Immutable. The dataplex entity that contains the data for DataScan, of the
2076
+ # form: projects/`project_number`/locations/`location_id`/lakes/`lake_id`/zones/`
2077
+ # zone_id`/entities/`entity_id`.
2078
+ # Corresponds to the JSON property `entity`
2079
+ # @return [String]
2080
+ attr_accessor :entity
1025
2081
 
1026
2082
  def initialize(**args)
1027
2083
  update!(**args)
@@ -1029,9 +2085,7 @@ module Google
1029
2085
 
1030
2086
  # Update properties of this object
1031
2087
  def update!(**args)
1032
- @dimension_passed = args[:dimension_passed] if args.key?(:dimension_passed)
1033
- @passed = args[:passed] if args.key?(:passed)
1034
- @row_count = args[:row_count] if args.key?(:row_count)
2088
+ @entity = args[:entity] if args.key?(:entity)
1035
2089
  end
1036
2090
  end
1037
2091
 
@@ -1217,6 +2271,11 @@ module Google
1217
2271
  class GoogleCloudDataplexV1Entity
1218
2272
  include Google::Apis::Core::Hashable
1219
2273
 
2274
+ # Describes the access mechanism of the data within its storage location.
2275
+ # Corresponds to the JSON property `access`
2276
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1StorageAccess]
2277
+ attr_accessor :access
2278
+
1220
2279
  # Required. Immutable. The ID of the asset associated with the storage location
1221
2280
  # containing the entity data. The entity must be with in the same zone with the
1222
2281
  # asset.
@@ -1317,6 +2376,7 @@ module Google
1317
2376
 
1318
2377
  # Update properties of this object
1319
2378
  def update!(**args)
2379
+ @access = args[:access] if args.key?(:access)
1320
2380
  @asset = args[:asset] if args.key?(:asset)
1321
2381
  @catalog_entry = args[:catalog_entry] if args.key?(:catalog_entry)
1322
2382
  @compatibility = args[:compatibility] if args.key?(:compatibility)
@@ -2025,6 +3085,64 @@ module Google
2025
3085
  end
2026
3086
  end
2027
3087
 
3088
+ # List DataScanJobs response.
3089
+ class GoogleCloudDataplexV1ListDataScanJobsResponse
3090
+ include Google::Apis::Core::Hashable
3091
+
3092
+ # DataScanJobs (metadata only) under a given dataScan.
3093
+ # Corresponds to the JSON property `dataScanJobs`
3094
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1DataScanJob>]
3095
+ attr_accessor :data_scan_jobs
3096
+
3097
+ # Token to retrieve the next page of results, or empty if there are no more
3098
+ # results in the list.
3099
+ # Corresponds to the JSON property `nextPageToken`
3100
+ # @return [String]
3101
+ attr_accessor :next_page_token
3102
+
3103
+ def initialize(**args)
3104
+ update!(**args)
3105
+ end
3106
+
3107
+ # Update properties of this object
3108
+ def update!(**args)
3109
+ @data_scan_jobs = args[:data_scan_jobs] if args.key?(:data_scan_jobs)
3110
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3111
+ end
3112
+ end
3113
+
3114
+ # List dataScans response.
3115
+ class GoogleCloudDataplexV1ListDataScansResponse
3116
+ include Google::Apis::Core::Hashable
3117
+
3118
+ # DataScans (metadata only) under the given parent location.
3119
+ # Corresponds to the JSON property `dataScans`
3120
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1DataScan>]
3121
+ attr_accessor :data_scans
3122
+
3123
+ # Token to retrieve the next page of results, or empty if there are no more
3124
+ # results in the list.
3125
+ # Corresponds to the JSON property `nextPageToken`
3126
+ # @return [String]
3127
+ attr_accessor :next_page_token
3128
+
3129
+ # Locations that could not be reached.
3130
+ # Corresponds to the JSON property `unreachable`
3131
+ # @return [Array<String>]
3132
+ attr_accessor :unreachable
3133
+
3134
+ def initialize(**args)
3135
+ update!(**args)
3136
+ end
3137
+
3138
+ # Update properties of this object
3139
+ def update!(**args)
3140
+ @data_scans = args[:data_scans] if args.key?(:data_scans)
3141
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3142
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
3143
+ end
3144
+ end
3145
+
2028
3146
  # List metadata entities response.
2029
3147
  class GoogleCloudDataplexV1ListEntitiesResponse
2030
3148
  include Google::Apis::Core::Hashable
@@ -2347,6 +3465,121 @@ module Google
2347
3465
  end
2348
3466
  end
2349
3467
 
3468
+ # Run DataScan Request
3469
+ class GoogleCloudDataplexV1RunDataScanRequest
3470
+ include Google::Apis::Core::Hashable
3471
+
3472
+ def initialize(**args)
3473
+ update!(**args)
3474
+ end
3475
+
3476
+ # Update properties of this object
3477
+ def update!(**args)
3478
+ end
3479
+ end
3480
+
3481
+ # Run DataScan Response.
3482
+ class GoogleCloudDataplexV1RunDataScanResponse
3483
+ include Google::Apis::Core::Hashable
3484
+
3485
+ # A DataScanJob represents an instance of a data scan.
3486
+ # Corresponds to the JSON property `job`
3487
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataScanJob]
3488
+ attr_accessor :job
3489
+
3490
+ def initialize(**args)
3491
+ update!(**args)
3492
+ end
3493
+
3494
+ # Update properties of this object
3495
+ def update!(**args)
3496
+ @job = args[:job] if args.key?(:job)
3497
+ end
3498
+ end
3499
+
3500
+ #
3501
+ class GoogleCloudDataplexV1RunTaskRequest
3502
+ include Google::Apis::Core::Hashable
3503
+
3504
+ def initialize(**args)
3505
+ update!(**args)
3506
+ end
3507
+
3508
+ # Update properties of this object
3509
+ def update!(**args)
3510
+ end
3511
+ end
3512
+
3513
+ #
3514
+ class GoogleCloudDataplexV1RunTaskResponse
3515
+ include Google::Apis::Core::Hashable
3516
+
3517
+ # A job represents an instance of a task.
3518
+ # Corresponds to the JSON property `job`
3519
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1Job]
3520
+ attr_accessor :job
3521
+
3522
+ def initialize(**args)
3523
+ update!(**args)
3524
+ end
3525
+
3526
+ # Update properties of this object
3527
+ def update!(**args)
3528
+ @job = args[:job] if args.key?(:job)
3529
+ end
3530
+ end
3531
+
3532
+ # The data scanned during processing (e.g. in incremental DataScan)
3533
+ class GoogleCloudDataplexV1ScannedData
3534
+ include Google::Apis::Core::Hashable
3535
+
3536
+ # A data range denoted by a pair of start/end values of a field.
3537
+ # Corresponds to the JSON property `incrementalField`
3538
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ScannedDataIncrementalField]
3539
+ attr_accessor :incremental_field
3540
+
3541
+ def initialize(**args)
3542
+ update!(**args)
3543
+ end
3544
+
3545
+ # Update properties of this object
3546
+ def update!(**args)
3547
+ @incremental_field = args[:incremental_field] if args.key?(:incremental_field)
3548
+ end
3549
+ end
3550
+
3551
+ # A data range denoted by a pair of start/end values of a field.
3552
+ class GoogleCloudDataplexV1ScannedDataIncrementalField
3553
+ include Google::Apis::Core::Hashable
3554
+
3555
+ # Value that marks the end of the range
3556
+ # Corresponds to the JSON property `end`
3557
+ # @return [String]
3558
+ attr_accessor :end
3559
+
3560
+ # The field that contains values which monotonically increases over time (e.g.
3561
+ # timestamp).
3562
+ # Corresponds to the JSON property `field`
3563
+ # @return [String]
3564
+ attr_accessor :field
3565
+
3566
+ # Value that marks the start of the range
3567
+ # Corresponds to the JSON property `start`
3568
+ # @return [String]
3569
+ attr_accessor :start
3570
+
3571
+ def initialize(**args)
3572
+ update!(**args)
3573
+ end
3574
+
3575
+ # Update properties of this object
3576
+ def update!(**args)
3577
+ @end = args[:end] if args.key?(:end)
3578
+ @field = args[:field] if args.key?(:field)
3579
+ @start = args[:start] if args.key?(:start)
3580
+ end
3581
+ end
3582
+
2350
3583
  # Schema information describing the structure and layout of the data.
2351
3584
  class GoogleCloudDataplexV1Schema
2352
3585
  include Google::Apis::Core::Hashable
@@ -2623,6 +3856,26 @@ module Google
2623
3856
  end
2624
3857
  end
2625
3858
 
3859
+ # Describes the access mechanism of the data within its storage location.
3860
+ class GoogleCloudDataplexV1StorageAccess
3861
+ include Google::Apis::Core::Hashable
3862
+
3863
+ # Output only. Describes the read access mechanism of the data. Not user
3864
+ # settable.
3865
+ # Corresponds to the JSON property `read`
3866
+ # @return [String]
3867
+ attr_accessor :read
3868
+
3869
+ def initialize(**args)
3870
+ update!(**args)
3871
+ end
3872
+
3873
+ # Update properties of this object
3874
+ def update!(**args)
3875
+ @read = args[:read] if args.key?(:read)
3876
+ end
3877
+ end
3878
+
2626
3879
  # Describes the format of the data within its storage location.
2627
3880
  class GoogleCloudDataplexV1StorageFormat
2628
3881
  include Google::Apis::Core::Hashable
@@ -2644,6 +3897,11 @@ module Google
2644
3897
  # @return [String]
2645
3898
  attr_accessor :format
2646
3899
 
3900
+ # Describes Iceberg data format.
3901
+ # Corresponds to the JSON property `iceberg`
3902
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1StorageFormatIcebergOptions]
3903
+ attr_accessor :iceberg
3904
+
2647
3905
  # Describes JSON data format.
2648
3906
  # Corresponds to the JSON property `json`
2649
3907
  # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1StorageFormatJsonOptions]
@@ -2668,6 +3926,7 @@ module Google
2668
3926
  @compression_format = args[:compression_format] if args.key?(:compression_format)
2669
3927
  @csv = args[:csv] if args.key?(:csv)
2670
3928
  @format = args[:format] if args.key?(:format)
3929
+ @iceberg = args[:iceberg] if args.key?(:iceberg)
2671
3930
  @json = args[:json] if args.key?(:json)
2672
3931
  @mime_type = args[:mime_type] if args.key?(:mime_type)
2673
3932
  end
@@ -2714,6 +3973,26 @@ module Google
2714
3973
  end
2715
3974
  end
2716
3975
 
3976
+ # Describes Iceberg data format.
3977
+ class GoogleCloudDataplexV1StorageFormatIcebergOptions
3978
+ include Google::Apis::Core::Hashable
3979
+
3980
+ # Optional. The location of where the iceberg metadata is present, must be
3981
+ # within the table path
3982
+ # Corresponds to the JSON property `metadataLocation`
3983
+ # @return [String]
3984
+ attr_accessor :metadata_location
3985
+
3986
+ def initialize(**args)
3987
+ update!(**args)
3988
+ end
3989
+
3990
+ # Update properties of this object
3991
+ def update!(**args)
3992
+ @metadata_location = args[:metadata_location] if args.key?(:metadata_location)
3993
+ end
3994
+ end
3995
+
2717
3996
  # Describes JSON data format.
2718
3997
  class GoogleCloudDataplexV1StorageFormatJsonOptions
2719
3998
  include Google::Apis::Core::Hashable
@@ -3211,6 +4490,68 @@ module Google
3211
4490
  end
3212
4491
  end
3213
4492
 
4493
+ # DataScan scheduling and trigger settings.
4494
+ class GoogleCloudDataplexV1Trigger
4495
+ include Google::Apis::Core::Hashable
4496
+
4497
+ # The scan runs one-time via RunDataScan API.
4498
+ # Corresponds to the JSON property `onDemand`
4499
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1TriggerOnDemand]
4500
+ attr_accessor :on_demand
4501
+
4502
+ # The scan is scheduled to run periodically.
4503
+ # Corresponds to the JSON property `schedule`
4504
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1TriggerSchedule]
4505
+ attr_accessor :schedule
4506
+
4507
+ def initialize(**args)
4508
+ update!(**args)
4509
+ end
4510
+
4511
+ # Update properties of this object
4512
+ def update!(**args)
4513
+ @on_demand = args[:on_demand] if args.key?(:on_demand)
4514
+ @schedule = args[:schedule] if args.key?(:schedule)
4515
+ end
4516
+ end
4517
+
4518
+ # The scan runs one-time via RunDataScan API.
4519
+ class GoogleCloudDataplexV1TriggerOnDemand
4520
+ include Google::Apis::Core::Hashable
4521
+
4522
+ def initialize(**args)
4523
+ update!(**args)
4524
+ end
4525
+
4526
+ # Update properties of this object
4527
+ def update!(**args)
4528
+ end
4529
+ end
4530
+
4531
+ # The scan is scheduled to run periodically.
4532
+ class GoogleCloudDataplexV1TriggerSchedule
4533
+ include Google::Apis::Core::Hashable
4534
+
4535
+ # Required. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running scans
4536
+ # periodically. To explicitly set a timezone to the cron tab, apply a prefix in
4537
+ # the cron tab: "CRON_TZ=$`IANA_TIME_ZONE`" or "TZ=$`IANA_TIME_ZONE`". The $`
4538
+ # IANA_TIME_ZONE` may only be a valid string from IANA time zone database. For
4539
+ # example, "CRON_TZ=America/New_York 1 * * * *", or "TZ=America/New_York 1 * * *
4540
+ # *". This field is required for Schedule scans.
4541
+ # Corresponds to the JSON property `cron`
4542
+ # @return [String]
4543
+ attr_accessor :cron
4544
+
4545
+ def initialize(**args)
4546
+ update!(**args)
4547
+ end
4548
+
4549
+ # Update properties of this object
4550
+ def update!(**args)
4551
+ @cron = args[:cron] if args.key?(:cron)
4552
+ end
4553
+ end
4554
+
3214
4555
  # A zone represents a logical group of related assets within a lake. A zone can
3215
4556
  # be used to map to organizational structure or represent stages of data
3216
4557
  # readiness from raw to curated. It provides managing behavior that is shared or