Migration Hub Strategy Recommendations

2023/03/02 - Migration Hub Strategy Recommendations - 4 updated api methods

Changes  This release updates the File Import API to allow importing servers already discovered by customers with reduced pre-requisites.

ListApplicationComponents (updated) Link ¶
Changes (request)
{'groupIdFilter': {'name': {'ExternalSourceType'}}}

Retrieves a list of all the application components (processes).

See also: AWS API Documentation

Request Syntax

client.list_application_components(
    applicationComponentCriteria='NOT_DEFINED'|'APP_NAME'|'SERVER_ID'|'APP_TYPE'|'STRATEGY'|'DESTINATION'|'ANALYSIS_STATUS'|'ERROR_CATEGORY',
    filterValue='string',
    groupIdFilter=[
        {
            'name': 'ExternalId'|'ExternalSourceType',
            'value': 'string'
        },
    ],
    maxResults=123,
    nextToken='string',
    sort='ASC'|'DESC'
)
type applicationComponentCriteria:

string

param applicationComponentCriteria:

Criteria for filtering the list of application components.

type filterValue:

string

param filterValue:

Specify the value based on the application component criteria type. For example, if applicationComponentCriteria is set to SERVER_ID and filterValue is set to server1, then ListApplicationComponents returns all the application components running on server1.

type groupIdFilter:

list

param groupIdFilter:

The group ID specified in to filter on.

  • (dict) --

    The object containing information about distinct imports or groups for Strategy Recommendations.

    • name (string) --

      The key of the specific import group.

    • value (string) --

      The value of the specific import group.

type maxResults:

integer

param maxResults:

The maximum number of items to include in the response. The maximum value is 100.

type nextToken:

string

param nextToken:

The token from a previous call that you use to retrieve the next set of results. For example, if a previous call to this action returned 100 items, but you set maxResults to 10. You'll receive a set of 10 results along with a token. You then use the returned token to retrieve the next set of 10.

type sort:

string

param sort:

Specifies whether to sort by ascending ( ASC) or descending ( DESC) order.

rtype:

dict

returns:

Response Syntax

{
    'applicationComponentInfos': [
        {
            'analysisStatus': 'ANALYSIS_TO_BE_SCHEDULED'|'ANALYSIS_STARTED'|'ANALYSIS_SUCCESS'|'ANALYSIS_FAILED'|'ANALYSIS_PARTIAL_SUCCESS'|'UNCONFIGURED'|'CONFIGURED',
            'antipatternReportS3Object': {
                's3Bucket': 'string',
                's3key': 'string'
            },
            'antipatternReportStatus': 'FAILED'|'IN_PROGRESS'|'SUCCESS',
            'antipatternReportStatusMessage': 'string',
            'appType': 'DotNetFramework'|'Java'|'SQLServer'|'IIS'|'Oracle'|'Other'|'Tomcat'|'JBoss'|'Spring'|'Mongo DB'|'DB2'|'Maria DB'|'MySQL'|'Sybase'|'PostgreSQLServer'|'Cassandra'|'IBM WebSphere'|'Oracle WebLogic'|'Visual Basic'|'Unknown'|'DotnetCore'|'Dotnet',
            'appUnitError': {
                'appUnitErrorCategory': 'CREDENTIAL_ERROR'|'CONNECTIVITY_ERROR'|'PERMISSION_ERROR'|'UNSUPPORTED_ERROR'|'OTHER_ERROR'
            },
            'associatedServerId': 'string',
            'databaseConfigDetail': {
                'secretName': 'string'
            },
            'id': 'string',
            'inclusionStatus': 'excludeFromAssessment'|'includeInAssessment',
            'lastAnalyzedTimestamp': datetime(2015, 1, 1),
            'listAntipatternSeveritySummary': [
                {
                    'count': 123,
                    'severity': 'HIGH'|'MEDIUM'|'LOW'
                },
            ],
            'moreServerAssociationExists': True|False,
            'name': 'string',
            'osDriver': 'string',
            'osVersion': 'string',
            'recommendationSet': {
                'strategy': 'Rehost'|'Retirement'|'Refactor'|'Replatform'|'Retain'|'Relocate'|'Repurchase',
                'targetDestination': 'None specified'|'AWS Elastic BeanStalk'|'AWS Fargate'|'Amazon Elastic Cloud Compute (EC2)'|'Amazon Elastic Container Service (ECS)'|'Amazon Elastic Kubernetes Service (EKS)'|'Aurora MySQL'|'Aurora PostgreSQL'|'Amazon Relational Database Service on MySQL'|'Amazon Relational Database Service on PostgreSQL'|'Amazon DocumentDB'|'Amazon DynamoDB'|'Amazon Relational Database Service'|'Babelfish for Aurora PostgreSQL',
                'transformationTool': {
                    'description': 'string',
                    'name': 'App2Container'|'Porting Assistant For .NET'|'End of Support Migration'|'Windows Web Application Migration Assistant'|'Application Migration Service'|'Strategy Recommendation Support'|'In Place Operating System Upgrade'|'Schema Conversion Tool'|'Database Migration Service'|'Native SQL Server Backup/Restore',
                    'tranformationToolInstallationLink': 'string'
                }
            },
            'resourceSubType': 'Database'|'Process'|'DatabaseProcess',
            'runtimeStatus': 'ANALYSIS_TO_BE_SCHEDULED'|'ANALYSIS_STARTED'|'ANALYSIS_SUCCESS'|'ANALYSIS_FAILED',
            'runtimeStatusMessage': 'string',
            'sourceCodeRepositories': [
                {
                    'branch': 'string',
                    'projectName': 'string',
                    'repository': 'string',
                    'versionControlType': 'string'
                },
            ],
            'statusMessage': 'string'
        },
    ],
    'nextToken': 'string'
}

Response Structure

  • (dict) --

    • applicationComponentInfos (list) --

      The list of application components with detailed information about each component.

      • (dict) --

        Contains detailed information about an application component.

        • analysisStatus (string) --

          The status of analysis, if the application component has source code or an associated database.

        • antipatternReportS3Object (dict) --

          The S3 bucket name and the Amazon S3 key name for the anti-pattern report.

          • s3Bucket (string) --

            The S3 bucket name.

          • s3key (string) --

            The Amazon S3 key name.

        • antipatternReportStatus (string) --

          The status of the anti-pattern report generation.

        • antipatternReportStatusMessage (string) --

          The status message for the anti-pattern.

        • appType (string) --

          The type of application component.

        • appUnitError (dict) --

          The error in the analysis of the source code or database.

          • appUnitErrorCategory (string) --

            The category of the error.

        • associatedServerId (string) --

          The ID of the server that the application component is running on.

        • databaseConfigDetail (dict) --

          Configuration details for the database associated with the application component.

          • secretName (string) --

            AWS Secrets Manager key that holds the credentials that you use to connect to a database.

        • id (string) --

          The ID of the application component.

        • inclusionStatus (string) --

          Indicates whether the application component has been included for server recommendation or not.

        • lastAnalyzedTimestamp (datetime) --

          The timestamp of when the application component was assessed.

        • listAntipatternSeveritySummary (list) --

          A list of anti-pattern severity summaries.

          • (dict) --

            Contains the summary of anti-patterns and their severity.

            • count (integer) --

              Contains the count of anti-patterns.

            • severity (string) --

              Contains the severity of anti-patterns.

        • moreServerAssociationExists (boolean) --

          Set to true if the application component is running on multiple servers.

        • name (string) --

          The name of application component.

        • osDriver (string) --

          OS driver.

        • osVersion (string) --

          OS version.

        • recommendationSet (dict) --

          The top recommendation set for the application component.

          • strategy (string) --

            The recommended strategy.

          • targetDestination (string) --

            The recommended target destination.

          • transformationTool (dict) --

            The target destination for the recommendation set.

            • description (string) --

              Description of the tool.

            • name (string) --

              Name of the tool.

            • tranformationToolInstallationLink (string) --

              URL for installing the tool.

        • resourceSubType (string) --

          The application component subtype.

        • runtimeStatus (string) --

          The status of the application unit.

        • runtimeStatusMessage (string) --

          The status message for the application unit.

        • sourceCodeRepositories (list) --

          Details about the source code repository associated with the application component.

          • (dict) --

            Object containing source code information that is linked to an application component.

            • branch (string) --

              The branch of the source code.

            • projectName (string) --

              The name of the project.

            • repository (string) --

              The repository name for the source code.

            • versionControlType (string) --

              The type of repository to use for the source code.

        • statusMessage (string) --

          A detailed description of the analysis status and any failure message.

    • nextToken (string) --

      The token you use to retrieve the next set of results, or null if there are no more results.

ListServers (updated) Link ¶
Changes (request)
{'groupIdFilter': {'name': {'ExternalSourceType'}}}

Returns a list of all the servers.

See also: AWS API Documentation

Request Syntax

client.list_servers(
    filterValue='string',
    groupIdFilter=[
        {
            'name': 'ExternalId'|'ExternalSourceType',
            'value': 'string'
        },
    ],
    maxResults=123,
    nextToken='string',
    serverCriteria='NOT_DEFINED'|'OS_NAME'|'STRATEGY'|'DESTINATION'|'SERVER_ID'|'ANALYSIS_STATUS'|'ERROR_CATEGORY',
    sort='ASC'|'DESC'
)
type filterValue:

string

param filterValue:

Specifies the filter value, which is based on the type of server criteria. For example, if serverCriteria is OS_NAME, and the filterValue is equal to WindowsServer, then ListServers returns all of the servers matching the OS name WindowsServer.

type groupIdFilter:

list

param groupIdFilter:

Specifies the group ID to filter on.

  • (dict) --

    The object containing information about distinct imports or groups for Strategy Recommendations.

    • name (string) --

      The key of the specific import group.

    • value (string) --

      The value of the specific import group.

type maxResults:

integer

param maxResults:

The maximum number of items to include in the response. The maximum value is 100.

type nextToken:

string

param nextToken:

The token from a previous call that you use to retrieve the next set of results. For example, if a previous call to this action returned 100 items, but you set maxResults to 10. You'll receive a set of 10 results along with a token. You then use the returned token to retrieve the next set of 10.

type serverCriteria:

string

param serverCriteria:

Criteria for filtering servers.

type sort:

string

param sort:

Specifies whether to sort by ascending ( ASC) or descending ( DESC) order.

rtype:

dict

returns:

Response Syntax

{
    'nextToken': 'string',
    'serverInfos': [
        {
            'antipatternReportS3Object': {
                's3Bucket': 'string',
                's3key': 'string'
            },
            'antipatternReportStatus': 'FAILED'|'IN_PROGRESS'|'SUCCESS',
            'antipatternReportStatusMessage': 'string',
            'applicationComponentStrategySummary': [
                {
                    'count': 123,
                    'strategy': 'Rehost'|'Retirement'|'Refactor'|'Replatform'|'Retain'|'Relocate'|'Repurchase'
                },
            ],
            'dataCollectionStatus': 'dataCollectionTaskToBeScheduled'|'dataCollectionTaskScheduled'|'dataCollectionTaskStarted'|'dataCollectionTaskStopped'|'dataCollectionTaskSuccess'|'dataCollectionTaskFailed'|'dataCollectionTaskPartialSuccess',
            'id': 'string',
            'lastAnalyzedTimestamp': datetime(2015, 1, 1),
            'listAntipatternSeveritySummary': [
                {
                    'count': 123,
                    'severity': 'HIGH'|'MEDIUM'|'LOW'
                },
            ],
            'name': 'string',
            'recommendationSet': {
                'strategy': 'Rehost'|'Retirement'|'Refactor'|'Replatform'|'Retain'|'Relocate'|'Repurchase',
                'targetDestination': 'None specified'|'AWS Elastic BeanStalk'|'AWS Fargate'|'Amazon Elastic Cloud Compute (EC2)'|'Amazon Elastic Container Service (ECS)'|'Amazon Elastic Kubernetes Service (EKS)'|'Aurora MySQL'|'Aurora PostgreSQL'|'Amazon Relational Database Service on MySQL'|'Amazon Relational Database Service on PostgreSQL'|'Amazon DocumentDB'|'Amazon DynamoDB'|'Amazon Relational Database Service'|'Babelfish for Aurora PostgreSQL',
                'transformationTool': {
                    'description': 'string',
                    'name': 'App2Container'|'Porting Assistant For .NET'|'End of Support Migration'|'Windows Web Application Migration Assistant'|'Application Migration Service'|'Strategy Recommendation Support'|'In Place Operating System Upgrade'|'Schema Conversion Tool'|'Database Migration Service'|'Native SQL Server Backup/Restore',
                    'tranformationToolInstallationLink': 'string'
                }
            },
            'serverError': {
                'serverErrorCategory': 'CONNECTIVITY_ERROR'|'CREDENTIAL_ERROR'|'PERMISSION_ERROR'|'ARCHITECTURE_ERROR'|'OTHER_ERROR'
            },
            'serverType': 'string',
            'statusMessage': 'string',
            'systemInfo': {
                'cpuArchitecture': 'string',
                'fileSystemType': 'string',
                'networkInfoList': [
                    {
                        'interfaceName': 'string',
                        'ipAddress': 'string',
                        'macAddress': 'string',
                        'netMask': 'string'
                    },
                ],
                'osInfo': {
                    'type': 'LINUX'|'WINDOWS',
                    'version': 'string'
                }
            }
        },
    ]
}

Response Structure

  • (dict) --

    • nextToken (string) --

      The token you use to retrieve the next set of results, or null if there are no more results.

    • serverInfos (list) --

      The list of servers with detailed information about each server.

      • (dict) --

        Detailed information about a server.

        • antipatternReportS3Object (dict) --

          The S3 bucket name and Amazon S3 key name for anti-pattern report.

          • s3Bucket (string) --

            The S3 bucket name.

          • s3key (string) --

            The Amazon S3 key name.

        • antipatternReportStatus (string) --

          The status of the anti-pattern report generation.

        • antipatternReportStatusMessage (string) --

          A message about the status of the anti-pattern report generation.

        • applicationComponentStrategySummary (list) --

          A list of strategy summaries.

          • (dict) --

            Object containing the summary of the strategy recommendations.

            • count (integer) --

              The count of recommendations per strategy.

            • strategy (string) --

              The name of recommended strategy.

        • dataCollectionStatus (string) --

          The status of assessment for the server.

        • id (string) --

          The server ID.

        • lastAnalyzedTimestamp (datetime) --

          The timestamp of when the server was assessed.

        • listAntipatternSeveritySummary (list) --

          A list of anti-pattern severity summaries.

          • (dict) --

            Contains the summary of anti-patterns and their severity.

            • count (integer) --

              Contains the count of anti-patterns.

            • severity (string) --

              Contains the severity of anti-patterns.

        • name (string) --

          The name of the server.

        • recommendationSet (dict) --

          A set of recommendations.

          • strategy (string) --

            The recommended strategy.

          • targetDestination (string) --

            The recommended target destination.

          • transformationTool (dict) --

            The target destination for the recommendation set.

            • description (string) --

              Description of the tool.

            • name (string) --

              Name of the tool.

            • tranformationToolInstallationLink (string) --

              URL for installing the tool.

        • serverError (dict) --

          The error in server analysis.

          • serverErrorCategory (string) --

            The error category of server analysis.

        • serverType (string) --

          The type of server.

        • statusMessage (string) --

          A message about the status of data collection, which contains detailed descriptions of any error messages.

        • systemInfo (dict) --

          System information about the server.

          • cpuArchitecture (string) --

            CPU architecture type for the server.

          • fileSystemType (string) --

            File system type for the server.

          • networkInfoList (list) --

            Networking information related to a server.

            • (dict) --

              Information about the server's network for which the assessment was run.

              • interfaceName (string) --

                Information about the name of the interface of the server for which the assessment was run.

              • ipAddress (string) --

                Information about the IP address of the server for which the assessment was run.

              • macAddress (string) --

                Information about the MAC address of the server for which the assessment was run.

              • netMask (string) --

                Information about the subnet mask of the server for which the assessment was run.

          • osInfo (dict) --

            Operating system corresponding to a server.

            • type (string) --

              Information about the type of operating system.

            • version (string) --

              Information about the version of operating system.

StartImportFileTask (updated) Link ¶
Changes (request)
{'dataSourceType': {'Import'}, 'groupId': {'name': {'ExternalSourceType'}}}

Starts a file import.

See also: AWS API Documentation

Request Syntax

client.start_import_file_task(
    S3Bucket='string',
    dataSourceType='ApplicationDiscoveryService'|'MPA'|'Import',
    groupId=[
        {
            'name': 'ExternalId'|'ExternalSourceType',
            'value': 'string'
        },
    ],
    name='string',
    s3bucketForReportData='string',
    s3key='string'
)
type S3Bucket:

string

param S3Bucket:

[REQUIRED]

The S3 bucket where the import file is located. The bucket name is required to begin with migrationhub-strategy-.

type dataSourceType:

string

param dataSourceType:

Specifies the source that the servers are coming from. By default, Strategy Recommendations assumes that the servers specified in the import file are available in AWS Application Discovery Service.

type groupId:

list

param groupId:

Groups the resources in the import file together with a unique name. This ID can be as filter in ListApplicationComponents and ListServers.

  • (dict) --

    The object containing information about distinct imports or groups for Strategy Recommendations.

    • name (string) --

      The key of the specific import group.

    • value (string) --

      The value of the specific import group.

type name:

string

param name:

[REQUIRED]

A descriptive name for the request.

type s3bucketForReportData:

string

param s3bucketForReportData:

The S3 bucket where Strategy Recommendations uploads import results. The bucket name is required to begin with migrationhub-strategy-.

type s3key:

string

param s3key:

[REQUIRED]

The Amazon S3 key name of the import file.

rtype:

dict

returns:

Response Syntax

{
    'id': 'string'
}

Response Structure

  • (dict) --

    • id (string) --

      The ID for a specific import task. The ID is unique within an AWS account.

StartRecommendationReportGeneration (updated) Link ¶
Changes (request)
{'groupIdFilter': {'name': {'ExternalSourceType'}}}

Starts generating a recommendation report.

See also: AWS API Documentation

Request Syntax

client.start_recommendation_report_generation(
    groupIdFilter=[
        {
            'name': 'ExternalId'|'ExternalSourceType',
            'value': 'string'
        },
    ],
    outputFormat='Excel'|'Json'
)
type groupIdFilter:

list

param groupIdFilter:

Groups the resources in the recommendation report with a unique name.

  • (dict) --

    The object containing information about distinct imports or groups for Strategy Recommendations.

    • name (string) --

      The key of the specific import group.

    • value (string) --

      The value of the specific import group.

type outputFormat:

string

param outputFormat:

The output format for the recommendation report file. The default format is Microsoft Excel.

rtype:

dict

returns:

Response Syntax

{
    'id': 'string'
}

Response Structure

  • (dict) --

    • id (string) --

      The ID of the recommendation report generation task.