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.