@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 /
@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 /
@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 /
@optional {appId: str, forceStopAppReplication: bool, forceTerminateApp: bool}

@endpoint POST /
@optional {appId: str}

@endpoint POST /
@optional {appId: str}

@endpoint POST /
@required {appId: str}

@endpoint POST /
@required {replicationJobId: str}

@endpoint POST /

@endpoint POST /
@required {connectorId: str}

@endpoint POST /
@optional {appId: str, changesetFormat: str}
@returns(200) {s3Location: S3Location?{bucket: str?, key: str?}}

@endpoint POST /
@optional {appId: str, templateFormat: str}
@returns(200) {s3Location: S3Location?{bucket: str?, key: str?}}

@endpoint POST /
@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 /
@optional {appId: str}
@returns(200) {appId: str?, roleName: str?, autoLaunch: bool?, serverGroupLaunchConfigurations: [ServerGroupLaunchConfiguration]?}

@endpoint POST /
@optional {appId: str}
@returns(200) {serverGroupReplicationConfigurations: [ServerGroupReplicationConfiguration]?}

@endpoint POST /
@required {appId: str}
@returns(200) {appValidationConfigurations: [AppValidationConfiguration]?, serverGroupValidationConfigurations: [ServerGroupValidationConfiguration]?}

@endpoint POST /
@required {appId: str}
@returns(200) {validationOutputList: [ValidationOutput]?}

@endpoint POST /
@optional {nextToken: str, maxResults: int}
@returns(200) {connectorList: [Connector]?, nextToken: str?}

@endpoint POST /
@optional {replicationJobId: str, nextToken: str, maxResults: int}
@returns(200) {replicationJobList: [ReplicationJob]?, nextToken: str?}

@endpoint POST /
@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 /
@optional {nextToken: str, maxResults: int, vmServerAddressList: [VmServerAddress]}
@returns(200) {lastModifiedOn: str(timestamp)?, serverCatalogStatus: str?, serverList: [Server]?, nextToken: str?}

@endpoint POST /
@optional {roleName: str}

@endpoint POST /

@endpoint POST /
@optional {appId: str}

@endpoint POST /
@optional {appIds: [str], nextToken: str, maxResults: int}
@returns(200) {apps: [AppSummary]?, nextToken: str?}

@endpoint POST /
@required {appId: str}
@optional {notificationContext: NotificationContext}

@endpoint POST /
@optional {appId: str, roleName: str, autoLaunch: bool, serverGroupLaunchConfigurations: [ServerGroupLaunchConfiguration]}

@endpoint POST /
@optional {appId: str, serverGroupReplicationConfigurations: [ServerGroupReplicationConfiguration]}

@endpoint POST /
@required {appId: str}
@optional {appValidationConfigurations: [AppValidationConfiguration], serverGroupValidationConfigurations: [ServerGroupValidationConfiguration]}

@endpoint POST /
@optional {appId: str}

@endpoint POST /
@required {appId: str}
@optional {description: str}

@endpoint POST /
@required {replicationJobId: str}
@optional {description: str}
@returns(200) {replicationRunId: str?}

@endpoint POST /
@optional {appId: str}

@endpoint POST /
@optional {appId: str}

@endpoint POST /
@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 /
@required {replicationJobId: str}
@optional {frequency: int, nextReplicationRunStartTime: str(timestamp), licenseType: str, roleName: str, description: str, numberOfRecentAmisToKeep: int, encrypted: bool, kmsKeyId: str}

@end
