AWS Application Discovery Service

2019/04/18 - AWS Application Discovery Service - 3 updated api methods

Changes  The Application Discovery Service's DescribeImportTasks and BatchDeleteImportData APIs now return additional statuses for error reporting.

BatchDeleteImportData (updated) Link ¶
Changes (response)
{'errors': {'errorCode': ['OVER_LIMIT']}}

Deletes one or more import tasks, each identified by their import ID. Each import task has a number of records that can identify servers or applications.

AWS Application Discovery Service has built-in matching logic that will identify when discovered servers match existing entries that you've previously discovered, the information for the already-existing discovered server is updated. When you delete an import task that contains records that were used to match, the information in those matched records that comes from the deleted records will also be deleted.

See also: AWS API Documentation

Request Syntax

client.batch_delete_import_data(
    importTaskIds=[
        'string',
    ]
)
type importTaskIds

list

param importTaskIds

[REQUIRED]

The IDs for the import tasks that you want to delete.

  • (string) --

rtype

dict

returns

Response Syntax

{
    'errors': [
        {
            'importTaskId': 'string',
            'errorCode': 'NOT_FOUND'|'INTERNAL_SERVER_ERROR'|'OVER_LIMIT',
            'errorDescription': 'string'
        },
    ]
}

Response Structure

  • (dict) --

    • errors (list) --

      Error messages returned for each import task that you deleted as a response for this command.

      • (dict) --

        Error messages returned for each import task that you deleted as a response for this command.

        • importTaskId (string) --

          The unique import ID associated with the error that occurred.

        • errorCode (string) --

          The type of error that occurred for a specific import task.

        • errorDescription (string) --

          The description of the error that occurred for a specific import task.

DescribeImportTasks (updated) Link ¶
Changes (response)
{'tasks': {'status': ['INTERNAL_ERROR', 'IMPORT_COMPLETE_WITH_ERRORS']}}

Returns an array of import tasks for your account, including status information, times, IDs, the Amazon S3 Object URL for the import file, and more.

See also: AWS API Documentation

Request Syntax

client.describe_import_tasks(
    filters=[
        {
            'name': 'IMPORT_TASK_ID'|'STATUS'|'NAME',
            'values': [
                'string',
            ]
        },
    ],
    maxResults=123,
    nextToken='string'
)
type filters

list

param filters

An array of name-value pairs that you provide to filter the results for the DescribeImportTask request to a specific subset of results. Currently, wildcard values aren't supported for filters.

  • (dict) --

    A name-values pair of elements you can use to filter the results when querying your import tasks. Currently, wildcards are not supported for filters.

    Note

    When filtering by import status, all other filter values are ignored.

    • name (string) --

      The name, status, or import task ID for a specific import task.

    • values (list) --

      An array of strings that you can provide to match against a specific name, status, or import task ID to filter the results for your import task queries.

      • (string) --

type maxResults

integer

param maxResults

The maximum number of results that you want this request to return, up to 100.

type nextToken

string

param nextToken

The token to request a specific page of results.

rtype

dict

returns

Response Syntax

{
    'nextToken': 'string',
    'tasks': [
        {
            'importTaskId': 'string',
            'clientRequestToken': 'string',
            'name': 'string',
            'importUrl': 'string',
            'status': 'IMPORT_IN_PROGRESS'|'IMPORT_COMPLETE'|'IMPORT_COMPLETE_WITH_ERRORS'|'IMPORT_FAILED'|'IMPORT_FAILED_SERVER_LIMIT_EXCEEDED'|'IMPORT_FAILED_RECORD_LIMIT_EXCEEDED'|'DELETE_IN_PROGRESS'|'DELETE_COMPLETE'|'DELETE_FAILED'|'DELETE_FAILED_LIMIT_EXCEEDED'|'INTERNAL_ERROR',
            'importRequestTime': datetime(2015, 1, 1),
            'importCompletionTime': datetime(2015, 1, 1),
            'importDeletedTime': datetime(2015, 1, 1),
            'serverImportSuccess': 123,
            'serverImportFailure': 123,
            'applicationImportSuccess': 123,
            'applicationImportFailure': 123,
            'errorsAndFailedEntriesZip': 'string'
        },
    ]
}

Response Structure

  • (dict) --

    • nextToken (string) --

      The token to request the next page of results.

    • tasks (list) --

      A returned array of import tasks that match any applied filters, up to the specified number of maximum results.

      • (dict) --

        An array of information related to the import task request that includes status information, times, IDs, the Amazon S3 Object URL for the import file, and more.

        • importTaskId (string) --

          The unique ID for a specific import task. These IDs aren't globally unique, but they are unique within an AWS account.

        • clientRequestToken (string) --

          A unique token used to prevent the same import request from occurring more than once. If you didn't provide a token, a token was automatically generated when the import task request was sent.

        • name (string) --

          A descriptive name for an import task. You can use this name to filter future requests related to this import task, such as identifying applications and servers that were included in this import task. We recommend that you use a meaningful name for each import task.

        • importUrl (string) --

          The URL for your import file that you've uploaded to Amazon S3.

        • status (string) --

          The status of the import task. An import can have the status of IMPORT_COMPLETE and still have some records fail to import from the overall request. More information can be found in the downloadable archive defined in the errorsAndFailedEntriesZip field, or in the Migration Hub management console.

        • importRequestTime (datetime) --

          The time that the import task request was made, presented in the Unix time stamp format.

        • importCompletionTime (datetime) --

          The time that the import task request finished, presented in the Unix time stamp format.

        • importDeletedTime (datetime) --

          The time that the import task request was deleted, presented in the Unix time stamp format.

        • serverImportSuccess (integer) --

          The total number of server records in the import file that were successfully imported.

        • serverImportFailure (integer) --

          The total number of server records in the import file that failed to be imported.

        • applicationImportSuccess (integer) --

          The total number of application records in the import file that were successfully imported.

        • applicationImportFailure (integer) --

          The total number of application records in the import file that failed to be imported.

        • errorsAndFailedEntriesZip (string) --

          A link to a compressed archive folder (in the ZIP format) that contains an error log and a file of failed records. You can use these two files to quickly identify records that failed, why they failed, and correct those records. Afterward, you can upload the corrected file to your Amazon S3 bucket and create another import task request.

          This field also includes authorization information so you can confirm the authenticity of the compressed archive before you download it.

          If some records failed to be imported we recommend that you correct the records in the failed entries file and then imports that failed entries file. This prevents you from having to correct and update the larger original file and attempt importing it again.

StartImportTask (updated) Link ¶
Changes (response)
{'task': {'status': ['INTERNAL_ERROR', 'IMPORT_COMPLETE_WITH_ERRORS']}}

Starts an import task, which allows you to import details of your on-premises environment directly into AWS without having to use the Application Discovery Service (ADS) tools such as the Discovery Connector or Discovery Agent. This gives you the option to perform migration assessment and planning directly from your imported data, including the ability to group your devices as applications and track their migration status.

To start an import request, do this:

  • Download the specially formatted comma separated value (CSV) import template, which you can find here: https://s3-us-west-2.amazonaws.com/templates-7cffcf56-bd96-4b1c-b45b-a5b42f282e46/import_template.csv .

  • Fill out the template with your server and application data.

  • Upload your import file to an Amazon S3 bucket, and make a note of it's Object URL. Your import file must be in the CSV format.

  • Use the console or the StartImportTask command with the AWS CLI or one of the AWS SDKs to import the records from your file.

For more information, including step-by-step procedures, see Migration Hub Import in the AWS Application Discovery Service User Guide .

Note

There are limits to the number of import tasks you can create (and delete) in an AWS account. For more information, see AWS Application Discovery Service Limits in the AWS Application Discovery Service User Guide .

See also: AWS API Documentation

Request Syntax

client.start_import_task(
    clientRequestToken='string',
    name='string',
    importUrl='string'
)
type clientRequestToken

string

param clientRequestToken

Optional. A unique token that you can provide to prevent the same import request from occurring more than once. If you don't provide a token, a token is automatically generated.

Sending more than one StartImportTask request with the same client request token will return information about the original import task with that client request token.

This field is autopopulated if not provided.

type name

string

param name

[REQUIRED]

A descriptive name for this request. You can use this name to filter future requests related to this import task, such as identifying applications and servers that were included in this import task. We recommend that you use a meaningful name for each import task.

type importUrl

string

param importUrl

[REQUIRED]

The URL for your import file that you've uploaded to Amazon S3.

Note

If you're using the AWS CLI, this URL is structured as follows: s3://BucketName/ImportFileName.CSV

rtype

dict

returns

Response Syntax

{
    'task': {
        'importTaskId': 'string',
        'clientRequestToken': 'string',
        'name': 'string',
        'importUrl': 'string',
        'status': 'IMPORT_IN_PROGRESS'|'IMPORT_COMPLETE'|'IMPORT_COMPLETE_WITH_ERRORS'|'IMPORT_FAILED'|'IMPORT_FAILED_SERVER_LIMIT_EXCEEDED'|'IMPORT_FAILED_RECORD_LIMIT_EXCEEDED'|'DELETE_IN_PROGRESS'|'DELETE_COMPLETE'|'DELETE_FAILED'|'DELETE_FAILED_LIMIT_EXCEEDED'|'INTERNAL_ERROR',
        'importRequestTime': datetime(2015, 1, 1),
        'importCompletionTime': datetime(2015, 1, 1),
        'importDeletedTime': datetime(2015, 1, 1),
        'serverImportSuccess': 123,
        'serverImportFailure': 123,
        'applicationImportSuccess': 123,
        'applicationImportFailure': 123,
        'errorsAndFailedEntriesZip': 'string'
    }
}

Response Structure

  • (dict) --

    • task (dict) --

      An array of information related to the import task request including status information, times, IDs, the Amazon S3 Object URL for the import file, and more.

      • importTaskId (string) --

        The unique ID for a specific import task. These IDs aren't globally unique, but they are unique within an AWS account.

      • clientRequestToken (string) --

        A unique token used to prevent the same import request from occurring more than once. If you didn't provide a token, a token was automatically generated when the import task request was sent.

      • name (string) --

        A descriptive name for an import task. You can use this name to filter future requests related to this import task, such as identifying applications and servers that were included in this import task. We recommend that you use a meaningful name for each import task.

      • importUrl (string) --

        The URL for your import file that you've uploaded to Amazon S3.

      • status (string) --

        The status of the import task. An import can have the status of IMPORT_COMPLETE and still have some records fail to import from the overall request. More information can be found in the downloadable archive defined in the errorsAndFailedEntriesZip field, or in the Migration Hub management console.

      • importRequestTime (datetime) --

        The time that the import task request was made, presented in the Unix time stamp format.

      • importCompletionTime (datetime) --

        The time that the import task request finished, presented in the Unix time stamp format.

      • importDeletedTime (datetime) --

        The time that the import task request was deleted, presented in the Unix time stamp format.

      • serverImportSuccess (integer) --

        The total number of server records in the import file that were successfully imported.

      • serverImportFailure (integer) --

        The total number of server records in the import file that failed to be imported.

      • applicationImportSuccess (integer) --

        The total number of application records in the import file that were successfully imported.

      • applicationImportFailure (integer) --

        The total number of application records in the import file that failed to be imported.

      • errorsAndFailedEntriesZip (string) --

        A link to a compressed archive folder (in the ZIP format) that contains an error log and a file of failed records. You can use these two files to quickly identify records that failed, why they failed, and correct those records. Afterward, you can upload the corrected file to your Amazon S3 bucket and create another import task request.

        This field also includes authorization information so you can confirm the authenticity of the compressed archive before you download it.

        If some records failed to be imported we recommend that you correct the records in the failed entries file and then imports that failed entries file. This prevents you from having to correct and update the larger original file and attempt importing it again.