# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: google/cloud/vmmigration/v1/vmmigration.proto for package 'Google.Cloud.VMMigration.V1'
# Original file comments:
# 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.
#

require 'grpc'
require 'google/cloud/vmmigration/v1/vmmigration_pb'

module Google
  module Cloud
    module VMMigration
      module V1
        module VmMigration
          # VM Migration Service
          class Service

            include ::GRPC::GenericService

            self.marshal_class_method = :encode
            self.unmarshal_class_method = :decode
            self.service_name = 'google.cloud.vmmigration.v1.VmMigration'

            # Lists Sources in a given project and location.
            rpc :ListSources, ::Google::Cloud::VMMigration::V1::ListSourcesRequest, ::Google::Cloud::VMMigration::V1::ListSourcesResponse
            # Gets details of a single Source.
            rpc :GetSource, ::Google::Cloud::VMMigration::V1::GetSourceRequest, ::Google::Cloud::VMMigration::V1::Source
            # Creates a new Source in a given project and location.
            rpc :CreateSource, ::Google::Cloud::VMMigration::V1::CreateSourceRequest, ::Google::Longrunning::Operation
            # Updates the parameters of a single Source.
            rpc :UpdateSource, ::Google::Cloud::VMMigration::V1::UpdateSourceRequest, ::Google::Longrunning::Operation
            # Deletes a single Source.
            rpc :DeleteSource, ::Google::Cloud::VMMigration::V1::DeleteSourceRequest, ::Google::Longrunning::Operation
            # List remote source's inventory of VMs.
            # The remote source is the onprem vCenter (remote in the sense it's not in
            # Compute Engine). The inventory describes the list of existing VMs in that
            # source. Note that this operation lists the VMs on the remote source, as
            # opposed to listing the MigratingVms resources in the vmmigration service.
            rpc :FetchInventory, ::Google::Cloud::VMMigration::V1::FetchInventoryRequest, ::Google::Cloud::VMMigration::V1::FetchInventoryResponse
            # List remote source's inventory of storage resources.
            # The remote source is another cloud vendor (e.g. AWS, Azure).
            # The inventory describes the list of existing storage resources in that
            # source. Note that this operation lists the resources on the remote source,
            # as opposed to listing the MigratingVms resources in the vmmigration
            # service.
            rpc :FetchStorageInventory, ::Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest, ::Google::Cloud::VMMigration::V1::FetchStorageInventoryResponse
            # Lists Utilization Reports of the given Source.
            rpc :ListUtilizationReports, ::Google::Cloud::VMMigration::V1::ListUtilizationReportsRequest, ::Google::Cloud::VMMigration::V1::ListUtilizationReportsResponse
            # Gets a single Utilization Report.
            rpc :GetUtilizationReport, ::Google::Cloud::VMMigration::V1::GetUtilizationReportRequest, ::Google::Cloud::VMMigration::V1::UtilizationReport
            # Creates a new UtilizationReport.
            rpc :CreateUtilizationReport, ::Google::Cloud::VMMigration::V1::CreateUtilizationReportRequest, ::Google::Longrunning::Operation
            # Deletes a single Utilization Report.
            rpc :DeleteUtilizationReport, ::Google::Cloud::VMMigration::V1::DeleteUtilizationReportRequest, ::Google::Longrunning::Operation
            # Lists DatacenterConnectors in a given Source.
            rpc :ListDatacenterConnectors, ::Google::Cloud::VMMigration::V1::ListDatacenterConnectorsRequest, ::Google::Cloud::VMMigration::V1::ListDatacenterConnectorsResponse
            # Gets details of a single DatacenterConnector.
            rpc :GetDatacenterConnector, ::Google::Cloud::VMMigration::V1::GetDatacenterConnectorRequest, ::Google::Cloud::VMMigration::V1::DatacenterConnector
            # Creates a new DatacenterConnector in a given Source.
            rpc :CreateDatacenterConnector, ::Google::Cloud::VMMigration::V1::CreateDatacenterConnectorRequest, ::Google::Longrunning::Operation
            # Deletes a single DatacenterConnector.
            rpc :DeleteDatacenterConnector, ::Google::Cloud::VMMigration::V1::DeleteDatacenterConnectorRequest, ::Google::Longrunning::Operation
            # Upgrades the appliance relate to this DatacenterConnector to the in-place
            # updateable version.
            rpc :UpgradeAppliance, ::Google::Cloud::VMMigration::V1::UpgradeApplianceRequest, ::Google::Longrunning::Operation
            # Creates a new MigratingVm in a given Source.
            rpc :CreateMigratingVm, ::Google::Cloud::VMMigration::V1::CreateMigratingVmRequest, ::Google::Longrunning::Operation
            # Lists MigratingVms in a given Source.
            rpc :ListMigratingVms, ::Google::Cloud::VMMigration::V1::ListMigratingVmsRequest, ::Google::Cloud::VMMigration::V1::ListMigratingVmsResponse
            # Gets details of a single MigratingVm.
            rpc :GetMigratingVm, ::Google::Cloud::VMMigration::V1::GetMigratingVmRequest, ::Google::Cloud::VMMigration::V1::MigratingVm
            # Updates the parameters of a single MigratingVm.
            rpc :UpdateMigratingVm, ::Google::Cloud::VMMigration::V1::UpdateMigratingVmRequest, ::Google::Longrunning::Operation
            # Deletes a single MigratingVm.
            rpc :DeleteMigratingVm, ::Google::Cloud::VMMigration::V1::DeleteMigratingVmRequest, ::Google::Longrunning::Operation
            # Starts migration for a VM. Starts the process of uploading
            # data and creating snapshots, in replication cycles scheduled by the policy.
            rpc :StartMigration, ::Google::Cloud::VMMigration::V1::StartMigrationRequest, ::Google::Longrunning::Operation
            # Resumes a migration for a VM. When called on a paused migration, will start
            # the process of uploading data and creating snapshots; when called on a
            # completed cut-over migration, will update the migration to active state and
            # start the process of uploading data and creating snapshots.
            rpc :ResumeMigration, ::Google::Cloud::VMMigration::V1::ResumeMigrationRequest, ::Google::Longrunning::Operation
            # Pauses a migration for a VM. If cycle tasks are running they will be
            # cancelled, preserving source task data. Further replication cycles will not
            # be triggered while the VM is paused.
            rpc :PauseMigration, ::Google::Cloud::VMMigration::V1::PauseMigrationRequest, ::Google::Longrunning::Operation
            # Marks a migration as completed, deleting migration resources that are no
            # longer being used. Only applicable after cutover is done.
            rpc :FinalizeMigration, ::Google::Cloud::VMMigration::V1::FinalizeMigrationRequest, ::Google::Longrunning::Operation
            # Extend the migrating VM time to live.
            rpc :ExtendMigration, ::Google::Cloud::VMMigration::V1::ExtendMigrationRequest, ::Google::Longrunning::Operation
            # Initiates a Clone of a specific migrating VM.
            rpc :CreateCloneJob, ::Google::Cloud::VMMigration::V1::CreateCloneJobRequest, ::Google::Longrunning::Operation
            # Initiates the cancellation of a running clone job.
            rpc :CancelCloneJob, ::Google::Cloud::VMMigration::V1::CancelCloneJobRequest, ::Google::Longrunning::Operation
            # Lists the CloneJobs of a migrating VM. Only 25 most recent CloneJobs are
            # listed.
            rpc :ListCloneJobs, ::Google::Cloud::VMMigration::V1::ListCloneJobsRequest, ::Google::Cloud::VMMigration::V1::ListCloneJobsResponse
            # Gets details of a single CloneJob.
            rpc :GetCloneJob, ::Google::Cloud::VMMigration::V1::GetCloneJobRequest, ::Google::Cloud::VMMigration::V1::CloneJob
            # Initiates a Cutover of a specific migrating VM.
            # The returned LRO is completed when the cutover job resource is created
            # and the job is initiated.
            rpc :CreateCutoverJob, ::Google::Cloud::VMMigration::V1::CreateCutoverJobRequest, ::Google::Longrunning::Operation
            # Initiates the cancellation of a running cutover job.
            rpc :CancelCutoverJob, ::Google::Cloud::VMMigration::V1::CancelCutoverJobRequest, ::Google::Longrunning::Operation
            # Lists the CutoverJobs of a migrating VM. Only 25 most recent CutoverJobs
            # are listed.
            rpc :ListCutoverJobs, ::Google::Cloud::VMMigration::V1::ListCutoverJobsRequest, ::Google::Cloud::VMMigration::V1::ListCutoverJobsResponse
            # Gets details of a single CutoverJob.
            rpc :GetCutoverJob, ::Google::Cloud::VMMigration::V1::GetCutoverJobRequest, ::Google::Cloud::VMMigration::V1::CutoverJob
            # Lists Groups in a given project and location.
            rpc :ListGroups, ::Google::Cloud::VMMigration::V1::ListGroupsRequest, ::Google::Cloud::VMMigration::V1::ListGroupsResponse
            # Gets details of a single Group.
            rpc :GetGroup, ::Google::Cloud::VMMigration::V1::GetGroupRequest, ::Google::Cloud::VMMigration::V1::Group
            # Creates a new Group in a given project and location.
            rpc :CreateGroup, ::Google::Cloud::VMMigration::V1::CreateGroupRequest, ::Google::Longrunning::Operation
            # Updates the parameters of a single Group.
            rpc :UpdateGroup, ::Google::Cloud::VMMigration::V1::UpdateGroupRequest, ::Google::Longrunning::Operation
            # Deletes a single Group.
            rpc :DeleteGroup, ::Google::Cloud::VMMigration::V1::DeleteGroupRequest, ::Google::Longrunning::Operation
            # Adds a MigratingVm to a Group.
            rpc :AddGroupMigration, ::Google::Cloud::VMMigration::V1::AddGroupMigrationRequest, ::Google::Longrunning::Operation
            # Removes a MigratingVm from a Group.
            rpc :RemoveGroupMigration, ::Google::Cloud::VMMigration::V1::RemoveGroupMigrationRequest, ::Google::Longrunning::Operation
            # Lists TargetProjects in a given project.
            #
            # NOTE: TargetProject is a global resource; hence the only supported value
            # for location is `global`.
            rpc :ListTargetProjects, ::Google::Cloud::VMMigration::V1::ListTargetProjectsRequest, ::Google::Cloud::VMMigration::V1::ListTargetProjectsResponse
            # Gets details of a single TargetProject.
            #
            # NOTE: TargetProject is a global resource; hence the only supported value
            # for location is `global`.
            rpc :GetTargetProject, ::Google::Cloud::VMMigration::V1::GetTargetProjectRequest, ::Google::Cloud::VMMigration::V1::TargetProject
            # Creates a new TargetProject in a given project.
            #
            # NOTE: TargetProject is a global resource; hence the only supported value
            # for location is `global`.
            rpc :CreateTargetProject, ::Google::Cloud::VMMigration::V1::CreateTargetProjectRequest, ::Google::Longrunning::Operation
            # Updates the parameters of a single TargetProject.
            #
            # NOTE: TargetProject is a global resource; hence the only supported value
            # for location is `global`.
            rpc :UpdateTargetProject, ::Google::Cloud::VMMigration::V1::UpdateTargetProjectRequest, ::Google::Longrunning::Operation
            # Deletes a single TargetProject.
            #
            # NOTE: TargetProject is a global resource; hence the only supported value
            # for location is `global`.
            rpc :DeleteTargetProject, ::Google::Cloud::VMMigration::V1::DeleteTargetProjectRequest, ::Google::Longrunning::Operation
            # Lists ReplicationCycles in a given MigratingVM.
            rpc :ListReplicationCycles, ::Google::Cloud::VMMigration::V1::ListReplicationCyclesRequest, ::Google::Cloud::VMMigration::V1::ListReplicationCyclesResponse
            # Gets details of a single ReplicationCycle.
            rpc :GetReplicationCycle, ::Google::Cloud::VMMigration::V1::GetReplicationCycleRequest, ::Google::Cloud::VMMigration::V1::ReplicationCycle
            # Lists ImageImports in a given project.
            rpc :ListImageImports, ::Google::Cloud::VMMigration::V1::ListImageImportsRequest, ::Google::Cloud::VMMigration::V1::ListImageImportsResponse
            # Gets details of a single ImageImport.
            rpc :GetImageImport, ::Google::Cloud::VMMigration::V1::GetImageImportRequest, ::Google::Cloud::VMMigration::V1::ImageImport
            # Creates a new ImageImport in a given project.
            rpc :CreateImageImport, ::Google::Cloud::VMMigration::V1::CreateImageImportRequest, ::Google::Longrunning::Operation
            # Deletes a single ImageImport.
            rpc :DeleteImageImport, ::Google::Cloud::VMMigration::V1::DeleteImageImportRequest, ::Google::Longrunning::Operation
            # Lists ImageImportJobs in a given project.
            rpc :ListImageImportJobs, ::Google::Cloud::VMMigration::V1::ListImageImportJobsRequest, ::Google::Cloud::VMMigration::V1::ListImageImportJobsResponse
            # Gets details of a single ImageImportJob.
            rpc :GetImageImportJob, ::Google::Cloud::VMMigration::V1::GetImageImportJobRequest, ::Google::Cloud::VMMigration::V1::ImageImportJob
            # Initiates the cancellation of a running clone job.
            rpc :CancelImageImportJob, ::Google::Cloud::VMMigration::V1::CancelImageImportJobRequest, ::Google::Longrunning::Operation
            # Creates a new disk migration job in a given Source.
            rpc :CreateDiskMigrationJob, ::Google::Cloud::VMMigration::V1::CreateDiskMigrationJobRequest, ::Google::Longrunning::Operation
            # Lists DiskMigrationJobs in a given Source.
            rpc :ListDiskMigrationJobs, ::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsRequest, ::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsResponse
            # Gets details of a single DiskMigrationJob.
            rpc :GetDiskMigrationJob, ::Google::Cloud::VMMigration::V1::GetDiskMigrationJobRequest, ::Google::Cloud::VMMigration::V1::DiskMigrationJob
            # Updates the parameters of a single DiskMigrationJob.
            rpc :UpdateDiskMigrationJob, ::Google::Cloud::VMMigration::V1::UpdateDiskMigrationJobRequest, ::Google::Longrunning::Operation
            # Deletes a single DiskMigrationJob.
            rpc :DeleteDiskMigrationJob, ::Google::Cloud::VMMigration::V1::DeleteDiskMigrationJobRequest, ::Google::Longrunning::Operation
            # Runs the disk migration job.
            rpc :RunDiskMigrationJob, ::Google::Cloud::VMMigration::V1::RunDiskMigrationJobRequest, ::Google::Longrunning::Operation
            # Cancels the disk migration job.
            rpc :CancelDiskMigrationJob, ::Google::Cloud::VMMigration::V1::CancelDiskMigrationJobRequest, ::Google::Longrunning::Operation
          end

          Stub = Service.rpc_stub_class
        end
      end
    end
  end
end
