export interface CreatedArtifact {
    /** An ARN that uniquely identifies the result of a migration task. */
    Name: string;
    /** A description that can be free-form text to record additional detail about the artifact for clarity or for later reference. */
    Description?: string;
}
export interface DiscoveredResource {
    /** The configurationId in Application Discovery Service that uniquely identifies the on-premise resource. */
    ConfigurationId: string;
    /** A description that can be free-form text to record additional detail about the discovered resource for clarity or later reference. */
    Description?: string;
}
export interface SourceResource {
    /** This is the name that you want to use to identify the resource. If the resource is an AWS resource, we recommend that you set this parameter to the ARN of the resource. */
    Name: string;
    /** A description that can be free-form text to record additional detail about the resource for clarity or later reference. */
    Description?: string;
    /** A free-form description of the status of the resource. */
    StatusDetail?: string;
}
export interface Task {
    /** Status of the task - Not Started, In-Progress, Complete. */
    Status: 'NOT_STARTED' | 'IN_PROGRESS' | 'FAILED' | 'COMPLETED';
    /** Details of task status as notified by a migration tool. A tool might use this field to provide clarifying information about the status that is unique to that tool or that explains an error state. */
    StatusDetail?: string;
    /** Indication of the percentage completion of the task. */
    ProgressPercent?: number;
}
export interface ResourceAttribute {
    /** Type of resource. */
    Type: 'IPV4_ADDRESS' | 'IPV6_ADDRESS' | 'MAC_ADDRESS' | 'FQDN' | 'VM_MANAGER_ID' | 'VM_MANAGED_OBJECT_REFERENCE' | 'VM_NAME' | 'VM_PATH' | 'BIOS_ID' | 'MOTHERBOARD_SERIAL_NUMBER';
    /** Value of the resource type. */
    Value: string;
}
export interface AssociateCreatedArtifactInput {
    /** An ARN of the AWS resource related to the migration (e.g., AMI, EC2 instance, RDS instance, etc.) */
    CreatedArtifact: CreatedArtifact;
    /** Unique identifier that references the migration task. Do not store personal data in this field. */
    MigrationTaskName: string;
    /** The name of the ProgressUpdateStream. */
    ProgressUpdateStream: string;
    /** Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. */
    DryRun?: boolean;
}
export interface AssociateDiscoveredResourceInput {
    /** Object representing a Resource. */
    DiscoveredResource: DiscoveredResource;
    /** The identifier given to the MigrationTask. Do not store personal data in this field. */
    MigrationTaskName: string;
    /** The name of the ProgressUpdateStream. */
    ProgressUpdateStream: string;
    /** Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. */
    DryRun?: boolean;
}
export interface AssociateSourceResourceInput {
    /** A unique identifier that references the migration task. Do not include sensitive data in this field. */
    MigrationTaskName: string;
    /** The name of the progress-update stream, which is used for access control as well as a namespace for migration-task names that is implicitly linked to your AWS account. The progress-update stream must  */
    ProgressUpdateStream: string;
    /** The source resource that you want to associate. */
    SourceResource: SourceResource;
    /** This is an optional parameter that you can use to test whether the call will succeed. Set this parameter to true to verify that you have the permissions that are required to make the call, and that yo */
    DryRun?: boolean;
}
export interface CreateProgressUpdateStreamInput {
    /** The name of the ProgressUpdateStream. Do not store personal data in this field. */
    ProgressUpdateStreamName: string;
    /** Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. */
    DryRun?: boolean;
}
export interface DeleteProgressUpdateStreamInput {
    /** The name of the ProgressUpdateStream. Do not store personal data in this field. */
    ProgressUpdateStreamName: string;
    /** Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. */
    DryRun?: boolean;
}
export interface DescribeApplicationStateInput {
    /** The configurationId in Application Discovery Service that uniquely identifies the grouped application. */
    ApplicationId: string;
}
export interface DescribeMigrationTaskInput {
    /** The identifier given to the MigrationTask. Do not store personal data in this field. */
    MigrationTaskName: string;
    /** The name of the ProgressUpdateStream. */
    ProgressUpdateStream: string;
}
export interface DisassociateCreatedArtifactInput {
    /** An ARN of the AWS resource related to the migration (e.g., AMI, EC2 instance, RDS instance, etc.) */
    CreatedArtifactName: string;
    /** Unique identifier that references the migration task to be disassociated with the artifact. Do not store personal data in this field. */
    MigrationTaskName: string;
    /** The name of the ProgressUpdateStream. */
    ProgressUpdateStream: string;
    /** Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. */
    DryRun?: boolean;
}
export interface DisassociateDiscoveredResourceInput {
    /** ConfigurationId of the Application Discovery Service resource to be disassociated. */
    ConfigurationId: string;
    /** The identifier given to the MigrationTask. Do not store personal data in this field. */
    MigrationTaskName: string;
    /** The name of the ProgressUpdateStream. */
    ProgressUpdateStream: string;
    /** Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. */
    DryRun?: boolean;
}
export interface DisassociateSourceResourceInput {
    /** A unique identifier that references the migration task. Do not include sensitive data in this field. */
    MigrationTaskName: string;
    /** The name of the progress-update stream, which is used for access control as well as a namespace for migration-task names that is implicitly linked to your AWS account. The progress-update stream must  */
    ProgressUpdateStream: string;
    /** The name that was specified for the source resource. */
    SourceResourceName: string;
    /** This is an optional parameter that you can use to test whether the call will succeed. Set this parameter to true to verify that you have the permissions that are required to make the call, and that yo */
    DryRun?: boolean;
}
export interface ImportMigrationTaskInput {
    /** Unique identifier that references the migration task. Do not store personal data in this field. */
    MigrationTaskName: string;
    /** The name of the ProgressUpdateStream. > */
    ProgressUpdateStream: string;
    /** Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. */
    DryRun?: boolean;
}
export interface ListApplicationStatesInput {
    /** The configurationIds from the Application Discovery Service that uniquely identifies your applications. */
    ApplicationIds?: string[];
    /** Maximum number of results to be returned per page. */
    MaxResults?: number;
    /** If a NextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in NextToken. */
    NextToken?: string;
}
export interface ListCreatedArtifactsInput {
    /** Unique identifier that references the migration task. Do not store personal data in this field. */
    MigrationTaskName: string;
    /** The name of the ProgressUpdateStream. */
    ProgressUpdateStream: string;
    /** Maximum number of results to be returned per page. */
    MaxResults?: number;
    /** If a NextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in NextToken. */
    NextToken?: string;
}
export interface ListDiscoveredResourcesInput {
    /** The name of the MigrationTask. Do not store personal data in this field. */
    MigrationTaskName: string;
    /** The name of the ProgressUpdateStream. */
    ProgressUpdateStream: string;
    /** The maximum number of results returned per page. */
    MaxResults?: number;
    /** If a NextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in NextToken. */
    NextToken?: string;
}
export interface ListMigrationTasksInput {
    /** Value to specify how many results are returned per page. */
    MaxResults?: number;
    /** If a NextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in NextToken. */
    NextToken?: string;
    /** Filter migration tasks by discovered resource name. */
    ResourceName?: string;
}
export interface ListMigrationTaskUpdatesInput {
    /** A unique identifier that references the migration task. Do not include sensitive data in this field. */
    MigrationTaskName: string;
    /** The name of the progress-update stream, which is used for access control as well as a namespace for migration-task names that is implicitly linked to your AWS account. The progress-update stream must  */
    ProgressUpdateStream: string;
    /** The maximum number of results to include in the response. If more results exist than the value that you specify here for MaxResults, the response will include a token that you can use to retrieve the  */
    MaxResults?: number;
    /** If NextToken was returned by a previous call, there are more results available. The value of NextToken is a unique pagination token for each page. To retrieve the next page of results, specify the Nex */
    NextToken?: string;
}
export interface ListProgressUpdateStreamsInput {
    /** Filter to limit the maximum number of results to list per page. */
    MaxResults?: number;
    /** If a NextToken was returned by a previous call, there are more results available. To retrieve the next page of results, make the call again using the returned token in NextToken. */
    NextToken?: string;
}
export interface ListSourceResourcesInput {
    /** A unique identifier that references the migration task. Do not store confidential data in this field. */
    MigrationTaskName: string;
    /** The name of the progress-update stream, which is used for access control as well as a namespace for migration-task names that is implicitly linked to your AWS account. The progress-update stream must  */
    ProgressUpdateStream: string;
    /** The maximum number of results to include in the response. If more results exist than the value that you specify here for MaxResults, the response will include a token that you can use to retrieve the  */
    MaxResults?: number;
    /** If NextToken was returned by a previous call, there are more results available. The value of NextToken is a unique pagination token for each page. To retrieve the next page of results, specify the Nex */
    NextToken?: string;
}
export interface NotifyApplicationStateInput {
    /** The configurationId in Application Discovery Service that uniquely identifies the grouped application. */
    ApplicationId: string;
    /** Status of the application - Not Started, In-Progress, Complete. */
    Status: 'NOT_STARTED' | 'IN_PROGRESS' | 'COMPLETED';
    /** Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. */
    DryRun?: boolean;
    /** The timestamp when the application state changed. */
    UpdateDateTime?: string;
}
export interface NotifyMigrationTaskStateInput {
    /** Unique identifier that references the migration task. Do not store personal data in this field. */
    MigrationTaskName: string;
    /** Number of seconds after the UpdateDateTime within which the Migration Hub can expect an update. If Migration Hub does not receive an update within the specified interval, then the migration task will  */
    NextUpdateSeconds: number;
    /** The name of the ProgressUpdateStream. */
    ProgressUpdateStream: string;
    /** Information about the task's progress and status. */
    Task: Task;
    /** The timestamp when the task was gathered. */
    UpdateDateTime: string;
    /** Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. */
    DryRun?: boolean;
}
export interface PutResourceAttributesInput {
    /** Unique identifier that references the migration task. Do not store personal data in this field. */
    MigrationTaskName: string;
    /** The name of the ProgressUpdateStream. */
    ProgressUpdateStream: string;
    /** Information about the resource that is being migrated. This data will be used to map the task to a resource in the Application Discovery Service repository. Takes the object array of ResourceAttribute */
    ResourceAttributeList: ResourceAttribute[];
    /** Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call. */
    DryRun?: boolean;
}
/** Migration Hub service binding for Step Functions SDK integrations. */
export declare class MigrationHub {
    constructor();
    associateCreatedArtifact<T>(params: AssociateCreatedArtifactInput): Promise<T>;
    associateDiscoveredResource<T>(params: AssociateDiscoveredResourceInput): Promise<T>;
    associateSourceResource<T>(params: AssociateSourceResourceInput): Promise<T>;
    createProgressUpdateStream<T>(params: CreateProgressUpdateStreamInput): Promise<T>;
    deleteProgressUpdateStream<T>(params: DeleteProgressUpdateStreamInput): Promise<T>;
    describeApplicationState<T>(params: DescribeApplicationStateInput): Promise<T>;
    describeMigrationTask<T>(params: DescribeMigrationTaskInput): Promise<T>;
    disassociateCreatedArtifact<T>(params: DisassociateCreatedArtifactInput): Promise<T>;
    disassociateDiscoveredResource<T>(params: DisassociateDiscoveredResourceInput): Promise<T>;
    disassociateSourceResource<T>(params: DisassociateSourceResourceInput): Promise<T>;
    importMigrationTask<T>(params: ImportMigrationTaskInput): Promise<T>;
    listApplicationStates<T>(params: ListApplicationStatesInput): Promise<T>;
    listCreatedArtifacts<T>(params: ListCreatedArtifactsInput): Promise<T>;
    listDiscoveredResources<T>(params: ListDiscoveredResourcesInput): Promise<T>;
    listMigrationTasks<T>(params: ListMigrationTasksInput): Promise<T>;
    listMigrationTaskUpdates<T>(params: ListMigrationTaskUpdatesInput): Promise<T>;
    listProgressUpdateStreams<T>(params: ListProgressUpdateStreamsInput): Promise<T>;
    listSourceResources<T>(params: ListSourceResourcesInput): Promise<T>;
    notifyApplicationState<T>(params: NotifyApplicationStateInput): Promise<T>;
    notifyMigrationTaskState<T>(params: NotifyMigrationTaskStateInput): Promise<T>;
    putResourceAttributes<T>(params: PutResourceAttributesInput): Promise<T>;
}
//# sourceMappingURL=MigrationHub.d.ts.map