google-apis-dataplex_v1 0.16.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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