clouddms_resources.proto 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716
  1. // Copyright 2021 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. syntax = "proto3";
  15. package google.cloud.clouddms.v1;
  16. import "google/api/field_behavior.proto";
  17. import "google/api/resource.proto";
  18. import "google/protobuf/duration.proto";
  19. import "google/protobuf/timestamp.proto";
  20. import "google/protobuf/wrappers.proto";
  21. import "google/rpc/status.proto";
  22. import "google/api/annotations.proto";
  23. option csharp_namespace = "Google.Cloud.CloudDms.V1";
  24. option go_package = "google.golang.org/genproto/googleapis/cloud/clouddms/v1;clouddms";
  25. option java_multiple_files = true;
  26. option java_outer_classname = "ClouddmsResourcesProto";
  27. option java_package = "com.google.cloud.clouddms.v1";
  28. option php_namespace = "Google\\Cloud\\CloudDms\\V1";
  29. option ruby_package = "Google::Cloud::CloudDMS::V1";
  30. // SSL configuration information.
  31. message SslConfig {
  32. // Specifies The kind of ssl configuration used.
  33. enum SslType {
  34. // Unspecified.
  35. SSL_TYPE_UNSPECIFIED = 0;
  36. // Only 'ca_certificate' specified.
  37. SERVER_ONLY = 1;
  38. // Both server ('ca_certificate'), and client ('client_key',
  39. // 'client_certificate') specified.
  40. SERVER_CLIENT = 2;
  41. }
  42. // Output only. The ssl config type according to 'client_key', 'client_certificate' and
  43. // 'ca_certificate'.
  44. SslType type = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  45. // Input only. The unencrypted PKCS#1 or PKCS#8 PEM-encoded private key associated with
  46. // the Client Certificate. If this field is used then the 'client_certificate'
  47. // field is mandatory.
  48. string client_key = 2 [(google.api.field_behavior) = INPUT_ONLY];
  49. // Input only. The x509 PEM-encoded certificate that will be used by the replica to
  50. // authenticate against the source database server.If this field is used then
  51. // the 'client_key' field is mandatory.
  52. string client_certificate = 3 [(google.api.field_behavior) = INPUT_ONLY];
  53. // Required. Input only. The x509 PEM-encoded certificate of the CA that signed the source database
  54. // server's certificate. The replica will use this certificate to verify
  55. // it's connecting to the right host.
  56. string ca_certificate = 4 [
  57. (google.api.field_behavior) = INPUT_ONLY,
  58. (google.api.field_behavior) = REQUIRED
  59. ];
  60. }
  61. // Specifies connection parameters required specifically for MySQL databases.
  62. message MySqlConnectionProfile {
  63. // Required. The IP or hostname of the source MySQL database.
  64. string host = 1 [(google.api.field_behavior) = REQUIRED];
  65. // Required. The network port of the source MySQL database.
  66. int32 port = 2 [(google.api.field_behavior) = REQUIRED];
  67. // Required. The username that Database Migration Service will use to connect to the
  68. // database. The value is encrypted when stored in Database Migration Service.
  69. string username = 3 [(google.api.field_behavior) = REQUIRED];
  70. // Required. Input only. The password for the user that Database Migration Service will be using to
  71. // connect to the database. This field is not returned on request, and the
  72. // value is encrypted when stored in Database Migration Service.
  73. string password = 4 [
  74. (google.api.field_behavior) = INPUT_ONLY,
  75. (google.api.field_behavior) = REQUIRED
  76. ];
  77. // Output only. Indicates If this connection profile password is stored.
  78. bool password_set = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
  79. // SSL configuration for the destination to connect to the source database.
  80. SslConfig ssl = 6;
  81. // If the source is a Cloud SQL database, use this field to
  82. // provide the Cloud SQL instance ID of the source.
  83. string cloud_sql_id = 7;
  84. }
  85. // Specifies connection parameters required specifically for PostgreSQL
  86. // databases.
  87. message PostgreSqlConnectionProfile {
  88. // Required. The IP or hostname of the source PostgreSQL database.
  89. string host = 1 [(google.api.field_behavior) = REQUIRED];
  90. // Required. The network port of the source PostgreSQL database.
  91. int32 port = 2 [(google.api.field_behavior) = REQUIRED];
  92. // Required. The username that Database Migration Service will use to connect to the
  93. // database. The value is encrypted when stored in Database Migration Service.
  94. string username = 3 [(google.api.field_behavior) = REQUIRED];
  95. // Required. Input only. The password for the user that Database Migration Service will be using to
  96. // connect to the database. This field is not returned on request, and the
  97. // value is encrypted when stored in Database Migration Service.
  98. string password = 4 [
  99. (google.api.field_behavior) = INPUT_ONLY,
  100. (google.api.field_behavior) = REQUIRED
  101. ];
  102. // Output only. Indicates If this connection profile password is stored.
  103. bool password_set = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
  104. // SSL configuration for the destination to connect to the source database.
  105. SslConfig ssl = 6;
  106. // If the source is a Cloud SQL database, use this field to
  107. // provide the Cloud SQL instance ID of the source.
  108. string cloud_sql_id = 7;
  109. }
  110. // Specifies required connection parameters, and, optionally, the parameters
  111. // required to create a Cloud SQL destination database instance.
  112. message CloudSqlConnectionProfile {
  113. // Output only. The Cloud SQL instance ID that this connection profile is associated with.
  114. string cloud_sql_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  115. // Immutable. Metadata used to create the destination Cloud SQL database.
  116. CloudSqlSettings settings = 2 [(google.api.field_behavior) = IMMUTABLE];
  117. // Output only. The Cloud SQL database instance's private IP.
  118. string private_ip = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
  119. // Output only. The Cloud SQL database instance's public IP.
  120. string public_ip = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
  121. }
  122. // An entry for an Access Control list.
  123. message SqlAclEntry {
  124. // The allowlisted value for the access control list.
  125. string value = 1;
  126. // The access control entry entry expiration.
  127. oneof expiration {
  128. // The time when this access control entry expires in
  129. // [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example:
  130. // `2012-11-15T16:19:00.094Z`.
  131. google.protobuf.Timestamp expire_time = 10;
  132. // Input only. The time-to-leave of this access control entry.
  133. google.protobuf.Duration ttl = 11 [(google.api.field_behavior) = INPUT_ONLY];
  134. }
  135. // A label to identify this entry.
  136. string label = 3;
  137. }
  138. // IP Management configuration.
  139. message SqlIpConfig {
  140. // Whether the instance should be assigned an IPv4 address or not.
  141. google.protobuf.BoolValue enable_ipv4 = 1;
  142. // The resource link for the VPC network from which the Cloud SQL instance is
  143. // accessible for private IP. For example,
  144. // `projects/myProject/global/networks/default`. This setting can
  145. // be updated, but it cannot be removed after it is set.
  146. string private_network = 2;
  147. // Whether SSL connections over IP should be enforced or not.
  148. google.protobuf.BoolValue require_ssl = 3;
  149. // The list of external networks that are allowed to connect to the instance
  150. // using the IP. See
  151. // https://en.wikipedia.org/wiki/CIDR_notation#CIDR_notation, also known as
  152. // 'slash' notation (e.g. `192.168.100.0/24`).
  153. repeated SqlAclEntry authorized_networks = 4;
  154. }
  155. // Settings for creating a Cloud SQL database instance.
  156. message CloudSqlSettings {
  157. // Specifies when the instance should be activated.
  158. enum SqlActivationPolicy {
  159. // unspecified policy.
  160. SQL_ACTIVATION_POLICY_UNSPECIFIED = 0;
  161. // The instance is always up and running.
  162. ALWAYS = 1;
  163. // The instance should never spin up.
  164. NEVER = 2;
  165. }
  166. // The storage options for Cloud SQL databases.
  167. enum SqlDataDiskType {
  168. // Unspecified.
  169. SQL_DATA_DISK_TYPE_UNSPECIFIED = 0;
  170. // SSD disk.
  171. PD_SSD = 1;
  172. // HDD disk.
  173. PD_HDD = 2;
  174. }
  175. // The database engine type and version.
  176. enum SqlDatabaseVersion {
  177. // Unspecified version.
  178. SQL_DATABASE_VERSION_UNSPECIFIED = 0;
  179. // MySQL 5.6.
  180. MYSQL_5_6 = 1;
  181. // MySQL 5.7.
  182. MYSQL_5_7 = 2;
  183. // PostgreSQL 9.6.
  184. POSTGRES_9_6 = 3;
  185. // PostgreSQL 11.
  186. POSTGRES_11 = 4;
  187. // PostgreSQL 10.
  188. POSTGRES_10 = 5;
  189. // MySQL 8.0.
  190. MYSQL_8_0 = 6;
  191. // PostgreSQL 12.
  192. POSTGRES_12 = 7;
  193. // PostgreSQL 13.
  194. POSTGRES_13 = 8;
  195. }
  196. // The database engine type and version.
  197. SqlDatabaseVersion database_version = 1;
  198. // The resource labels for a Cloud SQL instance to use to annotate any related
  199. // underlying resources such as Compute Engine VMs.
  200. // An object containing a list of "key": "value" pairs.
  201. //
  202. // Example: `{ "name": "wrench", "mass": "18kg", "count": "3" }`.
  203. map<string, string> user_labels = 2;
  204. // The tier (or machine type) for this instance, for example:
  205. // `db-n1-standard-1` (MySQL instances) or
  206. // `db-custom-1-3840` (PostgreSQL instances).
  207. // For more information, see
  208. // [Cloud SQL Instance
  209. // Settings](https://cloud.google.com/sql/docs/mysql/instance-settings).
  210. string tier = 3;
  211. // The maximum size to which storage capacity can be automatically increased.
  212. // The default value is 0, which specifies that there is no limit.
  213. google.protobuf.Int64Value storage_auto_resize_limit = 4;
  214. // The activation policy specifies when the instance is activated; it is
  215. // applicable only when the instance state is 'RUNNABLE'. Valid values:
  216. //
  217. // 'ALWAYS': The instance is on, and remains so even in
  218. // the absence of connection requests.
  219. //
  220. // `NEVER`: The instance is off; it is not activated, even if a
  221. // connection request arrives.
  222. SqlActivationPolicy activation_policy = 5;
  223. // The settings for IP Management. This allows to enable or disable the
  224. // instance IP and manage which external networks can connect to the instance.
  225. // The IPv4 address cannot be disabled.
  226. SqlIpConfig ip_config = 6;
  227. // [default: ON] If you enable this setting, Cloud SQL checks your available
  228. // storage every 30 seconds. If the available storage falls below a threshold
  229. // size, Cloud SQL automatically adds additional storage capacity. If the
  230. // available storage repeatedly falls below the threshold size, Cloud SQL
  231. // continues to add storage until it reaches the maximum of 30 TB.
  232. google.protobuf.BoolValue auto_storage_increase = 7;
  233. // The database flags passed to the Cloud SQL instance at startup.
  234. // An object containing a list of "key": value pairs.
  235. // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
  236. map<string, string> database_flags = 8;
  237. // The type of storage: `PD_SSD` (default) or `PD_HDD`.
  238. SqlDataDiskType data_disk_type = 9;
  239. // The storage capacity available to the database, in GB.
  240. // The minimum (and default) size is 10GB.
  241. google.protobuf.Int64Value data_disk_size_gb = 10;
  242. // The Google Cloud Platform zone where your Cloud SQL datdabse instance is
  243. // located.
  244. string zone = 11;
  245. // The Database Migration Service source connection profile ID,
  246. // in the format:
  247. // `projects/my_project_name/locations/us-central1/connectionProfiles/connection_profile_ID`
  248. string source_id = 12;
  249. // Input only. Initial root password.
  250. string root_password = 13 [(google.api.field_behavior) = INPUT_ONLY];
  251. // Output only. Indicates If this connection profile root password is stored.
  252. bool root_password_set = 14 [(google.api.field_behavior) = OUTPUT_ONLY];
  253. // The Cloud SQL default instance level collation.
  254. string collation = 15;
  255. }
  256. // The source database will allow incoming connections from the destination
  257. // database's public IP. You can retrieve the Cloud SQL instance's public IP
  258. // from the Cloud SQL console or using Cloud SQL APIs. No additional
  259. // configuration is required.
  260. message StaticIpConnectivity {
  261. }
  262. // The details needed to configure a reverse SSH tunnel between the source and
  263. // destination databases. These details will be used when calling the
  264. // generateSshScript method (see
  265. // https://cloud.google.com/database-migration/docs/reference/rest/v1/projects.locations.migrationJobs/generateSshScript)
  266. // to produce the script that will help set up the reverse SSH tunnel, and to
  267. // set up the VPC peering between the Cloud SQL private network and the VPC.
  268. message ReverseSshConnectivity {
  269. // Required. The IP of the virtual machine (Compute Engine) used as the bastion server
  270. // for the SSH tunnel.
  271. string vm_ip = 1 [(google.api.field_behavior) = REQUIRED];
  272. // Required. The forwarding port of the virtual machine (Compute Engine) used as the
  273. // bastion server for the SSH tunnel.
  274. int32 vm_port = 2 [(google.api.field_behavior) = REQUIRED];
  275. // The name of the virtual machine (Compute Engine) used as the bastion server
  276. // for the SSH tunnel.
  277. string vm = 3;
  278. // The name of the VPC to peer with the Cloud SQL private network.
  279. string vpc = 4;
  280. }
  281. // The details of the VPC where the source database is located in Google Cloud.
  282. // We will use this information to set up the VPC peering connection between
  283. // Cloud SQL and this VPC.
  284. message VpcPeeringConnectivity {
  285. // The name of the VPC network to peer with the Cloud SQL private network.
  286. string vpc = 1;
  287. }
  288. // A message defining the database engine and provider.
  289. message DatabaseType {
  290. // The database provider.
  291. DatabaseProvider provider = 1;
  292. // The database engine.
  293. DatabaseEngine engine = 2;
  294. }
  295. // Represents a Database Migration Service migration job object.
  296. message MigrationJob {
  297. option (google.api.resource) = {
  298. type: "datamigration.googleapis.com/MigrationJob"
  299. pattern: "projects/{project}/locations/{location}/migrationJobs/{migration_job}"
  300. };
  301. // The current migration job states.
  302. enum State {
  303. // The state of the migration job is unknown.
  304. STATE_UNSPECIFIED = 0;
  305. // The migration job is down for maintenance.
  306. MAINTENANCE = 1;
  307. // The migration job is in draft mode and no resources are created.
  308. DRAFT = 2;
  309. // The migration job is being created.
  310. CREATING = 3;
  311. // The migration job is created, not started and is fully editable.
  312. NOT_STARTED = 4;
  313. // The migration job is running.
  314. RUNNING = 5;
  315. // The migration job failed.
  316. FAILED = 6;
  317. // The migration job has been completed.
  318. COMPLETED = 7;
  319. // The migration job is being deleted.
  320. DELETING = 8;
  321. // The migration job is being stopped.
  322. STOPPING = 9;
  323. // The migration job is currently stopped.
  324. STOPPED = 10;
  325. // The migration job has been deleted.
  326. DELETED = 11;
  327. // The migration job is being updated.
  328. UPDATING = 12;
  329. // The migration job is starting.
  330. STARTING = 13;
  331. // The migration job is restarting.
  332. RESTARTING = 14;
  333. // The migration job is resuming.
  334. RESUMING = 15;
  335. }
  336. // The current migration job phase.
  337. enum Phase {
  338. // The phase of the migration job is unknown.
  339. PHASE_UNSPECIFIED = 0;
  340. // The migration job is in the full dump phase.
  341. FULL_DUMP = 1;
  342. // The migration job is CDC phase.
  343. CDC = 2;
  344. // The migration job is running the promote phase.
  345. PROMOTE_IN_PROGRESS = 3;
  346. // Only RDS flow - waiting for source writes to stop
  347. WAITING_FOR_SOURCE_WRITES_TO_STOP = 4;
  348. // Only RDS flow - the sources writes stopped, waiting for dump to begin
  349. PREPARING_THE_DUMP = 5;
  350. }
  351. // The type of migration job (one-time or continuous).
  352. enum Type {
  353. // The type of the migration job is unknown.
  354. TYPE_UNSPECIFIED = 0;
  355. // The migration job is a one time migration.
  356. ONE_TIME = 1;
  357. // The migration job is a continuous migration.
  358. CONTINUOUS = 2;
  359. }
  360. // The name (URI) of this migration job resource, in the form of:
  361. // projects/{project}/locations/{location}/instances/{instance}.
  362. string name = 1;
  363. // Output only. The timestamp when the migration job resource was created.
  364. // A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds.
  365. // Example: "2014-10-02T15:01:23.045123456Z".
  366. google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  367. // Output only. The timestamp when the migration job resource was last updated.
  368. // A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds.
  369. // Example: "2014-10-02T15:01:23.045123456Z".
  370. google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
  371. // The resource labels for migration job to use to annotate any related
  372. // underlying resources such as Compute Engine VMs. An object containing a
  373. // list of "key": "value" pairs.
  374. //
  375. // Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`.
  376. map<string, string> labels = 4;
  377. // The migration job display name.
  378. string display_name = 5;
  379. // The current migration job state.
  380. State state = 6;
  381. // Output only. The current migration job phase.
  382. Phase phase = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
  383. // Required. The migration job type.
  384. Type type = 8 [(google.api.field_behavior) = REQUIRED];
  385. // The path to the dump file in Google Cloud Storage,
  386. // in the format: (gs://[BUCKET_NAME]/[OBJECT_NAME]).
  387. string dump_path = 9;
  388. // Required. The resource name (URI) of the source connection profile.
  389. string source = 10 [(google.api.field_behavior) = REQUIRED];
  390. // Required. The resource name (URI) of the destination connection profile.
  391. string destination = 11 [(google.api.field_behavior) = REQUIRED];
  392. // The connectivity method.
  393. oneof connectivity {
  394. // The details needed to communicate to the source over Reverse SSH
  395. // tunnel connectivity.
  396. ReverseSshConnectivity reverse_ssh_connectivity = 101;
  397. // The details of the VPC network that the source database is located in.
  398. VpcPeeringConnectivity vpc_peering_connectivity = 102;
  399. // static ip connectivity data (default, no additional details needed).
  400. StaticIpConnectivity static_ip_connectivity = 103;
  401. }
  402. // Output only. The duration of the migration job (in seconds). A duration in seconds
  403. // with up to nine fractional digits, terminated by 's'. Example: "3.5s".
  404. google.protobuf.Duration duration = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
  405. // Output only. The error details in case of state FAILED.
  406. google.rpc.Status error = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
  407. // The database engine type and provider of the source.
  408. DatabaseType source_database = 14;
  409. // The database engine type and provider of the destination.
  410. DatabaseType destination_database = 15;
  411. // Output only. If the migration job is completed, the time when it was completed.
  412. google.protobuf.Timestamp end_time = 16 [(google.api.field_behavior) = OUTPUT_ONLY];
  413. }
  414. // A connection profile definition.
  415. message ConnectionProfile {
  416. option (google.api.resource) = {
  417. type: "datamigration.googleapis.com/ConnectionProfile"
  418. pattern: "projects/{project}/locations/{location}/connectionProfiles/{connection_profile}"
  419. };
  420. // The current connection profile state (e.g. DRAFT, READY, or FAILED).
  421. enum State {
  422. // The state of the connection profile is unknown.
  423. STATE_UNSPECIFIED = 0;
  424. // The connection profile is in draft mode and fully editable.
  425. DRAFT = 1;
  426. // The connection profile is being created.
  427. CREATING = 2;
  428. // The connection profile is ready.
  429. READY = 3;
  430. // The connection profile is being updated.
  431. UPDATING = 4;
  432. // The connection profile is being deleted.
  433. DELETING = 5;
  434. // The connection profile has been deleted.
  435. DELETED = 6;
  436. // The last action on the connection profile failed.
  437. FAILED = 7;
  438. }
  439. // The name of this connection profile resource in the form of
  440. // projects/{project}/locations/{location}/instances/{instance}.
  441. string name = 1;
  442. // Output only. The timestamp when the resource was created.
  443. // A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds.
  444. // Example: "2014-10-02T15:01:23.045123456Z".
  445. google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  446. // Output only. The timestamp when the resource was last updated.
  447. // A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds.
  448. // Example: "2014-10-02T15:01:23.045123456Z".
  449. google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
  450. // The resource labels for connection profile to use to annotate any related
  451. // underlying resources such as Compute Engine VMs. An object containing a
  452. // list of "key": "value" pairs.
  453. //
  454. // Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`.
  455. map<string, string> labels = 4;
  456. // The current connection profile state (e.g. DRAFT, READY, or FAILED).
  457. State state = 5;
  458. // The connection profile display name.
  459. string display_name = 6;
  460. // The connection profile definition.
  461. oneof connection_profile {
  462. // A MySQL database connection profile.
  463. MySqlConnectionProfile mysql = 100;
  464. // A PostgreSQL database connection profile.
  465. PostgreSqlConnectionProfile postgresql = 101;
  466. // A CloudSQL database connection profile.
  467. CloudSqlConnectionProfile cloudsql = 102;
  468. }
  469. // Output only. The error details in case of state FAILED.
  470. google.rpc.Status error = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
  471. // The database provider.
  472. DatabaseProvider provider = 8;
  473. }
  474. // Error message of a verification Migration job.
  475. message MigrationJobVerificationError {
  476. // A general error code describing the type of error that occurred.
  477. enum ErrorCode {
  478. // An unknown error occurred
  479. ERROR_CODE_UNSPECIFIED = 0;
  480. // We failed to connect to one of the connection profile.
  481. CONNECTION_FAILURE = 1;
  482. // We failed to authenticate to one of the connection profile.
  483. AUTHENTICATION_FAILURE = 2;
  484. // One of the involved connection profiles has an invalid configuration.
  485. INVALID_CONNECTION_PROFILE_CONFIG = 3;
  486. // The versions of the source and the destination are incompatible.
  487. VERSION_INCOMPATIBILITY = 4;
  488. // The types of the source and the destination are incompatible.
  489. CONNECTION_PROFILE_TYPES_INCOMPATIBILITY = 5;
  490. // No pglogical extension installed on databases, applicable for postgres.
  491. NO_PGLOGICAL_INSTALLED = 7;
  492. // pglogical node already exists on databases, applicable for postgres.
  493. PGLOGICAL_NODE_ALREADY_EXISTS = 8;
  494. // The value of parameter wal_level is not set to logical.
  495. INVALID_WAL_LEVEL = 9;
  496. // The value of parameter shared_preload_libraries does not include
  497. // pglogical.
  498. INVALID_SHARED_PRELOAD_LIBRARY = 10;
  499. // The value of parameter max_replication_slots is not sufficient.
  500. INSUFFICIENT_MAX_REPLICATION_SLOTS = 11;
  501. // The value of parameter max_wal_senders is not sufficient.
  502. INSUFFICIENT_MAX_WAL_SENDERS = 12;
  503. // The value of parameter max_worker_processes is not sufficient.
  504. INSUFFICIENT_MAX_WORKER_PROCESSES = 13;
  505. // Extensions installed are either not supported or having unsupported
  506. // versions.
  507. UNSUPPORTED_EXTENSIONS = 14;
  508. // Unsupported migration type.
  509. UNSUPPORTED_MIGRATION_TYPE = 15;
  510. // Invalid RDS logical replication.
  511. INVALID_RDS_LOGICAL_REPLICATION = 16;
  512. // The gtid_mode is not supported, applicable for MySQL.
  513. UNSUPPORTED_GTID_MODE = 17;
  514. // The table definition is not support due to missing primary key or replica
  515. // identity.
  516. UNSUPPORTED_TABLE_DEFINITION = 18;
  517. // The definer is not supported.
  518. UNSUPPORTED_DEFINER = 19;
  519. // Migration is already running at the time of restart request.
  520. CANT_RESTART_RUNNING_MIGRATION = 21;
  521. }
  522. // Output only. An instance of ErrorCode specifying the error that occurred.
  523. ErrorCode error_code = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  524. // Output only. A formatted message with further details about the error and a CTA.
  525. string error_message = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  526. // Output only. A specific detailed error message, if supplied by the engine.
  527. string error_detail_message = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
  528. }
  529. // The database engine types.
  530. enum DatabaseEngine {
  531. // The source database engine of the migration job is unknown.
  532. DATABASE_ENGINE_UNSPECIFIED = 0;
  533. // The source engine is MySQL.
  534. MYSQL = 1;
  535. // The source engine is PostgreSQL.
  536. POSTGRESQL = 2;
  537. }
  538. // The database providers.
  539. enum DatabaseProvider {
  540. // The database provider is unknown.
  541. DATABASE_PROVIDER_UNSPECIFIED = 0;
  542. // CloudSQL runs the database.
  543. CLOUDSQL = 1;
  544. // RDS runs the database.
  545. RDS = 2;
  546. }