@google-cloud/dms 2.2.2 → 2.3.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.
@@ -1,4 +1,4 @@
1
- // Copyright 2021 Google LLC
1
+ // Copyright 2023 Google LLC
2
2
  //
3
3
  // Licensed under the Apache License, Version 2.0 (the "License");
4
4
  // you may not use this file except in compliance with the License.
@@ -30,6 +30,10 @@ option java_outer_classname = "ClouddmsResourcesProto";
30
30
  option java_package = "com.google.cloud.clouddms.v1";
31
31
  option php_namespace = "Google\\Cloud\\CloudDms\\V1";
32
32
  option ruby_package = "Google::Cloud::CloudDMS::V1";
33
+ option (google.api.resource_definition) = {
34
+ type: "compute.googleapis.com/Networks"
35
+ pattern: "projects/{project}/global/networks/{network}"
36
+ };
33
37
 
34
38
  // SSL configuration information.
35
39
  message SslConfig {
@@ -46,23 +50,23 @@ message SslConfig {
46
50
  SERVER_CLIENT = 2;
47
51
  }
48
52
 
49
- // Output only. The ssl config type according to 'client_key', 'client_certificate' and
50
- // 'ca_certificate'.
53
+ // Output only. The ssl config type according to 'client_key',
54
+ // 'client_certificate' and 'ca_certificate'.
51
55
  SslType type = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
52
56
 
53
- // Input only. The unencrypted PKCS#1 or PKCS#8 PEM-encoded private key associated with
54
- // the Client Certificate. If this field is used then the 'client_certificate'
55
- // field is mandatory.
57
+ // Input only. The unencrypted PKCS#1 or PKCS#8 PEM-encoded private key
58
+ // associated with the Client Certificate. If this field is used then the
59
+ // 'client_certificate' field is mandatory.
56
60
  string client_key = 2 [(google.api.field_behavior) = INPUT_ONLY];
57
61
 
58
- // Input only. The x509 PEM-encoded certificate that will be used by the replica to
59
- // authenticate against the source database server.If this field is used then
60
- // the 'client_key' field is mandatory.
62
+ // Input only. The x509 PEM-encoded certificate that will be used by the
63
+ // replica to authenticate against the source database server.If this field is
64
+ // used then the 'client_key' field is mandatory.
61
65
  string client_certificate = 3 [(google.api.field_behavior) = INPUT_ONLY];
62
66
 
63
- // Required. Input only. The x509 PEM-encoded certificate of the CA that signed the source database
64
- // server's certificate. The replica will use this certificate to verify
65
- // it's connecting to the right host.
67
+ // Required. Input only. The x509 PEM-encoded certificate of the CA that
68
+ // signed the source database server's certificate. The replica will use this
69
+ // certificate to verify it's connecting to the right host.
66
70
  string ca_certificate = 4 [
67
71
  (google.api.field_behavior) = INPUT_ONLY,
68
72
  (google.api.field_behavior) = REQUIRED
@@ -77,13 +81,15 @@ message MySqlConnectionProfile {
77
81
  // Required. The network port of the source MySQL database.
78
82
  int32 port = 2 [(google.api.field_behavior) = REQUIRED];
79
83
 
80
- // Required. The username that Database Migration Service will use to connect to the
81
- // database. The value is encrypted when stored in Database Migration Service.
84
+ // Required. The username that Database Migration Service will use to connect
85
+ // to the database. The value is encrypted when stored in Database Migration
86
+ // Service.
82
87
  string username = 3 [(google.api.field_behavior) = REQUIRED];
83
88
 
84
- // Required. Input only. The password for the user that Database Migration Service will be using to
85
- // connect to the database. This field is not returned on request, and the
86
- // value is encrypted when stored in Database Migration Service.
89
+ // Required. Input only. The password for the user that Database Migration
90
+ // Service will be using to connect to the database. This field is not
91
+ // returned on request, and the value is encrypted when stored in Database
92
+ // Migration Service.
87
93
  string password = 4 [
88
94
  (google.api.field_behavior) = INPUT_ONLY,
89
95
  (google.api.field_behavior) = REQUIRED
@@ -100,6 +106,16 @@ message MySqlConnectionProfile {
100
106
  string cloud_sql_id = 7;
101
107
  }
102
108
 
109
+ enum NetworkArchitecture {
110
+ NETWORK_ARCHITECTURE_UNSPECIFIED = 0;
111
+
112
+ // Instance is in Cloud SQL's old producer network architecture.
113
+ NETWORK_ARCHITECTURE_OLD_CSQL_PRODUCER = 1;
114
+
115
+ // Instance is in Cloud SQL's new producer network architecture.
116
+ NETWORK_ARCHITECTURE_NEW_CSQL_PRODUCER = 2;
117
+ }
118
+
103
119
  // Specifies connection parameters required specifically for PostgreSQL
104
120
  // databases.
105
121
  message PostgreSqlConnectionProfile {
@@ -109,13 +125,15 @@ message PostgreSqlConnectionProfile {
109
125
  // Required. The network port of the source PostgreSQL database.
110
126
  int32 port = 2 [(google.api.field_behavior) = REQUIRED];
111
127
 
112
- // Required. The username that Database Migration Service will use to connect to the
113
- // database. The value is encrypted when stored in Database Migration Service.
128
+ // Required. The username that Database Migration Service will use to connect
129
+ // to the database. The value is encrypted when stored in Database Migration
130
+ // Service.
114
131
  string username = 3 [(google.api.field_behavior) = REQUIRED];
115
132
 
116
- // Required. Input only. The password for the user that Database Migration Service will be using to
117
- // connect to the database. This field is not returned on request, and the
118
- // value is encrypted when stored in Database Migration Service.
133
+ // Required. Input only. The password for the user that Database Migration
134
+ // Service will be using to connect to the database. This field is not
135
+ // returned on request, and the value is encrypted when stored in Database
136
+ // Migration Service.
119
137
  string password = 4 [
120
138
  (google.api.field_behavior) = INPUT_ONLY,
121
139
  (google.api.field_behavior) = REQUIRED
@@ -130,12 +148,70 @@ message PostgreSqlConnectionProfile {
130
148
  // If the source is a Cloud SQL database, use this field to
131
149
  // provide the Cloud SQL instance ID of the source.
132
150
  string cloud_sql_id = 7;
151
+
152
+ // Output only. If the source is a Cloud SQL database, this field indicates
153
+ // the network architecture it's associated with.
154
+ NetworkArchitecture network_architecture = 8
155
+ [(google.api.field_behavior) = OUTPUT_ONLY];
156
+
157
+ // Connectivity options used to establish a connection to the database server.
158
+ oneof connectivity {
159
+ // Static ip connectivity data (default, no additional details needed).
160
+ StaticIpConnectivity static_ip_connectivity = 100;
161
+
162
+ // Private service connect connectivity.
163
+ PrivateServiceConnectConnectivity private_service_connect_connectivity =
164
+ 101;
165
+ }
166
+ }
167
+
168
+ // Specifies connection parameters required specifically for Oracle
169
+ // databases.
170
+ message OracleConnectionProfile {
171
+ // Required. The IP or hostname of the source Oracle database.
172
+ string host = 1 [(google.api.field_behavior) = REQUIRED];
173
+
174
+ // Required. The network port of the source Oracle database.
175
+ int32 port = 2 [(google.api.field_behavior) = REQUIRED];
176
+
177
+ // Required. The username that Database Migration Service will use to connect
178
+ // to the database. The value is encrypted when stored in Database Migration
179
+ // Service.
180
+ string username = 3 [(google.api.field_behavior) = REQUIRED];
181
+
182
+ // Required. Input only. The password for the user that Database Migration
183
+ // Service will be using to connect to the database. This field is not
184
+ // returned on request, and the value is encrypted when stored in Database
185
+ // Migration Service.
186
+ string password = 4 [
187
+ (google.api.field_behavior) = INPUT_ONLY,
188
+ (google.api.field_behavior) = REQUIRED
189
+ ];
190
+
191
+ // Output only. Indicates whether a new password is included in the request.
192
+ bool password_set = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
193
+
194
+ // Required. Database service for the Oracle connection.
195
+ string database_service = 6 [(google.api.field_behavior) = REQUIRED];
196
+
197
+ // Connectivity options used to establish a connection to the database server.
198
+ oneof connectivity {
199
+ // Static Service IP connectivity.
200
+ StaticServiceIpConnectivity static_service_ip_connectivity = 100;
201
+
202
+ // Forward SSH tunnel connectivity.
203
+ ForwardSshTunnelConnectivity forward_ssh_connectivity = 101;
204
+
205
+ // Private connectivity.
206
+ PrivateConnectivity private_connectivity = 102;
207
+ }
133
208
  }
134
209
 
135
210
  // Specifies required connection parameters, and, optionally, the parameters
136
211
  // required to create a Cloud SQL destination database instance.
137
212
  message CloudSqlConnectionProfile {
138
- // Output only. The Cloud SQL instance ID that this connection profile is associated with.
213
+ // Output only. The Cloud SQL instance ID that this connection profile is
214
+ // associated with.
139
215
  string cloud_sql_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
140
216
 
141
217
  // Immutable. Metadata used to create the destination Cloud SQL database.
@@ -146,6 +222,22 @@ message CloudSqlConnectionProfile {
146
222
 
147
223
  // Output only. The Cloud SQL database instance's public IP.
148
224
  string public_ip = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
225
+
226
+ // Output only. The Cloud SQL database instance's additional (outgoing) public
227
+ // IP. Used when the Cloud SQL database availability type is REGIONAL (i.e.
228
+ // multiple zones / highly available).
229
+ string additional_public_ip = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
230
+ }
231
+
232
+ // Specifies required connection parameters, and the parameters
233
+ // required to create an AlloyDB destination cluster.
234
+ message AlloyDbConnectionProfile {
235
+ // Required. The AlloyDB cluster ID that this connection profile is associated
236
+ // with.
237
+ string cluster_id = 1 [(google.api.field_behavior) = REQUIRED];
238
+
239
+ // Immutable. Metadata used to create the destination AlloyDB cluster.
240
+ AlloyDbSettings settings = 2 [(google.api.field_behavior) = IMMUTABLE];
149
241
  }
150
242
 
151
243
  // An entry for an Access Control list.
@@ -161,7 +253,8 @@ message SqlAclEntry {
161
253
  google.protobuf.Timestamp expire_time = 10;
162
254
 
163
255
  // Input only. The time-to-leave of this access control entry.
164
- google.protobuf.Duration ttl = 11 [(google.api.field_behavior) = INPUT_ONLY];
256
+ google.protobuf.Duration ttl = 11
257
+ [(google.api.field_behavior) = INPUT_ONLY];
165
258
  }
166
259
 
167
260
  // A label to identify this entry.
@@ -179,6 +272,14 @@ message SqlIpConfig {
179
272
  // be updated, but it cannot be removed after it is set.
180
273
  string private_network = 2;
181
274
 
275
+ // Optional. The name of the allocated IP address range for the private IP
276
+ // Cloud SQL instance. This name refers to an already allocated IP range
277
+ // address. If set, the instance IP address will be created in the allocated
278
+ // range. Note that this IP address range can't be modified after the instance
279
+ // is created. If you change the VPC when configuring connectivity settings
280
+ // for the migration job, this field is not relevant.
281
+ string allocated_ip_range = 5 [(google.api.field_behavior) = OPTIONAL];
282
+
182
283
  // Whether SSL connections over IP should be enforced or not.
183
284
  google.protobuf.BoolValue require_ssl = 3;
184
285
 
@@ -243,6 +344,21 @@ message CloudSqlSettings {
243
344
 
244
345
  // PostgreSQL 13.
245
346
  POSTGRES_13 = 8;
347
+
348
+ // PostgreSQL 14.
349
+ POSTGRES_14 = 17;
350
+ }
351
+
352
+ // The availability type of the given Cloud SQL instance.
353
+ enum SqlAvailabilityType {
354
+ // This is an unknown Availability type.
355
+ SQL_AVAILABILITY_TYPE_UNSPECIFIED = 0;
356
+
357
+ // Zonal availablility instance.
358
+ ZONAL = 1;
359
+
360
+ // Regional availability instance.
361
+ REGIONAL = 2;
246
362
  }
247
363
 
248
364
  // The database engine type and version.
@@ -301,10 +417,15 @@ message CloudSqlSettings {
301
417
  // The minimum (and default) size is 10GB.
302
418
  google.protobuf.Int64Value data_disk_size_gb = 10;
303
419
 
304
- // The Google Cloud Platform zone where your Cloud SQL datdabse instance is
420
+ // The Google Cloud Platform zone where your Cloud SQL database instance is
305
421
  // located.
306
422
  string zone = 11;
307
423
 
424
+ // Optional. The Google Cloud Platform zone where the failover Cloud SQL
425
+ // database instance is located. Used when the Cloud SQL database availability
426
+ // type is REGIONAL (i.e. multiple zones / highly available).
427
+ string secondary_zone = 18 [(google.api.field_behavior) = OPTIONAL];
428
+
308
429
  // The Database Migration Service source connection profile ID,
309
430
  // in the format:
310
431
  // `projects/my_project_name/locations/us-central1/connectionProfiles/connection_profile_ID`
@@ -318,14 +439,115 @@ message CloudSqlSettings {
318
439
 
319
440
  // The Cloud SQL default instance level collation.
320
441
  string collation = 15;
442
+
443
+ // The KMS key name used for the csql instance.
444
+ string cmek_key_name = 16;
445
+
446
+ // Optional. Availability type. Potential values:
447
+ // * `ZONAL`: The instance serves data from only one zone. Outages in that
448
+ // zone affect data availability.
449
+ // * `REGIONAL`: The instance can serve data from more than one zone in a
450
+ // region (it is highly available).
451
+ SqlAvailabilityType availability_type = 17
452
+ [(google.api.field_behavior) = OPTIONAL];
321
453
  }
322
454
 
323
- // The source database will allow incoming connections from the destination
324
- // database's public IP. You can retrieve the Cloud SQL instance's public IP
325
- // from the Cloud SQL console or using Cloud SQL APIs. No additional
326
- // configuration is required.
327
- message StaticIpConnectivity {
455
+ // Settings for creating an AlloyDB cluster.
456
+ message AlloyDbSettings {
457
+ // The username/password for a database user. Used for specifying initial
458
+ // users at cluster creation time.
459
+ message UserPassword {
460
+ // The database username.
461
+ string user = 1;
462
+
463
+ // The initial password for the user.
464
+ string password = 2;
465
+
466
+ // Output only. Indicates if the initial_user.password field has been set.
467
+ bool password_set = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
468
+ }
469
+
470
+ // Settings for the cluster's primary instance
471
+ message PrimaryInstanceSettings {
472
+ // MachineConfig describes the configuration of a machine.
473
+ message MachineConfig {
474
+ // The number of CPU's in the VM instance.
475
+ int32 cpu_count = 1;
476
+ }
477
+
478
+ // Required. The ID of the AlloyDB primary instance. The ID must satisfy the
479
+ // regex expression "[a-z0-9-]+".
480
+ string id = 1 [(google.api.field_behavior) = REQUIRED];
481
+
482
+ // Configuration for the machines that host the underlying
483
+ // database engine.
484
+ MachineConfig machine_config = 2;
485
+
486
+ // Database flags to pass to AlloyDB when DMS is creating the AlloyDB
487
+ // cluster and instances. See the AlloyDB documentation for how these can be
488
+ // used.
489
+ map<string, string> database_flags = 6;
490
+
491
+ // Labels for the AlloyDB primary instance created by DMS. An object
492
+ // containing a list of 'key', 'value' pairs.
493
+ map<string, string> labels = 7;
494
+
495
+ // Output only. The private IP address for the Instance.
496
+ // This is the connection endpoint for an end-user application.
497
+ string private_ip = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
498
+ }
499
+
500
+ // EncryptionConfig describes the encryption config of a cluster that is
501
+ // encrypted with a CMEK (customer-managed encryption key).
502
+ message EncryptionConfig {
503
+ // The fully-qualified resource name of the KMS key.
504
+ // Each Cloud KMS key is regionalized and has the following format:
505
+ // projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME]
506
+ string kms_key_name = 1;
507
+ }
508
+
509
+ // Required. Input only. Initial user to setup during cluster creation.
510
+ // Required.
511
+ UserPassword initial_user = 1 [
512
+ (google.api.field_behavior) = REQUIRED,
513
+ (google.api.field_behavior) = INPUT_ONLY
514
+ ];
515
+
516
+ // Required. The resource link for the VPC network in which cluster resources
517
+ // are created and from which they are accessible via Private IP. The network
518
+ // must belong to the same project as the cluster. It is specified in the
519
+ // form: "projects/{project_number}/global/networks/{network_id}". This is
520
+ // required to create a cluster.
521
+ string vpc_network = 2 [(google.api.field_behavior) = REQUIRED];
522
+
523
+ // Labels for the AlloyDB cluster created by DMS. An object containing a list
524
+ // of 'key', 'value' pairs.
525
+ map<string, string> labels = 3;
526
+
527
+ PrimaryInstanceSettings primary_instance_settings = 4;
528
+
529
+ // Optional. The encryption config can be specified to encrypt the data disks
530
+ // and other persistent data resources of a cluster with a
531
+ // customer-managed encryption key (CMEK). When this field is not
532
+ // specified, the cluster will then use default encryption scheme to
533
+ // protect the user data.
534
+ EncryptionConfig encryption_config = 5
535
+ [(google.api.field_behavior) = OPTIONAL];
536
+ }
328
537
 
538
+ // The source database will allow incoming connections from the public IP of the
539
+ // destination database. You can retrieve the public IP of the Cloud SQL
540
+ // instance from the Cloud SQL console or using Cloud SQL APIs. No additional
541
+ // configuration is required.
542
+ message StaticIpConnectivity {}
543
+
544
+ // Private Service Connect connectivity
545
+ // (https://cloud.google.com/vpc/docs/private-service-connect#service-attachments)
546
+ message PrivateServiceConnectConnectivity {
547
+ // Required. A service attachment that exposes a database, and has the
548
+ // following format:
549
+ // projects/{project}/regions/{region}/serviceAttachments/{service_attachment_name}
550
+ string service_attachment = 1 [(google.api.field_behavior) = REQUIRED];
329
551
  }
330
552
 
331
553
  // The details needed to configure a reverse SSH tunnel between the source and
@@ -335,12 +557,12 @@ message StaticIpConnectivity {
335
557
  // to produce the script that will help set up the reverse SSH tunnel, and to
336
558
  // set up the VPC peering between the Cloud SQL private network and the VPC.
337
559
  message ReverseSshConnectivity {
338
- // Required. The IP of the virtual machine (Compute Engine) used as the bastion server
339
- // for the SSH tunnel.
560
+ // Required. The IP of the virtual machine (Compute Engine) used as the
561
+ // bastion server for the SSH tunnel.
340
562
  string vm_ip = 1 [(google.api.field_behavior) = REQUIRED];
341
563
 
342
- // Required. The forwarding port of the virtual machine (Compute Engine) used as the
343
- // bastion server for the SSH tunnel.
564
+ // Required. The forwarding port of the virtual machine (Compute Engine) used
565
+ // as the bastion server for the SSH tunnel.
344
566
  int32 vm_port = 2 [(google.api.field_behavior) = REQUIRED];
345
567
 
346
568
  // The name of the virtual machine (Compute Engine) used as the bastion server
@@ -359,6 +581,35 @@ message VpcPeeringConnectivity {
359
581
  string vpc = 1;
360
582
  }
361
583
 
584
+ // Forward SSH Tunnel connectivity.
585
+ message ForwardSshTunnelConnectivity {
586
+ // Required. Hostname for the SSH tunnel.
587
+ string hostname = 1 [(google.api.field_behavior) = REQUIRED];
588
+
589
+ // Required. Username for the SSH tunnel.
590
+ string username = 2 [(google.api.field_behavior) = REQUIRED];
591
+
592
+ // Port for the SSH tunnel, default value is 22.
593
+ int32 port = 3;
594
+
595
+ oneof authentication_method {
596
+ // Input only. SSH password.
597
+ string password = 100 [(google.api.field_behavior) = INPUT_ONLY];
598
+
599
+ // Input only. SSH private key.
600
+ string private_key = 101 [(google.api.field_behavior) = INPUT_ONLY];
601
+ }
602
+ }
603
+
604
+ // Static IP address connectivity configured on service project.
605
+ message StaticServiceIpConnectivity {}
606
+
607
+ // Private Connectivity.
608
+ message PrivateConnectivity {
609
+ // Required. The resource name (URI) of the private connection.
610
+ string private_connection = 1 [(google.api.field_behavior) = REQUIRED];
611
+ }
612
+
362
613
  // A message defining the database engine and provider.
363
614
  message DatabaseType {
364
615
  // The database provider.
@@ -459,19 +710,36 @@ message MigrationJob {
459
710
  CONTINUOUS = 2;
460
711
  }
461
712
 
713
+ // Dump flag definition.
714
+ message DumpFlag {
715
+ // The name of the flag
716
+ string name = 1;
717
+
718
+ // The value of the flag.
719
+ string value = 2;
720
+ }
721
+
722
+ // Dump flags definition.
723
+ message DumpFlags {
724
+ // The flags for the initial dump.
725
+ repeated DumpFlag dump_flags = 1;
726
+ }
727
+
462
728
  // The name (URI) of this migration job resource, in the form of:
463
- // projects/{project}/locations/{location}/instances/{instance}.
729
+ // projects/{project}/locations/{location}/migrationJobs/{migrationJob}.
464
730
  string name = 1;
465
731
 
466
732
  // Output only. The timestamp when the migration job resource was created.
467
733
  // A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds.
468
734
  // Example: "2014-10-02T15:01:23.045123456Z".
469
- google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
735
+ google.protobuf.Timestamp create_time = 2
736
+ [(google.api.field_behavior) = OUTPUT_ONLY];
470
737
 
471
- // Output only. The timestamp when the migration job resource was last updated.
472
- // A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds.
738
+ // Output only. The timestamp when the migration job resource was last
739
+ // updated. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds.
473
740
  // Example: "2014-10-02T15:01:23.045123456Z".
474
- google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
741
+ google.protobuf.Timestamp update_time = 3
742
+ [(google.api.field_behavior) = OUTPUT_ONLY];
475
743
 
476
744
  // The resource labels for migration job to use to annotate any related
477
745
  // underlying resources such as Compute Engine VMs. An object containing a
@@ -494,8 +762,13 @@ message MigrationJob {
494
762
 
495
763
  // The path to the dump file in Google Cloud Storage,
496
764
  // in the format: (gs://[BUCKET_NAME]/[OBJECT_NAME]).
765
+ // This field and the "dump_flags" field are mutually exclusive.
497
766
  string dump_path = 9;
498
767
 
768
+ // The initial dump flags.
769
+ // This field and the "dump_path" field are mutually exclusive.
770
+ DumpFlags dump_flags = 17;
771
+
499
772
  // Required. The resource name (URI) of the source connection profile.
500
773
  string source = 10 [(google.api.field_behavior) = REQUIRED];
501
774
 
@@ -515,9 +788,11 @@ message MigrationJob {
515
788
  StaticIpConnectivity static_ip_connectivity = 103;
516
789
  }
517
790
 
518
- // Output only. The duration of the migration job (in seconds). A duration in seconds
519
- // with up to nine fractional digits, terminated by 's'. Example: "3.5s".
520
- google.protobuf.Duration duration = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
791
+ // Output only. The duration of the migration job (in seconds). A duration in
792
+ // seconds with up to nine fractional digits, terminated by 's'. Example:
793
+ // "3.5s".
794
+ google.protobuf.Duration duration = 12
795
+ [(google.api.field_behavior) = OUTPUT_ONLY];
521
796
 
522
797
  // Output only. The error details in case of state FAILED.
523
798
  google.rpc.Status error = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
@@ -528,8 +803,42 @@ message MigrationJob {
528
803
  // The database engine type and provider of the destination.
529
804
  DatabaseType destination_database = 15;
530
805
 
531
- // Output only. If the migration job is completed, the time when it was completed.
532
- google.protobuf.Timestamp end_time = 16 [(google.api.field_behavior) = OUTPUT_ONLY];
806
+ // Output only. If the migration job is completed, the time when it was
807
+ // completed.
808
+ google.protobuf.Timestamp end_time = 16
809
+ [(google.api.field_behavior) = OUTPUT_ONLY];
810
+
811
+ // The conversion workspace used by the migration.
812
+ ConversionWorkspaceInfo conversion_workspace = 18;
813
+
814
+ // This field can be used to select the entities to migrate as part of
815
+ // the migration job. It uses AIP-160 notation to select a subset of the
816
+ // entities configured on the associated conversion-workspace. This field
817
+ // should not be set on migration-jobs that are not associated with a
818
+ // conversion workspace.
819
+ string filter = 20;
820
+
821
+ // The CMEK (customer-managed encryption key) fully qualified key name used
822
+ // for the migration job.
823
+ // This field supports all migration jobs types except for:
824
+ // * Mysql to Mysql (use the cmek field in the cloudsql connection profile
825
+ // instead).
826
+ // * PostrgeSQL to PostgreSQL (use the cmek field in the cloudsql
827
+ // connection profile instead).
828
+ // * PostgreSQL to AlloyDB (use the kms_key_name field in the alloydb
829
+ // connection profile instead).
830
+ // Each Cloud CMEK key has the following format:
831
+ // projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME]
832
+ string cmek_key_name = 21;
833
+ }
834
+
835
+ // A conversion workspace's version.
836
+ message ConversionWorkspaceInfo {
837
+ // The resource name (URI) of the conversion workspace.
838
+ string name = 1;
839
+
840
+ // The commit ID of the conversion workspace.
841
+ string commit_id = 2;
533
842
  }
534
843
 
535
844
  // A connection profile definition.
@@ -567,18 +876,20 @@ message ConnectionProfile {
567
876
  }
568
877
 
569
878
  // The name of this connection profile resource in the form of
570
- // projects/{project}/locations/{location}/instances/{instance}.
879
+ // projects/{project}/locations/{location}/connectionProfiles/{connectionProfile}.
571
880
  string name = 1;
572
881
 
573
882
  // Output only. The timestamp when the resource was created.
574
883
  // A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds.
575
884
  // Example: "2014-10-02T15:01:23.045123456Z".
576
- google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
885
+ google.protobuf.Timestamp create_time = 2
886
+ [(google.api.field_behavior) = OUTPUT_ONLY];
577
887
 
578
888
  // Output only. The timestamp when the resource was last updated.
579
889
  // A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds.
580
890
  // Example: "2014-10-02T15:01:23.045123456Z".
581
- google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
891
+ google.protobuf.Timestamp update_time = 3
892
+ [(google.api.field_behavior) = OUTPUT_ONLY];
582
893
 
583
894
  // The resource labels for connection profile to use to annotate any related
584
895
  // underlying resources such as Compute Engine VMs. An object containing a
@@ -601,8 +912,14 @@ message ConnectionProfile {
601
912
  // A PostgreSQL database connection profile.
602
913
  PostgreSqlConnectionProfile postgresql = 101;
603
914
 
915
+ // An Oracle database connection profile.
916
+ OracleConnectionProfile oracle = 104;
917
+
604
918
  // A CloudSQL database connection profile.
605
919
  CloudSqlConnectionProfile cloudsql = 102;
920
+
921
+ // An AlloyDB cluster connection profile.
922
+ AlloyDbConnectionProfile alloydb = 105;
606
923
  }
607
924
 
608
925
  // Output only. The error details in case of state FAILED.
@@ -678,12 +995,30 @@ message MigrationJobVerificationError {
678
995
 
679
996
  // Migration is already running at the time of restart request.
680
997
  CANT_RESTART_RUNNING_MIGRATION = 21;
998
+
999
+ // The source has tables with limited support.
1000
+ // E.g. PostgreSQL tables without primary keys.
1001
+ TABLES_WITH_LIMITED_SUPPORT = 24;
1002
+
1003
+ // The source uses an unsupported locale.
1004
+ UNSUPPORTED_DATABASE_LOCALE = 25;
1005
+
1006
+ // The source uses an unsupported Foreign Data Wrapper configuration.
1007
+ UNSUPPORTED_DATABASE_FDW_CONFIG = 26;
1008
+
1009
+ // There was an underlying RDBMS error.
1010
+ ERROR_RDBMS = 27;
1011
+
1012
+ // The source DB size in Bytes exceeds a certain threshold. The migration
1013
+ // might require an increase of quota, or might not be supported.
1014
+ SOURCE_SIZE_EXCEEDS_THRESHOLD = 28;
681
1015
  }
682
1016
 
683
1017
  // Output only. An instance of ErrorCode specifying the error that occurred.
684
1018
  ErrorCode error_code = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
685
1019
 
686
- // Output only. A formatted message with further details about the error and a CTA.
1020
+ // Output only. A formatted message with further details about the error and a
1021
+ // CTA.
687
1022
  string error_message = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
688
1023
 
689
1024
  // Output only. A specific detailed error message, if supplied by the engine.
@@ -700,6 +1035,9 @@ enum DatabaseEngine {
700
1035
 
701
1036
  // The source engine is PostgreSQL.
702
1037
  POSTGRESQL = 2;
1038
+
1039
+ // The source engine is Oracle.
1040
+ ORACLE = 4;
703
1041
  }
704
1042
 
705
1043
  // The database providers.
@@ -712,4 +1050,90 @@ enum DatabaseProvider {
712
1050
 
713
1051
  // RDS runs the database.
714
1052
  RDS = 2;
1053
+
1054
+ // Amazon Aurora.
1055
+ AURORA = 3;
1056
+
1057
+ // AlloyDB.
1058
+ ALLOYDB = 4;
1059
+ }
1060
+
1061
+ // The PrivateConnection resource is used to establish private connectivity
1062
+ // with the customer's network.
1063
+ message PrivateConnection {
1064
+ option (google.api.resource) = {
1065
+ type: "datamigration.googleapis.com/PrivateConnection"
1066
+ pattern: "projects/{project}/locations/{location}/privateConnections/{private_connection}"
1067
+ };
1068
+
1069
+ // Private Connection state.
1070
+ enum State {
1071
+ STATE_UNSPECIFIED = 0;
1072
+
1073
+ // The private connection is in creation state - creating resources.
1074
+ CREATING = 1;
1075
+
1076
+ // The private connection has been created with all of its resources.
1077
+ CREATED = 2;
1078
+
1079
+ // The private connection creation has failed.
1080
+ FAILED = 3;
1081
+
1082
+ // The private connection is being deleted.
1083
+ DELETING = 4;
1084
+
1085
+ // Delete request has failed, resource is in invalid state.
1086
+ FAILED_TO_DELETE = 5;
1087
+
1088
+ // The private connection has been deleted.
1089
+ DELETED = 6;
1090
+ }
1091
+
1092
+ // The name of the resource.
1093
+ string name = 1;
1094
+
1095
+ // Output only. The create time of the resource.
1096
+ google.protobuf.Timestamp create_time = 2
1097
+ [(google.api.field_behavior) = OUTPUT_ONLY];
1098
+
1099
+ // Output only. The last update time of the resource.
1100
+ google.protobuf.Timestamp update_time = 3
1101
+ [(google.api.field_behavior) = OUTPUT_ONLY];
1102
+
1103
+ // The resource labels for private connections to use to annotate any related
1104
+ // underlying resources such as Compute Engine VMs. An object containing a
1105
+ // list of "key": "value" pairs.
1106
+ //
1107
+ // Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`.
1108
+ map<string, string> labels = 4;
1109
+
1110
+ // The private connection display name.
1111
+ string display_name = 5;
1112
+
1113
+ // Output only. The state of the private connection.
1114
+ State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
1115
+
1116
+ // Output only. The error details in case of state FAILED.
1117
+ google.rpc.Status error = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
1118
+
1119
+ oneof connectivity {
1120
+ // VPC peering configuration.
1121
+ VpcPeeringConfig vpc_peering_config = 100;
1122
+ }
1123
+ }
1124
+
1125
+ // The VPC peering configuration is used to create VPC peering with the
1126
+ // consumer's VPC.
1127
+ message VpcPeeringConfig {
1128
+ // Required. Fully qualified name of the VPC that Database Migration Service
1129
+ // will peer to.
1130
+ string vpc_name = 1 [
1131
+ (google.api.field_behavior) = REQUIRED,
1132
+ (google.api.resource_reference) = {
1133
+ type: "compute.googleapis.com/Networks"
1134
+ }
1135
+ ];
1136
+
1137
+ // Required. A free subnet for peering. (CIDR of /29)
1138
+ string subnet = 2 [(google.api.field_behavior) = REQUIRED];
715
1139
  }