com.amazonaws.services.servermigration

## Interface AWSServerMigrationAsync

All Superinterfaces:
  AWSServerMigration

All Known Implementing Classes:
  AbstractAWSServerMigrationAsync, AWSServerMigrationAsyncClient

    public interface AWSServerMigrationAsync
    extends AWSServerMigration

Interface for accessing SMS asynchronously. Each asynchronous method will return a Java Future object representing the asynchronous operation; overloads which accept an `AsyncHandler` can be used to receive notification when an asynchronous operation completes.

Note: Do not directly implement this interface, new methods are added to it regularly. Extend from `AbstractAWSServerMigrationAsync` instead.

Amazon Server Migration Service automates the process of migrating servers to EC2.

### Field Summary

### Fields inherited from interface com.amazonaws.services.servermigration.AWSServerMigration

`ENDPOINT_PREFIX`

### Method Summary

All Methods Instance Methods Abstract Methods
`Future<CreateReplicationJobResult>` `createReplicationJobAsync(CreateReplicationJobRequest createReplicationJobRequest)` The CreateReplicationJob API is used to create a ReplicationJob to replicate a server on AWS.
`Future<CreateReplicationJobResult>` `createReplicationJobAsync(CreateReplicationJobRequest createReplicationJobRequest, AsyncHandler<CreateReplicationJobRequest,CreateReplicationJobResult> asyncHandler)` The CreateReplicationJob API is used to create a ReplicationJob to replicate a server on AWS.
`Future<DeleteReplicationJobResult>` `deleteReplicationJobAsync(DeleteReplicationJobRequest deleteReplicationJobRequest)` The DeleteReplicationJob API is used to delete a ReplicationJob, resulting in no further ReplicationRuns.
`Future<DeleteReplicationJobResult>` `deleteReplicationJobAsync(DeleteReplicationJobRequest deleteReplicationJobRequest, AsyncHandler<DeleteReplicationJobRequest,DeleteReplicationJobResult> asyncHandler)` The DeleteReplicationJob API is used to delete a ReplicationJob, resulting in no further ReplicationRuns.
`Future<DeleteServerCatalogResult>` `deleteServerCatalogAsync(DeleteServerCatalogRequest deleteServerCatalogRequest)` The DeleteServerCatalog API clears all servers from your server catalog.
`Future<DeleteServerCatalogResult>` `deleteServerCatalogAsync(DeleteServerCatalogRequest deleteServerCatalogRequest, AsyncHandler<DeleteServerCatalogRequest,DeleteServerCatalogResult> asyncHandler)` The DeleteServerCatalog API clears all servers from your server catalog.
`Future<DisassociateConnectorResult>` `disassociateConnectorAsync(DisassociateConnectorRequest disassociateConnectorRequest)` The DisassociateConnector API will disassociate a connector from the Server Migration Service, rendering it unavailable to support replication jobs.
`Future<DisassociateConnectorResult>` `disassociateConnectorAsync(DisassociateConnectorRequest disassociateConnectorRequest, AsyncHandler<DisassociateConnectorRequest,DisassociateConnectorResult> asyncHandler)` The DisassociateConnector API will disassociate a connector from the Server Migration Service, rendering it unavailable to support replication jobs.
`Future<GetConnectorsResult>` `getConnectorsAsync(GetConnectorsRequest getConnectorsRequest)` The GetConnectors API returns a list of connectors that are registered with the Server Migration Service.
`Future<GetConnectorsResult>` `getConnectorsAsync(GetConnectorsRequest getConnectorsRequest, AsyncHandler<GetConnectorsRequest,GetConnectorsResult> asyncHandler)` The GetConnectors API returns a list of connectors that are registered with the Server Migration Service.
`Future<GetReplicationJobsResult>` `getReplicationJobsAsync(GetReplicationJobsRequest getReplicationJobsRequest)` The GetReplicationJobs API will return all of your ReplicationJobs and their details.
`Future<GetReplicationJobsResult>` `getReplicationJobsAsync(GetReplicationJobsRequest getReplicationJobsRequest, AsyncHandler<GetReplicationJobsRequest,GetReplicationJobsResult> asyncHandler)` The GetReplicationJobs API will return all of your ReplicationJobs and their details.
`Future<GetReplicationRunsResult>` `getReplicationRunsAsync(GetReplicationRunsRequest getReplicationRunsRequest)` The GetReplicationRuns API will return all ReplicationRuns for a given ReplicationJob.
`Future<GetReplicationRunsResult>` `getReplicationRunsAsync(GetReplicationRunsRequest getReplicationRunsRequest, AsyncHandler<GetReplicationRunsRequest,GetReplicationRunsResult> asyncHandler)` The GetReplicationRuns API will return all ReplicationRuns for a given ReplicationJob.
`Future<GetServersResult>` `getServersAsync(GetServersRequest getServersRequest)` The GetServers API returns a list of all servers in your server catalog.
`Future<GetServersResult>` `getServersAsync(GetServersRequest getServersRequest, AsyncHandler<GetServersRequest,GetServersResult> asyncHandler)` The GetServers API returns a list of all servers in your server catalog.
`Future<ImportServerCatalogResult>` `importServerCatalogAsync(ImportServerCatalogRequest importServerCatalogRequest)` The ImportServerCatalog API is used to gather the complete list of on-premises servers on your premises.
`Future<ImportServerCatalogResult>` `importServerCatalogAsync(ImportServerCatalogRequest importServerCatalogRequest, AsyncHandler<ImportServerCatalogRequest,ImportServerCatalogResult> asyncHandler)` The ImportServerCatalog API is used to gather the complete list of on-premises servers on your premises.
`Future<StartOnDemandReplicationRunResult>` `startOnDemandReplicationRunAsync(StartOnDemandReplicationRunRequest startOnDemandReplicationRunRequest)` The StartOnDemandReplicationRun API is used to start a ReplicationRun on demand (in addition to those that are scheduled based on your frequency).
`Future<StartOnDemandReplicationRunResult>` `startOnDemandReplicationRunAsync(StartOnDemandReplicationRunRequest startOnDemandReplicationRunRequest, AsyncHandler<StartOnDemandReplicationRunRequest,StartOnDemandReplicationRunResult> asyncHandler)` The StartOnDemandReplicationRun API is used to start a ReplicationRun on demand (in addition to those that are scheduled based on your frequency).
`Future<UpdateReplicationJobResult>` `updateReplicationJobAsync(UpdateReplicationJobRequest updateReplicationJobRequest)` The UpdateReplicationJob API is used to change the settings of your existing ReplicationJob created using CreateReplicationJob.
`Future<UpdateReplicationJobResult>` `updateReplicationJobAsync(UpdateReplicationJobRequest updateReplicationJobRequest, AsyncHandler<UpdateReplicationJobRequest,UpdateReplicationJobResult> asyncHandler)` The UpdateReplicationJob API is used to change the settings of your existing ReplicationJob created using CreateReplicationJob.

### Methods inherited from interface com.amazonaws.services.servermigration.AWSServerMigration

`createReplicationJob, deleteReplicationJob, deleteServerCatalog, disassociateConnector, getCachedResponseMetadata, getConnectors, getReplicationJobs, getReplicationRuns, getServers, importServerCatalog, setEndpoint, setRegion, shutdown, startOnDemandReplicationRun, updateReplicationJob`

### Method Detail

#### createReplicationJobAsync

    Future<CreateReplicationJobResult> createReplicationJobAsync(CreateReplicationJobRequest createReplicationJobRequest)

The CreateReplicationJob API is used to create a ReplicationJob to replicate a server on AWS. Call this API to first create a ReplicationJob, which will then schedule periodic ReplicationRuns to replicate your server to AWS. Each ReplicationRun will result in the creation of an AWS AMI.

Parameters:
  `createReplicationJobRequest` -
Returns:
  A Java Future containing the result of the CreateReplicationJob operation returned by the service.

#### createReplicationJobAsync

    Future<CreateReplicationJobResult> createReplicationJobAsync(CreateReplicationJobRequest createReplicationJobRequest,
                                                                 AsyncHandler<CreateReplicationJobRequest,CreateReplicationJobResult> asyncHandler)

The CreateReplicationJob API is used to create a ReplicationJob to replicate a server on AWS. Call this API to first create a ReplicationJob, which will then schedule periodic ReplicationRuns to replicate your server to AWS. Each ReplicationRun will result in the creation of an AWS AMI.

Parameters:
  `createReplicationJobRequest` -
  `asyncHandler` - Asynchronous callback handler for events in the lifecycle of the request. Users can provide an implementation of the callback methods in this interface to receive notification of successful or unsuccessful completion of the operation.
Returns:
  A Java Future containing the result of the CreateReplicationJob operation returned by the service.

#### deleteReplicationJobAsync

    Future<DeleteReplicationJobResult> deleteReplicationJobAsync(DeleteReplicationJobRequest deleteReplicationJobRequest)

The DeleteReplicationJob API is used to delete a ReplicationJob, resulting in no further ReplicationRuns. This will delete the contents of the S3 bucket used to store SMS artifacts, but will not delete any AMIs created by the SMS service.

Parameters:
  `deleteReplicationJobRequest` -
Returns:
  A Java Future containing the result of the DeleteReplicationJob operation returned by the service.

#### deleteReplicationJobAsync

    Future<DeleteReplicationJobResult> deleteReplicationJobAsync(DeleteReplicationJobRequest deleteReplicationJobRequest,
                                                                 AsyncHandler<DeleteReplicationJobRequest,DeleteReplicationJobResult> asyncHandler)

The DeleteReplicationJob API is used to delete a ReplicationJob, resulting in no further ReplicationRuns. This will delete the contents of the S3 bucket used to store SMS artifacts, but will not delete any AMIs created by the SMS service.

Parameters:
  `deleteReplicationJobRequest` -
  `asyncHandler` - Asynchronous callback handler for events in the lifecycle of the request. Users can provide an implementation of the callback methods in this interface to receive notification of successful or unsuccessful completion of the operation.
Returns:
  A Java Future containing the result of the DeleteReplicationJob operation returned by the service.

#### deleteServerCatalogAsync

    Future<DeleteServerCatalogResult> deleteServerCatalogAsync(DeleteServerCatalogRequest deleteServerCatalogRequest)

The DeleteServerCatalog API clears all servers from your server catalog. This means that these servers will no longer be accessible to the Server Migration Service.

Parameters:
  `deleteServerCatalogRequest` -
Returns:
  A Java Future containing the result of the DeleteServerCatalog operation returned by the service.

#### deleteServerCatalogAsync

    Future<DeleteServerCatalogResult> deleteServerCatalogAsync(DeleteServerCatalogRequest deleteServerCatalogRequest,
                                                               AsyncHandler<DeleteServerCatalogRequest,DeleteServerCatalogResult> asyncHandler)

The DeleteServerCatalog API clears all servers from your server catalog. This means that these servers will no longer be accessible to the Server Migration Service.

Parameters:
  `deleteServerCatalogRequest` -
  `asyncHandler` - Asynchronous callback handler for events in the lifecycle of the request. Users can provide an implementation of the callback methods in this interface to receive notification of successful or unsuccessful completion of the operation.
Returns:
  A Java Future containing the result of the DeleteServerCatalog operation returned by the service.

#### disassociateConnectorAsync

    Future<DisassociateConnectorResult> disassociateConnectorAsync(DisassociateConnectorRequest disassociateConnectorRequest)

The DisassociateConnector API will disassociate a connector from the Server Migration Service, rendering it unavailable to support replication jobs.

Parameters:
  `disassociateConnectorRequest` -
Returns:
  A Java Future containing the result of the DisassociateConnector operation returned by the service.

#### disassociateConnectorAsync

    Future<DisassociateConnectorResult> disassociateConnectorAsync(DisassociateConnectorRequest disassociateConnectorRequest,
                                                                   AsyncHandler<DisassociateConnectorRequest,DisassociateConnectorResult> asyncHandler)

The DisassociateConnector API will disassociate a connector from the Server Migration Service, rendering it unavailable to support replication jobs.

Parameters:
  `disassociateConnectorRequest` -
  `asyncHandler` - Asynchronous callback handler for events in the lifecycle of the request. Users can provide an implementation of the callback methods in this interface to receive notification of successful or unsuccessful completion of the operation.
Returns:
  A Java Future containing the result of the DisassociateConnector operation returned by the service.

#### getConnectorsAsync

    Future<GetConnectorsResult> getConnectorsAsync(GetConnectorsRequest getConnectorsRequest)

The GetConnectors API returns a list of connectors that are registered with the Server Migration Service.

Parameters:
  `getConnectorsRequest` -
Returns:
  A Java Future containing the result of the GetConnectors operation returned by the service.

#### getConnectorsAsync

    Future<GetConnectorsResult> getConnectorsAsync(GetConnectorsRequest getConnectorsRequest,
                                                   AsyncHandler<GetConnectorsRequest,GetConnectorsResult> asyncHandler)

The GetConnectors API returns a list of connectors that are registered with the Server Migration Service.

Parameters:
  `getConnectorsRequest` -
  `asyncHandler` - Asynchronous callback handler for events in the lifecycle of the request. Users can provide an implementation of the callback methods in this interface to receive notification of successful or unsuccessful completion of the operation.
Returns:
  A Java Future containing the result of the GetConnectors operation returned by the service.

#### getReplicationJobsAsync

    Future<GetReplicationJobsResult> getReplicationJobsAsync(GetReplicationJobsRequest getReplicationJobsRequest)

The GetReplicationJobs API will return all of your ReplicationJobs and their details. This API returns a paginated list, that may be consecutively called with nextToken to retrieve all ReplicationJobs.

Parameters:
  `getReplicationJobsRequest` -
Returns:
  A Java Future containing the result of the GetReplicationJobs operation returned by the service.

#### getReplicationJobsAsync

    Future<GetReplicationJobsResult> getReplicationJobsAsync(GetReplicationJobsRequest getReplicationJobsRequest,
                                                             AsyncHandler<GetReplicationJobsRequest,GetReplicationJobsResult> asyncHandler)

The GetReplicationJobs API will return all of your ReplicationJobs and their details. This API returns a paginated list, that may be consecutively called with nextToken to retrieve all ReplicationJobs.

Parameters:
  `getReplicationJobsRequest` -
  `asyncHandler` - Asynchronous callback handler for events in the lifecycle of the request. Users can provide an implementation of the callback methods in this interface to receive notification of successful or unsuccessful completion of the operation.
Returns:
  A Java Future containing the result of the GetReplicationJobs operation returned by the service.

#### getReplicationRunsAsync

    Future<GetReplicationRunsResult> getReplicationRunsAsync(GetReplicationRunsRequest getReplicationRunsRequest)

The GetReplicationRuns API will return all ReplicationRuns for a given ReplicationJob. This API returns a paginated list, that may be consecutively called with nextToken to retrieve all ReplicationRuns for a ReplicationJob.

Parameters:
  `getReplicationRunsRequest` -
Returns:
  A Java Future containing the result of the GetReplicationRuns operation returned by the service.

#### getReplicationRunsAsync

    Future<GetReplicationRunsResult> getReplicationRunsAsync(GetReplicationRunsRequest getReplicationRunsRequest,
                                                             AsyncHandler<GetReplicationRunsRequest,GetReplicationRunsResult> asyncHandler)

The GetReplicationRuns API will return all ReplicationRuns for a given ReplicationJob. This API returns a paginated list, that may be consecutively called with nextToken to retrieve all ReplicationRuns for a ReplicationJob.

Parameters:
  `getReplicationRunsRequest` -
  `asyncHandler` - Asynchronous callback handler for events in the lifecycle of the request. Users can provide an implementation of the callback methods in this interface to receive notification of successful or unsuccessful completion of the operation.
Returns:
  A Java Future containing the result of the GetReplicationRuns operation returned by the service.

#### getServersAsync

    Future<GetServersResult> getServersAsync(GetServersRequest getServersRequest)

The GetServers API returns a list of all servers in your server catalog. For this call to succeed, you must previously have called ImportServerCatalog.

Parameters:
  `getServersRequest` -
Returns:
  A Java Future containing the result of the GetServers operation returned by the service.

#### getServersAsync

    Future<GetServersResult> getServersAsync(GetServersRequest getServersRequest,
                                             AsyncHandler<GetServersRequest,GetServersResult> asyncHandler)

The GetServers API returns a list of all servers in your server catalog. For this call to succeed, you must previously have called ImportServerCatalog.

Parameters:
  `getServersRequest` -
  `asyncHandler` - Asynchronous callback handler for events in the lifecycle of the request. Users can provide an implementation of the callback methods in this interface to receive notification of successful or unsuccessful completion of the operation.
Returns:
  A Java Future containing the result of the GetServers operation returned by the service.

#### importServerCatalogAsync

    Future<ImportServerCatalogResult> importServerCatalogAsync(ImportServerCatalogRequest importServerCatalogRequest)

The ImportServerCatalog API is used to gather the complete list of on-premises servers on your premises. This API call requires connectors to be installed and monitoring all servers you would like imported. This API call returns immediately, but may take some time to retrieve all of the servers.

Parameters:
  `importServerCatalogRequest` -
Returns:
  A Java Future containing the result of the ImportServerCatalog operation returned by the service.

#### importServerCatalogAsync

    Future<ImportServerCatalogResult> importServerCatalogAsync(ImportServerCatalogRequest importServerCatalogRequest,
                                                               AsyncHandler<ImportServerCatalogRequest,ImportServerCatalogResult> asyncHandler)

The ImportServerCatalog API is used to gather the complete list of on-premises servers on your premises. This API call requires connectors to be installed and monitoring all servers you would like imported. This API call returns immediately, but may take some time to retrieve all of the servers.

Parameters:
  `importServerCatalogRequest` -
  `asyncHandler` - Asynchronous callback handler for events in the lifecycle of the request. Users can provide an implementation of the callback methods in this interface to receive notification of successful or unsuccessful completion of the operation.
Returns:
  A Java Future containing the result of the ImportServerCatalog operation returned by the service.

#### startOnDemandReplicationRunAsync

    Future<StartOnDemandReplicationRunResult> startOnDemandReplicationRunAsync(StartOnDemandReplicationRunRequest startOnDemandReplicationRunRequest)

The StartOnDemandReplicationRun API is used to start a ReplicationRun on demand (in addition to those that are scheduled based on your frequency). This ReplicationRun will start immediately. StartOnDemandReplicationRun is subject to limits on how many on demand ReplicationRuns you may call per 24-hour period.

Parameters:
  `startOnDemandReplicationRunRequest` -
Returns:
  A Java Future containing the result of the StartOnDemandReplicationRun operation returned by the service.

#### startOnDemandReplicationRunAsync

    Future<StartOnDemandReplicationRunResult> startOnDemandReplicationRunAsync(StartOnDemandReplicationRunRequest startOnDemandReplicationRunRequest,
                                                                               AsyncHandler<StartOnDemandReplicationRunRequest,StartOnDemandReplicationRunResult> asyncHandler)

The StartOnDemandReplicationRun API is used to start a ReplicationRun on demand (in addition to those that are scheduled based on your frequency). This ReplicationRun will start immediately. StartOnDemandReplicationRun is subject to limits on how many on demand ReplicationRuns you may call per 24-hour period.

Parameters:
  `startOnDemandReplicationRunRequest` -
  `asyncHandler` - Asynchronous callback handler for events in the lifecycle of the request. Users can provide an implementation of the callback methods in this interface to receive notification of successful or unsuccessful completion of the operation.
Returns:
  A Java Future containing the result of the StartOnDemandReplicationRun operation returned by the service.

#### updateReplicationJobAsync

    Future<UpdateReplicationJobResult> updateReplicationJobAsync(UpdateReplicationJobRequest updateReplicationJobRequest)

The UpdateReplicationJob API is used to change the settings of your existing ReplicationJob created using CreateReplicationJob. Calling this API will affect the next scheduled ReplicationRun.

Parameters:
  `updateReplicationJobRequest` -
Returns:
  A Java Future containing the result of the UpdateReplicationJob operation returned by the service.

#### updateReplicationJobAsync

    Future<UpdateReplicationJobResult> updateReplicationJobAsync(UpdateReplicationJobRequest updateReplicationJobRequest,
                                                                 AsyncHandler<UpdateReplicationJobRequest,UpdateReplicationJobResult> asyncHandler)

The UpdateReplicationJob API is used to change the settings of your existing ReplicationJob created using CreateReplicationJob. Calling this API will affect the next scheduled ReplicationRun.

Parameters:
  `updateReplicationJobRequest` -
  `asyncHandler` - Asynchronous callback handler for events in the lifecycle of the request. Users can provide an implementation of the callback methods in this interface to receive notification of successful or unsuccessful completion of the operation.
Returns:
  A Java Future containing the result of the UpdateReplicationJob operation returned by the service.