google-apis-dataplex_v1 0.17.0 → 0.18.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -896,6 +896,898 @@ module Google
896
896
  end
897
897
  end
898
898
 
899
+ # DataProfileResult defines the output of DataProfileScan. Each field of the
900
+ # table will have field type specific profile result.
901
+ class GoogleCloudDataplexV1DataProfileResult
902
+ include Google::Apis::Core::Hashable
903
+
904
+ # Profile information describing the structure and layout of the data and
905
+ # contains the profile info.
906
+ # Corresponds to the JSON property `profile`
907
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileResultProfile]
908
+ attr_accessor :profile
909
+
910
+ # The count of all rows in the sampled data. Return 0, if zero rows.
911
+ # Corresponds to the JSON property `rowCount`
912
+ # @return [Fixnum]
913
+ attr_accessor :row_count
914
+
915
+ # The data scanned during processing (e.g. in incremental DataScan)
916
+ # Corresponds to the JSON property `scannedData`
917
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ScannedData]
918
+ attr_accessor :scanned_data
919
+
920
+ def initialize(**args)
921
+ update!(**args)
922
+ end
923
+
924
+ # Update properties of this object
925
+ def update!(**args)
926
+ @profile = args[:profile] if args.key?(:profile)
927
+ @row_count = args[:row_count] if args.key?(:row_count)
928
+ @scanned_data = args[:scanned_data] if args.key?(:scanned_data)
929
+ end
930
+ end
931
+
932
+ # Profile information describing the structure and layout of the data and
933
+ # contains the profile info.
934
+ class GoogleCloudDataplexV1DataProfileResultProfile
935
+ include Google::Apis::Core::Hashable
936
+
937
+ # The sequence of fields describing data in table entities.
938
+ # Corresponds to the JSON property `fields`
939
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileResultProfileField>]
940
+ attr_accessor :fields
941
+
942
+ def initialize(**args)
943
+ update!(**args)
944
+ end
945
+
946
+ # Update properties of this object
947
+ def update!(**args)
948
+ @fields = args[:fields] if args.key?(:fields)
949
+ end
950
+ end
951
+
952
+ # Represents a column field within a table schema.
953
+ class GoogleCloudDataplexV1DataProfileResultProfileField
954
+ include Google::Apis::Core::Hashable
955
+
956
+ # The mode of the field. Its value will be: REQUIRED, if it is a required field.
957
+ # NULLABLE, if it is an optional field. REPEATED, if it is a repeated field.
958
+ # Corresponds to the JSON property `mode`
959
+ # @return [String]
960
+ attr_accessor :mode
961
+
962
+ # The name of the field.
963
+ # Corresponds to the JSON property `name`
964
+ # @return [String]
965
+ attr_accessor :name
966
+
967
+ # ProfileInfo defines the profile information for each schema field type.
968
+ # Corresponds to the JSON property `profile`
969
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfo]
970
+ attr_accessor :profile
971
+
972
+ # The field data type. Possible values include: STRING BYTE INT64 INT32 INT16
973
+ # DOUBLE FLOAT DECIMAL BOOLEAN BINARY TIMESTAMP DATE TIME NULL RECORD
974
+ # Corresponds to the JSON property `type`
975
+ # @return [String]
976
+ attr_accessor :type
977
+
978
+ def initialize(**args)
979
+ update!(**args)
980
+ end
981
+
982
+ # Update properties of this object
983
+ def update!(**args)
984
+ @mode = args[:mode] if args.key?(:mode)
985
+ @name = args[:name] if args.key?(:name)
986
+ @profile = args[:profile] if args.key?(:profile)
987
+ @type = args[:type] if args.key?(:type)
988
+ end
989
+ end
990
+
991
+ # ProfileInfo defines the profile information for each schema field type.
992
+ class GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfo
993
+ include Google::Apis::Core::Hashable
994
+
995
+ # The ratio of rows that are distinct against the rows in the sampled data.
996
+ # Corresponds to the JSON property `distinctRatio`
997
+ # @return [Float]
998
+ attr_accessor :distinct_ratio
999
+
1000
+ # DoubleFieldInfo defines output for any double type field.
1001
+ # Corresponds to the JSON property `doubleProfile`
1002
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoDoubleFieldInfo]
1003
+ attr_accessor :double_profile
1004
+
1005
+ # IntegerFieldInfo defines output for any integer type field.
1006
+ # Corresponds to the JSON property `integerProfile`
1007
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoIntegerFieldInfo]
1008
+ attr_accessor :integer_profile
1009
+
1010
+ # The ratio of null rows against the rows in the sampled data.
1011
+ # Corresponds to the JSON property `nullRatio`
1012
+ # @return [Float]
1013
+ attr_accessor :null_ratio
1014
+
1015
+ # StringFieldInfo defines output info for any string type field.
1016
+ # Corresponds to the JSON property `stringProfile`
1017
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoStringFieldInfo]
1018
+ attr_accessor :string_profile
1019
+
1020
+ # The array of top N values of the field in the sampled data. Currently N is set
1021
+ # as 10 or equal to distinct values in the field, whichever is smaller. This
1022
+ # will be optional for complex non-groupable data-types such as JSON, ARRAY,
1023
+ # JSON, STRUCT.
1024
+ # Corresponds to the JSON property `topNValues`
1025
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoTopNValue>]
1026
+ attr_accessor :top_n_values
1027
+
1028
+ def initialize(**args)
1029
+ update!(**args)
1030
+ end
1031
+
1032
+ # Update properties of this object
1033
+ def update!(**args)
1034
+ @distinct_ratio = args[:distinct_ratio] if args.key?(:distinct_ratio)
1035
+ @double_profile = args[:double_profile] if args.key?(:double_profile)
1036
+ @integer_profile = args[:integer_profile] if args.key?(:integer_profile)
1037
+ @null_ratio = args[:null_ratio] if args.key?(:null_ratio)
1038
+ @string_profile = args[:string_profile] if args.key?(:string_profile)
1039
+ @top_n_values = args[:top_n_values] if args.key?(:top_n_values)
1040
+ end
1041
+ end
1042
+
1043
+ # DoubleFieldInfo defines output for any double type field.
1044
+ class GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoDoubleFieldInfo
1045
+ include Google::Apis::Core::Hashable
1046
+
1047
+ # The average of non-null values of double field in the sampled data. Return NaN,
1048
+ # if the field has a NaN. Optional if zero non-null rows.
1049
+ # Corresponds to the JSON property `average`
1050
+ # @return [Float]
1051
+ attr_accessor :average
1052
+
1053
+ # The maximum value of a double field in the sampled data. Return NaN, if the
1054
+ # field has a NaN. Optional if zero non-null rows.
1055
+ # Corresponds to the JSON property `max`
1056
+ # @return [Float]
1057
+ attr_accessor :max
1058
+
1059
+ # The minimum value of a double field in the sampled data. Return NaN, if the
1060
+ # field has a NaN. Optional if zero non-null rows.
1061
+ # Corresponds to the JSON property `min`
1062
+ # @return [Float]
1063
+ attr_accessor :min
1064
+
1065
+ # A quartile divide the numebr of data points into four parts, or quarters, of
1066
+ # more-or-less equal size. Three main quartiles used are: The first quartile (Q1)
1067
+ # splits off the lowest 25% of data from the highest 75%. It is also known as
1068
+ # the lower or 25th empirical quartile, as 25% of the data is below this point.
1069
+ # The second quartile (Q2) is the median of a data set. So, 50% of the data lies
1070
+ # below this point. The third quartile (Q3) splits off the highest 25% of data
1071
+ # from the lowest 75%. It is known as the upper or 75th empirical quartile, as
1072
+ # 75% of the data lies below this point. So, here the quartiles is provided as
1073
+ # an ordered list of quartile values, occurring in order Q1, median, Q3.
1074
+ # Corresponds to the JSON property `quartiles`
1075
+ # @return [Array<Float>]
1076
+ attr_accessor :quartiles
1077
+
1078
+ # The standard deviation of non-null of double field in the sampled data. Return
1079
+ # NaN, if the field has a NaN. Optional if zero non-null rows.
1080
+ # Corresponds to the JSON property `standardDeviation`
1081
+ # @return [Float]
1082
+ attr_accessor :standard_deviation
1083
+
1084
+ def initialize(**args)
1085
+ update!(**args)
1086
+ end
1087
+
1088
+ # Update properties of this object
1089
+ def update!(**args)
1090
+ @average = args[:average] if args.key?(:average)
1091
+ @max = args[:max] if args.key?(:max)
1092
+ @min = args[:min] if args.key?(:min)
1093
+ @quartiles = args[:quartiles] if args.key?(:quartiles)
1094
+ @standard_deviation = args[:standard_deviation] if args.key?(:standard_deviation)
1095
+ end
1096
+ end
1097
+
1098
+ # IntegerFieldInfo defines output for any integer type field.
1099
+ class GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoIntegerFieldInfo
1100
+ include Google::Apis::Core::Hashable
1101
+
1102
+ # The average of non-null values of integer field in the sampled data. Return
1103
+ # NaN, if the field has a NaN. Optional if zero non-null rows.
1104
+ # Corresponds to the JSON property `average`
1105
+ # @return [Float]
1106
+ attr_accessor :average
1107
+
1108
+ # The maximum value of an integer field in the sampled data. Return NaN, if the
1109
+ # field has a NaN. Optional if zero non-null rows.
1110
+ # Corresponds to the JSON property `max`
1111
+ # @return [Fixnum]
1112
+ attr_accessor :max
1113
+
1114
+ # The minimum value of an integer field in the sampled data. Return NaN, if the
1115
+ # field has a NaN. Optional if zero non-null rows.
1116
+ # Corresponds to the JSON property `min`
1117
+ # @return [Fixnum]
1118
+ attr_accessor :min
1119
+
1120
+ # A quartile divide the number of data points into four parts, or quarters, of
1121
+ # more-or-less equal size. Three main quartiles used are: The first quartile (Q1)
1122
+ # splits off the lowest 25% of data from the highest 75%. It is also known as
1123
+ # the lower or 25th empirical quartile, as 25% of the data is below this point.
1124
+ # The second quartile (Q2) is the median of a data set. So, 50% of the data lies
1125
+ # below this point. The third quartile (Q3) splits off the highest 25% of data
1126
+ # from the lowest 75%. It is known as the upper or 75th empirical quartile, as
1127
+ # 75% of the data lies below this point. So, here the quartiles is provided as
1128
+ # an ordered list of quartile values, occurring in order Q1, median, Q3.
1129
+ # Corresponds to the JSON property `quartiles`
1130
+ # @return [Array<Fixnum>]
1131
+ attr_accessor :quartiles
1132
+
1133
+ # The standard deviation of non-null of integer field in the sampled data.
1134
+ # Return NaN, if the field has a NaN. Optional if zero non-null rows.
1135
+ # Corresponds to the JSON property `standardDeviation`
1136
+ # @return [Float]
1137
+ attr_accessor :standard_deviation
1138
+
1139
+ def initialize(**args)
1140
+ update!(**args)
1141
+ end
1142
+
1143
+ # Update properties of this object
1144
+ def update!(**args)
1145
+ @average = args[:average] if args.key?(:average)
1146
+ @max = args[:max] if args.key?(:max)
1147
+ @min = args[:min] if args.key?(:min)
1148
+ @quartiles = args[:quartiles] if args.key?(:quartiles)
1149
+ @standard_deviation = args[:standard_deviation] if args.key?(:standard_deviation)
1150
+ end
1151
+ end
1152
+
1153
+ # StringFieldInfo defines output info for any string type field.
1154
+ class GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoStringFieldInfo
1155
+ include Google::Apis::Core::Hashable
1156
+
1157
+ # The average length of a string field in the sampled data. Optional if zero non-
1158
+ # null rows.
1159
+ # Corresponds to the JSON property `averageLength`
1160
+ # @return [Float]
1161
+ attr_accessor :average_length
1162
+
1163
+ # The maximum length of a string field in the sampled data. Optional if zero non-
1164
+ # null rows.
1165
+ # Corresponds to the JSON property `maxLength`
1166
+ # @return [Fixnum]
1167
+ attr_accessor :max_length
1168
+
1169
+ # The minimum length of the string field in the sampled data. Optional if zero
1170
+ # non-null rows.
1171
+ # Corresponds to the JSON property `minLength`
1172
+ # @return [Fixnum]
1173
+ attr_accessor :min_length
1174
+
1175
+ def initialize(**args)
1176
+ update!(**args)
1177
+ end
1178
+
1179
+ # Update properties of this object
1180
+ def update!(**args)
1181
+ @average_length = args[:average_length] if args.key?(:average_length)
1182
+ @max_length = args[:max_length] if args.key?(:max_length)
1183
+ @min_length = args[:min_length] if args.key?(:min_length)
1184
+ end
1185
+ end
1186
+
1187
+ # The TopNValue defines the structure of output of top N values of a field.
1188
+ class GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoTopNValue
1189
+ include Google::Apis::Core::Hashable
1190
+
1191
+ # The frequency count of the corresponding value in the field.
1192
+ # Corresponds to the JSON property `count`
1193
+ # @return [Fixnum]
1194
+ attr_accessor :count
1195
+
1196
+ # The value is the string value of the actual value from the field.
1197
+ # Corresponds to the JSON property `value`
1198
+ # @return [String]
1199
+ attr_accessor :value
1200
+
1201
+ def initialize(**args)
1202
+ update!(**args)
1203
+ end
1204
+
1205
+ # Update properties of this object
1206
+ def update!(**args)
1207
+ @count = args[:count] if args.key?(:count)
1208
+ @value = args[:value] if args.key?(:value)
1209
+ end
1210
+ end
1211
+
1212
+ # DataProfileScan related setting.
1213
+ class GoogleCloudDataplexV1DataProfileSpec
1214
+ include Google::Apis::Core::Hashable
1215
+
1216
+ def initialize(**args)
1217
+ update!(**args)
1218
+ end
1219
+
1220
+ # Update properties of this object
1221
+ def update!(**args)
1222
+ end
1223
+ end
1224
+
1225
+ # DataQualityDimensionResult provides a more detailed, per-dimension level view
1226
+ # of the results.
1227
+ class GoogleCloudDataplexV1DataQualityDimensionResult
1228
+ include Google::Apis::Core::Hashable
1229
+
1230
+ # Whether the dimension passed or failed.
1231
+ # Corresponds to the JSON property `passed`
1232
+ # @return [Boolean]
1233
+ attr_accessor :passed
1234
+ alias_method :passed?, :passed
1235
+
1236
+ def initialize(**args)
1237
+ update!(**args)
1238
+ end
1239
+
1240
+ # Update properties of this object
1241
+ def update!(**args)
1242
+ @passed = args[:passed] if args.key?(:passed)
1243
+ end
1244
+ end
1245
+
1246
+ # The output of a DataQualityScan.
1247
+ class GoogleCloudDataplexV1DataQualityResult
1248
+ include Google::Apis::Core::Hashable
1249
+
1250
+ # A list of results at the dimension-level.
1251
+ # Corresponds to the JSON property `dimensions`
1252
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityDimensionResult>]
1253
+ attr_accessor :dimensions
1254
+
1255
+ # Overall data quality result -- true if all rules passed.
1256
+ # Corresponds to the JSON property `passed`
1257
+ # @return [Boolean]
1258
+ attr_accessor :passed
1259
+ alias_method :passed?, :passed
1260
+
1261
+ # The count of rows processed.
1262
+ # Corresponds to the JSON property `rowCount`
1263
+ # @return [Fixnum]
1264
+ attr_accessor :row_count
1265
+
1266
+ # A list of all the rules in a job, and their results.
1267
+ # Corresponds to the JSON property `rules`
1268
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRuleResult>]
1269
+ attr_accessor :rules
1270
+
1271
+ # The data scanned during processing (e.g. in incremental DataScan)
1272
+ # Corresponds to the JSON property `scannedData`
1273
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ScannedData]
1274
+ attr_accessor :scanned_data
1275
+
1276
+ def initialize(**args)
1277
+ update!(**args)
1278
+ end
1279
+
1280
+ # Update properties of this object
1281
+ def update!(**args)
1282
+ @dimensions = args[:dimensions] if args.key?(:dimensions)
1283
+ @passed = args[:passed] if args.key?(:passed)
1284
+ @row_count = args[:row_count] if args.key?(:row_count)
1285
+ @rules = args[:rules] if args.key?(:rules)
1286
+ @scanned_data = args[:scanned_data] if args.key?(:scanned_data)
1287
+ end
1288
+ end
1289
+
1290
+ # A rule captures data quality intent about a data source.
1291
+ class GoogleCloudDataplexV1DataQualityRule
1292
+ include Google::Apis::Core::Hashable
1293
+
1294
+ # Optional. The unnested column which this rule is evaluated against.
1295
+ # Corresponds to the JSON property `column`
1296
+ # @return [String]
1297
+ attr_accessor :column
1298
+
1299
+ # Required. The dimension a rule belongs to. Results are also aggregated at the
1300
+ # dimension-level. Supported dimensions are "COMPLETENESS", "ACCURACY", "
1301
+ # CONSISTENCY", "VALIDITY", "UNIQUENESS", "INTEGRITY"
1302
+ # Corresponds to the JSON property `dimension`
1303
+ # @return [String]
1304
+ attr_accessor :dimension
1305
+
1306
+ # Optional. Rows with null values will automatically fail a rule, unless
1307
+ # ignore_null is true. In that case, such null rows are trivially considered
1308
+ # passing. Only applicable to ColumnMap rules.
1309
+ # Corresponds to the JSON property `ignoreNull`
1310
+ # @return [Boolean]
1311
+ attr_accessor :ignore_null
1312
+ alias_method :ignore_null?, :ignore_null
1313
+
1314
+ # Evaluates whether each column value is null.
1315
+ # Corresponds to the JSON property `nonNullExpectation`
1316
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRuleNonNullExpectation]
1317
+ attr_accessor :non_null_expectation
1318
+
1319
+ # Evaluates whether each column value lies between a specified range.
1320
+ # Corresponds to the JSON property `rangeExpectation`
1321
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRuleRangeExpectation]
1322
+ attr_accessor :range_expectation
1323
+
1324
+ # Evaluates whether each column value matches a specified regex.
1325
+ # Corresponds to the JSON property `regexExpectation`
1326
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRuleRegexExpectation]
1327
+ attr_accessor :regex_expectation
1328
+
1329
+ # Evaluates whether each row passes the specified condition. The SQL expression
1330
+ # needs to use BigQuery standard SQL syntax and should produce a boolean per row
1331
+ # as the result. Example: col1 >= 0 AND col2 < 10
1332
+ # Corresponds to the JSON property `rowConditionExpectation`
1333
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRuleRowConditionExpectation]
1334
+ attr_accessor :row_condition_expectation
1335
+
1336
+ # Evaluates whether each column value is contained by a specified set.
1337
+ # Corresponds to the JSON property `setExpectation`
1338
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRuleSetExpectation]
1339
+ attr_accessor :set_expectation
1340
+
1341
+ # Evaluates whether the column aggregate statistic lies between a specified
1342
+ # range.
1343
+ # Corresponds to the JSON property `statisticRangeExpectation`
1344
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRuleStatisticRangeExpectation]
1345
+ attr_accessor :statistic_range_expectation
1346
+
1347
+ # Evaluates whether the provided expression is true. The SQL expression needs to
1348
+ # use BigQuery standard SQL syntax and should produce a scalar boolean result.
1349
+ # Example: MIN(col1) >= 0
1350
+ # Corresponds to the JSON property `tableConditionExpectation`
1351
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRuleTableConditionExpectation]
1352
+ attr_accessor :table_condition_expectation
1353
+
1354
+ # Optional. The minimum ratio of passing_rows / total_rows required to pass this
1355
+ # rule, with a range of 0.0, 1.00 indicates default value (i.e. 1.0)
1356
+ # Corresponds to the JSON property `threshold`
1357
+ # @return [Float]
1358
+ attr_accessor :threshold
1359
+
1360
+ # Evaluates whether the column has duplicates.
1361
+ # Corresponds to the JSON property `uniquenessExpectation`
1362
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRuleUniquenessExpectation]
1363
+ attr_accessor :uniqueness_expectation
1364
+
1365
+ def initialize(**args)
1366
+ update!(**args)
1367
+ end
1368
+
1369
+ # Update properties of this object
1370
+ def update!(**args)
1371
+ @column = args[:column] if args.key?(:column)
1372
+ @dimension = args[:dimension] if args.key?(:dimension)
1373
+ @ignore_null = args[:ignore_null] if args.key?(:ignore_null)
1374
+ @non_null_expectation = args[:non_null_expectation] if args.key?(:non_null_expectation)
1375
+ @range_expectation = args[:range_expectation] if args.key?(:range_expectation)
1376
+ @regex_expectation = args[:regex_expectation] if args.key?(:regex_expectation)
1377
+ @row_condition_expectation = args[:row_condition_expectation] if args.key?(:row_condition_expectation)
1378
+ @set_expectation = args[:set_expectation] if args.key?(:set_expectation)
1379
+ @statistic_range_expectation = args[:statistic_range_expectation] if args.key?(:statistic_range_expectation)
1380
+ @table_condition_expectation = args[:table_condition_expectation] if args.key?(:table_condition_expectation)
1381
+ @threshold = args[:threshold] if args.key?(:threshold)
1382
+ @uniqueness_expectation = args[:uniqueness_expectation] if args.key?(:uniqueness_expectation)
1383
+ end
1384
+ end
1385
+
1386
+ # Evaluates whether each column value is null.
1387
+ class GoogleCloudDataplexV1DataQualityRuleNonNullExpectation
1388
+ include Google::Apis::Core::Hashable
1389
+
1390
+ def initialize(**args)
1391
+ update!(**args)
1392
+ end
1393
+
1394
+ # Update properties of this object
1395
+ def update!(**args)
1396
+ end
1397
+ end
1398
+
1399
+ # Evaluates whether each column value lies between a specified range.
1400
+ class GoogleCloudDataplexV1DataQualityRuleRangeExpectation
1401
+ include Google::Apis::Core::Hashable
1402
+
1403
+ # Optional. The maximum column value allowed for a row to pass this validation.
1404
+ # At least one of min_value and max_value need to be provided.
1405
+ # Corresponds to the JSON property `maxValue`
1406
+ # @return [String]
1407
+ attr_accessor :max_value
1408
+
1409
+ # Optional. The minimum column value allowed for a row to pass this validation.
1410
+ # At least one of min_value and max_value need to be provided.
1411
+ # Corresponds to the JSON property `minValue`
1412
+ # @return [String]
1413
+ attr_accessor :min_value
1414
+
1415
+ # Optional. Whether each value needs to be strictly lesser than ('<') the
1416
+ # maximum, or if equality is allowed. Only relevant if a max_value has been
1417
+ # defined. Default = false.
1418
+ # Corresponds to the JSON property `strictMaxEnabled`
1419
+ # @return [Boolean]
1420
+ attr_accessor :strict_max_enabled
1421
+ alias_method :strict_max_enabled?, :strict_max_enabled
1422
+
1423
+ # Optional. Whether each value needs to be strictly greater than ('>') the
1424
+ # minimum, or if equality is allowed. Only relevant if a min_value has been
1425
+ # defined. Default = false.
1426
+ # Corresponds to the JSON property `strictMinEnabled`
1427
+ # @return [Boolean]
1428
+ attr_accessor :strict_min_enabled
1429
+ alias_method :strict_min_enabled?, :strict_min_enabled
1430
+
1431
+ def initialize(**args)
1432
+ update!(**args)
1433
+ end
1434
+
1435
+ # Update properties of this object
1436
+ def update!(**args)
1437
+ @max_value = args[:max_value] if args.key?(:max_value)
1438
+ @min_value = args[:min_value] if args.key?(:min_value)
1439
+ @strict_max_enabled = args[:strict_max_enabled] if args.key?(:strict_max_enabled)
1440
+ @strict_min_enabled = args[:strict_min_enabled] if args.key?(:strict_min_enabled)
1441
+ end
1442
+ end
1443
+
1444
+ # Evaluates whether each column value matches a specified regex.
1445
+ class GoogleCloudDataplexV1DataQualityRuleRegexExpectation
1446
+ include Google::Apis::Core::Hashable
1447
+
1448
+ #
1449
+ # Corresponds to the JSON property `regex`
1450
+ # @return [String]
1451
+ attr_accessor :regex
1452
+
1453
+ def initialize(**args)
1454
+ update!(**args)
1455
+ end
1456
+
1457
+ # Update properties of this object
1458
+ def update!(**args)
1459
+ @regex = args[:regex] if args.key?(:regex)
1460
+ end
1461
+ end
1462
+
1463
+ # DataQualityRuleResult provides a more detailed, per-rule level view of the
1464
+ # results.
1465
+ class GoogleCloudDataplexV1DataQualityRuleResult
1466
+ include Google::Apis::Core::Hashable
1467
+
1468
+ # The number of rows a rule was evaluated against. This field is only valid for
1469
+ # ColumnMap type rules. Evaluated count can be configured to either (1) include
1470
+ # all rows (default) - with null rows automatically failing rule evaluation OR (
1471
+ # 2) exclude null rows from the evaluated_count, by setting ignore_nulls = true
1472
+ # Corresponds to the JSON property `evaluatedCount`
1473
+ # @return [Fixnum]
1474
+ attr_accessor :evaluated_count
1475
+
1476
+ # The query to find rows that did not pass this rule. Only applies to ColumnMap
1477
+ # and RowCondition rules.
1478
+ # Corresponds to the JSON property `failingRowsQuery`
1479
+ # @return [String]
1480
+ attr_accessor :failing_rows_query
1481
+
1482
+ # The number of rows with null values in the specified column.
1483
+ # Corresponds to the JSON property `nullCount`
1484
+ # @return [Fixnum]
1485
+ attr_accessor :null_count
1486
+
1487
+ # The ratio of passed_count / evaluated_count. This field is only valid for
1488
+ # ColumnMap type rules.
1489
+ # Corresponds to the JSON property `passRatio`
1490
+ # @return [Float]
1491
+ attr_accessor :pass_ratio
1492
+
1493
+ # Whether the rule passed or failed.
1494
+ # Corresponds to the JSON property `passed`
1495
+ # @return [Boolean]
1496
+ attr_accessor :passed
1497
+ alias_method :passed?, :passed
1498
+
1499
+ # The number of rows which passed a rule evaluation. This field is only valid
1500
+ # for ColumnMap type rules.
1501
+ # Corresponds to the JSON property `passedCount`
1502
+ # @return [Fixnum]
1503
+ attr_accessor :passed_count
1504
+
1505
+ # A rule captures data quality intent about a data source.
1506
+ # Corresponds to the JSON property `rule`
1507
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRule]
1508
+ attr_accessor :rule
1509
+
1510
+ def initialize(**args)
1511
+ update!(**args)
1512
+ end
1513
+
1514
+ # Update properties of this object
1515
+ def update!(**args)
1516
+ @evaluated_count = args[:evaluated_count] if args.key?(:evaluated_count)
1517
+ @failing_rows_query = args[:failing_rows_query] if args.key?(:failing_rows_query)
1518
+ @null_count = args[:null_count] if args.key?(:null_count)
1519
+ @pass_ratio = args[:pass_ratio] if args.key?(:pass_ratio)
1520
+ @passed = args[:passed] if args.key?(:passed)
1521
+ @passed_count = args[:passed_count] if args.key?(:passed_count)
1522
+ @rule = args[:rule] if args.key?(:rule)
1523
+ end
1524
+ end
1525
+
1526
+ # Evaluates whether each row passes the specified condition. The SQL expression
1527
+ # needs to use BigQuery standard SQL syntax and should produce a boolean per row
1528
+ # as the result. Example: col1 >= 0 AND col2 < 10
1529
+ class GoogleCloudDataplexV1DataQualityRuleRowConditionExpectation
1530
+ include Google::Apis::Core::Hashable
1531
+
1532
+ #
1533
+ # Corresponds to the JSON property `sqlExpression`
1534
+ # @return [String]
1535
+ attr_accessor :sql_expression
1536
+
1537
+ def initialize(**args)
1538
+ update!(**args)
1539
+ end
1540
+
1541
+ # Update properties of this object
1542
+ def update!(**args)
1543
+ @sql_expression = args[:sql_expression] if args.key?(:sql_expression)
1544
+ end
1545
+ end
1546
+
1547
+ # Evaluates whether each column value is contained by a specified set.
1548
+ class GoogleCloudDataplexV1DataQualityRuleSetExpectation
1549
+ include Google::Apis::Core::Hashable
1550
+
1551
+ #
1552
+ # Corresponds to the JSON property `values`
1553
+ # @return [Array<String>]
1554
+ attr_accessor :values
1555
+
1556
+ def initialize(**args)
1557
+ update!(**args)
1558
+ end
1559
+
1560
+ # Update properties of this object
1561
+ def update!(**args)
1562
+ @values = args[:values] if args.key?(:values)
1563
+ end
1564
+ end
1565
+
1566
+ # Evaluates whether the column aggregate statistic lies between a specified
1567
+ # range.
1568
+ class GoogleCloudDataplexV1DataQualityRuleStatisticRangeExpectation
1569
+ include Google::Apis::Core::Hashable
1570
+
1571
+ # The maximum column statistic value allowed for a row to pass this validation.
1572
+ # At least one of min_value and max_value need to be provided.
1573
+ # Corresponds to the JSON property `maxValue`
1574
+ # @return [String]
1575
+ attr_accessor :max_value
1576
+
1577
+ # The minimum column statistic value allowed for a row to pass this validation.
1578
+ # At least one of min_value and max_value need to be provided.
1579
+ # Corresponds to the JSON property `minValue`
1580
+ # @return [String]
1581
+ attr_accessor :min_value
1582
+
1583
+ #
1584
+ # Corresponds to the JSON property `statistic`
1585
+ # @return [String]
1586
+ attr_accessor :statistic
1587
+
1588
+ # Whether column statistic needs to be strictly lesser than ('<') the maximum,
1589
+ # or if equality is allowed. Only relevant if a max_value has been defined.
1590
+ # Default = false.
1591
+ # Corresponds to the JSON property `strictMaxEnabled`
1592
+ # @return [Boolean]
1593
+ attr_accessor :strict_max_enabled
1594
+ alias_method :strict_max_enabled?, :strict_max_enabled
1595
+
1596
+ # Whether column statistic needs to be strictly greater than ('>') the minimum,
1597
+ # or if equality is allowed. Only relevant if a min_value has been defined.
1598
+ # Default = false.
1599
+ # Corresponds to the JSON property `strictMinEnabled`
1600
+ # @return [Boolean]
1601
+ attr_accessor :strict_min_enabled
1602
+ alias_method :strict_min_enabled?, :strict_min_enabled
1603
+
1604
+ def initialize(**args)
1605
+ update!(**args)
1606
+ end
1607
+
1608
+ # Update properties of this object
1609
+ def update!(**args)
1610
+ @max_value = args[:max_value] if args.key?(:max_value)
1611
+ @min_value = args[:min_value] if args.key?(:min_value)
1612
+ @statistic = args[:statistic] if args.key?(:statistic)
1613
+ @strict_max_enabled = args[:strict_max_enabled] if args.key?(:strict_max_enabled)
1614
+ @strict_min_enabled = args[:strict_min_enabled] if args.key?(:strict_min_enabled)
1615
+ end
1616
+ end
1617
+
1618
+ # Evaluates whether the provided expression is true. The SQL expression needs to
1619
+ # use BigQuery standard SQL syntax and should produce a scalar boolean result.
1620
+ # Example: MIN(col1) >= 0
1621
+ class GoogleCloudDataplexV1DataQualityRuleTableConditionExpectation
1622
+ include Google::Apis::Core::Hashable
1623
+
1624
+ #
1625
+ # Corresponds to the JSON property `sqlExpression`
1626
+ # @return [String]
1627
+ attr_accessor :sql_expression
1628
+
1629
+ def initialize(**args)
1630
+ update!(**args)
1631
+ end
1632
+
1633
+ # Update properties of this object
1634
+ def update!(**args)
1635
+ @sql_expression = args[:sql_expression] if args.key?(:sql_expression)
1636
+ end
1637
+ end
1638
+
1639
+ # Evaluates whether the column has duplicates.
1640
+ class GoogleCloudDataplexV1DataQualityRuleUniquenessExpectation
1641
+ include Google::Apis::Core::Hashable
1642
+
1643
+ def initialize(**args)
1644
+ update!(**args)
1645
+ end
1646
+
1647
+ # Update properties of this object
1648
+ def update!(**args)
1649
+ end
1650
+ end
1651
+
1652
+ # DataQualityScan related setting.
1653
+ class GoogleCloudDataplexV1DataQualitySpec
1654
+ include Google::Apis::Core::Hashable
1655
+
1656
+ # The list of rules to evaluate against a data source. At least one rule is
1657
+ # required.
1658
+ # Corresponds to the JSON property `rules`
1659
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityRule>]
1660
+ attr_accessor :rules
1661
+
1662
+ def initialize(**args)
1663
+ update!(**args)
1664
+ end
1665
+
1666
+ # Update properties of this object
1667
+ def update!(**args)
1668
+ @rules = args[:rules] if args.key?(:rules)
1669
+ end
1670
+ end
1671
+
1672
+ # Represents a user-visible job which provides the insights for the related data
1673
+ # source. For examples: - Data Quality: generates queries based on the rules and
1674
+ # run against the data to get data quality check results. - Data Profile:
1675
+ # analyzes the data in table(s) and generates insights about the structure,
1676
+ # content and relationships (such as null percent, cardinality, min/max/mean,
1677
+ # etc).
1678
+ class GoogleCloudDataplexV1DataScan
1679
+ include Google::Apis::Core::Hashable
1680
+
1681
+ # Output only. The time when the scan was created.
1682
+ # Corresponds to the JSON property `createTime`
1683
+ # @return [String]
1684
+ attr_accessor :create_time
1685
+
1686
+ # The data source for DataScan.
1687
+ # Corresponds to the JSON property `data`
1688
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataSource]
1689
+ attr_accessor :data
1690
+
1691
+ # DataProfileResult defines the output of DataProfileScan. Each field of the
1692
+ # table will have field type specific profile result.
1693
+ # Corresponds to the JSON property `dataProfileResult`
1694
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileResult]
1695
+ attr_accessor :data_profile_result
1696
+
1697
+ # DataProfileScan related setting.
1698
+ # Corresponds to the JSON property `dataProfileSpec`
1699
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileSpec]
1700
+ attr_accessor :data_profile_spec
1701
+
1702
+ # The output of a DataQualityScan.
1703
+ # Corresponds to the JSON property `dataQualityResult`
1704
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityResult]
1705
+ attr_accessor :data_quality_result
1706
+
1707
+ # DataQualityScan related setting.
1708
+ # Corresponds to the JSON property `dataQualitySpec`
1709
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualitySpec]
1710
+ attr_accessor :data_quality_spec
1711
+
1712
+ # Optional. Description of the scan. * Must be between 1-1024 characters.
1713
+ # Corresponds to the JSON property `description`
1714
+ # @return [String]
1715
+ attr_accessor :description
1716
+
1717
+ # Optional. User friendly display name. * Must be between 1-256 characters.
1718
+ # Corresponds to the JSON property `displayName`
1719
+ # @return [String]
1720
+ attr_accessor :display_name
1721
+
1722
+ # DataScan execution settings.
1723
+ # Corresponds to the JSON property `executionSpec`
1724
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataScanExecutionSpec]
1725
+ attr_accessor :execution_spec
1726
+
1727
+ # Status of the data scan execution.
1728
+ # Corresponds to the JSON property `executionStatus`
1729
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataScanExecutionStatus]
1730
+ attr_accessor :execution_status
1731
+
1732
+ # Optional. User-defined labels for the scan.
1733
+ # Corresponds to the JSON property `labels`
1734
+ # @return [Hash<String,String>]
1735
+ attr_accessor :labels
1736
+
1737
+ # Output only. The relative resource name of the scan, of the form: projects/`
1738
+ # project`/locations/`location_id`/dataScans/`datascan_id`. where `project`
1739
+ # refers to a project_id or project_number and location_id refers to a GCP
1740
+ # region.
1741
+ # Corresponds to the JSON property `name`
1742
+ # @return [String]
1743
+ attr_accessor :name
1744
+
1745
+ # Output only. Current state of the DataScan.
1746
+ # Corresponds to the JSON property `state`
1747
+ # @return [String]
1748
+ attr_accessor :state
1749
+
1750
+ # Output only. The type of DataScan.
1751
+ # Corresponds to the JSON property `type`
1752
+ # @return [String]
1753
+ attr_accessor :type
1754
+
1755
+ # Output only. System generated globally unique ID for the scan. This ID will be
1756
+ # different if the scan is deleted and re-created with the same name.
1757
+ # Corresponds to the JSON property `uid`
1758
+ # @return [String]
1759
+ attr_accessor :uid
1760
+
1761
+ # Output only. The time when the scan was last updated.
1762
+ # Corresponds to the JSON property `updateTime`
1763
+ # @return [String]
1764
+ attr_accessor :update_time
1765
+
1766
+ def initialize(**args)
1767
+ update!(**args)
1768
+ end
1769
+
1770
+ # Update properties of this object
1771
+ def update!(**args)
1772
+ @create_time = args[:create_time] if args.key?(:create_time)
1773
+ @data = args[:data] if args.key?(:data)
1774
+ @data_profile_result = args[:data_profile_result] if args.key?(:data_profile_result)
1775
+ @data_profile_spec = args[:data_profile_spec] if args.key?(:data_profile_spec)
1776
+ @data_quality_result = args[:data_quality_result] if args.key?(:data_quality_result)
1777
+ @data_quality_spec = args[:data_quality_spec] if args.key?(:data_quality_spec)
1778
+ @description = args[:description] if args.key?(:description)
1779
+ @display_name = args[:display_name] if args.key?(:display_name)
1780
+ @execution_spec = args[:execution_spec] if args.key?(:execution_spec)
1781
+ @execution_status = args[:execution_status] if args.key?(:execution_status)
1782
+ @labels = args[:labels] if args.key?(:labels)
1783
+ @name = args[:name] if args.key?(:name)
1784
+ @state = args[:state] if args.key?(:state)
1785
+ @type = args[:type] if args.key?(:type)
1786
+ @uid = args[:uid] if args.key?(:uid)
1787
+ @update_time = args[:update_time] if args.key?(:update_time)
1788
+ end
1789
+ end
1790
+
899
1791
  # These messages contain information about the execution of a datascan. The
900
1792
  # monitored resource is 'DataScan'
901
1793
  class GoogleCloudDataplexV1DataScanEvent
@@ -1035,6 +1927,161 @@ module Google
1035
1927
  end
1036
1928
  end
1037
1929
 
1930
+ # DataScan execution settings.
1931
+ class GoogleCloudDataplexV1DataScanExecutionSpec
1932
+ include Google::Apis::Core::Hashable
1933
+
1934
+ # Immutable. The unnested field (Date or Timestamp) that contains values that
1935
+ # monotonically increase over time.
1936
+ # Corresponds to the JSON property `field`
1937
+ # @return [String]
1938
+ attr_accessor :field
1939
+
1940
+ # DataScan scheduling and trigger settings.
1941
+ # Corresponds to the JSON property `trigger`
1942
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1Trigger]
1943
+ attr_accessor :trigger
1944
+
1945
+ def initialize(**args)
1946
+ update!(**args)
1947
+ end
1948
+
1949
+ # Update properties of this object
1950
+ def update!(**args)
1951
+ @field = args[:field] if args.key?(:field)
1952
+ @trigger = args[:trigger] if args.key?(:trigger)
1953
+ end
1954
+ end
1955
+
1956
+ # Status of the data scan execution.
1957
+ class GoogleCloudDataplexV1DataScanExecutionStatus
1958
+ include Google::Apis::Core::Hashable
1959
+
1960
+ # The time when the latest DataScanJob ended.
1961
+ # Corresponds to the JSON property `latestJobEndTime`
1962
+ # @return [String]
1963
+ attr_accessor :latest_job_end_time
1964
+
1965
+ # The time when the latest DataScanJob started.
1966
+ # Corresponds to the JSON property `latestJobStartTime`
1967
+ # @return [String]
1968
+ attr_accessor :latest_job_start_time
1969
+
1970
+ def initialize(**args)
1971
+ update!(**args)
1972
+ end
1973
+
1974
+ # Update properties of this object
1975
+ def update!(**args)
1976
+ @latest_job_end_time = args[:latest_job_end_time] if args.key?(:latest_job_end_time)
1977
+ @latest_job_start_time = args[:latest_job_start_time] if args.key?(:latest_job_start_time)
1978
+ end
1979
+ end
1980
+
1981
+ # A DataScanJob represents an instance of a data scan.
1982
+ class GoogleCloudDataplexV1DataScanJob
1983
+ include Google::Apis::Core::Hashable
1984
+
1985
+ # DataProfileResult defines the output of DataProfileScan. Each field of the
1986
+ # table will have field type specific profile result.
1987
+ # Corresponds to the JSON property `dataProfileResult`
1988
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileResult]
1989
+ attr_accessor :data_profile_result
1990
+
1991
+ # DataProfileScan related setting.
1992
+ # Corresponds to the JSON property `dataProfileSpec`
1993
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataProfileSpec]
1994
+ attr_accessor :data_profile_spec
1995
+
1996
+ # The output of a DataQualityScan.
1997
+ # Corresponds to the JSON property `dataQualityResult`
1998
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualityResult]
1999
+ attr_accessor :data_quality_result
2000
+
2001
+ # DataQualityScan related setting.
2002
+ # Corresponds to the JSON property `dataQualitySpec`
2003
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataQualitySpec]
2004
+ attr_accessor :data_quality_spec
2005
+
2006
+ # Output only. The time when the DataScanJob ended.
2007
+ # Corresponds to the JSON property `endTime`
2008
+ # @return [String]
2009
+ attr_accessor :end_time
2010
+
2011
+ # Output only. Additional information about the current state.
2012
+ # Corresponds to the JSON property `message`
2013
+ # @return [String]
2014
+ attr_accessor :message
2015
+
2016
+ # Output only. The relative resource name of the DataScanJob, of the form:
2017
+ # projects/`project`/locations/`location_id`/dataScans/`datascan_id`/jobs/`
2018
+ # job_id`. where `project` refers to a project_id or project_number and
2019
+ # location_id refers to a GCP region.
2020
+ # Corresponds to the JSON property `name`
2021
+ # @return [String]
2022
+ attr_accessor :name
2023
+
2024
+ # Output only. The time when the DataScanJob was started.
2025
+ # Corresponds to the JSON property `startTime`
2026
+ # @return [String]
2027
+ attr_accessor :start_time
2028
+
2029
+ # Output only. Execution state for the DataScanJob.
2030
+ # Corresponds to the JSON property `state`
2031
+ # @return [String]
2032
+ attr_accessor :state
2033
+
2034
+ # Output only. The type of the parent DataScan.
2035
+ # Corresponds to the JSON property `type`
2036
+ # @return [String]
2037
+ attr_accessor :type
2038
+
2039
+ # Output only. System generated globally unique ID for the DataScanJob.
2040
+ # Corresponds to the JSON property `uid`
2041
+ # @return [String]
2042
+ attr_accessor :uid
2043
+
2044
+ def initialize(**args)
2045
+ update!(**args)
2046
+ end
2047
+
2048
+ # Update properties of this object
2049
+ def update!(**args)
2050
+ @data_profile_result = args[:data_profile_result] if args.key?(:data_profile_result)
2051
+ @data_profile_spec = args[:data_profile_spec] if args.key?(:data_profile_spec)
2052
+ @data_quality_result = args[:data_quality_result] if args.key?(:data_quality_result)
2053
+ @data_quality_spec = args[:data_quality_spec] if args.key?(:data_quality_spec)
2054
+ @end_time = args[:end_time] if args.key?(:end_time)
2055
+ @message = args[:message] if args.key?(:message)
2056
+ @name = args[:name] if args.key?(:name)
2057
+ @start_time = args[:start_time] if args.key?(:start_time)
2058
+ @state = args[:state] if args.key?(:state)
2059
+ @type = args[:type] if args.key?(:type)
2060
+ @uid = args[:uid] if args.key?(:uid)
2061
+ end
2062
+ end
2063
+
2064
+ # The data source for DataScan.
2065
+ class GoogleCloudDataplexV1DataSource
2066
+ include Google::Apis::Core::Hashable
2067
+
2068
+ # Immutable. The dataplex entity that contains the data for DataScan, of the
2069
+ # form: projects/`project_number`/locations/`location_id`/lakes/`lake_id`/zones/`
2070
+ # zone_id`/entities/`entity_id`.
2071
+ # Corresponds to the JSON property `entity`
2072
+ # @return [String]
2073
+ attr_accessor :entity
2074
+
2075
+ def initialize(**args)
2076
+ update!(**args)
2077
+ end
2078
+
2079
+ # Update properties of this object
2080
+ def update!(**args)
2081
+ @entity = args[:entity] if args.key?(:entity)
2082
+ end
2083
+ end
2084
+
1038
2085
  # The payload associated with Discovery data processing.
1039
2086
  class GoogleCloudDataplexV1DiscoveryEvent
1040
2087
  include Google::Apis::Core::Hashable
@@ -2025,6 +3072,64 @@ module Google
2025
3072
  end
2026
3073
  end
2027
3074
 
3075
+ # List DataScanJobs response.
3076
+ class GoogleCloudDataplexV1ListDataScanJobsResponse
3077
+ include Google::Apis::Core::Hashable
3078
+
3079
+ # DataScanJobs (metadata only) under a given dataScan.
3080
+ # Corresponds to the JSON property `dataScanJobs`
3081
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1DataScanJob>]
3082
+ attr_accessor :data_scan_jobs
3083
+
3084
+ # Token to retrieve the next page of results, or empty if there are no more
3085
+ # results in the list.
3086
+ # Corresponds to the JSON property `nextPageToken`
3087
+ # @return [String]
3088
+ attr_accessor :next_page_token
3089
+
3090
+ def initialize(**args)
3091
+ update!(**args)
3092
+ end
3093
+
3094
+ # Update properties of this object
3095
+ def update!(**args)
3096
+ @data_scan_jobs = args[:data_scan_jobs] if args.key?(:data_scan_jobs)
3097
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3098
+ end
3099
+ end
3100
+
3101
+ # List dataScans response.
3102
+ class GoogleCloudDataplexV1ListDataScansResponse
3103
+ include Google::Apis::Core::Hashable
3104
+
3105
+ # DataScans (metadata only) under the given parent location.
3106
+ # Corresponds to the JSON property `dataScans`
3107
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1DataScan>]
3108
+ attr_accessor :data_scans
3109
+
3110
+ # Token to retrieve the next page of results, or empty if there are no more
3111
+ # results in the list.
3112
+ # Corresponds to the JSON property `nextPageToken`
3113
+ # @return [String]
3114
+ attr_accessor :next_page_token
3115
+
3116
+ # Locations that could not be reached.
3117
+ # Corresponds to the JSON property `unreachable`
3118
+ # @return [Array<String>]
3119
+ attr_accessor :unreachable
3120
+
3121
+ def initialize(**args)
3122
+ update!(**args)
3123
+ end
3124
+
3125
+ # Update properties of this object
3126
+ def update!(**args)
3127
+ @data_scans = args[:data_scans] if args.key?(:data_scans)
3128
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3129
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
3130
+ end
3131
+ end
3132
+
2028
3133
  # List metadata entities response.
2029
3134
  class GoogleCloudDataplexV1ListEntitiesResponse
2030
3135
  include Google::Apis::Core::Hashable
@@ -2347,6 +3452,89 @@ module Google
2347
3452
  end
2348
3453
  end
2349
3454
 
3455
+ # Run DataScan Request
3456
+ class GoogleCloudDataplexV1RunDataScanRequest
3457
+ include Google::Apis::Core::Hashable
3458
+
3459
+ def initialize(**args)
3460
+ update!(**args)
3461
+ end
3462
+
3463
+ # Update properties of this object
3464
+ def update!(**args)
3465
+ end
3466
+ end
3467
+
3468
+ # Run DataScan Response.
3469
+ class GoogleCloudDataplexV1RunDataScanResponse
3470
+ include Google::Apis::Core::Hashable
3471
+
3472
+ # A DataScanJob represents an instance of a data scan.
3473
+ # Corresponds to the JSON property `job`
3474
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DataScanJob]
3475
+ attr_accessor :job
3476
+
3477
+ def initialize(**args)
3478
+ update!(**args)
3479
+ end
3480
+
3481
+ # Update properties of this object
3482
+ def update!(**args)
3483
+ @job = args[:job] if args.key?(:job)
3484
+ end
3485
+ end
3486
+
3487
+ # The data scanned during processing (e.g. in incremental DataScan)
3488
+ class GoogleCloudDataplexV1ScannedData
3489
+ include Google::Apis::Core::Hashable
3490
+
3491
+ # A data range denoted by a pair of start/end values of a field.
3492
+ # Corresponds to the JSON property `incrementalField`
3493
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ScannedDataIncrementalField]
3494
+ attr_accessor :incremental_field
3495
+
3496
+ def initialize(**args)
3497
+ update!(**args)
3498
+ end
3499
+
3500
+ # Update properties of this object
3501
+ def update!(**args)
3502
+ @incremental_field = args[:incremental_field] if args.key?(:incremental_field)
3503
+ end
3504
+ end
3505
+
3506
+ # A data range denoted by a pair of start/end values of a field.
3507
+ class GoogleCloudDataplexV1ScannedDataIncrementalField
3508
+ include Google::Apis::Core::Hashable
3509
+
3510
+ # Value that marks the end of the range
3511
+ # Corresponds to the JSON property `end`
3512
+ # @return [String]
3513
+ attr_accessor :end
3514
+
3515
+ # The field that contains values which monotonically increases over time (e.g.
3516
+ # timestamp).
3517
+ # Corresponds to the JSON property `field`
3518
+ # @return [String]
3519
+ attr_accessor :field
3520
+
3521
+ # Value that marks the start of the range
3522
+ # Corresponds to the JSON property `start`
3523
+ # @return [String]
3524
+ attr_accessor :start
3525
+
3526
+ def initialize(**args)
3527
+ update!(**args)
3528
+ end
3529
+
3530
+ # Update properties of this object
3531
+ def update!(**args)
3532
+ @end = args[:end] if args.key?(:end)
3533
+ @field = args[:field] if args.key?(:field)
3534
+ @start = args[:start] if args.key?(:start)
3535
+ end
3536
+ end
3537
+
2350
3538
  # Schema information describing the structure and layout of the data.
2351
3539
  class GoogleCloudDataplexV1Schema
2352
3540
  include Google::Apis::Core::Hashable
@@ -2644,6 +3832,11 @@ module Google
2644
3832
  # @return [String]
2645
3833
  attr_accessor :format
2646
3834
 
3835
+ # Describes Iceberg data format.
3836
+ # Corresponds to the JSON property `iceberg`
3837
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1StorageFormatIcebergOptions]
3838
+ attr_accessor :iceberg
3839
+
2647
3840
  # Describes JSON data format.
2648
3841
  # Corresponds to the JSON property `json`
2649
3842
  # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1StorageFormatJsonOptions]
@@ -2668,6 +3861,7 @@ module Google
2668
3861
  @compression_format = args[:compression_format] if args.key?(:compression_format)
2669
3862
  @csv = args[:csv] if args.key?(:csv)
2670
3863
  @format = args[:format] if args.key?(:format)
3864
+ @iceberg = args[:iceberg] if args.key?(:iceberg)
2671
3865
  @json = args[:json] if args.key?(:json)
2672
3866
  @mime_type = args[:mime_type] if args.key?(:mime_type)
2673
3867
  end
@@ -2714,6 +3908,26 @@ module Google
2714
3908
  end
2715
3909
  end
2716
3910
 
3911
+ # Describes Iceberg data format.
3912
+ class GoogleCloudDataplexV1StorageFormatIcebergOptions
3913
+ include Google::Apis::Core::Hashable
3914
+
3915
+ # Optional. The location of where the iceberg metadata is present, must be
3916
+ # within the table path
3917
+ # Corresponds to the JSON property `metadataLocation`
3918
+ # @return [String]
3919
+ attr_accessor :metadata_location
3920
+
3921
+ def initialize(**args)
3922
+ update!(**args)
3923
+ end
3924
+
3925
+ # Update properties of this object
3926
+ def update!(**args)
3927
+ @metadata_location = args[:metadata_location] if args.key?(:metadata_location)
3928
+ end
3929
+ end
3930
+
2717
3931
  # Describes JSON data format.
2718
3932
  class GoogleCloudDataplexV1StorageFormatJsonOptions
2719
3933
  include Google::Apis::Core::Hashable
@@ -3211,6 +4425,68 @@ module Google
3211
4425
  end
3212
4426
  end
3213
4427
 
4428
+ # DataScan scheduling and trigger settings.
4429
+ class GoogleCloudDataplexV1Trigger
4430
+ include Google::Apis::Core::Hashable
4431
+
4432
+ # The scan runs one-time via RunDataScan API.
4433
+ # Corresponds to the JSON property `onDemand`
4434
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1TriggerOnDemand]
4435
+ attr_accessor :on_demand
4436
+
4437
+ # The scan is scheduled to run periodically.
4438
+ # Corresponds to the JSON property `schedule`
4439
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1TriggerSchedule]
4440
+ attr_accessor :schedule
4441
+
4442
+ def initialize(**args)
4443
+ update!(**args)
4444
+ end
4445
+
4446
+ # Update properties of this object
4447
+ def update!(**args)
4448
+ @on_demand = args[:on_demand] if args.key?(:on_demand)
4449
+ @schedule = args[:schedule] if args.key?(:schedule)
4450
+ end
4451
+ end
4452
+
4453
+ # The scan runs one-time via RunDataScan API.
4454
+ class GoogleCloudDataplexV1TriggerOnDemand
4455
+ include Google::Apis::Core::Hashable
4456
+
4457
+ def initialize(**args)
4458
+ update!(**args)
4459
+ end
4460
+
4461
+ # Update properties of this object
4462
+ def update!(**args)
4463
+ end
4464
+ end
4465
+
4466
+ # The scan is scheduled to run periodically.
4467
+ class GoogleCloudDataplexV1TriggerSchedule
4468
+ include Google::Apis::Core::Hashable
4469
+
4470
+ # Required. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running scans
4471
+ # periodically. To explicitly set a timezone to the cron tab, apply a prefix in
4472
+ # the cron tab: "CRON_TZ=$`IANA_TIME_ZONE`" or "TZ=$`IANA_TIME_ZONE`". The $`
4473
+ # IANA_TIME_ZONE` may only be a valid string from IANA time zone database. For
4474
+ # example, "CRON_TZ=America/New_York 1 * * * *", or "TZ=America/New_York 1 * * *
4475
+ # *". This field is required for Schedule scans.
4476
+ # Corresponds to the JSON property `cron`
4477
+ # @return [String]
4478
+ attr_accessor :cron
4479
+
4480
+ def initialize(**args)
4481
+ update!(**args)
4482
+ end
4483
+
4484
+ # Update properties of this object
4485
+ def update!(**args)
4486
+ @cron = args[:cron] if args.key?(:cron)
4487
+ end
4488
+ end
4489
+
3214
4490
  # A zone represents a logical group of related assets within a lake. A zone can
3215
4491
  # be used to map to organizational structure or represent stages of data
3216
4492
  # readiness from raw to curated. It provides managing behavior that is shared or