diff options
Diffstat (limited to 'third_party/googleapis/google/cloud/clouddms/v1/clouddms.proto')
| -rw-r--r-- | third_party/googleapis/google/cloud/clouddms/v1/clouddms.proto | 625 |
1 files changed, 625 insertions, 0 deletions
diff --git a/third_party/googleapis/google/cloud/clouddms/v1/clouddms.proto b/third_party/googleapis/google/cloud/clouddms/v1/clouddms.proto new file mode 100644 index 0000000..a8e3e74 --- /dev/null +++ b/third_party/googleapis/google/cloud/clouddms/v1/clouddms.proto @@ -0,0 +1,625 @@ +// 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]; +} |
