123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625 |
- // Copyright 2021 Google LLC
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- syntax = "proto3";
- package google.cloud.clouddms.v1;
- import "google/api/annotations.proto";
- import "google/api/client.proto";
- import "google/api/field_behavior.proto";
- import "google/api/resource.proto";
- import "google/cloud/clouddms/v1/clouddms_resources.proto";
- import "google/longrunning/operations.proto";
- import "google/protobuf/field_mask.proto";
- import "google/protobuf/timestamp.proto";
- option csharp_namespace = "Google.Cloud.CloudDms.V1";
- option go_package = "google.golang.org/genproto/googleapis/cloud/clouddms/v1;clouddms";
- option java_multiple_files = true;
- option java_outer_classname = "ClouddmsProto";
- option java_package = "com.google.cloud.clouddms.v1";
- option php_namespace = "Google\\Cloud\\CloudDms\\V1";
- option ruby_package = "Google::Cloud::CloudDMS::V1";
- // Database Migration service
- service DataMigrationService {
- option (google.api.default_host) = "datamigration.googleapis.com";
- option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
- // Lists migration jobs in a given project and location.
- rpc ListMigrationJobs(ListMigrationJobsRequest) returns (ListMigrationJobsResponse) {
- option (google.api.http) = {
- get: "/v1/{parent=projects/*/locations/*}/migrationJobs"
- };
- option (google.api.method_signature) = "parent";
- }
- // Gets details of a single migration job.
- rpc GetMigrationJob(GetMigrationJobRequest) returns (MigrationJob) {
- option (google.api.http) = {
- get: "/v1/{name=projects/*/locations/*/migrationJobs/*}"
- };
- option (google.api.method_signature) = "name";
- }
- // Creates a new migration job in a given project and location.
- rpc CreateMigrationJob(CreateMigrationJobRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v1/{parent=projects/*/locations/*}/migrationJobs"
- body: "migration_job"
- };
- option (google.api.method_signature) = "parent,migration_job,migration_job_id";
- option (google.longrunning.operation_info) = {
- response_type: "MigrationJob"
- metadata_type: "OperationMetadata"
- };
- }
- // Updates the parameters of a single migration job.
- rpc UpdateMigrationJob(UpdateMigrationJobRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- patch: "/v1/{migration_job.name=projects/*/locations/*/migrationJobs/*}"
- body: "migration_job"
- };
- option (google.api.method_signature) = "migration_job,update_mask";
- option (google.longrunning.operation_info) = {
- response_type: "MigrationJob"
- metadata_type: "OperationMetadata"
- };
- }
- // Deletes a single migration job.
- rpc DeleteMigrationJob(DeleteMigrationJobRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- delete: "/v1/{name=projects/*/locations/*/migrationJobs/*}"
- };
- option (google.api.method_signature) = "name";
- option (google.longrunning.operation_info) = {
- response_type: "google.protobuf.Empty"
- metadata_type: "OperationMetadata"
- };
- }
- // Start an already created migration job.
- rpc StartMigrationJob(StartMigrationJobRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v1/{name=projects/*/locations/*/migrationJobs/*}:start"
- body: "*"
- };
- option (google.longrunning.operation_info) = {
- response_type: "MigrationJob"
- metadata_type: "OperationMetadata"
- };
- }
- // Stops a running migration job.
- rpc StopMigrationJob(StopMigrationJobRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v1/{name=projects/*/locations/*/migrationJobs/*}:stop"
- body: "*"
- };
- option (google.longrunning.operation_info) = {
- response_type: "MigrationJob"
- metadata_type: "OperationMetadata"
- };
- }
- // Resume a migration job that is currently stopped and is resumable (was
- // stopped during CDC phase).
- rpc ResumeMigrationJob(ResumeMigrationJobRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v1/{name=projects/*/locations/*/migrationJobs/*}:resume"
- body: "*"
- };
- option (google.longrunning.operation_info) = {
- response_type: "MigrationJob"
- metadata_type: "OperationMetadata"
- };
- }
- // Promote a migration job, stopping replication to the destination and
- // promoting the destination to be a standalone database.
- rpc PromoteMigrationJob(PromoteMigrationJobRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v1/{name=projects/*/locations/*/migrationJobs/*}:promote"
- body: "*"
- };
- option (google.longrunning.operation_info) = {
- response_type: "MigrationJob"
- metadata_type: "OperationMetadata"
- };
- }
- // Verify a migration job, making sure the destination can reach the source
- // and that all configuration and prerequisites are met.
- rpc VerifyMigrationJob(VerifyMigrationJobRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v1/{name=projects/*/locations/*/migrationJobs/*}:verify"
- body: "*"
- };
- option (google.longrunning.operation_info) = {
- response_type: "MigrationJob"
- metadata_type: "OperationMetadata"
- };
- }
- // Restart a stopped or failed migration job, resetting the destination
- // instance to its original state and starting the migration process from
- // scratch.
- rpc RestartMigrationJob(RestartMigrationJobRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v1/{name=projects/*/locations/*/migrationJobs/*}:restart"
- body: "*"
- };
- option (google.longrunning.operation_info) = {
- response_type: "MigrationJob"
- metadata_type: "OperationMetadata"
- };
- }
- // Generate a SSH configuration script to configure the reverse SSH
- // connectivity.
- rpc GenerateSshScript(GenerateSshScriptRequest) returns (SshScript) {
- option (google.api.http) = {
- post: "/v1/{migration_job=projects/*/locations/*/migrationJobs/*}:generateSshScript"
- body: "*"
- };
- }
- // Retrieve a list of all connection profiles in a given project and location.
- rpc ListConnectionProfiles(ListConnectionProfilesRequest) returns (ListConnectionProfilesResponse) {
- option (google.api.http) = {
- get: "/v1/{parent=projects/*/locations/*}/connectionProfiles"
- };
- option (google.api.method_signature) = "parent";
- }
- // Gets details of a single connection profile.
- rpc GetConnectionProfile(GetConnectionProfileRequest) returns (ConnectionProfile) {
- option (google.api.http) = {
- get: "/v1/{name=projects/*/locations/*/connectionProfiles/*}"
- };
- option (google.api.method_signature) = "name";
- }
- // Creates a new connection profile in a given project and location.
- rpc CreateConnectionProfile(CreateConnectionProfileRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v1/{parent=projects/*/locations/*}/connectionProfiles"
- body: "connection_profile"
- };
- option (google.api.method_signature) = "parent,connection_profile,connection_profile_id";
- option (google.longrunning.operation_info) = {
- response_type: "ConnectionProfile"
- metadata_type: "OperationMetadata"
- };
- }
- // Update the configuration of a single connection profile.
- rpc UpdateConnectionProfile(UpdateConnectionProfileRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- patch: "/v1/{connection_profile.name=projects/*/locations/*/connectionProfiles/*}"
- body: "connection_profile"
- };
- option (google.api.method_signature) = "connection_profile,update_mask";
- option (google.longrunning.operation_info) = {
- response_type: "ConnectionProfile"
- metadata_type: "OperationMetadata"
- };
- }
- // Deletes a single Database Migration Service connection profile.
- // A connection profile can only be deleted if it is not in use by any
- // active migration jobs.
- rpc DeleteConnectionProfile(DeleteConnectionProfileRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- delete: "/v1/{name=projects/*/locations/*/connectionProfiles/*}"
- };
- option (google.api.method_signature) = "name";
- option (google.longrunning.operation_info) = {
- response_type: "google.protobuf.Empty"
- metadata_type: "OperationMetadata"
- };
- }
- }
- // Retrieve a list of all migration jobs in a given project and location.
- message ListMigrationJobsRequest {
- // Required. The parent, which owns this collection of migrationJobs.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "datamigration.googleapis.com/MigrationJob"
- }
- ];
- // The maximum number of migration jobs to return. The service may return
- // fewer than this value. If unspecified, at most 50 migration jobs will be
- // returned. The maximum value is 1000; values above 1000 will be coerced to
- // 1000.
- int32 page_size = 2;
- // The nextPageToken value received in the previous call to
- // migrationJobs.list, used in the subsequent request to retrieve the next
- // page of results. On first call this should be left blank. When paginating,
- // all other parameters provided to migrationJobs.list must match the call
- // that provided the page token.
- string page_token = 3;
- // A filter expression that filters migration jobs listed in the response.
- // The expression must specify the field name, a comparison operator, and the
- // value that you want to use for filtering. The value must be a string,
- // a number, or a boolean. The comparison operator must be
- // either =, !=, >, or <. For example, list migration jobs created this year
- // by specifying **createTime %gt; 2020-01-01T00:00:00.000000000Z.**
- // You can also filter nested fields. For example, you could specify
- // **reverseSshConnectivity.vmIp = "1.2.3.4"** to select all migration
- // jobs connecting through the specific SSH tunnel bastion.
- string filter = 4;
- // Sort the results based on the migration job name.
- // Valid values are: "name", "name asc", and "name desc".
- string order_by = 5;
- }
- // Response message for 'ListMigrationJobs' request.
- message ListMigrationJobsResponse {
- // The list of migration jobs objects.
- repeated MigrationJob migration_jobs = 1;
- // A token, which can be sent as `page_token` to retrieve the next page.
- // If this field is omitted, there are no subsequent pages.
- string next_page_token = 2;
- // Locations that could not be reached.
- repeated string unreachable = 3;
- }
- // Request message for 'GetMigrationJob' request.
- message GetMigrationJobRequest {
- // Required. Name of the migration job resource to get.
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datamigration.googleapis.com/MigrationJob"
- }
- ];
- }
- // Request message to create a new Database Migration Service migration job
- // in the specified project and region.
- message CreateMigrationJobRequest {
- // Required. The parent, which owns this collection of migration jobs.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "datamigration.googleapis.com/MigrationJob"
- }
- ];
- // Required. The ID of the instance to create.
- string migration_job_id = 2 [(google.api.field_behavior) = REQUIRED];
- // Required. Represents a [migration
- // job](https://cloud.google.com/database-migration/docs/reference/rest/v1/projects.locations.migrationJobs)
- // object.
- MigrationJob migration_job = 3 [(google.api.field_behavior) = REQUIRED];
- // A unique id used to identify the request. If the server receives two
- // requests with the same id, then the second request will be ignored.
- //
- // It is recommended to always set this value to a UUID.
- //
- // The id must contain only letters (a-z, A-Z), numbers (0-9), underscores
- // (_), and hyphens (-). The maximum length is 40 characters.
- string request_id = 4;
- }
- // Request message for 'UpdateMigrationJob' request.
- message UpdateMigrationJobRequest {
- // Required. Field mask is used to specify the fields to be overwritten in the
- // migration job resource by the update.
- google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. The migration job parameters to update.
- MigrationJob migration_job = 2 [(google.api.field_behavior) = REQUIRED];
- // A unique id used to identify the request. If the server receives two
- // requests with the same id, then the second request will be ignored.
- //
- // It is recommended to always set this value to a UUID.
- //
- // The id must contain only letters (a-z, A-Z), numbers (0-9), underscores
- // (_), and hyphens (-). The maximum length is 40 characters.
- string request_id = 3;
- }
- // Request message for 'DeleteMigrationJob' request.
- message DeleteMigrationJobRequest {
- // Required. Name of the migration job resource to delete.
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datamigration.googleapis.com/MigrationJob"
- }
- ];
- // A unique id used to identify the request. If the server receives two
- // requests with the same id, then the second request will be ignored.
- //
- // It is recommended to always set this value to a UUID.
- //
- // The id must contain only letters (a-z, A-Z), numbers (0-9), underscores
- // (_), and hyphens (-). The maximum length is 40 characters.
- string request_id = 2;
- // The destination CloudSQL connection profile is always deleted with the
- // migration job. In case of force delete, the destination CloudSQL replica
- // database is also deleted.
- bool force = 3;
- }
- // Request message for 'StartMigrationJob' request.
- message StartMigrationJobRequest {
- // Name of the migration job resource to start.
- string name = 1 [(google.api.resource_reference) = {
- type: "datamigration.googleapis.com/MigrationJob"
- }];
- }
- // Request message for 'StopMigrationJob' request.
- message StopMigrationJobRequest {
- // Name of the migration job resource to stop.
- string name = 1 [(google.api.resource_reference) = {
- type: "datamigration.googleapis.com/MigrationJob"
- }];
- }
- // Request message for 'ResumeMigrationJob' request.
- message ResumeMigrationJobRequest {
- // Name of the migration job resource to resume.
- string name = 1 [(google.api.resource_reference) = {
- type: "datamigration.googleapis.com/MigrationJob"
- }];
- }
- // Request message for 'PromoteMigrationJob' request.
- message PromoteMigrationJobRequest {
- // Name of the migration job resource to promote.
- string name = 1 [(google.api.resource_reference) = {
- type: "datamigration.googleapis.com/MigrationJob"
- }];
- }
- // Request message for 'VerifyMigrationJob' request.
- message VerifyMigrationJobRequest {
- // Name of the migration job resource to verify.
- string name = 1 [(google.api.resource_reference) = {
- type: "datamigration.googleapis.com/MigrationJob"
- }];
- }
- // Request message for 'RestartMigrationJob' request.
- message RestartMigrationJobRequest {
- // Name of the migration job resource to restart.
- string name = 1 [(google.api.resource_reference) = {
- type: "datamigration.googleapis.com/MigrationJob"
- }];
- }
- // Request message for 'GenerateSshScript' request.
- message GenerateSshScriptRequest {
- // Name of the migration job resource to generate the SSH script.
- string migration_job = 1 [(google.api.resource_reference) = {
- type: "datamigration.googleapis.com/MigrationJob"
- }];
- // Required. Bastion VM Instance name to use or to create.
- string vm = 2 [(google.api.field_behavior) = REQUIRED];
- // The VM configuration
- oneof vm_config {
- // The VM creation configuration
- VmCreationConfig vm_creation_config = 100;
- // The VM selection configuration
- VmSelectionConfig vm_selection_config = 101;
- }
- // The port that will be open on the bastion host
- int32 vm_port = 3;
- }
- // VM creation configuration message
- message VmCreationConfig {
- // Required. VM instance machine type to create.
- string vm_machine_type = 1 [(google.api.field_behavior) = REQUIRED];
- // The Google Cloud Platform zone to create the VM in.
- string vm_zone = 2;
- // The subnet name the vm needs to be created in.
- string subnet = 3;
- }
- // VM selection configuration message
- message VmSelectionConfig {
- // Required. The Google Cloud Platform zone the VM is located.
- string vm_zone = 1 [(google.api.field_behavior) = REQUIRED];
- }
- // Response message for 'GenerateSshScript' request.
- message SshScript {
- // The ssh configuration script.
- string script = 1;
- }
- // Request message for 'ListConnectionProfiles' request.
- message ListConnectionProfilesRequest {
- // Required. The parent, which owns this collection of connection profiles.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "datamigration.googleapis.com/ConnectionProfile"
- }
- ];
- // The maximum number of connection profiles to return. The service may return
- // fewer than this value. If unspecified, at most 50 connection profiles will
- // be returned. The maximum value is 1000; values above 1000 will be coerced
- // to 1000.
- int32 page_size = 2;
- // A page token, received from a previous `ListConnectionProfiles` call.
- // Provide this to retrieve the subsequent page.
- //
- // When paginating, all other parameters provided to `ListConnectionProfiles`
- // must match the call that provided the page token.
- string page_token = 3;
- // A filter expression that filters connection profiles listed in the
- // response. The expression must specify the field name, a comparison
- // operator, and the value that you want to use for filtering. The value must
- // be a string, a number, or a boolean. The comparison operator must be either
- // =, !=, >, or <. For example, list connection profiles created this year by
- // specifying **createTime %gt; 2020-01-01T00:00:00.000000000Z**. You can
- // also filter nested fields. For example, you could specify **mySql.username
- // = %lt;my_username%gt;** to list all connection profiles configured to
- // connect with a specific username.
- string filter = 4;
- // the order by fields for the result.
- string order_by = 5;
- }
- // Response message for 'ListConnectionProfiles' request.
- message ListConnectionProfilesResponse {
- // The response list of connection profiles.
- repeated ConnectionProfile connection_profiles = 1;
- // A token, which can be sent as `page_token` to retrieve the next page.
- // If this field is omitted, there are no subsequent pages.
- string next_page_token = 2;
- // Locations that could not be reached.
- repeated string unreachable = 3;
- }
- // Request message for 'GetConnectionProfile' request.
- message GetConnectionProfileRequest {
- // Required. Name of the connection profile resource to get.
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datamigration.googleapis.com/ConnectionProfile"
- }
- ];
- }
- // Request message for 'CreateConnectionProfile' request.
- message CreateConnectionProfileRequest {
- // Required. The parent, which owns this collection of connection profiles.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datamigration.googleapis.com/ConnectionProfile"
- }
- ];
- // Required. The connection profile identifier.
- string connection_profile_id = 2 [(google.api.field_behavior) = REQUIRED];
- // Required. The create request body including the connection profile data
- ConnectionProfile connection_profile = 3 [(google.api.field_behavior) = REQUIRED];
- // A unique id used to identify the request. If the server receives two
- // requests with the same id, then the second request will be ignored.
- //
- // It is recommended to always set this value to a UUID.
- //
- // The id must contain only letters (a-z, A-Z), numbers (0-9), underscores
- // (_), and hyphens (-). The maximum length is 40 characters.
- string request_id = 4;
- }
- // Request message for 'UpdateConnectionProfile' request.
- message UpdateConnectionProfileRequest {
- // Required. Field mask is used to specify the fields to be overwritten in the
- // connection profile resource by the update.
- google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. The connection profile parameters to update.
- ConnectionProfile connection_profile = 2 [(google.api.field_behavior) = REQUIRED];
- // A unique id used to identify the request. If the server receives two
- // requests with the same id, then the second request will be ignored.
- //
- // It is recommended to always set this value to a UUID.
- //
- // The id must contain only letters (a-z, A-Z), numbers (0-9), underscores
- // (_), and hyphens (-). The maximum length is 40 characters.
- string request_id = 3;
- }
- // Request message for 'DeleteConnectionProfile' request.
- message DeleteConnectionProfileRequest {
- // Required. Name of the connection profile resource to delete.
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "datamigration.googleapis.com/ConnectionProfile"
- }
- ];
- // A unique id used to identify the request. If the server receives two
- // requests with the same id, then the second request will be ignored.
- //
- // It is recommended to always set this value to a UUID.
- //
- // The id must contain only letters (a-z, A-Z), numbers (0-9), underscores
- // (_), and hyphens (-). The maximum length is 40 characters.
- string request_id = 2;
- // In case of force delete, the CloudSQL replica database is also deleted
- // (only for CloudSQL connection profile).
- bool force = 3;
- }
- // Represents the metadata of the long-running operation.
- message OperationMetadata {
- // Output only. The time the operation was created.
- google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The time the operation finished running.
- google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. Server-defined resource path for the target of the operation.
- string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. Name of the verb executed by the operation.
- string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. Human-readable status of the operation, if any.
- string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. Identifies whether the user has requested cancellation
- // of the operation. Operations that have successfully been cancelled
- // have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
- // corresponding to `Code.CANCELLED`.
- bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. API version used to start the operation.
- string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
|