/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once /* Generic header includes */ #include #include #include #include #include #include #include #include #include /* End of generic header includes */ /* Service model headers required in MgnClient header */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* End of service model headers required in MgnClient header */ namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace mgn { using MgnClientConfiguration = Aws::Client::GenericClientConfiguration; using MgnEndpointProviderBase = Aws::mgn::Endpoint::MgnEndpointProviderBase; using MgnEndpointProvider = Aws::mgn::Endpoint::MgnEndpointProvider; namespace Model { /* Service model forward declarations required in MgnClient header */ class ArchiveApplicationRequest; class ArchiveWaveRequest; class AssociateApplicationsRequest; class AssociateSourceServersRequest; class ChangeServerLifeCycleStateRequest; class CreateApplicationRequest; class CreateLaunchConfigurationTemplateRequest; class CreateReplicationConfigurationTemplateRequest; class CreateWaveRequest; class DeleteApplicationRequest; class DeleteJobRequest; class DeleteLaunchConfigurationTemplateRequest; class DeleteReplicationConfigurationTemplateRequest; class DeleteSourceServerRequest; class DeleteVcenterClientRequest; class DeleteWaveRequest; class DescribeJobLogItemsRequest; class DescribeJobsRequest; class DescribeLaunchConfigurationTemplatesRequest; class DescribeReplicationConfigurationTemplatesRequest; class DescribeSourceServersRequest; class DescribeVcenterClientsRequest; class DisassociateApplicationsRequest; class DisassociateSourceServersRequest; class DisconnectFromServiceRequest; class FinalizeCutoverRequest; class GetLaunchConfigurationRequest; class GetReplicationConfigurationRequest; class InitializeServiceRequest; class ListApplicationsRequest; class ListExportErrorsRequest; class ListExportsRequest; class ListImportErrorsRequest; class ListImportsRequest; class ListManagedAccountsRequest; class ListSourceServerActionsRequest; class ListTagsForResourceRequest; class ListTemplateActionsRequest; class ListWavesRequest; class MarkAsArchivedRequest; class PauseReplicationRequest; class PutSourceServerActionRequest; class PutTemplateActionRequest; class RemoveSourceServerActionRequest; class RemoveTemplateActionRequest; class ResumeReplicationRequest; class RetryDataReplicationRequest; class StartCutoverRequest; class StartExportRequest; class StartImportRequest; class StartReplicationRequest; class StartTestRequest; class StopReplicationRequest; class TagResourceRequest; class TerminateTargetInstancesRequest; class UnarchiveApplicationRequest; class UnarchiveWaveRequest; class UntagResourceRequest; class UpdateApplicationRequest; class UpdateLaunchConfigurationRequest; class UpdateLaunchConfigurationTemplateRequest; class UpdateReplicationConfigurationRequest; class UpdateReplicationConfigurationTemplateRequest; class UpdateSourceServerReplicationTypeRequest; class UpdateWaveRequest; /* End of service model forward declarations required in MgnClient header */ /* Service model Outcome class definitions */ typedef Aws::Utils::Outcome ArchiveApplicationOutcome; typedef Aws::Utils::Outcome ArchiveWaveOutcome; typedef Aws::Utils::Outcome AssociateApplicationsOutcome; typedef Aws::Utils::Outcome AssociateSourceServersOutcome; typedef Aws::Utils::Outcome ChangeServerLifeCycleStateOutcome; typedef Aws::Utils::Outcome CreateApplicationOutcome; typedef Aws::Utils::Outcome CreateLaunchConfigurationTemplateOutcome; typedef Aws::Utils::Outcome CreateReplicationConfigurationTemplateOutcome; typedef Aws::Utils::Outcome CreateWaveOutcome; typedef Aws::Utils::Outcome DeleteApplicationOutcome; typedef Aws::Utils::Outcome DeleteJobOutcome; typedef Aws::Utils::Outcome DeleteLaunchConfigurationTemplateOutcome; typedef Aws::Utils::Outcome DeleteReplicationConfigurationTemplateOutcome; typedef Aws::Utils::Outcome DeleteSourceServerOutcome; typedef Aws::Utils::Outcome DeleteVcenterClientOutcome; typedef Aws::Utils::Outcome DeleteWaveOutcome; typedef Aws::Utils::Outcome DescribeJobLogItemsOutcome; typedef Aws::Utils::Outcome DescribeJobsOutcome; typedef Aws::Utils::Outcome DescribeLaunchConfigurationTemplatesOutcome; typedef Aws::Utils::Outcome DescribeReplicationConfigurationTemplatesOutcome; typedef Aws::Utils::Outcome DescribeSourceServersOutcome; typedef Aws::Utils::Outcome DescribeVcenterClientsOutcome; typedef Aws::Utils::Outcome DisassociateApplicationsOutcome; typedef Aws::Utils::Outcome DisassociateSourceServersOutcome; typedef Aws::Utils::Outcome DisconnectFromServiceOutcome; typedef Aws::Utils::Outcome FinalizeCutoverOutcome; typedef Aws::Utils::Outcome GetLaunchConfigurationOutcome; typedef Aws::Utils::Outcome GetReplicationConfigurationOutcome; typedef Aws::Utils::Outcome InitializeServiceOutcome; typedef Aws::Utils::Outcome ListApplicationsOutcome; typedef Aws::Utils::Outcome ListExportErrorsOutcome; typedef Aws::Utils::Outcome ListExportsOutcome; typedef Aws::Utils::Outcome ListImportErrorsOutcome; typedef Aws::Utils::Outcome ListImportsOutcome; typedef Aws::Utils::Outcome ListManagedAccountsOutcome; typedef Aws::Utils::Outcome ListSourceServerActionsOutcome; typedef Aws::Utils::Outcome ListTagsForResourceOutcome; typedef Aws::Utils::Outcome ListTemplateActionsOutcome; typedef Aws::Utils::Outcome ListWavesOutcome; typedef Aws::Utils::Outcome MarkAsArchivedOutcome; typedef Aws::Utils::Outcome PauseReplicationOutcome; typedef Aws::Utils::Outcome PutSourceServerActionOutcome; typedef Aws::Utils::Outcome PutTemplateActionOutcome; typedef Aws::Utils::Outcome RemoveSourceServerActionOutcome; typedef Aws::Utils::Outcome RemoveTemplateActionOutcome; typedef Aws::Utils::Outcome ResumeReplicationOutcome; typedef Aws::Utils::Outcome RetryDataReplicationOutcome; typedef Aws::Utils::Outcome StartCutoverOutcome; typedef Aws::Utils::Outcome StartExportOutcome; typedef Aws::Utils::Outcome StartImportOutcome; typedef Aws::Utils::Outcome StartReplicationOutcome; typedef Aws::Utils::Outcome StartTestOutcome; typedef Aws::Utils::Outcome StopReplicationOutcome; typedef Aws::Utils::Outcome TagResourceOutcome; typedef Aws::Utils::Outcome TerminateTargetInstancesOutcome; typedef Aws::Utils::Outcome UnarchiveApplicationOutcome; typedef Aws::Utils::Outcome UnarchiveWaveOutcome; typedef Aws::Utils::Outcome UntagResourceOutcome; typedef Aws::Utils::Outcome UpdateApplicationOutcome; typedef Aws::Utils::Outcome UpdateLaunchConfigurationOutcome; typedef Aws::Utils::Outcome UpdateLaunchConfigurationTemplateOutcome; typedef Aws::Utils::Outcome UpdateReplicationConfigurationOutcome; typedef Aws::Utils::Outcome UpdateReplicationConfigurationTemplateOutcome; typedef Aws::Utils::Outcome UpdateSourceServerReplicationTypeOutcome; typedef Aws::Utils::Outcome UpdateWaveOutcome; /* End of service model Outcome class definitions */ /* Service model Outcome callable definitions */ typedef std::future ArchiveApplicationOutcomeCallable; typedef std::future ArchiveWaveOutcomeCallable; typedef std::future AssociateApplicationsOutcomeCallable; typedef std::future AssociateSourceServersOutcomeCallable; typedef std::future ChangeServerLifeCycleStateOutcomeCallable; typedef std::future CreateApplicationOutcomeCallable; typedef std::future CreateLaunchConfigurationTemplateOutcomeCallable; typedef std::future CreateReplicationConfigurationTemplateOutcomeCallable; typedef std::future CreateWaveOutcomeCallable; typedef std::future DeleteApplicationOutcomeCallable; typedef std::future DeleteJobOutcomeCallable; typedef std::future DeleteLaunchConfigurationTemplateOutcomeCallable; typedef std::future DeleteReplicationConfigurationTemplateOutcomeCallable; typedef std::future DeleteSourceServerOutcomeCallable; typedef std::future DeleteVcenterClientOutcomeCallable; typedef std::future DeleteWaveOutcomeCallable; typedef std::future DescribeJobLogItemsOutcomeCallable; typedef std::future DescribeJobsOutcomeCallable; typedef std::future DescribeLaunchConfigurationTemplatesOutcomeCallable; typedef std::future DescribeReplicationConfigurationTemplatesOutcomeCallable; typedef std::future DescribeSourceServersOutcomeCallable; typedef std::future DescribeVcenterClientsOutcomeCallable; typedef std::future DisassociateApplicationsOutcomeCallable; typedef std::future DisassociateSourceServersOutcomeCallable; typedef std::future DisconnectFromServiceOutcomeCallable; typedef std::future FinalizeCutoverOutcomeCallable; typedef std::future GetLaunchConfigurationOutcomeCallable; typedef std::future GetReplicationConfigurationOutcomeCallable; typedef std::future InitializeServiceOutcomeCallable; typedef std::future ListApplicationsOutcomeCallable; typedef std::future ListExportErrorsOutcomeCallable; typedef std::future ListExportsOutcomeCallable; typedef std::future ListImportErrorsOutcomeCallable; typedef std::future ListImportsOutcomeCallable; typedef std::future ListManagedAccountsOutcomeCallable; typedef std::future ListSourceServerActionsOutcomeCallable; typedef std::future ListTagsForResourceOutcomeCallable; typedef std::future ListTemplateActionsOutcomeCallable; typedef std::future ListWavesOutcomeCallable; typedef std::future MarkAsArchivedOutcomeCallable; typedef std::future PauseReplicationOutcomeCallable; typedef std::future PutSourceServerActionOutcomeCallable; typedef std::future PutTemplateActionOutcomeCallable; typedef std::future RemoveSourceServerActionOutcomeCallable; typedef std::future RemoveTemplateActionOutcomeCallable; typedef std::future ResumeReplicationOutcomeCallable; typedef std::future RetryDataReplicationOutcomeCallable; typedef std::future StartCutoverOutcomeCallable; typedef std::future StartExportOutcomeCallable; typedef std::future StartImportOutcomeCallable; typedef std::future StartReplicationOutcomeCallable; typedef std::future StartTestOutcomeCallable; typedef std::future StopReplicationOutcomeCallable; typedef std::future TagResourceOutcomeCallable; typedef std::future TerminateTargetInstancesOutcomeCallable; typedef std::future UnarchiveApplicationOutcomeCallable; typedef std::future UnarchiveWaveOutcomeCallable; typedef std::future UntagResourceOutcomeCallable; typedef std::future UpdateApplicationOutcomeCallable; typedef std::future UpdateLaunchConfigurationOutcomeCallable; typedef std::future UpdateLaunchConfigurationTemplateOutcomeCallable; typedef std::future UpdateReplicationConfigurationOutcomeCallable; typedef std::future UpdateReplicationConfigurationTemplateOutcomeCallable; typedef std::future UpdateSourceServerReplicationTypeOutcomeCallable; typedef std::future UpdateWaveOutcomeCallable; /* End of service model Outcome callable definitions */ } // namespace Model class MgnClient; /* Service model async handlers definitions */ typedef std::function&) > ArchiveApplicationResponseReceivedHandler; typedef std::function&) > ArchiveWaveResponseReceivedHandler; typedef std::function&) > AssociateApplicationsResponseReceivedHandler; typedef std::function&) > AssociateSourceServersResponseReceivedHandler; typedef std::function&) > ChangeServerLifeCycleStateResponseReceivedHandler; typedef std::function&) > CreateApplicationResponseReceivedHandler; typedef std::function&) > CreateLaunchConfigurationTemplateResponseReceivedHandler; typedef std::function&) > CreateReplicationConfigurationTemplateResponseReceivedHandler; typedef std::function&) > CreateWaveResponseReceivedHandler; typedef std::function&) > DeleteApplicationResponseReceivedHandler; typedef std::function&) > DeleteJobResponseReceivedHandler; typedef std::function&) > DeleteLaunchConfigurationTemplateResponseReceivedHandler; typedef std::function&) > DeleteReplicationConfigurationTemplateResponseReceivedHandler; typedef std::function&) > DeleteSourceServerResponseReceivedHandler; typedef std::function&) > DeleteVcenterClientResponseReceivedHandler; typedef std::function&) > DeleteWaveResponseReceivedHandler; typedef std::function&) > DescribeJobLogItemsResponseReceivedHandler; typedef std::function&) > DescribeJobsResponseReceivedHandler; typedef std::function&) > DescribeLaunchConfigurationTemplatesResponseReceivedHandler; typedef std::function&) > DescribeReplicationConfigurationTemplatesResponseReceivedHandler; typedef std::function&) > DescribeSourceServersResponseReceivedHandler; typedef std::function&) > DescribeVcenterClientsResponseReceivedHandler; typedef std::function&) > DisassociateApplicationsResponseReceivedHandler; typedef std::function&) > DisassociateSourceServersResponseReceivedHandler; typedef std::function&) > DisconnectFromServiceResponseReceivedHandler; typedef std::function&) > FinalizeCutoverResponseReceivedHandler; typedef std::function&) > GetLaunchConfigurationResponseReceivedHandler; typedef std::function&) > GetReplicationConfigurationResponseReceivedHandler; typedef std::function&) > InitializeServiceResponseReceivedHandler; typedef std::function&) > ListApplicationsResponseReceivedHandler; typedef std::function&) > ListExportErrorsResponseReceivedHandler; typedef std::function&) > ListExportsResponseReceivedHandler; typedef std::function&) > ListImportErrorsResponseReceivedHandler; typedef std::function&) > ListImportsResponseReceivedHandler; typedef std::function&) > ListManagedAccountsResponseReceivedHandler; typedef std::function&) > ListSourceServerActionsResponseReceivedHandler; typedef std::function&) > ListTagsForResourceResponseReceivedHandler; typedef std::function&) > ListTemplateActionsResponseReceivedHandler; typedef std::function&) > ListWavesResponseReceivedHandler; typedef std::function&) > MarkAsArchivedResponseReceivedHandler; typedef std::function&) > PauseReplicationResponseReceivedHandler; typedef std::function&) > PutSourceServerActionResponseReceivedHandler; typedef std::function&) > PutTemplateActionResponseReceivedHandler; typedef std::function&) > RemoveSourceServerActionResponseReceivedHandler; typedef std::function&) > RemoveTemplateActionResponseReceivedHandler; typedef std::function&) > ResumeReplicationResponseReceivedHandler; typedef std::function&) > RetryDataReplicationResponseReceivedHandler; typedef std::function&) > StartCutoverResponseReceivedHandler; typedef std::function&) > StartExportResponseReceivedHandler; typedef std::function&) > StartImportResponseReceivedHandler; typedef std::function&) > StartReplicationResponseReceivedHandler; typedef std::function&) > StartTestResponseReceivedHandler; typedef std::function&) > StopReplicationResponseReceivedHandler; typedef std::function&) > TagResourceResponseReceivedHandler; typedef std::function&) > TerminateTargetInstancesResponseReceivedHandler; typedef std::function&) > UnarchiveApplicationResponseReceivedHandler; typedef std::function&) > UnarchiveWaveResponseReceivedHandler; typedef std::function&) > UntagResourceResponseReceivedHandler; typedef std::function&) > UpdateApplicationResponseReceivedHandler; typedef std::function&) > UpdateLaunchConfigurationResponseReceivedHandler; typedef std::function&) > UpdateLaunchConfigurationTemplateResponseReceivedHandler; typedef std::function&) > UpdateReplicationConfigurationResponseReceivedHandler; typedef std::function&) > UpdateReplicationConfigurationTemplateResponseReceivedHandler; typedef std::function&) > UpdateSourceServerReplicationTypeResponseReceivedHandler; typedef std::function&) > UpdateWaveResponseReceivedHandler; /* End of service model async handlers definitions */ } // namespace mgn } // namespace Aws