google-apis-datamigration_v1 0.38.0 → 0.39.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.
@@ -103,11 +103,25 @@ module Google
103
103
  class ApplyConversionWorkspaceRequest
104
104
  include Google::Apis::Core::Hashable
105
105
 
106
- # Fully qualified (Uri) name of the destination connection profile.
106
+ # Optional. Specifies whether the conversion workspace is to be committed
107
+ # automatically after the apply.
108
+ # Corresponds to the JSON property `autoCommit`
109
+ # @return [Boolean]
110
+ attr_accessor :auto_commit
111
+ alias_method :auto_commit?, :auto_commit
112
+
113
+ # Optional. Fully qualified (Uri) name of the destination connection profile.
107
114
  # Corresponds to the JSON property `connectionProfile`
108
115
  # @return [String]
109
116
  attr_accessor :connection_profile
110
117
 
118
+ # Optional. Only validates the apply process, but doesn't change the destination
119
+ # database. Only works for PostgreSQL destination connection profile.
120
+ # Corresponds to the JSON property `dryRun`
121
+ # @return [Boolean]
122
+ attr_accessor :dry_run
123
+ alias_method :dry_run?, :dry_run
124
+
111
125
  # Filter which entities to apply. Leaving this field empty will apply all of the
112
126
  # entities. Supports Google AIP 160 based filtering.
113
127
  # Corresponds to the JSON property `filter`
@@ -120,21 +134,45 @@ module Google
120
134
 
121
135
  # Update properties of this object
122
136
  def update!(**args)
137
+ @auto_commit = args[:auto_commit] if args.key?(:auto_commit)
123
138
  @connection_profile = args[:connection_profile] if args.key?(:connection_profile)
139
+ @dry_run = args[:dry_run] if args.key?(:dry_run)
124
140
  @filter = args[:filter] if args.key?(:filter)
125
141
  end
126
142
  end
127
143
 
144
+ # Apply a hash function on the value.
145
+ class ApplyHash
146
+ include Google::Apis::Core::Hashable
147
+
148
+ # A generic empty message that you can re-use to avoid defining duplicated empty
149
+ # messages in your APIs. A typical example is to use it as the request or the
150
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
151
+ # protobuf.Empty) returns (google.protobuf.Empty); `
152
+ # Corresponds to the JSON property `uuidFromBytes`
153
+ # @return [Google::Apis::DatamigrationV1::Empty]
154
+ attr_accessor :uuid_from_bytes
155
+
156
+ def initialize(**args)
157
+ update!(**args)
158
+ end
159
+
160
+ # Update properties of this object
161
+ def update!(**args)
162
+ @uuid_from_bytes = args[:uuid_from_bytes] if args.key?(:uuid_from_bytes)
163
+ end
164
+ end
165
+
128
166
  # Details regarding an Apply background job.
129
167
  class ApplyJobDetails
130
168
  include Google::Apis::Core::Hashable
131
169
 
132
- # The connection profile which was used for the apply job.
170
+ # Output only. The connection profile which was used for the apply job.
133
171
  # Corresponds to the JSON property `connectionProfile`
134
172
  # @return [String]
135
173
  attr_accessor :connection_profile
136
174
 
137
- # AIP-160 based filter used to specify the entities to apply
175
+ # Output only. AIP-160 based filter used to specify the entities to apply
138
176
  # Corresponds to the JSON property `filter`
139
177
  # @return [String]
140
178
  attr_accessor :filter
@@ -150,6 +188,25 @@ module Google
150
188
  end
151
189
  end
152
190
 
191
+ # Set to a specific value (value is converted to fit the target data type)
192
+ class AssignSpecificValue
193
+ include Google::Apis::Core::Hashable
194
+
195
+ # Required. Specific value to be assigned
196
+ # Corresponds to the JSON property `value`
197
+ # @return [String]
198
+ attr_accessor :value
199
+
200
+ def initialize(**args)
201
+ update!(**args)
202
+ end
203
+
204
+ # Update properties of this object
205
+ def update!(**args)
206
+ @value = args[:value] if args.key?(:value)
207
+ end
208
+ end
209
+
153
210
  # Specifies the audit configuration for a service. The configuration determines
154
211
  # which permission types are logged, and what identities, if any, are exempted
155
212
  # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
@@ -230,13 +287,14 @@ module Google
230
287
  # @return [Google::Apis::DatamigrationV1::ApplyJobDetails]
231
288
  attr_accessor :apply_job_details
232
289
 
233
- # Job completion comment, such as how many entities were seeded, how many
234
- # warnings were found during conversion, and similar information.
290
+ # Output only. Job completion comment, such as how many entities were seeded,
291
+ # how many warnings were found during conversion, and similar information.
235
292
  # Corresponds to the JSON property `completionComment`
236
293
  # @return [String]
237
294
  attr_accessor :completion_comment
238
295
 
239
- # Job completion state, i.e. the final state after the job completed.
296
+ # Output only. Job completion state, i.e. the final state after the job
297
+ # completed.
240
298
  # Corresponds to the JSON property `completionState`
241
299
  # @return [String]
242
300
  attr_accessor :completion_state
@@ -266,8 +324,8 @@ module Google
266
324
  # @return [String]
267
325
  attr_accessor :job_type
268
326
 
269
- # Whether the client requested the conversion workspace to be committed after a
270
- # successful completion of the job.
327
+ # Output only. Whether the client requested the conversion workspace to be
328
+ # committed after a successful completion of the job.
271
329
  # Corresponds to the JSON property `requestAutocommit`
272
330
  # @return [Boolean]
273
331
  attr_accessor :request_autocommit
@@ -740,6 +798,46 @@ module Google
740
798
  end
741
799
  end
742
800
 
801
+ # Options to configure rule type ConditionalColumnSetValue. The rule is used to
802
+ # transform the data which is being replicated/migrated. The rule filter field
803
+ # can refer to one or more entities. The rule scope can be one of: Column.
804
+ class ConditionalColumnSetValue
805
+ include Google::Apis::Core::Hashable
806
+
807
+ # Optional. Custom engine specific features.
808
+ # Corresponds to the JSON property `customFeatures`
809
+ # @return [Hash<String,Object>]
810
+ attr_accessor :custom_features
811
+
812
+ # Filter for fixed point number data types such as NUMERIC/NUMBER
813
+ # Corresponds to the JSON property `sourceNumericFilter`
814
+ # @return [Google::Apis::DatamigrationV1::SourceNumericFilter]
815
+ attr_accessor :source_numeric_filter
816
+
817
+ # Filter for text-based data types like varchar.
818
+ # Corresponds to the JSON property `sourceTextFilter`
819
+ # @return [Google::Apis::DatamigrationV1::SourceTextFilter]
820
+ attr_accessor :source_text_filter
821
+
822
+ # Description of data transformation during migration as part of the
823
+ # ConditionalColumnSetValue.
824
+ # Corresponds to the JSON property `valueTransformation`
825
+ # @return [Google::Apis::DatamigrationV1::ValueTransformation]
826
+ attr_accessor :value_transformation
827
+
828
+ def initialize(**args)
829
+ update!(**args)
830
+ end
831
+
832
+ # Update properties of this object
833
+ def update!(**args)
834
+ @custom_features = args[:custom_features] if args.key?(:custom_features)
835
+ @source_numeric_filter = args[:source_numeric_filter] if args.key?(:source_numeric_filter)
836
+ @source_text_filter = args[:source_text_filter] if args.key?(:source_text_filter)
837
+ @value_transformation = args[:value_transformation] if args.key?(:value_transformation)
838
+ end
839
+ end
840
+
743
841
  # A connection profile definition.
744
842
  class ConnectionProfile
745
843
  include Google::Apis::Core::Hashable
@@ -925,14 +1023,14 @@ module Google
925
1023
  # @return [Google::Apis::DatamigrationV1::DatabaseEngineInfo]
926
1024
  attr_accessor :destination
927
1025
 
928
- # The display name for the workspace.
1026
+ # Optional. The display name for the workspace.
929
1027
  # Corresponds to the JSON property `displayName`
930
1028
  # @return [String]
931
1029
  attr_accessor :display_name
932
1030
 
933
- # A generic list of settings for the workspace. The settings are database pair
934
- # dependant and can indicate default behavior for the mapping rules engine or
935
- # turn on or off specific features. Such examples can be:
1031
+ # Optional. A generic list of settings for the workspace. The settings are
1032
+ # database pair dependant and can indicate default behavior for the mapping
1033
+ # rules engine or turn on or off specific features. Such examples can be:
936
1034
  # convert_foreign_key_to_interleave=true, skip_triggers=false,
937
1035
  # ignore_non_table_synonyms=true
938
1036
  # Corresponds to the JSON property `globalSettings`
@@ -1020,15 +1118,23 @@ module Google
1020
1118
  class ConvertConversionWorkspaceRequest
1021
1119
  include Google::Apis::Core::Hashable
1022
1120
 
1023
- # Specifies whether the conversion workspace is to be committed automatically
1024
- # after the conversion.
1121
+ # Optional. Specifies whether the conversion workspace is to be committed
1122
+ # automatically after the conversion.
1025
1123
  # Corresponds to the JSON property `autoCommit`
1026
1124
  # @return [Boolean]
1027
1125
  attr_accessor :auto_commit
1028
1126
  alias_method :auto_commit?, :auto_commit
1029
1127
 
1030
- # Filter the entities to convert. Leaving this field empty will convert all of
1031
- # the entities. Supports Google AIP-160 style filtering.
1128
+ # Optional. Automatically convert the full entity path for each entity specified
1129
+ # by the filter. For example, if the filter specifies a table, that table schema
1130
+ # (and database if there is one) will also be converted.
1131
+ # Corresponds to the JSON property `convertFullPath`
1132
+ # @return [Boolean]
1133
+ attr_accessor :convert_full_path
1134
+ alias_method :convert_full_path?, :convert_full_path
1135
+
1136
+ # Optional. Filter the entities to convert. Leaving this field empty will
1137
+ # convert all of the entities. Supports Google AIP-160 style filtering.
1032
1138
  # Corresponds to the JSON property `filter`
1033
1139
  # @return [String]
1034
1140
  attr_accessor :filter
@@ -1040,6 +1146,7 @@ module Google
1040
1146
  # Update properties of this object
1041
1147
  def update!(**args)
1042
1148
  @auto_commit = args[:auto_commit] if args.key?(:auto_commit)
1149
+ @convert_full_path = args[:convert_full_path] if args.key?(:convert_full_path)
1043
1150
  @filter = args[:filter] if args.key?(:filter)
1044
1151
  end
1045
1152
  end
@@ -1048,7 +1155,7 @@ module Google
1048
1155
  class ConvertJobDetails
1049
1156
  include Google::Apis::Core::Hashable
1050
1157
 
1051
- # AIP-160 based filter used to specify the entities to convert
1158
+ # Output only. AIP-160 based filter used to specify the entities to convert
1052
1159
  # Corresponds to the JSON property `filter`
1053
1160
  # @return [String]
1054
1161
  attr_accessor :filter
@@ -1063,6 +1170,31 @@ module Google
1063
1170
  end
1064
1171
  end
1065
1172
 
1173
+ # Options to configure rule type ConvertROWIDToColumn. The rule is used to add
1174
+ # column rowid to destination tables based on an Oracle rowid function/property.
1175
+ # The rule filter field can refer to one or more entities. The rule scope can be
1176
+ # one of: Table. This rule requires additional filter to be specified beyond the
1177
+ # basic rule filter field, which is whether or not to work on tables which
1178
+ # already have a primary key defined.
1179
+ class ConvertRowIdToColumn
1180
+ include Google::Apis::Core::Hashable
1181
+
1182
+ # Required. Only work on tables without primary key defined
1183
+ # Corresponds to the JSON property `onlyIfNoPrimaryKey`
1184
+ # @return [Boolean]
1185
+ attr_accessor :only_if_no_primary_key
1186
+ alias_method :only_if_no_primary_key?, :only_if_no_primary_key
1187
+
1188
+ def initialize(**args)
1189
+ update!(**args)
1190
+ end
1191
+
1192
+ # Update properties of this object
1193
+ def update!(**args)
1194
+ @only_if_no_primary_key = args[:only_if_no_primary_key] if args.key?(:only_if_no_primary_key)
1195
+ end
1196
+ end
1197
+
1066
1198
  # The type and version of a source or destination database.
1067
1199
  class DatabaseEngineInfo
1068
1200
  include Google::Apis::Core::Hashable
@@ -1094,6 +1226,11 @@ module Google
1094
1226
  class DatabaseEntity
1095
1227
  include Google::Apis::Core::Hashable
1096
1228
 
1229
+ # DatabaseInstance acts as a parent entity to other database entities.
1230
+ # Corresponds to the JSON property `database`
1231
+ # @return [Google::Apis::DatamigrationV1::DatabaseInstanceEntity]
1232
+ attr_accessor :database
1233
+
1097
1234
  # Function's parent is a schema.
1098
1235
  # Corresponds to the JSON property `databaseFunction`
1099
1236
  # @return [Google::Apis::DatamigrationV1::FunctionEntity]
@@ -1104,11 +1241,23 @@ module Google
1104
1241
  # @return [Google::Apis::DatamigrationV1::PackageEntity]
1105
1242
  attr_accessor :database_package
1106
1243
 
1244
+ # Details about the entity DDL script. Multiple DDL scripts are provided for
1245
+ # child entities such as a table entity will have one DDL for the table with
1246
+ # additional DDLs for each index, constraint and such.
1247
+ # Corresponds to the JSON property `entityDdl`
1248
+ # @return [Array<Google::Apis::DatamigrationV1::EntityDdl>]
1249
+ attr_accessor :entity_ddl
1250
+
1107
1251
  # The type of the database entity (table, view, index, ...).
1108
1252
  # Corresponds to the JSON property `entityType`
1109
1253
  # @return [String]
1110
1254
  attr_accessor :entity_type
1111
1255
 
1256
+ # Details about the various issues found for the entity.
1257
+ # Corresponds to the JSON property `issues`
1258
+ # @return [Array<Google::Apis::DatamigrationV1::EntityIssue>]
1259
+ attr_accessor :issues
1260
+
1112
1261
  # Details about entity mappings. For source tree entities, this holds the draft
1113
1262
  # entities which were generated by the mapping rules. For draft tree entities,
1114
1263
  # this holds the source entities which were converted to form the draft entity.
@@ -1117,6 +1266,11 @@ module Google
1117
1266
  # @return [Array<Google::Apis::DatamigrationV1::EntityMapping>]
1118
1267
  attr_accessor :mappings
1119
1268
 
1269
+ # MaterializedView's parent is a schema.
1270
+ # Corresponds to the JSON property `materializedView`
1271
+ # @return [Google::Apis::DatamigrationV1::MaterializedViewEntity]
1272
+ attr_accessor :materialized_view
1273
+
1120
1274
  # The full name of the parent entity (e.g. schema name).
1121
1275
  # Corresponds to the JSON property `parentEntity`
1122
1276
  # @return [String]
@@ -1161,6 +1315,11 @@ module Google
1161
1315
  # @return [String]
1162
1316
  attr_accessor :tree
1163
1317
 
1318
+ # UDT's parent is a schema.
1319
+ # Corresponds to the JSON property `udt`
1320
+ # @return [Google::Apis::DatamigrationV1::UdtEntity]
1321
+ attr_accessor :udt
1322
+
1164
1323
  # View's parent is a schema.
1165
1324
  # Corresponds to the JSON property `view`
1166
1325
  # @return [Google::Apis::DatamigrationV1::ViewEntity]
@@ -1172,10 +1331,14 @@ module Google
1172
1331
 
1173
1332
  # Update properties of this object
1174
1333
  def update!(**args)
1334
+ @database = args[:database] if args.key?(:database)
1175
1335
  @database_function = args[:database_function] if args.key?(:database_function)
1176
1336
  @database_package = args[:database_package] if args.key?(:database_package)
1337
+ @entity_ddl = args[:entity_ddl] if args.key?(:entity_ddl)
1177
1338
  @entity_type = args[:entity_type] if args.key?(:entity_type)
1339
+ @issues = args[:issues] if args.key?(:issues)
1178
1340
  @mappings = args[:mappings] if args.key?(:mappings)
1341
+ @materialized_view = args[:materialized_view] if args.key?(:materialized_view)
1179
1342
  @parent_entity = args[:parent_entity] if args.key?(:parent_entity)
1180
1343
  @schema = args[:schema] if args.key?(:schema)
1181
1344
  @sequence = args[:sequence] if args.key?(:sequence)
@@ -1184,10 +1347,30 @@ module Google
1184
1347
  @synonym = args[:synonym] if args.key?(:synonym)
1185
1348
  @table = args[:table] if args.key?(:table)
1186
1349
  @tree = args[:tree] if args.key?(:tree)
1350
+ @udt = args[:udt] if args.key?(:udt)
1187
1351
  @view = args[:view] if args.key?(:view)
1188
1352
  end
1189
1353
  end
1190
1354
 
1355
+ # DatabaseInstance acts as a parent entity to other database entities.
1356
+ class DatabaseInstanceEntity
1357
+ include Google::Apis::Core::Hashable
1358
+
1359
+ # Custom engine specific features.
1360
+ # Corresponds to the JSON property `customFeatures`
1361
+ # @return [Hash<String,Object>]
1362
+ attr_accessor :custom_features
1363
+
1364
+ def initialize(**args)
1365
+ update!(**args)
1366
+ end
1367
+
1368
+ # Update properties of this object
1369
+ def update!(**args)
1370
+ @custom_features = args[:custom_features] if args.key?(:custom_features)
1371
+ end
1372
+ end
1373
+
1191
1374
  # A message defining the database engine and provider.
1192
1375
  class DatabaseType
1193
1376
  include Google::Apis::Core::Hashable
@@ -1258,6 +1441,32 @@ module Google
1258
1441
  end
1259
1442
  end
1260
1443
 
1444
+ # Filter based on relation between source value and compare value of type double
1445
+ # in ConditionalColumnSetValue
1446
+ class DoubleComparisonFilter
1447
+ include Google::Apis::Core::Hashable
1448
+
1449
+ # Required. Double compare value to be used
1450
+ # Corresponds to the JSON property `value`
1451
+ # @return [Float]
1452
+ attr_accessor :value
1453
+
1454
+ # Required. Relation between source value and compare value
1455
+ # Corresponds to the JSON property `valueComparison`
1456
+ # @return [String]
1457
+ attr_accessor :value_comparison
1458
+
1459
+ def initialize(**args)
1460
+ update!(**args)
1461
+ end
1462
+
1463
+ # Update properties of this object
1464
+ def update!(**args)
1465
+ @value = args[:value] if args.key?(:value)
1466
+ @value_comparison = args[:value_comparison] if args.key?(:value_comparison)
1467
+ end
1468
+ end
1469
+
1261
1470
  # Dump flag definition.
1262
1471
  class DumpFlag
1263
1472
  include Google::Apis::Core::Hashable
@@ -1340,6 +1549,110 @@ module Google
1340
1549
  end
1341
1550
  end
1342
1551
 
1552
+ # A single DDL statement for a specific entity
1553
+ class EntityDdl
1554
+ include Google::Apis::Core::Hashable
1555
+
1556
+ # The actual ddl code.
1557
+ # Corresponds to the JSON property `ddl`
1558
+ # @return [String]
1559
+ attr_accessor :ddl
1560
+
1561
+ # Type of DDL (Create, Alter).
1562
+ # Corresponds to the JSON property `ddlType`
1563
+ # @return [String]
1564
+ attr_accessor :ddl_type
1565
+
1566
+ # The name of the database entity the ddl refers to.
1567
+ # Corresponds to the JSON property `entity`
1568
+ # @return [String]
1569
+ attr_accessor :entity
1570
+
1571
+ # The entity type (if the DDL is for a sub entity).
1572
+ # Corresponds to the JSON property `entityType`
1573
+ # @return [String]
1574
+ attr_accessor :entity_type
1575
+
1576
+ # EntityIssues found for this ddl.
1577
+ # Corresponds to the JSON property `issueId`
1578
+ # @return [Array<String>]
1579
+ attr_accessor :issue_id
1580
+
1581
+ def initialize(**args)
1582
+ update!(**args)
1583
+ end
1584
+
1585
+ # Update properties of this object
1586
+ def update!(**args)
1587
+ @ddl = args[:ddl] if args.key?(:ddl)
1588
+ @ddl_type = args[:ddl_type] if args.key?(:ddl_type)
1589
+ @entity = args[:entity] if args.key?(:entity)
1590
+ @entity_type = args[:entity_type] if args.key?(:entity_type)
1591
+ @issue_id = args[:issue_id] if args.key?(:issue_id)
1592
+ end
1593
+ end
1594
+
1595
+ # Issue related to the entity.
1596
+ class EntityIssue
1597
+ include Google::Apis::Core::Hashable
1598
+
1599
+ # Error/Warning code
1600
+ # Corresponds to the JSON property `code`
1601
+ # @return [String]
1602
+ attr_accessor :code
1603
+
1604
+ # The ddl which caused the issue, if relevant.
1605
+ # Corresponds to the JSON property `ddl`
1606
+ # @return [String]
1607
+ attr_accessor :ddl
1608
+
1609
+ # The entity type (if the DDL is for a sub entity).
1610
+ # Corresponds to the JSON property `entityType`
1611
+ # @return [String]
1612
+ attr_accessor :entity_type
1613
+
1614
+ # Unique Issue ID.
1615
+ # Corresponds to the JSON property `id`
1616
+ # @return [String]
1617
+ attr_accessor :id
1618
+
1619
+ # Issue detailed message
1620
+ # Corresponds to the JSON property `message`
1621
+ # @return [String]
1622
+ attr_accessor :message
1623
+
1624
+ # Issue position.
1625
+ # Corresponds to the JSON property `position`
1626
+ # @return [Google::Apis::DatamigrationV1::Position]
1627
+ attr_accessor :position
1628
+
1629
+ # Severity of the issue
1630
+ # Corresponds to the JSON property `severity`
1631
+ # @return [String]
1632
+ attr_accessor :severity
1633
+
1634
+ # The type of the issue.
1635
+ # Corresponds to the JSON property `type`
1636
+ # @return [String]
1637
+ attr_accessor :type
1638
+
1639
+ def initialize(**args)
1640
+ update!(**args)
1641
+ end
1642
+
1643
+ # Update properties of this object
1644
+ def update!(**args)
1645
+ @code = args[:code] if args.key?(:code)
1646
+ @ddl = args[:ddl] if args.key?(:ddl)
1647
+ @entity_type = args[:entity_type] if args.key?(:entity_type)
1648
+ @id = args[:id] if args.key?(:id)
1649
+ @message = args[:message] if args.key?(:message)
1650
+ @position = args[:position] if args.key?(:position)
1651
+ @severity = args[:severity] if args.key?(:severity)
1652
+ @type = args[:type] if args.key?(:type)
1653
+ end
1654
+ end
1655
+
1343
1656
  # Details of the mappings of a database entity.
1344
1657
  class EntityMapping
1345
1658
  include Google::Apis::Core::Hashable
@@ -1420,6 +1733,28 @@ module Google
1420
1733
  end
1421
1734
  end
1422
1735
 
1736
+ # Options to configure rule type EntityMove. The rule is used to move an entity
1737
+ # to a new schema. The rule filter field can refer to one or more entities. The
1738
+ # rule scope can be one of: Table, Column, Constraint, Index, View, Function,
1739
+ # Stored Procedure, Materialized View, Sequence, UDT
1740
+ class EntityMove
1741
+ include Google::Apis::Core::Hashable
1742
+
1743
+ # Required. The new schema
1744
+ # Corresponds to the JSON property `newSchema`
1745
+ # @return [String]
1746
+ attr_accessor :new_schema
1747
+
1748
+ def initialize(**args)
1749
+ update!(**args)
1750
+ end
1751
+
1752
+ # Update properties of this object
1753
+ def update!(**args)
1754
+ @new_schema = args[:new_schema] if args.key?(:new_schema)
1755
+ end
1756
+ end
1757
+
1423
1758
  # Represents a textual expression in the Common Expression Language (CEL) syntax.
1424
1759
  # CEL is a C-like expression language. The syntax and semantics of CEL are
1425
1760
  # documented at https://github.com/google/cel-spec. Example (Comparison): title:
@@ -1500,6 +1835,34 @@ module Google
1500
1835
  end
1501
1836
  end
1502
1837
 
1838
+ # Options to configure rule type FilterTableColumns. The rule is used to filter
1839
+ # the list of columns to include or exclude from a table. The rule filter field
1840
+ # can refer to one entity. The rule scope can be: Table Only one of the two
1841
+ # lists can be specified for the rule.
1842
+ class FilterTableColumns
1843
+ include Google::Apis::Core::Hashable
1844
+
1845
+ # Optional. List of columns to be excluded for a particular table.
1846
+ # Corresponds to the JSON property `excludeColumns`
1847
+ # @return [Array<String>]
1848
+ attr_accessor :exclude_columns
1849
+
1850
+ # Optional. List of columns to be included for a particular table.
1851
+ # Corresponds to the JSON property `includeColumns`
1852
+ # @return [Array<String>]
1853
+ attr_accessor :include_columns
1854
+
1855
+ def initialize(**args)
1856
+ update!(**args)
1857
+ end
1858
+
1859
+ # Update properties of this object
1860
+ def update!(**args)
1861
+ @exclude_columns = args[:exclude_columns] if args.key?(:exclude_columns)
1862
+ @include_columns = args[:include_columns] if args.key?(:include_columns)
1863
+ end
1864
+ end
1865
+
1503
1866
  # Forward SSH Tunnel connectivity.
1504
1867
  class ForwardSshTunnelConnectivity
1505
1868
  include Google::Apis::Core::Hashable
@@ -1711,19 +2074,19 @@ module Google
1711
2074
  class ImportMappingRulesRequest
1712
2075
  include Google::Apis::Core::Hashable
1713
2076
 
1714
- # Should the conversion workspace be committed automatically after the import
1715
- # operation.
2077
+ # Required. Should the conversion workspace be committed automatically after the
2078
+ # import operation.
1716
2079
  # Corresponds to the JSON property `autoCommit`
1717
2080
  # @return [Boolean]
1718
2081
  attr_accessor :auto_commit
1719
2082
  alias_method :auto_commit?, :auto_commit
1720
2083
 
1721
- # One or more rules files.
2084
+ # Required. One or more rules files.
1722
2085
  # Corresponds to the JSON property `rulesFiles`
1723
2086
  # @return [Array<Google::Apis::DatamigrationV1::RulesFile>]
1724
2087
  attr_accessor :rules_files
1725
2088
 
1726
- # The format of the rules content file.
2089
+ # Required. The format of the rules content file.
1727
2090
  # Corresponds to the JSON property `rulesFormat`
1728
2091
  # @return [String]
1729
2092
  attr_accessor :rules_format
@@ -1744,12 +2107,12 @@ module Google
1744
2107
  class ImportRulesJobDetails
1745
2108
  include Google::Apis::Core::Hashable
1746
2109
 
1747
- # The requested file format.
2110
+ # Output only. The requested file format.
1748
2111
  # Corresponds to the JSON property `fileFormat`
1749
2112
  # @return [String]
1750
2113
  attr_accessor :file_format
1751
2114
 
1752
- # File names used for the import rules job.
2115
+ # Output only. File names used for the import rules job.
1753
2116
  # Corresponds to the JSON property `files`
1754
2117
  # @return [Array<String>]
1755
2118
  attr_accessor :files
@@ -1811,6 +2174,32 @@ module Google
1811
2174
  end
1812
2175
  end
1813
2176
 
2177
+ # Filter based on relation between source value and compare value of type
2178
+ # integer in ConditionalColumnSetValue
2179
+ class IntComparisonFilter
2180
+ include Google::Apis::Core::Hashable
2181
+
2182
+ # Required. Integer compare value to be used
2183
+ # Corresponds to the JSON property `value`
2184
+ # @return [Fixnum]
2185
+ attr_accessor :value
2186
+
2187
+ # Required. Relation between source value and compare value
2188
+ # Corresponds to the JSON property `valueComparison`
2189
+ # @return [String]
2190
+ attr_accessor :value_comparison
2191
+
2192
+ def initialize(**args)
2193
+ update!(**args)
2194
+ end
2195
+
2196
+ # Update properties of this object
2197
+ def update!(**args)
2198
+ @value = args[:value] if args.key?(:value)
2199
+ @value_comparison = args[:value_comparison] if args.key?(:value_comparison)
2200
+ end
2201
+ end
2202
+
1814
2203
  # Response message for 'ListConnectionProfiles' request.
1815
2204
  class ListConnectionProfilesResponse
1816
2205
  include Google::Apis::Core::Hashable
@@ -1900,6 +2289,32 @@ module Google
1900
2289
  end
1901
2290
  end
1902
2291
 
2292
+ # Response message for 'ListMappingRulesRequest' request.
2293
+ class ListMappingRulesResponse
2294
+ include Google::Apis::Core::Hashable
2295
+
2296
+ # The list of conversion workspace mapping rules.
2297
+ # Corresponds to the JSON property `mappingRules`
2298
+ # @return [Array<Google::Apis::DatamigrationV1::MappingRule>]
2299
+ attr_accessor :mapping_rules
2300
+
2301
+ # A token which can be sent as `page_token` to retrieve the next page. If this
2302
+ # field is omitted, there are no subsequent pages.
2303
+ # Corresponds to the JSON property `nextPageToken`
2304
+ # @return [String]
2305
+ attr_accessor :next_page_token
2306
+
2307
+ def initialize(**args)
2308
+ update!(**args)
2309
+ end
2310
+
2311
+ # Update properties of this object
2312
+ def update!(**args)
2313
+ @mapping_rules = args[:mapping_rules] if args.key?(:mapping_rules)
2314
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2315
+ end
2316
+ end
2317
+
1903
2318
  # Response message for 'ListMigrationJobs' request.
1904
2319
  class ListMigrationJobsResponse
1905
2320
  include Google::Apis::Core::Hashable
@@ -2055,19 +2470,268 @@ module Google
2055
2470
  end
2056
2471
  end
2057
2472
 
2058
- # Represents a Database Migration Service migration job object.
2059
- class MigrationJob
2473
+ # Definition of a transformation that is to be applied to a group of entities in
2474
+ # the source schema. Several such transformations can be applied to an entity
2475
+ # sequentially to define the corresponding entity in the target schema.
2476
+ class MappingRule
2060
2477
  include Google::Apis::Core::Hashable
2061
2478
 
2062
- # The CMEK (customer-managed encryption key) fully qualified key name used for
2063
- # the migration job. This field supports all migration jobs types except for: *
2064
- # Mysql to Mysql (use the cmek field in the cloudsql connection profile instead).
2065
- # * PostrgeSQL to PostgreSQL (use the cmek field in the cloudsql connection
2066
- # profile instead). * PostgreSQL to AlloyDB (use the kms_key_name field in the
2067
- # alloydb connection profile instead). Each Cloud CMEK key has the following
2068
- # format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[
2069
- # KEY_NAME]
2070
- # Corresponds to the JSON property `cmekKeyName`
2479
+ # Options to configure rule type ConditionalColumnSetValue. The rule is used to
2480
+ # transform the data which is being replicated/migrated. The rule filter field
2481
+ # can refer to one or more entities. The rule scope can be one of: Column.
2482
+ # Corresponds to the JSON property `conditionalColumnSetValue`
2483
+ # @return [Google::Apis::DatamigrationV1::ConditionalColumnSetValue]
2484
+ attr_accessor :conditional_column_set_value
2485
+
2486
+ # Options to configure rule type ConvertROWIDToColumn. The rule is used to add
2487
+ # column rowid to destination tables based on an Oracle rowid function/property.
2488
+ # The rule filter field can refer to one or more entities. The rule scope can be
2489
+ # one of: Table. This rule requires additional filter to be specified beyond the
2490
+ # basic rule filter field, which is whether or not to work on tables which
2491
+ # already have a primary key defined.
2492
+ # Corresponds to the JSON property `convertRowidColumn`
2493
+ # @return [Google::Apis::DatamigrationV1::ConvertRowIdToColumn]
2494
+ attr_accessor :convert_rowid_column
2495
+
2496
+ # Optional. A human readable name
2497
+ # Corresponds to the JSON property `displayName`
2498
+ # @return [String]
2499
+ attr_accessor :display_name
2500
+
2501
+ # Options to configure rule type EntityMove. The rule is used to move an entity
2502
+ # to a new schema. The rule filter field can refer to one or more entities. The
2503
+ # rule scope can be one of: Table, Column, Constraint, Index, View, Function,
2504
+ # Stored Procedure, Materialized View, Sequence, UDT
2505
+ # Corresponds to the JSON property `entityMove`
2506
+ # @return [Google::Apis::DatamigrationV1::EntityMove]
2507
+ attr_accessor :entity_move
2508
+
2509
+ # A filter defining the entities that a mapping rule should be applied to. When
2510
+ # more than one field is specified, the rule is applied only to entities which
2511
+ # match all the fields.
2512
+ # Corresponds to the JSON property `filter`
2513
+ # @return [Google::Apis::DatamigrationV1::MappingRuleFilter]
2514
+ attr_accessor :filter
2515
+
2516
+ # Options to configure rule type FilterTableColumns. The rule is used to filter
2517
+ # the list of columns to include or exclude from a table. The rule filter field
2518
+ # can refer to one entity. The rule scope can be: Table Only one of the two
2519
+ # lists can be specified for the rule.
2520
+ # Corresponds to the JSON property `filterTableColumns`
2521
+ # @return [Google::Apis::DatamigrationV1::FilterTableColumns]
2522
+ attr_accessor :filter_table_columns
2523
+
2524
+ # Options to configure rule type MultiColumnDatatypeChange. The rule is used to
2525
+ # change the data type and associated properties of multiple columns at once.
2526
+ # The rule filter field can refer to one or more entities. The rule scope can be
2527
+ # one of:Column. This rule requires additional filters to be specified beyond
2528
+ # the basic rule filter field, which is the source data type, but the rule
2529
+ # supports additional filtering capabilities such as the minimum and maximum
2530
+ # field length. All additional filters which are specified are required to be
2531
+ # met in order for the rule to be applied (logical AND between the fields).
2532
+ # Corresponds to the JSON property `multiColumnDataTypeChange`
2533
+ # @return [Google::Apis::DatamigrationV1::MultiColumnDatatypeChange]
2534
+ attr_accessor :multi_column_data_type_change
2535
+
2536
+ # Options to configure rule type MultiEntityRename. The rule is used to rename
2537
+ # multiple entities. The rule filter field can refer to one or more entities.
2538
+ # The rule scope can be one of: Database, Schema, Table, Column, Constraint,
2539
+ # Index, View, Function, Stored Procedure, Materialized View, Sequence, UDT
2540
+ # Corresponds to the JSON property `multiEntityRename`
2541
+ # @return [Google::Apis::DatamigrationV1::MultiEntityRename]
2542
+ attr_accessor :multi_entity_rename
2543
+
2544
+ # Full name of the mapping rule resource, in the form of: projects/`project`/
2545
+ # locations/`location`/conversionWorkspaces/`set`/mappingRule/`rule`.
2546
+ # Corresponds to the JSON property `name`
2547
+ # @return [String]
2548
+ attr_accessor :name
2549
+
2550
+ # Output only. The timestamp that the revision was created.
2551
+ # Corresponds to the JSON property `revisionCreateTime`
2552
+ # @return [String]
2553
+ attr_accessor :revision_create_time
2554
+
2555
+ # Output only. The revision ID of the mapping rule. A new revision is committed
2556
+ # whenever the mapping rule is changed in any way. The format is an 8-character
2557
+ # hexadecimal string.
2558
+ # Corresponds to the JSON property `revisionId`
2559
+ # @return [String]
2560
+ attr_accessor :revision_id
2561
+
2562
+ # Required. The order in which the rule is applied. Lower order rules are
2563
+ # applied before higher value rules so they may end up being overridden.
2564
+ # Corresponds to the JSON property `ruleOrder`
2565
+ # @return [Fixnum]
2566
+ attr_accessor :rule_order
2567
+
2568
+ # Required. The rule scope
2569
+ # Corresponds to the JSON property `ruleScope`
2570
+ # @return [String]
2571
+ attr_accessor :rule_scope
2572
+
2573
+ # Options to configure rule type SetTablePrimaryKey. The rule is used to specify
2574
+ # the columns and name to configure/alter the primary key of a table. The rule
2575
+ # filter field can refer to one entity. The rule scope can be one of: Table.
2576
+ # Corresponds to the JSON property `setTablePrimaryKey`
2577
+ # @return [Google::Apis::DatamigrationV1::SetTablePrimaryKey]
2578
+ attr_accessor :set_table_primary_key
2579
+
2580
+ # Options to configure rule type SingleColumnChange. The rule is used to change
2581
+ # the properties of a column. The rule filter field can refer to one entity. The
2582
+ # rule scope can be one of: Column. When using this rule, if a field is not
2583
+ # specified than the destination column's configuration will be the same as the
2584
+ # one in the source column..
2585
+ # Corresponds to the JSON property `singleColumnChange`
2586
+ # @return [Google::Apis::DatamigrationV1::SingleColumnChange]
2587
+ attr_accessor :single_column_change
2588
+
2589
+ # Options to configure rule type SingleEntityRename. The rule is used to rename
2590
+ # an entity. The rule filter field can refer to only one entity. The rule scope
2591
+ # can be one of: Database, Schema, Table, Column, Constraint, Index, View,
2592
+ # Function, Stored Procedure, Materialized View, Sequence, UDT, Synonym
2593
+ # Corresponds to the JSON property `singleEntityRename`
2594
+ # @return [Google::Apis::DatamigrationV1::SingleEntityRename]
2595
+ attr_accessor :single_entity_rename
2596
+
2597
+ # Options to configure rule type SinglePackageChange. The rule is used to alter
2598
+ # the sql code for a package entities. The rule filter field can refer to one
2599
+ # entity. The rule scope can be: Package
2600
+ # Corresponds to the JSON property `singlePackageChange`
2601
+ # @return [Google::Apis::DatamigrationV1::SinglePackageChange]
2602
+ attr_accessor :single_package_change
2603
+
2604
+ # Options to configure rule type SourceSqlChange. The rule is used to alter the
2605
+ # sql code for database entities. The rule filter field can refer to one entity.
2606
+ # The rule scope can be: StoredProcedure, Function, Trigger, View
2607
+ # Corresponds to the JSON property `sourceSqlChange`
2608
+ # @return [Google::Apis::DatamigrationV1::SourceSqlChange]
2609
+ attr_accessor :source_sql_change
2610
+
2611
+ # Optional. The mapping rule state
2612
+ # Corresponds to the JSON property `state`
2613
+ # @return [String]
2614
+ attr_accessor :state
2615
+
2616
+ def initialize(**args)
2617
+ update!(**args)
2618
+ end
2619
+
2620
+ # Update properties of this object
2621
+ def update!(**args)
2622
+ @conditional_column_set_value = args[:conditional_column_set_value] if args.key?(:conditional_column_set_value)
2623
+ @convert_rowid_column = args[:convert_rowid_column] if args.key?(:convert_rowid_column)
2624
+ @display_name = args[:display_name] if args.key?(:display_name)
2625
+ @entity_move = args[:entity_move] if args.key?(:entity_move)
2626
+ @filter = args[:filter] if args.key?(:filter)
2627
+ @filter_table_columns = args[:filter_table_columns] if args.key?(:filter_table_columns)
2628
+ @multi_column_data_type_change = args[:multi_column_data_type_change] if args.key?(:multi_column_data_type_change)
2629
+ @multi_entity_rename = args[:multi_entity_rename] if args.key?(:multi_entity_rename)
2630
+ @name = args[:name] if args.key?(:name)
2631
+ @revision_create_time = args[:revision_create_time] if args.key?(:revision_create_time)
2632
+ @revision_id = args[:revision_id] if args.key?(:revision_id)
2633
+ @rule_order = args[:rule_order] if args.key?(:rule_order)
2634
+ @rule_scope = args[:rule_scope] if args.key?(:rule_scope)
2635
+ @set_table_primary_key = args[:set_table_primary_key] if args.key?(:set_table_primary_key)
2636
+ @single_column_change = args[:single_column_change] if args.key?(:single_column_change)
2637
+ @single_entity_rename = args[:single_entity_rename] if args.key?(:single_entity_rename)
2638
+ @single_package_change = args[:single_package_change] if args.key?(:single_package_change)
2639
+ @source_sql_change = args[:source_sql_change] if args.key?(:source_sql_change)
2640
+ @state = args[:state] if args.key?(:state)
2641
+ end
2642
+ end
2643
+
2644
+ # A filter defining the entities that a mapping rule should be applied to. When
2645
+ # more than one field is specified, the rule is applied only to entities which
2646
+ # match all the fields.
2647
+ class MappingRuleFilter
2648
+ include Google::Apis::Core::Hashable
2649
+
2650
+ # Optional. The rule should be applied to specific entities defined by their
2651
+ # fully qualified names.
2652
+ # Corresponds to the JSON property `entities`
2653
+ # @return [Array<String>]
2654
+ attr_accessor :entities
2655
+
2656
+ # Optional. The rule should be applied to entities whose non-qualified name
2657
+ # contains the given string.
2658
+ # Corresponds to the JSON property `entityNameContains`
2659
+ # @return [String]
2660
+ attr_accessor :entity_name_contains
2661
+
2662
+ # Optional. The rule should be applied to entities whose non-qualified name
2663
+ # starts with the given prefix.
2664
+ # Corresponds to the JSON property `entityNamePrefix`
2665
+ # @return [String]
2666
+ attr_accessor :entity_name_prefix
2667
+
2668
+ # Optional. The rule should be applied to entities whose non-qualified name ends
2669
+ # with the given suffix.
2670
+ # Corresponds to the JSON property `entityNameSuffix`
2671
+ # @return [String]
2672
+ attr_accessor :entity_name_suffix
2673
+
2674
+ # Optional. The rule should be applied to entities whose parent entity (fully
2675
+ # qualified name) matches the given value. For example, if the rule applies to a
2676
+ # table entity, the expected value should be a schema (schema). If the rule
2677
+ # applies to a column or index entity, the expected value can be either a schema
2678
+ # (schema) or a table (schema.table)
2679
+ # Corresponds to the JSON property `parentEntity`
2680
+ # @return [String]
2681
+ attr_accessor :parent_entity
2682
+
2683
+ def initialize(**args)
2684
+ update!(**args)
2685
+ end
2686
+
2687
+ # Update properties of this object
2688
+ def update!(**args)
2689
+ @entities = args[:entities] if args.key?(:entities)
2690
+ @entity_name_contains = args[:entity_name_contains] if args.key?(:entity_name_contains)
2691
+ @entity_name_prefix = args[:entity_name_prefix] if args.key?(:entity_name_prefix)
2692
+ @entity_name_suffix = args[:entity_name_suffix] if args.key?(:entity_name_suffix)
2693
+ @parent_entity = args[:parent_entity] if args.key?(:parent_entity)
2694
+ end
2695
+ end
2696
+
2697
+ # MaterializedView's parent is a schema.
2698
+ class MaterializedViewEntity
2699
+ include Google::Apis::Core::Hashable
2700
+
2701
+ # Custom engine specific features.
2702
+ # Corresponds to the JSON property `customFeatures`
2703
+ # @return [Hash<String,Object>]
2704
+ attr_accessor :custom_features
2705
+
2706
+ # The SQL code which creates the view.
2707
+ # Corresponds to the JSON property `sqlCode`
2708
+ # @return [String]
2709
+ attr_accessor :sql_code
2710
+
2711
+ def initialize(**args)
2712
+ update!(**args)
2713
+ end
2714
+
2715
+ # Update properties of this object
2716
+ def update!(**args)
2717
+ @custom_features = args[:custom_features] if args.key?(:custom_features)
2718
+ @sql_code = args[:sql_code] if args.key?(:sql_code)
2719
+ end
2720
+ end
2721
+
2722
+ # Represents a Database Migration Service migration job object.
2723
+ class MigrationJob
2724
+ include Google::Apis::Core::Hashable
2725
+
2726
+ # The CMEK (customer-managed encryption key) fully qualified key name used for
2727
+ # the migration job. This field supports all migration jobs types except for: *
2728
+ # Mysql to Mysql (use the cmek field in the cloudsql connection profile instead).
2729
+ # * PostrgeSQL to PostgreSQL (use the cmek field in the cloudsql connection
2730
+ # profile instead). * PostgreSQL to AlloyDB (use the kms_key_name field in the
2731
+ # alloydb connection profile instead). Each Cloud CMEK key has the following
2732
+ # format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[
2733
+ # KEY_NAME]
2734
+ # Corresponds to the JSON property `cmekKeyName`
2071
2735
  # @return [String]
2072
2736
  attr_accessor :cmek_key_name
2073
2737
 
@@ -2274,6 +2938,119 @@ module Google
2274
2938
  end
2275
2939
  end
2276
2940
 
2941
+ # Options to configure rule type MultiColumnDatatypeChange. The rule is used to
2942
+ # change the data type and associated properties of multiple columns at once.
2943
+ # The rule filter field can refer to one or more entities. The rule scope can be
2944
+ # one of:Column. This rule requires additional filters to be specified beyond
2945
+ # the basic rule filter field, which is the source data type, but the rule
2946
+ # supports additional filtering capabilities such as the minimum and maximum
2947
+ # field length. All additional filters which are specified are required to be
2948
+ # met in order for the rule to be applied (logical AND between the fields).
2949
+ class MultiColumnDatatypeChange
2950
+ include Google::Apis::Core::Hashable
2951
+
2952
+ # Optional. Custom engine specific features.
2953
+ # Corresponds to the JSON property `customFeatures`
2954
+ # @return [Hash<String,Object>]
2955
+ attr_accessor :custom_features
2956
+
2957
+ # Required. New data type.
2958
+ # Corresponds to the JSON property `newDataType`
2959
+ # @return [String]
2960
+ attr_accessor :new_data_type
2961
+
2962
+ # Optional. Column fractional seconds precision - used only for timestamp based
2963
+ # datatypes - if not specified and relevant uses the source column fractional
2964
+ # seconds precision.
2965
+ # Corresponds to the JSON property `overrideFractionalSecondsPrecision`
2966
+ # @return [Fixnum]
2967
+ attr_accessor :override_fractional_seconds_precision
2968
+
2969
+ # Optional. Column length - e.g. varchar (50) - if not specified and relevant
2970
+ # uses the source column length.
2971
+ # Corresponds to the JSON property `overrideLength`
2972
+ # @return [Fixnum]
2973
+ attr_accessor :override_length
2974
+
2975
+ # Optional. Column precision - when relevant - if not specified and relevant
2976
+ # uses the source column precision.
2977
+ # Corresponds to the JSON property `overridePrecision`
2978
+ # @return [Fixnum]
2979
+ attr_accessor :override_precision
2980
+
2981
+ # Optional. Column scale - when relevant - if not specified and relevant uses
2982
+ # the source column scale.
2983
+ # Corresponds to the JSON property `overrideScale`
2984
+ # @return [Fixnum]
2985
+ attr_accessor :override_scale
2986
+
2987
+ # Required. Filter on source data type.
2988
+ # Corresponds to the JSON property `sourceDataTypeFilter`
2989
+ # @return [String]
2990
+ attr_accessor :source_data_type_filter
2991
+
2992
+ # Filter for fixed point number data types such as NUMERIC/NUMBER
2993
+ # Corresponds to the JSON property `sourceNumericFilter`
2994
+ # @return [Google::Apis::DatamigrationV1::SourceNumericFilter]
2995
+ attr_accessor :source_numeric_filter
2996
+
2997
+ # Filter for text-based data types like varchar.
2998
+ # Corresponds to the JSON property `sourceTextFilter`
2999
+ # @return [Google::Apis::DatamigrationV1::SourceTextFilter]
3000
+ attr_accessor :source_text_filter
3001
+
3002
+ def initialize(**args)
3003
+ update!(**args)
3004
+ end
3005
+
3006
+ # Update properties of this object
3007
+ def update!(**args)
3008
+ @custom_features = args[:custom_features] if args.key?(:custom_features)
3009
+ @new_data_type = args[:new_data_type] if args.key?(:new_data_type)
3010
+ @override_fractional_seconds_precision = args[:override_fractional_seconds_precision] if args.key?(:override_fractional_seconds_precision)
3011
+ @override_length = args[:override_length] if args.key?(:override_length)
3012
+ @override_precision = args[:override_precision] if args.key?(:override_precision)
3013
+ @override_scale = args[:override_scale] if args.key?(:override_scale)
3014
+ @source_data_type_filter = args[:source_data_type_filter] if args.key?(:source_data_type_filter)
3015
+ @source_numeric_filter = args[:source_numeric_filter] if args.key?(:source_numeric_filter)
3016
+ @source_text_filter = args[:source_text_filter] if args.key?(:source_text_filter)
3017
+ end
3018
+ end
3019
+
3020
+ # Options to configure rule type MultiEntityRename. The rule is used to rename
3021
+ # multiple entities. The rule filter field can refer to one or more entities.
3022
+ # The rule scope can be one of: Database, Schema, Table, Column, Constraint,
3023
+ # Index, View, Function, Stored Procedure, Materialized View, Sequence, UDT
3024
+ class MultiEntityRename
3025
+ include Google::Apis::Core::Hashable
3026
+
3027
+ # Optional. The pattern used to generate the new entity's name. This pattern
3028
+ # must include the characters '`name`', which will be replaced with the name of
3029
+ # the original entity. For example, the pattern 't_`name`' for an entity name
3030
+ # jobs would be converted to 't_jobs'. If unspecified, the default value for
3031
+ # this field is '`name`'
3032
+ # Corresponds to the JSON property `newNamePattern`
3033
+ # @return [String]
3034
+ attr_accessor :new_name_pattern
3035
+
3036
+ # Optional. Additional transformation that can be done on the source entity name
3037
+ # before it is being used by the new_name_pattern, for example lower case. If no
3038
+ # transformation is desired, use NO_TRANSFORMATION
3039
+ # Corresponds to the JSON property `sourceNameTransformation`
3040
+ # @return [String]
3041
+ attr_accessor :source_name_transformation
3042
+
3043
+ def initialize(**args)
3044
+ update!(**args)
3045
+ end
3046
+
3047
+ # Update properties of this object
3048
+ def update!(**args)
3049
+ @new_name_pattern = args[:new_name_pattern] if args.key?(:new_name_pattern)
3050
+ @source_name_transformation = args[:source_name_transformation] if args.key?(:source_name_transformation)
3051
+ end
3052
+ end
3053
+
2277
3054
  # Specifies connection parameters required specifically for MySQL databases.
2278
3055
  class MySqlConnectionProfile
2279
3056
  include Google::Apis::Core::Hashable
@@ -2602,6 +3379,43 @@ module Google
2602
3379
  end
2603
3380
  end
2604
3381
 
3382
+ # Issue position.
3383
+ class Position
3384
+ include Google::Apis::Core::Hashable
3385
+
3386
+ # Issue column number
3387
+ # Corresponds to the JSON property `column`
3388
+ # @return [Fixnum]
3389
+ attr_accessor :column
3390
+
3391
+ # Issue length
3392
+ # Corresponds to the JSON property `length`
3393
+ # @return [Fixnum]
3394
+ attr_accessor :length
3395
+
3396
+ # Issue line number
3397
+ # Corresponds to the JSON property `line`
3398
+ # @return [Fixnum]
3399
+ attr_accessor :line
3400
+
3401
+ # Issue offset
3402
+ # Corresponds to the JSON property `offset`
3403
+ # @return [Fixnum]
3404
+ attr_accessor :offset
3405
+
3406
+ def initialize(**args)
3407
+ update!(**args)
3408
+ end
3409
+
3410
+ # Update properties of this object
3411
+ def update!(**args)
3412
+ @column = args[:column] if args.key?(:column)
3413
+ @length = args[:length] if args.key?(:length)
3414
+ @line = args[:line] if args.key?(:line)
3415
+ @offset = args[:offset] if args.key?(:offset)
3416
+ end
3417
+ end
3418
+
2605
3419
  # Specifies connection parameters required specifically for PostgreSQL databases.
2606
3420
  class PostgreSqlConnectionProfile
2607
3421
  include Google::Apis::Core::Hashable
@@ -2942,17 +3756,38 @@ module Google
2942
3756
  end
2943
3757
  end
2944
3758
 
3759
+ # This allows the data to change scale, for example if the source is 2 digits
3760
+ # after the decimal point, specify round to scale value = 2. If for example the
3761
+ # value needs to be converted to an integer, use round to scale value = 0.
3762
+ class RoundToScale
3763
+ include Google::Apis::Core::Hashable
3764
+
3765
+ # Required. Scale value to be used
3766
+ # Corresponds to the JSON property `scale`
3767
+ # @return [Fixnum]
3768
+ attr_accessor :scale
3769
+
3770
+ def initialize(**args)
3771
+ update!(**args)
3772
+ end
3773
+
3774
+ # Update properties of this object
3775
+ def update!(**args)
3776
+ @scale = args[:scale] if args.key?(:scale)
3777
+ end
3778
+ end
3779
+
2945
3780
  # Details of a single rules file.
2946
3781
  class RulesFile
2947
3782
  include Google::Apis::Core::Hashable
2948
3783
 
2949
- # The text content of the rules that needs to be converted.
3784
+ # Required. The text content of the rules that needs to be converted.
2950
3785
  # Corresponds to the JSON property `rulesContent`
2951
3786
  # @return [String]
2952
3787
  attr_accessor :rules_content
2953
3788
 
2954
- # The filename of the rules that needs to be converted. The filename is used
2955
- # mainly so that future logs of the import rules job contain it, and can
3789
+ # Required. The filename of the rules that needs to be converted. The filename
3790
+ # is used mainly so that future logs of the import rules job contain it, and can
2956
3791
  # therefore be searched by it.
2957
3792
  # Corresponds to the JSON property `rulesSourceFilename`
2958
3793
  # @return [String]
@@ -3022,12 +3857,12 @@ module Google
3022
3857
  attr_accessor :auto_commit
3023
3858
  alias_method :auto_commit?, :auto_commit
3024
3859
 
3025
- # Fully qualified (Uri) name of the destination connection profile.
3860
+ # Optional. Fully qualified (Uri) name of the destination connection profile.
3026
3861
  # Corresponds to the JSON property `destinationConnectionProfile`
3027
3862
  # @return [String]
3028
3863
  attr_accessor :destination_connection_profile
3029
3864
 
3030
- # Fully qualified (Uri) name of the source connection profile.
3865
+ # Optional. Fully qualified (Uri) name of the source connection profile.
3031
3866
  # Corresponds to the JSON property `sourceConnectionProfile`
3032
3867
  # @return [String]
3033
3868
  attr_accessor :source_connection_profile
@@ -3048,7 +3883,7 @@ module Google
3048
3883
  class SeedJobDetails
3049
3884
  include Google::Apis::Core::Hashable
3050
3885
 
3051
- # The connection profile which was used for the seed job.
3886
+ # Output only. The connection profile which was used for the seed job.
3052
3887
  # Corresponds to the JSON property `connectionProfile`
3053
3888
  # @return [String]
3054
3889
  attr_accessor :connection_profile
@@ -3178,6 +4013,291 @@ module Google
3178
4013
  end
3179
4014
  end
3180
4015
 
4016
+ # Options to configure rule type SetTablePrimaryKey. The rule is used to specify
4017
+ # the columns and name to configure/alter the primary key of a table. The rule
4018
+ # filter field can refer to one entity. The rule scope can be one of: Table.
4019
+ class SetTablePrimaryKey
4020
+ include Google::Apis::Core::Hashable
4021
+
4022
+ # Optional. Name for the primary key
4023
+ # Corresponds to the JSON property `primaryKey`
4024
+ # @return [String]
4025
+ attr_accessor :primary_key
4026
+
4027
+ # Required. List of column names for the primary key
4028
+ # Corresponds to the JSON property `primaryKeyColumns`
4029
+ # @return [Array<String>]
4030
+ attr_accessor :primary_key_columns
4031
+
4032
+ def initialize(**args)
4033
+ update!(**args)
4034
+ end
4035
+
4036
+ # Update properties of this object
4037
+ def update!(**args)
4038
+ @primary_key = args[:primary_key] if args.key?(:primary_key)
4039
+ @primary_key_columns = args[:primary_key_columns] if args.key?(:primary_key_columns)
4040
+ end
4041
+ end
4042
+
4043
+ # Options to configure rule type SingleColumnChange. The rule is used to change
4044
+ # the properties of a column. The rule filter field can refer to one entity. The
4045
+ # rule scope can be one of: Column. When using this rule, if a field is not
4046
+ # specified than the destination column's configuration will be the same as the
4047
+ # one in the source column..
4048
+ class SingleColumnChange
4049
+ include Google::Apis::Core::Hashable
4050
+
4051
+ # Optional. Is the column of array type.
4052
+ # Corresponds to the JSON property `array`
4053
+ # @return [Boolean]
4054
+ attr_accessor :array
4055
+ alias_method :array?, :array
4056
+
4057
+ # Optional. The length of the array, only relevant if the column type is an
4058
+ # array.
4059
+ # Corresponds to the JSON property `arrayLength`
4060
+ # @return [Fixnum]
4061
+ attr_accessor :array_length
4062
+
4063
+ # Optional. Is the column auto-generated/identity.
4064
+ # Corresponds to the JSON property `autoGenerated`
4065
+ # @return [Boolean]
4066
+ attr_accessor :auto_generated
4067
+ alias_method :auto_generated?, :auto_generated
4068
+
4069
+ # Optional. Charset override - instead of table level charset.
4070
+ # Corresponds to the JSON property `charset`
4071
+ # @return [String]
4072
+ attr_accessor :charset
4073
+
4074
+ # Optional. Collation override - instead of table level collation.
4075
+ # Corresponds to the JSON property `collation`
4076
+ # @return [String]
4077
+ attr_accessor :collation
4078
+
4079
+ # Optional. Comment associated with the column.
4080
+ # Corresponds to the JSON property `comment`
4081
+ # @return [String]
4082
+ attr_accessor :comment
4083
+
4084
+ # Optional. Custom engine specific features.
4085
+ # Corresponds to the JSON property `customFeatures`
4086
+ # @return [Hash<String,Object>]
4087
+ attr_accessor :custom_features
4088
+
4089
+ # Optional. Column data type name.
4090
+ # Corresponds to the JSON property `dataType`
4091
+ # @return [String]
4092
+ attr_accessor :data_type
4093
+
4094
+ # Optional. Column fractional seconds precision - e.g. 2 as in timestamp (2) -
4095
+ # when relevant.
4096
+ # Corresponds to the JSON property `fractionalSecondsPrecision`
4097
+ # @return [Fixnum]
4098
+ attr_accessor :fractional_seconds_precision
4099
+
4100
+ # Optional. Column length - e.g. 50 as in varchar (50) - when relevant.
4101
+ # Corresponds to the JSON property `length`
4102
+ # @return [Fixnum]
4103
+ attr_accessor :length
4104
+
4105
+ # Optional. Is the column nullable.
4106
+ # Corresponds to the JSON property `nullable`
4107
+ # @return [Boolean]
4108
+ attr_accessor :nullable
4109
+ alias_method :nullable?, :nullable
4110
+
4111
+ # Optional. Column precision - e.g. 8 as in double (8,2) - when relevant.
4112
+ # Corresponds to the JSON property `precision`
4113
+ # @return [Fixnum]
4114
+ attr_accessor :precision
4115
+
4116
+ # Optional. Column scale - e.g. 2 as in double (8,2) - when relevant.
4117
+ # Corresponds to the JSON property `scale`
4118
+ # @return [Fixnum]
4119
+ attr_accessor :scale
4120
+
4121
+ # Optional. Specifies the list of values allowed in the column.
4122
+ # Corresponds to the JSON property `setValues`
4123
+ # @return [Array<String>]
4124
+ attr_accessor :set_values
4125
+
4126
+ # Optional. Is the column a UDT (User-defined Type).
4127
+ # Corresponds to the JSON property `udt`
4128
+ # @return [Boolean]
4129
+ attr_accessor :udt
4130
+ alias_method :udt?, :udt
4131
+
4132
+ def initialize(**args)
4133
+ update!(**args)
4134
+ end
4135
+
4136
+ # Update properties of this object
4137
+ def update!(**args)
4138
+ @array = args[:array] if args.key?(:array)
4139
+ @array_length = args[:array_length] if args.key?(:array_length)
4140
+ @auto_generated = args[:auto_generated] if args.key?(:auto_generated)
4141
+ @charset = args[:charset] if args.key?(:charset)
4142
+ @collation = args[:collation] if args.key?(:collation)
4143
+ @comment = args[:comment] if args.key?(:comment)
4144
+ @custom_features = args[:custom_features] if args.key?(:custom_features)
4145
+ @data_type = args[:data_type] if args.key?(:data_type)
4146
+ @fractional_seconds_precision = args[:fractional_seconds_precision] if args.key?(:fractional_seconds_precision)
4147
+ @length = args[:length] if args.key?(:length)
4148
+ @nullable = args[:nullable] if args.key?(:nullable)
4149
+ @precision = args[:precision] if args.key?(:precision)
4150
+ @scale = args[:scale] if args.key?(:scale)
4151
+ @set_values = args[:set_values] if args.key?(:set_values)
4152
+ @udt = args[:udt] if args.key?(:udt)
4153
+ end
4154
+ end
4155
+
4156
+ # Options to configure rule type SingleEntityRename. The rule is used to rename
4157
+ # an entity. The rule filter field can refer to only one entity. The rule scope
4158
+ # can be one of: Database, Schema, Table, Column, Constraint, Index, View,
4159
+ # Function, Stored Procedure, Materialized View, Sequence, UDT, Synonym
4160
+ class SingleEntityRename
4161
+ include Google::Apis::Core::Hashable
4162
+
4163
+ # Required. The new name of the destination entity
4164
+ # Corresponds to the JSON property `newName`
4165
+ # @return [String]
4166
+ attr_accessor :new_name
4167
+
4168
+ def initialize(**args)
4169
+ update!(**args)
4170
+ end
4171
+
4172
+ # Update properties of this object
4173
+ def update!(**args)
4174
+ @new_name = args[:new_name] if args.key?(:new_name)
4175
+ end
4176
+ end
4177
+
4178
+ # Options to configure rule type SinglePackageChange. The rule is used to alter
4179
+ # the sql code for a package entities. The rule filter field can refer to one
4180
+ # entity. The rule scope can be: Package
4181
+ class SinglePackageChange
4182
+ include Google::Apis::Core::Hashable
4183
+
4184
+ # Optional. Sql code for package body
4185
+ # Corresponds to the JSON property `packageBody`
4186
+ # @return [String]
4187
+ attr_accessor :package_body
4188
+
4189
+ # Optional. Sql code for package description
4190
+ # Corresponds to the JSON property `packageDescription`
4191
+ # @return [String]
4192
+ attr_accessor :package_description
4193
+
4194
+ def initialize(**args)
4195
+ update!(**args)
4196
+ end
4197
+
4198
+ # Update properties of this object
4199
+ def update!(**args)
4200
+ @package_body = args[:package_body] if args.key?(:package_body)
4201
+ @package_description = args[:package_description] if args.key?(:package_description)
4202
+ end
4203
+ end
4204
+
4205
+ # Filter for fixed point number data types such as NUMERIC/NUMBER
4206
+ class SourceNumericFilter
4207
+ include Google::Apis::Core::Hashable
4208
+
4209
+ # Required. Enum to set the option defining the datatypes numeric filter has to
4210
+ # be applied to
4211
+ # Corresponds to the JSON property `numericFilterOption`
4212
+ # @return [String]
4213
+ attr_accessor :numeric_filter_option
4214
+
4215
+ # Optional. The filter will match columns with precision smaller than or equal
4216
+ # to this number.
4217
+ # Corresponds to the JSON property `sourceMaxPrecisionFilter`
4218
+ # @return [Fixnum]
4219
+ attr_accessor :source_max_precision_filter
4220
+
4221
+ # Optional. The filter will match columns with scale smaller than or equal to
4222
+ # this number.
4223
+ # Corresponds to the JSON property `sourceMaxScaleFilter`
4224
+ # @return [Fixnum]
4225
+ attr_accessor :source_max_scale_filter
4226
+
4227
+ # Optional. The filter will match columns with precision greater than or equal
4228
+ # to this number.
4229
+ # Corresponds to the JSON property `sourceMinPrecisionFilter`
4230
+ # @return [Fixnum]
4231
+ attr_accessor :source_min_precision_filter
4232
+
4233
+ # Optional. The filter will match columns with scale greater than or equal to
4234
+ # this number.
4235
+ # Corresponds to the JSON property `sourceMinScaleFilter`
4236
+ # @return [Fixnum]
4237
+ attr_accessor :source_min_scale_filter
4238
+
4239
+ def initialize(**args)
4240
+ update!(**args)
4241
+ end
4242
+
4243
+ # Update properties of this object
4244
+ def update!(**args)
4245
+ @numeric_filter_option = args[:numeric_filter_option] if args.key?(:numeric_filter_option)
4246
+ @source_max_precision_filter = args[:source_max_precision_filter] if args.key?(:source_max_precision_filter)
4247
+ @source_max_scale_filter = args[:source_max_scale_filter] if args.key?(:source_max_scale_filter)
4248
+ @source_min_precision_filter = args[:source_min_precision_filter] if args.key?(:source_min_precision_filter)
4249
+ @source_min_scale_filter = args[:source_min_scale_filter] if args.key?(:source_min_scale_filter)
4250
+ end
4251
+ end
4252
+
4253
+ # Options to configure rule type SourceSqlChange. The rule is used to alter the
4254
+ # sql code for database entities. The rule filter field can refer to one entity.
4255
+ # The rule scope can be: StoredProcedure, Function, Trigger, View
4256
+ class SourceSqlChange
4257
+ include Google::Apis::Core::Hashable
4258
+
4259
+ # Required. Sql code for source (stored procedure, function, trigger or view)
4260
+ # Corresponds to the JSON property `sqlCode`
4261
+ # @return [String]
4262
+ attr_accessor :sql_code
4263
+
4264
+ def initialize(**args)
4265
+ update!(**args)
4266
+ end
4267
+
4268
+ # Update properties of this object
4269
+ def update!(**args)
4270
+ @sql_code = args[:sql_code] if args.key?(:sql_code)
4271
+ end
4272
+ end
4273
+
4274
+ # Filter for text-based data types like varchar.
4275
+ class SourceTextFilter
4276
+ include Google::Apis::Core::Hashable
4277
+
4278
+ # Optional. The filter will match columns with length smaller than or equal to
4279
+ # this number.
4280
+ # Corresponds to the JSON property `sourceMaxLengthFilter`
4281
+ # @return [Fixnum]
4282
+ attr_accessor :source_max_length_filter
4283
+
4284
+ # Optional. The filter will match columns with length greater than or equal to
4285
+ # this number.
4286
+ # Corresponds to the JSON property `sourceMinLengthFilter`
4287
+ # @return [Fixnum]
4288
+ attr_accessor :source_min_length_filter
4289
+
4290
+ def initialize(**args)
4291
+ update!(**args)
4292
+ end
4293
+
4294
+ # Update properties of this object
4295
+ def update!(**args)
4296
+ @source_max_length_filter = args[:source_max_length_filter] if args.key?(:source_max_length_filter)
4297
+ @source_min_length_filter = args[:source_min_length_filter] if args.key?(:source_min_length_filter)
4298
+ end
4299
+ end
4300
+
3181
4301
  # An entry for an Access Control list.
3182
4302
  class SqlAclEntry
3183
4303
  include Google::Apis::Core::Hashable
@@ -3638,6 +4758,37 @@ module Google
3638
4758
  end
3639
4759
  end
3640
4760
 
4761
+ # UDT's parent is a schema.
4762
+ class UdtEntity
4763
+ include Google::Apis::Core::Hashable
4764
+
4765
+ # Custom engine specific features.
4766
+ # Corresponds to the JSON property `customFeatures`
4767
+ # @return [Hash<String,Object>]
4768
+ attr_accessor :custom_features
4769
+
4770
+ # The SQL code which creates the udt body.
4771
+ # Corresponds to the JSON property `udtBody`
4772
+ # @return [String]
4773
+ attr_accessor :udt_body
4774
+
4775
+ # The SQL code which creates the udt.
4776
+ # Corresponds to the JSON property `udtSqlCode`
4777
+ # @return [String]
4778
+ attr_accessor :udt_sql_code
4779
+
4780
+ def initialize(**args)
4781
+ update!(**args)
4782
+ end
4783
+
4784
+ # Update properties of this object
4785
+ def update!(**args)
4786
+ @custom_features = args[:custom_features] if args.key?(:custom_features)
4787
+ @udt_body = args[:udt_body] if args.key?(:udt_body)
4788
+ @udt_sql_code = args[:udt_sql_code] if args.key?(:udt_sql_code)
4789
+ end
4790
+ end
4791
+
3641
4792
  # The username/password for a database user. Used for specifying initial users
3642
4793
  # at cluster creation time.
3643
4794
  class UserPassword
@@ -3671,16 +4822,152 @@ module Google
3671
4822
  end
3672
4823
  end
3673
4824
 
4825
+ # A list of values to filter by in ConditionalColumnSetValue
4826
+ class ValueListFilter
4827
+ include Google::Apis::Core::Hashable
4828
+
4829
+ # Required. Whether to ignore case when filtering by values. Defaults to false
4830
+ # Corresponds to the JSON property `ignoreCase`
4831
+ # @return [Boolean]
4832
+ attr_accessor :ignore_case
4833
+ alias_method :ignore_case?, :ignore_case
4834
+
4835
+ # Required. Indicates whether the filter matches rows with values that are
4836
+ # present in the list or those with values not present in it.
4837
+ # Corresponds to the JSON property `valuePresentList`
4838
+ # @return [String]
4839
+ attr_accessor :value_present_list
4840
+
4841
+ # Required. The list to be used to filter by
4842
+ # Corresponds to the JSON property `values`
4843
+ # @return [Array<String>]
4844
+ attr_accessor :values
4845
+
4846
+ def initialize(**args)
4847
+ update!(**args)
4848
+ end
4849
+
4850
+ # Update properties of this object
4851
+ def update!(**args)
4852
+ @ignore_case = args[:ignore_case] if args.key?(:ignore_case)
4853
+ @value_present_list = args[:value_present_list] if args.key?(:value_present_list)
4854
+ @values = args[:values] if args.key?(:values)
4855
+ end
4856
+ end
4857
+
4858
+ # Description of data transformation during migration as part of the
4859
+ # ConditionalColumnSetValue.
4860
+ class ValueTransformation
4861
+ include Google::Apis::Core::Hashable
4862
+
4863
+ # Apply a hash function on the value.
4864
+ # Corresponds to the JSON property `applyHash`
4865
+ # @return [Google::Apis::DatamigrationV1::ApplyHash]
4866
+ attr_accessor :apply_hash
4867
+
4868
+ # A generic empty message that you can re-use to avoid defining duplicated empty
4869
+ # messages in your APIs. A typical example is to use it as the request or the
4870
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
4871
+ # protobuf.Empty) returns (google.protobuf.Empty); `
4872
+ # Corresponds to the JSON property `assignMaxValue`
4873
+ # @return [Google::Apis::DatamigrationV1::Empty]
4874
+ attr_accessor :assign_max_value
4875
+
4876
+ # A generic empty message that you can re-use to avoid defining duplicated empty
4877
+ # messages in your APIs. A typical example is to use it as the request or the
4878
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
4879
+ # protobuf.Empty) returns (google.protobuf.Empty); `
4880
+ # Corresponds to the JSON property `assignMinValue`
4881
+ # @return [Google::Apis::DatamigrationV1::Empty]
4882
+ attr_accessor :assign_min_value
4883
+
4884
+ # A generic empty message that you can re-use to avoid defining duplicated empty
4885
+ # messages in your APIs. A typical example is to use it as the request or the
4886
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
4887
+ # protobuf.Empty) returns (google.protobuf.Empty); `
4888
+ # Corresponds to the JSON property `assignNull`
4889
+ # @return [Google::Apis::DatamigrationV1::Empty]
4890
+ attr_accessor :assign_null
4891
+
4892
+ # Set to a specific value (value is converted to fit the target data type)
4893
+ # Corresponds to the JSON property `assignSpecificValue`
4894
+ # @return [Google::Apis::DatamigrationV1::AssignSpecificValue]
4895
+ attr_accessor :assign_specific_value
4896
+
4897
+ # Filter based on relation between source value and compare value of type double
4898
+ # in ConditionalColumnSetValue
4899
+ # Corresponds to the JSON property `doubleComparison`
4900
+ # @return [Google::Apis::DatamigrationV1::DoubleComparisonFilter]
4901
+ attr_accessor :double_comparison
4902
+
4903
+ # Filter based on relation between source value and compare value of type
4904
+ # integer in ConditionalColumnSetValue
4905
+ # Corresponds to the JSON property `intComparison`
4906
+ # @return [Google::Apis::DatamigrationV1::IntComparisonFilter]
4907
+ attr_accessor :int_comparison
4908
+
4909
+ # A generic empty message that you can re-use to avoid defining duplicated empty
4910
+ # messages in your APIs. A typical example is to use it as the request or the
4911
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
4912
+ # protobuf.Empty) returns (google.protobuf.Empty); `
4913
+ # Corresponds to the JSON property `isNull`
4914
+ # @return [Google::Apis::DatamigrationV1::Empty]
4915
+ attr_accessor :is_null
4916
+
4917
+ # This allows the data to change scale, for example if the source is 2 digits
4918
+ # after the decimal point, specify round to scale value = 2. If for example the
4919
+ # value needs to be converted to an integer, use round to scale value = 0.
4920
+ # Corresponds to the JSON property `roundScale`
4921
+ # @return [Google::Apis::DatamigrationV1::RoundToScale]
4922
+ attr_accessor :round_scale
4923
+
4924
+ # A list of values to filter by in ConditionalColumnSetValue
4925
+ # Corresponds to the JSON property `valueList`
4926
+ # @return [Google::Apis::DatamigrationV1::ValueListFilter]
4927
+ attr_accessor :value_list
4928
+
4929
+ def initialize(**args)
4930
+ update!(**args)
4931
+ end
4932
+
4933
+ # Update properties of this object
4934
+ def update!(**args)
4935
+ @apply_hash = args[:apply_hash] if args.key?(:apply_hash)
4936
+ @assign_max_value = args[:assign_max_value] if args.key?(:assign_max_value)
4937
+ @assign_min_value = args[:assign_min_value] if args.key?(:assign_min_value)
4938
+ @assign_null = args[:assign_null] if args.key?(:assign_null)
4939
+ @assign_specific_value = args[:assign_specific_value] if args.key?(:assign_specific_value)
4940
+ @double_comparison = args[:double_comparison] if args.key?(:double_comparison)
4941
+ @int_comparison = args[:int_comparison] if args.key?(:int_comparison)
4942
+ @is_null = args[:is_null] if args.key?(:is_null)
4943
+ @round_scale = args[:round_scale] if args.key?(:round_scale)
4944
+ @value_list = args[:value_list] if args.key?(:value_list)
4945
+ end
4946
+ end
4947
+
3674
4948
  # Request message for 'VerifyMigrationJob' request.
3675
4949
  class VerifyMigrationJobRequest
3676
4950
  include Google::Apis::Core::Hashable
3677
4951
 
4952
+ # Represents a Database Migration Service migration job object.
4953
+ # Corresponds to the JSON property `migrationJob`
4954
+ # @return [Google::Apis::DatamigrationV1::MigrationJob]
4955
+ attr_accessor :migration_job
4956
+
4957
+ # Optional. Field mask is used to specify the changed fields to be verified. It
4958
+ # will not update the migration job.
4959
+ # Corresponds to the JSON property `updateMask`
4960
+ # @return [String]
4961
+ attr_accessor :update_mask
4962
+
3678
4963
  def initialize(**args)
3679
4964
  update!(**args)
3680
4965
  end
3681
4966
 
3682
4967
  # Update properties of this object
3683
4968
  def update!(**args)
4969
+ @migration_job = args[:migration_job] if args.key?(:migration_job)
4970
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
3684
4971
  end
3685
4972
  end
3686
4973