clouddms_resources.proto 24 KB

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