All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.aws.sdk.kotlin.services.drs.DrsClient.kt Maven / Gradle / Ivy

// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.drs

import aws.sdk.kotlin.runtime.auth.credentials.DefaultChainCredentialsProvider
import aws.sdk.kotlin.runtime.auth.credentials.internal.borrow
import aws.sdk.kotlin.runtime.config.retries.resolveRetryStrategy
import aws.sdk.kotlin.runtime.region.resolveRegion
import aws.sdk.kotlin.services.drs.endpoints.DefaultEndpointProvider
import aws.sdk.kotlin.services.drs.endpoints.EndpointProvider
import aws.sdk.kotlin.services.drs.model.*
import aws.sdk.kotlin.services.drs.model.CreateExtendedSourceServerRequest
import aws.sdk.kotlin.services.drs.model.CreateExtendedSourceServerResponse
import aws.sdk.kotlin.services.drs.model.CreateReplicationConfigurationTemplateRequest
import aws.sdk.kotlin.services.drs.model.CreateReplicationConfigurationTemplateResponse
import aws.sdk.kotlin.services.drs.model.DeleteJobRequest
import aws.sdk.kotlin.services.drs.model.DeleteJobResponse
import aws.sdk.kotlin.services.drs.model.DeleteRecoveryInstanceRequest
import aws.sdk.kotlin.services.drs.model.DeleteRecoveryInstanceResponse
import aws.sdk.kotlin.services.drs.model.DeleteReplicationConfigurationTemplateRequest
import aws.sdk.kotlin.services.drs.model.DeleteReplicationConfigurationTemplateResponse
import aws.sdk.kotlin.services.drs.model.DeleteSourceServerRequest
import aws.sdk.kotlin.services.drs.model.DeleteSourceServerResponse
import aws.sdk.kotlin.services.drs.model.DescribeJobLogItemsRequest
import aws.sdk.kotlin.services.drs.model.DescribeJobLogItemsResponse
import aws.sdk.kotlin.services.drs.model.DescribeJobsRequest
import aws.sdk.kotlin.services.drs.model.DescribeJobsResponse
import aws.sdk.kotlin.services.drs.model.DescribeRecoveryInstancesRequest
import aws.sdk.kotlin.services.drs.model.DescribeRecoveryInstancesResponse
import aws.sdk.kotlin.services.drs.model.DescribeRecoverySnapshotsRequest
import aws.sdk.kotlin.services.drs.model.DescribeRecoverySnapshotsResponse
import aws.sdk.kotlin.services.drs.model.DescribeReplicationConfigurationTemplatesRequest
import aws.sdk.kotlin.services.drs.model.DescribeReplicationConfigurationTemplatesResponse
import aws.sdk.kotlin.services.drs.model.DescribeSourceServersRequest
import aws.sdk.kotlin.services.drs.model.DescribeSourceServersResponse
import aws.sdk.kotlin.services.drs.model.DisconnectRecoveryInstanceRequest
import aws.sdk.kotlin.services.drs.model.DisconnectRecoveryInstanceResponse
import aws.sdk.kotlin.services.drs.model.DisconnectSourceServerRequest
import aws.sdk.kotlin.services.drs.model.DisconnectSourceServerResponse
import aws.sdk.kotlin.services.drs.model.GetFailbackReplicationConfigurationRequest
import aws.sdk.kotlin.services.drs.model.GetFailbackReplicationConfigurationResponse
import aws.sdk.kotlin.services.drs.model.GetLaunchConfigurationRequest
import aws.sdk.kotlin.services.drs.model.GetLaunchConfigurationResponse
import aws.sdk.kotlin.services.drs.model.GetReplicationConfigurationRequest
import aws.sdk.kotlin.services.drs.model.GetReplicationConfigurationResponse
import aws.sdk.kotlin.services.drs.model.InitializeServiceRequest
import aws.sdk.kotlin.services.drs.model.InitializeServiceResponse
import aws.sdk.kotlin.services.drs.model.ListExtensibleSourceServersRequest
import aws.sdk.kotlin.services.drs.model.ListExtensibleSourceServersResponse
import aws.sdk.kotlin.services.drs.model.ListStagingAccountsRequest
import aws.sdk.kotlin.services.drs.model.ListStagingAccountsResponse
import aws.sdk.kotlin.services.drs.model.ListTagsForResourceRequest
import aws.sdk.kotlin.services.drs.model.ListTagsForResourceResponse
import aws.sdk.kotlin.services.drs.model.RetryDataReplicationRequest
import aws.sdk.kotlin.services.drs.model.RetryDataReplicationResponse
import aws.sdk.kotlin.services.drs.model.ReverseReplicationRequest
import aws.sdk.kotlin.services.drs.model.ReverseReplicationResponse
import aws.sdk.kotlin.services.drs.model.StartFailbackLaunchRequest
import aws.sdk.kotlin.services.drs.model.StartFailbackLaunchResponse
import aws.sdk.kotlin.services.drs.model.StartRecoveryRequest
import aws.sdk.kotlin.services.drs.model.StartRecoveryResponse
import aws.sdk.kotlin.services.drs.model.StartReplicationRequest
import aws.sdk.kotlin.services.drs.model.StartReplicationResponse
import aws.sdk.kotlin.services.drs.model.StopFailbackRequest
import aws.sdk.kotlin.services.drs.model.StopFailbackResponse
import aws.sdk.kotlin.services.drs.model.StopReplicationRequest
import aws.sdk.kotlin.services.drs.model.StopReplicationResponse
import aws.sdk.kotlin.services.drs.model.TagResourceRequest
import aws.sdk.kotlin.services.drs.model.TagResourceResponse
import aws.sdk.kotlin.services.drs.model.TerminateRecoveryInstancesRequest
import aws.sdk.kotlin.services.drs.model.TerminateRecoveryInstancesResponse
import aws.sdk.kotlin.services.drs.model.UntagResourceRequest
import aws.sdk.kotlin.services.drs.model.UntagResourceResponse
import aws.sdk.kotlin.services.drs.model.UpdateFailbackReplicationConfigurationRequest
import aws.sdk.kotlin.services.drs.model.UpdateFailbackReplicationConfigurationResponse
import aws.sdk.kotlin.services.drs.model.UpdateLaunchConfigurationRequest
import aws.sdk.kotlin.services.drs.model.UpdateLaunchConfigurationResponse
import aws.sdk.kotlin.services.drs.model.UpdateReplicationConfigurationRequest
import aws.sdk.kotlin.services.drs.model.UpdateReplicationConfigurationResponse
import aws.sdk.kotlin.services.drs.model.UpdateReplicationConfigurationTemplateRequest
import aws.sdk.kotlin.services.drs.model.UpdateReplicationConfigurationTemplateResponse
import aws.smithy.kotlin.runtime.SdkClient
import aws.smithy.kotlin.runtime.auth.awscredentials.CredentialsProvider
import aws.smithy.kotlin.runtime.auth.awssigning.AwsSigner
import aws.smithy.kotlin.runtime.auth.awssigning.DefaultAwsSigner
import aws.smithy.kotlin.runtime.client.SdkLogMode
import aws.smithy.kotlin.runtime.config.SdkClientConfig
import aws.smithy.kotlin.runtime.http.Url
import aws.smithy.kotlin.runtime.http.config.HttpClientConfig
import aws.smithy.kotlin.runtime.http.engine.HttpClientEngine
import aws.smithy.kotlin.runtime.retries.RetryStrategy
import aws.smithy.kotlin.runtime.retries.StandardRetryStrategy
import aws.smithy.kotlin.runtime.tracing.DefaultTracer
import aws.smithy.kotlin.runtime.tracing.LoggingTraceProbe
import aws.smithy.kotlin.runtime.tracing.Tracer
import aws.smithy.kotlin.runtime.tracing.TracingClientConfig

/**
 * AWS Elastic Disaster Recovery Service.
 */
public interface DrsClient : SdkClient {

    override val serviceName: String
        get() = "drs"
    /**
     * DrsClient's configuration
     */
    public val config: Config

    public companion object {
        public operator fun invoke(block: Config.Builder.() -> Unit): DrsClient {
            val config = Config.Builder().apply(block).build()
            return DefaultDrsClient(config)
        }

        public operator fun invoke(config: Config): DrsClient = DefaultDrsClient(config)

        /**
         * Construct a [DrsClient] by resolving the configuration from the current environment.
         */
        public suspend fun fromEnvironment(block: (Config.Builder.() -> Unit)? = null): DrsClient {
            val builder = Config.Builder()
            if (block != null) builder.apply(block)
            builder.region = builder.region ?: resolveRegion()
            builder.retryStrategy = builder.retryStrategy ?: resolveRetryStrategy()
            return DefaultDrsClient(builder.build())
        }
    }

    public class Config private constructor(builder: Builder): HttpClientConfig, SdkClientConfig, TracingClientConfig {
        override val httpClientEngine: HttpClientEngine? = builder.httpClientEngine
        public val region: String = requireNotNull(builder.region) { "region is a required configuration property" }
        public val credentialsProvider: CredentialsProvider = builder.credentialsProvider?.borrow() ?: DefaultChainCredentialsProvider(httpClientEngine = httpClientEngine, region = region)
        public val endpointProvider: EndpointProvider = builder.endpointProvider ?: DefaultEndpointProvider()
        public val endpointUrl: Url? = builder.endpointUrl
        public val retryStrategy: RetryStrategy = builder.retryStrategy ?: StandardRetryStrategy()
        override val sdkLogMode: SdkLogMode = builder.sdkLogMode
        public val signer: AwsSigner = builder.signer ?: DefaultAwsSigner
        override val tracer: Tracer = builder.tracer ?: DefaultTracer(LoggingTraceProbe, "drs")
        public val useDualStack: Boolean = builder.useDualStack
        public val useFips: Boolean = builder.useFips
        public companion object {
            public inline operator fun invoke(block: Builder.() -> kotlin.Unit): Config = Builder().apply(block).build()
        }

        public class Builder {
            /**
             * Override the default HTTP client engine used to make SDK requests (e.g. configure proxy behavior, timeouts, concurrency, etc).
             * NOTE: The caller is responsible for managing the lifetime of the engine when set. The SDK
             * client will not close it when the client is closed.
             */
            public var httpClientEngine: HttpClientEngine? = null
            /**
             * AWS region to make requests to
             */
            public var region: String? = null
            /**
             * The AWS credentials provider to use for authenticating requests. If not provided a
             * [aws.sdk.kotlin.runtime.auth.credentials.DefaultChainCredentialsProvider] instance will be used.
             * NOTE: The caller is responsible for managing the lifetime of the provider when set. The SDK
             * client will not close it when the client is closed.
             */
            public var credentialsProvider: CredentialsProvider? = null
            /**
             * The endpoint provider used to determine where to make service requests.
             */
            public var endpointProvider: EndpointProvider? = null
            /**
             * A custom endpoint to use when making requests.
             */
            public var endpointUrl: Url? = null
            /**
             * The [RetryStrategy] implementation to use for service calls. All API calls will be wrapped by the
             * strategy.
             */
            public var retryStrategy: RetryStrategy? = null
            /**
             * Configure events that will be logged. By default clients will not output
             * raw requests or responses. Use this setting to opt-in to additional debug logging.
             *
             * This can be used to configure logging of requests, responses, retries, etc of SDK clients.
             *
             * **NOTE**: Logging of raw requests or responses may leak sensitive information! It may also have
             * performance considerations when dumping the request/response body. This is primarily a tool for
             * debug purposes.
             */
            public var sdkLogMode: SdkLogMode = SdkLogMode.Default
            /**
             * The implementation of AWS signer to use for signing requests
             */
            public var signer: AwsSigner? = null
            /**
             * The tracer that is responsible for creating trace spans and wiring them up to a tracing backend (e.g.,
             * a trace probe). By default, this will create a standard tracer that uses the service name for the root
             * trace span and delegates to a logging trace probe (i.e.,
             * `DefaultTracer(LoggingTraceProbe, "")`).
             */
            public var tracer: Tracer? = null
            /**
             * Flag to toggle whether to use dual-stack endpoints when making requests.
             */
            public var useDualStack: Boolean = false
            /**
             * Flag to toggle whether to use [FIPS](https://aws.amazon.com/compliance/fips/) endpoints when making requests.
             */
            public var useFips: Boolean = false

            @PublishedApi
            internal fun build(): Config = Config(this)
        }
    }

    /**
     * Create an extended source server in the target Account based on the source server in staging account.
     */
    public suspend fun createExtendedSourceServer(input: CreateExtendedSourceServerRequest): CreateExtendedSourceServerResponse

    /**
     * Creates a new ReplicationConfigurationTemplate.
     */
    public suspend fun createReplicationConfigurationTemplate(input: CreateReplicationConfigurationTemplateRequest): CreateReplicationConfigurationTemplateResponse

    /**
     * Deletes a single Job by ID.
     */
    public suspend fun deleteJob(input: DeleteJobRequest): DeleteJobResponse

    /**
     * Deletes a single Recovery Instance by ID. This deletes the Recovery Instance resource from Elastic Disaster Recovery. The Recovery Instance must be disconnected first in order to delete it.
     */
    public suspend fun deleteRecoveryInstance(input: DeleteRecoveryInstanceRequest): DeleteRecoveryInstanceResponse

    /**
     * Deletes a single Replication Configuration Template by ID
     */
    public suspend fun deleteReplicationConfigurationTemplate(input: DeleteReplicationConfigurationTemplateRequest): DeleteReplicationConfigurationTemplateResponse

    /**
     * Deletes a single Source Server by ID. The Source Server must be disconnected first.
     */
    public suspend fun deleteSourceServer(input: DeleteSourceServerRequest): DeleteSourceServerResponse

    /**
     * Retrieves a detailed Job log with pagination.
     */
    public suspend fun describeJobLogItems(input: DescribeJobLogItemsRequest): DescribeJobLogItemsResponse

    /**
     * Returns a list of Jobs. Use the JobsID and fromDate and toDate filters to limit which jobs are returned. The response is sorted by creationDataTime - latest date first. Jobs are created by the StartRecovery, TerminateRecoveryInstances and StartFailbackLaunch APIs. Jobs are also created by DiagnosticLaunch and TerminateDiagnosticInstances, which are APIs available only to *Support* and only used in response to relevant support tickets.
     */
    public suspend fun describeJobs(input: DescribeJobsRequest = DescribeJobsRequest {}): DescribeJobsResponse

    /**
     * Lists all Recovery Instances or multiple Recovery Instances by ID.
     */
    public suspend fun describeRecoveryInstances(input: DescribeRecoveryInstancesRequest = DescribeRecoveryInstancesRequest {}): DescribeRecoveryInstancesResponse

    /**
     * Lists all Recovery Snapshots for a single Source Server.
     */
    public suspend fun describeRecoverySnapshots(input: DescribeRecoverySnapshotsRequest): DescribeRecoverySnapshotsResponse

    /**
     * Lists all ReplicationConfigurationTemplates, filtered by Source Server IDs.
     */
    public suspend fun describeReplicationConfigurationTemplates(input: DescribeReplicationConfigurationTemplatesRequest = DescribeReplicationConfigurationTemplatesRequest {}): DescribeReplicationConfigurationTemplatesResponse

    /**
     * Lists all Source Servers or multiple Source Servers filtered by ID.
     */
    public suspend fun describeSourceServers(input: DescribeSourceServersRequest = DescribeSourceServersRequest {}): DescribeSourceServersResponse

    /**
     * Disconnect a Recovery Instance from Elastic Disaster Recovery. Data replication is stopped immediately. All AWS resources created by Elastic Disaster Recovery for enabling the replication of the Recovery Instance will be terminated / deleted within 90 minutes. If the agent on the Recovery Instance has not been prevented from communicating with the Elastic Disaster Recovery service, then it will receive a command to uninstall itself (within approximately 10 minutes). The following properties of the Recovery Instance will be changed immediately: dataReplicationInfo.dataReplicationState will be set to DISCONNECTED; The totalStorageBytes property for each of dataReplicationInfo.replicatedDisks will be set to zero; dataReplicationInfo.lagDuration and dataReplicationInfo.lagDuration will be nullified.
     */
    public suspend fun disconnectRecoveryInstance(input: DisconnectRecoveryInstanceRequest): DisconnectRecoveryInstanceResponse

    /**
     * Disconnects a specific Source Server from Elastic Disaster Recovery. Data replication is stopped immediately. All AWS resources created by Elastic Disaster Recovery for enabling the replication of the Source Server will be terminated / deleted within 90 minutes. You cannot disconnect a Source Server if it has a Recovery Instance. If the agent on the Source Server has not been prevented from communicating with the Elastic Disaster Recovery service, then it will receive a command to uninstall itself (within approximately 10 minutes). The following properties of the SourceServer will be changed immediately: dataReplicationInfo.dataReplicationState will be set to DISCONNECTED; The totalStorageBytes property for each of dataReplicationInfo.replicatedDisks will be set to zero; dataReplicationInfo.lagDuration and dataReplicationInfo.lagDuration will be nullified.
     */
    public suspend fun disconnectSourceServer(input: DisconnectSourceServerRequest): DisconnectSourceServerResponse

    /**
     * Lists all Failback ReplicationConfigurations, filtered by Recovery Instance ID.
     */
    public suspend fun getFailbackReplicationConfiguration(input: GetFailbackReplicationConfigurationRequest): GetFailbackReplicationConfigurationResponse

    /**
     * Gets a LaunchConfiguration, filtered by Source Server IDs.
     */
    public suspend fun getLaunchConfiguration(input: GetLaunchConfigurationRequest): GetLaunchConfigurationResponse

    /**
     * Gets a ReplicationConfiguration, filtered by Source Server ID.
     */
    public suspend fun getReplicationConfiguration(input: GetReplicationConfigurationRequest): GetReplicationConfigurationResponse

    /**
     * Initialize Elastic Disaster Recovery.
     */
    public suspend fun initializeService(input: InitializeServiceRequest = InitializeServiceRequest {}): InitializeServiceResponse

    /**
     * Returns a list of source servers on a staging account that are extensible, which means that: a. The source server is not already extended into this Account. b. The source server on the Account we’re reading from is not an extension of another source server.
     */
    public suspend fun listExtensibleSourceServers(input: ListExtensibleSourceServersRequest): ListExtensibleSourceServersResponse

    /**
     * Returns an array of staging accounts for existing extended source servers.
     */
    public suspend fun listStagingAccounts(input: ListStagingAccountsRequest = ListStagingAccountsRequest {}): ListStagingAccountsResponse

    /**
     * List all tags for your Elastic Disaster Recovery resources.
     */
    public suspend fun listTagsForResource(input: ListTagsForResourceRequest): ListTagsForResourceResponse

    /**
     * Causes the data replication initiation sequence to begin immediately upon next Handshake for the specified Source Server ID, regardless of when the previous initiation started. This command will work only if the Source Server is stalled or is in a DISCONNECTED or STOPPED state.
     */
    public suspend fun retryDataReplication(input: RetryDataReplicationRequest): RetryDataReplicationResponse

    /**
     * Start replication to origin / target region - applies only to protected instances that originated in EC2. For recovery instances on target region - starts replication back to origin region. For failback instances on origin region - starts replication to target region to re-protect them.
     */
    public suspend fun reverseReplication(input: ReverseReplicationRequest): ReverseReplicationResponse

    /**
     * Initiates a Job for launching the machine that is being failed back to from the specified Recovery Instance. This will run conversion on the failback client and will reboot your machine, thus completing the failback process.
     */
    public suspend fun startFailbackLaunch(input: StartFailbackLaunchRequest): StartFailbackLaunchResponse

    /**
     * Launches Recovery Instances for the specified Source Servers. For each Source Server you may choose a point in time snapshot to launch from, or use an on demand snapshot.
     */
    public suspend fun startRecovery(input: StartRecoveryRequest): StartRecoveryResponse

    /**
     * Starts replication for a stopped Source Server. This action would make the Source Server protected again and restart billing for it.
     */
    public suspend fun startReplication(input: StartReplicationRequest): StartReplicationResponse

    /**
     * Stops the failback process for a specified Recovery Instance. This changes the Failback State of the Recovery Instance back to FAILBACK_NOT_STARTED.
     */
    public suspend fun stopFailback(input: StopFailbackRequest): StopFailbackResponse

    /**
     * Stops replication for a Source Server. This action would make the Source Server unprotected, delete its existing snapshots and stop billing for it.
     */
    public suspend fun stopReplication(input: StopReplicationRequest): StopReplicationResponse

    /**
     * Adds or overwrites only the specified tags for the specified Elastic Disaster Recovery resource or resources. When you specify an existing tag key, the value is overwritten with the new value. Each resource can have a maximum of 50 tags. Each tag consists of a key and optional value.
     */
    public suspend fun tagResource(input: TagResourceRequest): TagResourceResponse

    /**
     * Initiates a Job for terminating the EC2 resources associated with the specified Recovery Instances, and then will delete the Recovery Instances from the Elastic Disaster Recovery service.
     */
    public suspend fun terminateRecoveryInstances(input: TerminateRecoveryInstancesRequest): TerminateRecoveryInstancesResponse

    /**
     * Deletes the specified set of tags from the specified set of Elastic Disaster Recovery resources.
     */
    public suspend fun untagResource(input: UntagResourceRequest): UntagResourceResponse

    /**
     * Allows you to update the failback replication configuration of a Recovery Instance by ID.
     */
    public suspend fun updateFailbackReplicationConfiguration(input: UpdateFailbackReplicationConfigurationRequest): UpdateFailbackReplicationConfigurationResponse

    /**
     * Updates a LaunchConfiguration by Source Server ID.
     */
    public suspend fun updateLaunchConfiguration(input: UpdateLaunchConfigurationRequest): UpdateLaunchConfigurationResponse

    /**
     * Allows you to update a ReplicationConfiguration by Source Server ID.
     */
    public suspend fun updateReplicationConfiguration(input: UpdateReplicationConfigurationRequest): UpdateReplicationConfigurationResponse

    /**
     * Updates a ReplicationConfigurationTemplate by ID.
     */
    public suspend fun updateReplicationConfigurationTemplate(input: UpdateReplicationConfigurationTemplateRequest): UpdateReplicationConfigurationTemplateResponse
}

/**
 * Create an extended source server in the target Account based on the source server in staging account.
 */
public suspend inline fun DrsClient.createExtendedSourceServer(crossinline block: CreateExtendedSourceServerRequest.Builder.() -> Unit): CreateExtendedSourceServerResponse = createExtendedSourceServer(CreateExtendedSourceServerRequest.Builder().apply(block).build())

/**
 * Creates a new ReplicationConfigurationTemplate.
 */
public suspend inline fun DrsClient.createReplicationConfigurationTemplate(crossinline block: CreateReplicationConfigurationTemplateRequest.Builder.() -> Unit): CreateReplicationConfigurationTemplateResponse = createReplicationConfigurationTemplate(CreateReplicationConfigurationTemplateRequest.Builder().apply(block).build())

/**
 * Deletes a single Job by ID.
 */
public suspend inline fun DrsClient.deleteJob(crossinline block: DeleteJobRequest.Builder.() -> Unit): DeleteJobResponse = deleteJob(DeleteJobRequest.Builder().apply(block).build())

/**
 * Deletes a single Recovery Instance by ID. This deletes the Recovery Instance resource from Elastic Disaster Recovery. The Recovery Instance must be disconnected first in order to delete it.
 */
public suspend inline fun DrsClient.deleteRecoveryInstance(crossinline block: DeleteRecoveryInstanceRequest.Builder.() -> Unit): DeleteRecoveryInstanceResponse = deleteRecoveryInstance(DeleteRecoveryInstanceRequest.Builder().apply(block).build())

/**
 * Deletes a single Replication Configuration Template by ID
 */
public suspend inline fun DrsClient.deleteReplicationConfigurationTemplate(crossinline block: DeleteReplicationConfigurationTemplateRequest.Builder.() -> Unit): DeleteReplicationConfigurationTemplateResponse = deleteReplicationConfigurationTemplate(DeleteReplicationConfigurationTemplateRequest.Builder().apply(block).build())

/**
 * Deletes a single Source Server by ID. The Source Server must be disconnected first.
 */
public suspend inline fun DrsClient.deleteSourceServer(crossinline block: DeleteSourceServerRequest.Builder.() -> Unit): DeleteSourceServerResponse = deleteSourceServer(DeleteSourceServerRequest.Builder().apply(block).build())

/**
 * Retrieves a detailed Job log with pagination.
 */
public suspend inline fun DrsClient.describeJobLogItems(crossinline block: DescribeJobLogItemsRequest.Builder.() -> Unit): DescribeJobLogItemsResponse = describeJobLogItems(DescribeJobLogItemsRequest.Builder().apply(block).build())

/**
 * Returns a list of Jobs. Use the JobsID and fromDate and toDate filters to limit which jobs are returned. The response is sorted by creationDataTime - latest date first. Jobs are created by the StartRecovery, TerminateRecoveryInstances and StartFailbackLaunch APIs. Jobs are also created by DiagnosticLaunch and TerminateDiagnosticInstances, which are APIs available only to *Support* and only used in response to relevant support tickets.
 */
public suspend inline fun DrsClient.describeJobs(crossinline block: DescribeJobsRequest.Builder.() -> Unit): DescribeJobsResponse = describeJobs(DescribeJobsRequest.Builder().apply(block).build())

/**
 * Lists all Recovery Instances or multiple Recovery Instances by ID.
 */
public suspend inline fun DrsClient.describeRecoveryInstances(crossinline block: DescribeRecoveryInstancesRequest.Builder.() -> Unit): DescribeRecoveryInstancesResponse = describeRecoveryInstances(DescribeRecoveryInstancesRequest.Builder().apply(block).build())

/**
 * Lists all Recovery Snapshots for a single Source Server.
 */
public suspend inline fun DrsClient.describeRecoverySnapshots(crossinline block: DescribeRecoverySnapshotsRequest.Builder.() -> Unit): DescribeRecoverySnapshotsResponse = describeRecoverySnapshots(DescribeRecoverySnapshotsRequest.Builder().apply(block).build())

/**
 * Lists all ReplicationConfigurationTemplates, filtered by Source Server IDs.
 */
public suspend inline fun DrsClient.describeReplicationConfigurationTemplates(crossinline block: DescribeReplicationConfigurationTemplatesRequest.Builder.() -> Unit): DescribeReplicationConfigurationTemplatesResponse = describeReplicationConfigurationTemplates(DescribeReplicationConfigurationTemplatesRequest.Builder().apply(block).build())

/**
 * Lists all Source Servers or multiple Source Servers filtered by ID.
 */
public suspend inline fun DrsClient.describeSourceServers(crossinline block: DescribeSourceServersRequest.Builder.() -> Unit): DescribeSourceServersResponse = describeSourceServers(DescribeSourceServersRequest.Builder().apply(block).build())

/**
 * Disconnect a Recovery Instance from Elastic Disaster Recovery. Data replication is stopped immediately. All AWS resources created by Elastic Disaster Recovery for enabling the replication of the Recovery Instance will be terminated / deleted within 90 minutes. If the agent on the Recovery Instance has not been prevented from communicating with the Elastic Disaster Recovery service, then it will receive a command to uninstall itself (within approximately 10 minutes). The following properties of the Recovery Instance will be changed immediately: dataReplicationInfo.dataReplicationState will be set to DISCONNECTED; The totalStorageBytes property for each of dataReplicationInfo.replicatedDisks will be set to zero; dataReplicationInfo.lagDuration and dataReplicationInfo.lagDuration will be nullified.
 */
public suspend inline fun DrsClient.disconnectRecoveryInstance(crossinline block: DisconnectRecoveryInstanceRequest.Builder.() -> Unit): DisconnectRecoveryInstanceResponse = disconnectRecoveryInstance(DisconnectRecoveryInstanceRequest.Builder().apply(block).build())

/**
 * Disconnects a specific Source Server from Elastic Disaster Recovery. Data replication is stopped immediately. All AWS resources created by Elastic Disaster Recovery for enabling the replication of the Source Server will be terminated / deleted within 90 minutes. You cannot disconnect a Source Server if it has a Recovery Instance. If the agent on the Source Server has not been prevented from communicating with the Elastic Disaster Recovery service, then it will receive a command to uninstall itself (within approximately 10 minutes). The following properties of the SourceServer will be changed immediately: dataReplicationInfo.dataReplicationState will be set to DISCONNECTED; The totalStorageBytes property for each of dataReplicationInfo.replicatedDisks will be set to zero; dataReplicationInfo.lagDuration and dataReplicationInfo.lagDuration will be nullified.
 */
public suspend inline fun DrsClient.disconnectSourceServer(crossinline block: DisconnectSourceServerRequest.Builder.() -> Unit): DisconnectSourceServerResponse = disconnectSourceServer(DisconnectSourceServerRequest.Builder().apply(block).build())

/**
 * Lists all Failback ReplicationConfigurations, filtered by Recovery Instance ID.
 */
public suspend inline fun DrsClient.getFailbackReplicationConfiguration(crossinline block: GetFailbackReplicationConfigurationRequest.Builder.() -> Unit): GetFailbackReplicationConfigurationResponse = getFailbackReplicationConfiguration(GetFailbackReplicationConfigurationRequest.Builder().apply(block).build())

/**
 * Gets a LaunchConfiguration, filtered by Source Server IDs.
 */
public suspend inline fun DrsClient.getLaunchConfiguration(crossinline block: GetLaunchConfigurationRequest.Builder.() -> Unit): GetLaunchConfigurationResponse = getLaunchConfiguration(GetLaunchConfigurationRequest.Builder().apply(block).build())

/**
 * Gets a ReplicationConfiguration, filtered by Source Server ID.
 */
public suspend inline fun DrsClient.getReplicationConfiguration(crossinline block: GetReplicationConfigurationRequest.Builder.() -> Unit): GetReplicationConfigurationResponse = getReplicationConfiguration(GetReplicationConfigurationRequest.Builder().apply(block).build())

/**
 * Initialize Elastic Disaster Recovery.
 */
public suspend inline fun DrsClient.initializeService(crossinline block: InitializeServiceRequest.Builder.() -> Unit): InitializeServiceResponse = initializeService(InitializeServiceRequest.Builder().apply(block).build())

/**
 * Returns a list of source servers on a staging account that are extensible, which means that: a. The source server is not already extended into this Account. b. The source server on the Account we’re reading from is not an extension of another source server.
 */
public suspend inline fun DrsClient.listExtensibleSourceServers(crossinline block: ListExtensibleSourceServersRequest.Builder.() -> Unit): ListExtensibleSourceServersResponse = listExtensibleSourceServers(ListExtensibleSourceServersRequest.Builder().apply(block).build())

/**
 * Returns an array of staging accounts for existing extended source servers.
 */
public suspend inline fun DrsClient.listStagingAccounts(crossinline block: ListStagingAccountsRequest.Builder.() -> Unit): ListStagingAccountsResponse = listStagingAccounts(ListStagingAccountsRequest.Builder().apply(block).build())

/**
 * List all tags for your Elastic Disaster Recovery resources.
 */
public suspend inline fun DrsClient.listTagsForResource(crossinline block: ListTagsForResourceRequest.Builder.() -> Unit): ListTagsForResourceResponse = listTagsForResource(ListTagsForResourceRequest.Builder().apply(block).build())

/**
 * Causes the data replication initiation sequence to begin immediately upon next Handshake for the specified Source Server ID, regardless of when the previous initiation started. This command will work only if the Source Server is stalled or is in a DISCONNECTED or STOPPED state.
 */
public suspend inline fun DrsClient.retryDataReplication(crossinline block: RetryDataReplicationRequest.Builder.() -> Unit): RetryDataReplicationResponse = retryDataReplication(RetryDataReplicationRequest.Builder().apply(block).build())

/**
 * Start replication to origin / target region - applies only to protected instances that originated in EC2. For recovery instances on target region - starts replication back to origin region. For failback instances on origin region - starts replication to target region to re-protect them.
 */
public suspend inline fun DrsClient.reverseReplication(crossinline block: ReverseReplicationRequest.Builder.() -> Unit): ReverseReplicationResponse = reverseReplication(ReverseReplicationRequest.Builder().apply(block).build())

/**
 * Initiates a Job for launching the machine that is being failed back to from the specified Recovery Instance. This will run conversion on the failback client and will reboot your machine, thus completing the failback process.
 */
public suspend inline fun DrsClient.startFailbackLaunch(crossinline block: StartFailbackLaunchRequest.Builder.() -> Unit): StartFailbackLaunchResponse = startFailbackLaunch(StartFailbackLaunchRequest.Builder().apply(block).build())

/**
 * Launches Recovery Instances for the specified Source Servers. For each Source Server you may choose a point in time snapshot to launch from, or use an on demand snapshot.
 */
public suspend inline fun DrsClient.startRecovery(crossinline block: StartRecoveryRequest.Builder.() -> Unit): StartRecoveryResponse = startRecovery(StartRecoveryRequest.Builder().apply(block).build())

/**
 * Starts replication for a stopped Source Server. This action would make the Source Server protected again and restart billing for it.
 */
public suspend inline fun DrsClient.startReplication(crossinline block: StartReplicationRequest.Builder.() -> Unit): StartReplicationResponse = startReplication(StartReplicationRequest.Builder().apply(block).build())

/**
 * Stops the failback process for a specified Recovery Instance. This changes the Failback State of the Recovery Instance back to FAILBACK_NOT_STARTED.
 */
public suspend inline fun DrsClient.stopFailback(crossinline block: StopFailbackRequest.Builder.() -> Unit): StopFailbackResponse = stopFailback(StopFailbackRequest.Builder().apply(block).build())

/**
 * Stops replication for a Source Server. This action would make the Source Server unprotected, delete its existing snapshots and stop billing for it.
 */
public suspend inline fun DrsClient.stopReplication(crossinline block: StopReplicationRequest.Builder.() -> Unit): StopReplicationResponse = stopReplication(StopReplicationRequest.Builder().apply(block).build())

/**
 * Adds or overwrites only the specified tags for the specified Elastic Disaster Recovery resource or resources. When you specify an existing tag key, the value is overwritten with the new value. Each resource can have a maximum of 50 tags. Each tag consists of a key and optional value.
 */
public suspend inline fun DrsClient.tagResource(crossinline block: TagResourceRequest.Builder.() -> Unit): TagResourceResponse = tagResource(TagResourceRequest.Builder().apply(block).build())

/**
 * Initiates a Job for terminating the EC2 resources associated with the specified Recovery Instances, and then will delete the Recovery Instances from the Elastic Disaster Recovery service.
 */
public suspend inline fun DrsClient.terminateRecoveryInstances(crossinline block: TerminateRecoveryInstancesRequest.Builder.() -> Unit): TerminateRecoveryInstancesResponse = terminateRecoveryInstances(TerminateRecoveryInstancesRequest.Builder().apply(block).build())

/**
 * Deletes the specified set of tags from the specified set of Elastic Disaster Recovery resources.
 */
public suspend inline fun DrsClient.untagResource(crossinline block: UntagResourceRequest.Builder.() -> Unit): UntagResourceResponse = untagResource(UntagResourceRequest.Builder().apply(block).build())

/**
 * Allows you to update the failback replication configuration of a Recovery Instance by ID.
 */
public suspend inline fun DrsClient.updateFailbackReplicationConfiguration(crossinline block: UpdateFailbackReplicationConfigurationRequest.Builder.() -> Unit): UpdateFailbackReplicationConfigurationResponse = updateFailbackReplicationConfiguration(UpdateFailbackReplicationConfigurationRequest.Builder().apply(block).build())

/**
 * Updates a LaunchConfiguration by Source Server ID.
 */
public suspend inline fun DrsClient.updateLaunchConfiguration(crossinline block: UpdateLaunchConfigurationRequest.Builder.() -> Unit): UpdateLaunchConfigurationResponse = updateLaunchConfiguration(UpdateLaunchConfigurationRequest.Builder().apply(block).build())

/**
 * Allows you to update a ReplicationConfiguration by Source Server ID.
 */
public suspend inline fun DrsClient.updateReplicationConfiguration(crossinline block: UpdateReplicationConfigurationRequest.Builder.() -> Unit): UpdateReplicationConfigurationResponse = updateReplicationConfiguration(UpdateReplicationConfigurationRequest.Builder().apply(block).build())

/**
 * Updates a ReplicationConfigurationTemplate by ID.
 */
public suspend inline fun DrsClient.updateReplicationConfigurationTemplate(crossinline block: UpdateReplicationConfigurationTemplateRequest.Builder.() -> Unit): UpdateReplicationConfigurationTemplateResponse = updateReplicationConfigurationTemplate(UpdateReplicationConfigurationTemplateRequest.Builder().apply(block).build())




© 2015 - 2025 Weber Informatics LLC | Privacy Policy