@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Server Migration Service
@version 2016-10-24
@auth AWS SigV4
@endpoints 35
@hint download_for_search
@toc root(35)

@endpoint POST /
@desc Creates an application. An application consists of one or more server groups. Each server group contain one or more servers.
@optional {name: str, description: str, roleName: str, clientToken: str, serverGroups: [ServerGroup], tags: [Tag]}
@returns(200) {appSummary: AppSummary?{appId: str?, importedAppId: str?, name: str?, description: str?, status: str?, statusMessage: str?, replicationConfigurationStatus: str?, replicationStatus: str?, replicationStatusMessage: str?, latestReplicationTime: str(timestamp)?, launchConfigurationStatus: str?, launchStatus: str?, launchStatusMessage: str?, launchDetails: LaunchDetails?{latestLaunchTime: str(timestamp)?, stackName: str?, stackId: str?}, creationTime: str(timestamp)?, lastModified: str(timestamp)?, roleName: str?, totalServerGroups: int?, totalServers: int?}, serverGroups: [ServerGroup]?, tags: [Tag]?}

@endpoint POST /
@desc Creates a replication job. The replication job schedules periodic replication runs to replicate your server to Amazon Web Services. Each replication run creates an Amazon Machine Image (AMI).
@required {serverId: str, seedReplicationTime: str(timestamp)}
@optional {frequency: int, runOnce: bool, licenseType: str, roleName: str, description: str, numberOfRecentAmisToKeep: int, encrypted: bool, kmsKeyId: str}
@returns(200) {replicationJobId: str?}

@endpoint POST /
@desc Deletes the specified application. Optionally deletes the launched stack associated with the application and all Server Migration Service replication jobs for servers in the application.
@optional {appId: str, forceStopAppReplication: bool, forceTerminateApp: bool}

@endpoint POST /
@desc Deletes the launch configuration for the specified application.
@optional {appId: str}

@endpoint POST /
@desc Deletes the replication configuration for the specified application.
@optional {appId: str}

@endpoint POST /
@desc Deletes the validation configuration for the specified application.
@required {appId: str}

@endpoint POST /
@desc Deletes the specified replication job. After you delete a replication job, there are no further replication runs. Amazon Web Services deletes the contents of the Amazon S3 bucket used to store Server Migration Service artifacts. The AMIs created by the replication runs are not deleted.
@required {replicationJobId: str}

@endpoint POST /
@desc Deletes all servers from your server catalog.

@endpoint POST /
@desc Disassociates the specified connector from Server Migration Service. After you disassociate a connector, it is no longer available to support replication jobs.
@required {connectorId: str}

@endpoint POST /
@desc Generates a target change set for a currently launched stack and writes it to an Amazon S3 object in the customer’s Amazon S3 bucket.
@optional {appId: str, changesetFormat: str}
@returns(200) {s3Location: S3Location?{bucket: str?, key: str?}}

@endpoint POST /
@desc Generates an CloudFormation template based on the current launch configuration and writes it to an Amazon S3 object in the customer’s Amazon S3 bucket.
@optional {appId: str, templateFormat: str}
@returns(200) {s3Location: S3Location?{bucket: str?, key: str?}}

@endpoint POST /
@desc Retrieve information about the specified application.
@optional {appId: str}
@returns(200) {appSummary: AppSummary?{appId: str?, importedAppId: str?, name: str?, description: str?, status: str?, statusMessage: str?, replicationConfigurationStatus: str?, replicationStatus: str?, replicationStatusMessage: str?, latestReplicationTime: str(timestamp)?, launchConfigurationStatus: str?, launchStatus: str?, launchStatusMessage: str?, launchDetails: LaunchDetails?{latestLaunchTime: str(timestamp)?, stackName: str?, stackId: str?}, creationTime: str(timestamp)?, lastModified: str(timestamp)?, roleName: str?, totalServerGroups: int?, totalServers: int?}, serverGroups: [ServerGroup]?, tags: [Tag]?}

@endpoint POST /
@desc Retrieves the application launch configuration associated with the specified application.
@optional {appId: str}
@returns(200) {appId: str?, roleName: str?, autoLaunch: bool?, serverGroupLaunchConfigurations: [ServerGroupLaunchConfiguration]?}

@endpoint POST /
@desc Retrieves the application replication configuration associated with the specified application.
@optional {appId: str}
@returns(200) {serverGroupReplicationConfigurations: [ServerGroupReplicationConfiguration]?}

@endpoint POST /
@desc Retrieves information about a configuration for validating an application.
@required {appId: str}
@returns(200) {appValidationConfigurations: [AppValidationConfiguration]?, serverGroupValidationConfigurations: [ServerGroupValidationConfiguration]?}

@endpoint POST /
@desc Retrieves output from validating an application.
@required {appId: str}
@returns(200) {validationOutputList: [ValidationOutput]?}

@endpoint POST /
@desc Describes the connectors registered with the Server Migration Service.
@optional {nextToken: str, maxResults: int}
@returns(200) {connectorList: [Connector]?, nextToken: str?}

@endpoint POST /
@desc Describes the specified replication job or all of your replication jobs.
@optional {replicationJobId: str, nextToken: str, maxResults: int}
@returns(200) {replicationJobList: [ReplicationJob]?, nextToken: str?}

@endpoint POST /
@desc Describes the replication runs for the specified replication job.
@required {replicationJobId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {replicationJob: ReplicationJob?{replicationJobId: str?, serverId: str?, serverType: str?, vmServer: VmServer?{vmServerAddress: VmServerAddress?{vmManagerId: str?, vmId: str?}, vmName: str?, vmManagerName: str?, vmManagerType: str?, vmPath: str?}, seedReplicationTime: str(timestamp)?, frequency: int?, runOnce: bool?, nextReplicationRunStartTime: str(timestamp)?, licenseType: str?, roleName: str?, latestAmiId: str?, state: str?, statusMessage: str?, description: str?, numberOfRecentAmisToKeep: int?, encrypted: bool?, kmsKeyId: str?, replicationRunList: [ReplicationRun]?}, replicationRunList: [ReplicationRun]?, nextToken: str?}

@endpoint POST /
@desc Describes the servers in your server catalog. Before you can describe your servers, you must import them using ImportServerCatalog.
@optional {nextToken: str, maxResults: int, vmServerAddressList: [VmServerAddress]}
@returns(200) {lastModifiedOn: str(timestamp)?, serverCatalogStatus: str?, serverList: [Server]?, nextToken: str?}

@endpoint POST /
@desc Allows application import from Migration Hub.
@optional {roleName: str}

@endpoint POST /
@desc Gathers a complete list of on-premises servers. Connectors must be installed and monitoring all servers to import. This call returns immediately, but might take additional time to retrieve all the servers.

@endpoint POST /
@desc Launches the specified application as a stack in CloudFormation.
@optional {appId: str}

@endpoint POST /
@desc Retrieves summaries for all applications.
@optional {appIds: [str], nextToken: str, maxResults: int}
@returns(200) {apps: [AppSummary]?, nextToken: str?}

@endpoint POST /
@desc Provides information to Server Migration Service about whether application validation is successful.
@required {appId: str}
@optional {notificationContext: NotificationContext}

@endpoint POST /
@desc Creates or updates the launch configuration for the specified application.
@optional {appId: str, roleName: str, autoLaunch: bool, serverGroupLaunchConfigurations: [ServerGroupLaunchConfiguration]}

@endpoint POST /
@desc Creates or updates the replication configuration for the specified application.
@optional {appId: str, serverGroupReplicationConfigurations: [ServerGroupReplicationConfiguration]}

@endpoint POST /
@desc Creates or updates a validation configuration for the specified application.
@required {appId: str}
@optional {appValidationConfigurations: [AppValidationConfiguration], serverGroupValidationConfigurations: [ServerGroupValidationConfiguration]}

@endpoint POST /
@desc Starts replicating the specified application by creating replication jobs for each server in the application.
@optional {appId: str}

@endpoint POST /
@desc Starts an on-demand replication run for the specified application.
@required {appId: str}
@optional {description: str}

@endpoint POST /
@desc Starts an on-demand replication run for the specified replication job. This replication run starts immediately. This replication run is in addition to the ones already scheduled. There is a limit on the number of on-demand replications runs that you can request in a 24-hour period.
@required {replicationJobId: str}
@optional {description: str}
@returns(200) {replicationRunId: str?}

@endpoint POST /
@desc Stops replicating the specified application by deleting the replication job for each server in the application.
@optional {appId: str}

@endpoint POST /
@desc Terminates the stack for the specified application.
@optional {appId: str}

@endpoint POST /
@desc Updates the specified application.
@optional {appId: str, name: str, description: str, roleName: str, serverGroups: [ServerGroup], tags: [Tag]}
@returns(200) {appSummary: AppSummary?{appId: str?, importedAppId: str?, name: str?, description: str?, status: str?, statusMessage: str?, replicationConfigurationStatus: str?, replicationStatus: str?, replicationStatusMessage: str?, latestReplicationTime: str(timestamp)?, launchConfigurationStatus: str?, launchStatus: str?, launchStatusMessage: str?, launchDetails: LaunchDetails?{latestLaunchTime: str(timestamp)?, stackName: str?, stackId: str?}, creationTime: str(timestamp)?, lastModified: str(timestamp)?, roleName: str?, totalServerGroups: int?, totalServers: int?}, serverGroups: [ServerGroup]?, tags: [Tag]?}

@endpoint POST /
@desc Updates the specified settings for the specified replication job.
@required {replicationJobId: str}
@optional {frequency: int, nextReplicationRunStartTime: str(timestamp), licenseType: str, roleName: str, description: str, numberOfRecentAmisToKeep: int, encrypted: bool, kmsKeyId: str}

@end
