AWS Application Discovery Service helps you plan application migration projects by automatically identifying servers,
virtual machines (VMs), software, and software dependencies running in your on-premises data centers. Application
Discovery Service also collects application performance data, which can help you assess the outcome of your
migration. The data collected by Application Discovery Service is securely retained in an AWS-hosted and managed
database in the cloud. You can export the data as a CSV or XML file into your preferred visualization tool or
cloud-migration solution to plan your migration. For more information, see AWS Application Discovery Service FAQ.

Application Discovery Service offers two modes of operation:

Agentless discovery mode is recommended for environments that use VMware vCenter Server. This mode doesn't
require you to install an agent on each host. Agentless discovery gathers server information regardless of the
operating systems, which minimizes the time required for initial on-premises infrastructure assessment. Agentless
discovery doesn't collect information about software and software dependencies. It also doesn't work in non-VMware
environments.

Agent-based discovery mode collects a richer set of data than agentless discovery by using the AWS Application
Discovery Agent, which you install on one or more hosts in your data center. The agent captures infrastructure and
application information, including an inventory of installed software applications, system and process performance,
resource utilization, and network dependencies between workloads. The information collected by agents is secured at
rest and in transit to the Application Discovery Service database in the cloud.

We recommend that you use agent-based discovery for non-VMware environments and to collect information about software
and software dependencies. You can also run agent-based and agentless discovery simultaneously. Use agentless
discovery to quickly complete the initial infrastructure assessment and then install agents on select hosts.

Application Discovery Service integrates with application discovery solutions from AWS Partner Network (APN)
partners. Third-party application discovery tools can query Application Discovery Service and write to the
Application Discovery Service database using a public API. You can then import the data into either a visualization
tool or cloud-migration solution.

Application Discovery Service doesn't gather sensitive information. All data is handled according to the AWS Privacy Policy. You can operate Application Discovery Service offline
to inspect collected data before it is shared with the service.

This API reference provides descriptions, syntax, and usage examples for each of the actions and data types for
Application Discovery Service. The topic for each action shows the API request parameters and the response.
Alternatively, you can use one of the AWS SDKs to access an API that is tailored to the programming language or
platform that you're using. For more information, see AWS SDKs.

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.

Overrides the default endpoint for this client ("https://discovery.us-west-2.amazonaws.com"). Callers can use
this method to control which AWS region they want to work with.

Callers can pass in just the endpoint (ex: "discovery.us-west-2.amazonaws.com") or a full URL, including the
protocol (ex: "https://discovery.us-west-2.amazonaws.com"). If the protocol is not specified here, the default
protocol from this client's ClientConfiguration will be used, which by default is HTTPS.

This method is not threadsafe. An endpoint should be configured when the client is created and before any
service requests are made. Changing it afterwards creates inevitable race conditions for any service requests in
transit or retrying.

Parameters:

endpoint - The endpoint (ex: "discovery.us-west-2.amazonaws.com") or a full URL, including the protocol (ex:
"https://discovery.us-west-2.amazonaws.com") of the region specific AWS endpoint this client will
communicate with.

setRegion

An alternative to setEndpoint(String), sets the regional endpoint for this
client's service calls. Callers can use this method to control which AWS region they want to work with.

By default, all service endpoints in all regions use the https protocol. To use http instead, specify it in the
ClientConfiguration supplied at construction.

This method is not threadsafe. A region should be configured when the client is created and before any service
requests are made. Changing it afterwards creates inevitable race conditions for any service requests in transit
or retrying.

batchDeleteImportData

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.

Parameters:

batchDeleteImportDataRequest -

Returns:

Result of the BatchDeleteImportData operation returned by the service.

Throws:

AuthorizationErrorException - The AWS user account does not have permission to perform the action. Check the IAM policy associated with
this account.

describeConfigurations

All of the supplied IDs must be for the same asset type from one of the following:

server

application

process

connection

Output fields are specific to the asset type specified. For example, the output for a server configuration
item includes a list of attributes about the server, such as host name, operating system, number of network
cards, etc.

exportConfigurations

Exports all discovered configuration data to an Amazon S3 bucket or an application that enables you to view and
evaluate the data. Data includes tags and tag associations, processes, connections, servers, and system
performance. This API returns an export ID that you can query using the DescribeExportConfigurations API.
The system imposes a limit of two configuration exports in six hours.

Parameters:

exportConfigurationsRequest -

Returns:

Result of the ExportConfigurations operation returned by the service.

Throws:

AuthorizationErrorException - The AWS user account does not have permission to perform the action. Check the IAM policy associated with
this account.

ResourceInUseException - This issue occurs when the same clientRequestToken is used with the
StartImportTask action, but with different parameters. For example, you use the same request
token but have two different import URLs, you can encounter this issue. If the import tasks are meant to
be different, use a different clientRequestToken, and try again.

startExportTask

If you specify agentIds in a filter, the task exports up to 72 hours of detailed data collected by
the identified Application Discovery Agent, including network, process, and performance details. A time range for
exported agent data may be set by using startTime and endTime. Export of detailed agent
data is limited to five concurrently running exports.

If you do not include an agentIds filter, summary data is exported that includes both AWS Agentless
Discovery Connector data and summary data from AWS Discovery Agents. Export of summary data is limited to two
exports per day.

Parameters:

startExportTaskRequest -

Returns:

Result of the StartExportTask operation returned by the service.

Throws:

AuthorizationErrorException - The AWS user account does not have permission to perform the action. Check the IAM policy associated with
this account.

startImportTask

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.

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.

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.

Parameters:

startImportTaskRequest -

Returns:

Result of the StartImportTask operation returned by the service.

Throws:

ResourceInUseException - This issue occurs when the same clientRequestToken is used with the
StartImportTask action, but with different parameters. For example, you use the same request
token but have two different import URLs, you can encounter this issue. If the import tasks are meant to
be different, use a different clientRequestToken, and try again.

AuthorizationErrorException - The AWS user account does not have permission to perform the action. Check the IAM policy associated with
this account.

ResourceInUseException - This issue occurs when the same clientRequestToken is used with the
StartImportTask action, but with different parameters. For example, you use the same request
token but have two different import URLs, you can encounter this issue. If the import tasks are meant to
be different, use a different clientRequestToken, and try again.

shutdown

void shutdown()

Shuts down this client object, releasing any resources that might be held open. This is an optional method, and
callers are not expected to call it, but can if they want to explicitly release any open resources. Once a client
has been shutdown, it should not be used to make any more requests.

getCachedResponseMetadata

Returns additional metadata for a previously executed successful request, typically used for debugging issues
where a service isn't acting as expected. This data isn't considered part of the result data returned by an
operation, so it's available through this separate, diagnostic interface.

Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic
information for an executed request, you should use this method to retrieve it as soon as possible after
executing a request.

Parameters:

request - The originally executed request.

Returns:

The response metadata for the specified request, or null if none is available.