PutResourceAttributes - AWS Migration Hub

PutResourceAttributes

Provides identifying details of the resource being migrated so that it can be associated in the Application Discovery Service repository. This association occurs asynchronously after PutResourceAttributes returns.

Important
  • Keep in mind that subsequent calls to PutResourceAttributes will override previously stored attributes. For example, if it is first called with a MAC address, but later, it is desired to add an IP address, it will then be required to call it with both the IP and MAC addresses to prevent overriding the MAC address.

  • Note the instructions regarding the special use case of the ResourceAttributeList parameter when specifying any "VM" related value.

Note

Because this is an asynchronous call, it will always return 200, whether an association occurs or not. To confirm if an association was found based on the provided details, call ListDiscoveredResources.

Request Syntax

{ "DryRun": boolean, "MigrationTaskName": "string", "ProgressUpdateStream": "string", "ResourceAttributeList": [ { "Type": "string", "Value": "string" } ] }

Request Parameters

The request accepts the following data in JSON format.

DryRun

Optional boolean flag to indicate whether any effect should take place. Used to test if the caller has permission to make the call.

Type: Boolean

Required: No

MigrationTaskName

Unique identifier that references the migration task. Do not store personal data in this field.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 256.

Pattern: [^:|]+

Required: Yes

ProgressUpdateStream

The name of the ProgressUpdateStream.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 50.

Pattern: [^/:|\000-\037]+

Required: Yes

ResourceAttributeList

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.

Note

Takes the object array of ResourceAttribute where the Type field is reserved for the following values: IPV4_ADDRESS | IPV6_ADDRESS | MAC_ADDRESS | FQDN | VM_MANAGER_ID | VM_MANAGED_OBJECT_REFERENCE | VM_NAME | VM_PATH | BIOS_ID | MOTHERBOARD_SERIAL_NUMBER where the identifying value can be a string up to 256 characters.

Important
  • If any "VM" related value is set for a ResourceAttribute object, it is required that VM_MANAGER_ID, as a minimum, is always set. If VM_MANAGER_ID is not set, then all "VM" fields will be discarded and "VM" fields will not be used for matching the migration task to a server in Application Discovery Service repository. See the Example section below for a use case of specifying "VM" related values.

  • If a server you are trying to match has multiple IP or MAC addresses, you should provide as many as you know in separate type/value pairs passed to the ResourceAttributeList parameter to maximize the chances of matching.

Type: Array of ResourceAttribute objects

Array Members: Minimum number of 1 item. Maximum number of 100 items.

Required: Yes

Response Elements

If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.

Errors

AccessDeniedException

You do not have sufficient access to perform this action.

HTTP Status Code: 400

DryRunOperation

Exception raised to indicate a successfully authorized action when the DryRun flag is set to "true".

HTTP Status Code: 400

HomeRegionNotSetException

The home region is not set. Set the home region to continue.

HTTP Status Code: 400

InternalServerError

Exception raised when an internal, configuration, or dependency error is encountered.

HTTP Status Code: 500

InvalidInputException

Exception raised when the provided input violates a policy constraint or is entered in the wrong format or data type.

HTTP Status Code: 400

ResourceNotFoundException

Exception raised when the request references a resource (Application Discovery Service configuration, update stream, migration task, etc.) that does not exist in Application Discovery Service (Application Discovery Service) or in Migration Hub's repository.

HTTP Status Code: 400

ServiceUnavailableException

Exception raised when there is an internal, configuration, or dependency error encountered.

HTTP Status Code: 500

ThrottlingException

The request was denied due to request throttling.

HTTP Status Code: 400

UnauthorizedOperation

Exception raised to indicate a request was not authorized when the DryRun flag is set to "true".

HTTP Status Code: 400

Examples

Put migration resource attributes to associate with resource in repository

The following example sends identifying details of the resource being migrated so that it can be associated with a resource in the Application Discovery Service's repository using the values passed to the required parameters MigrationTaskName and ProgressUpdateStream to tag the correct target and its migration tool.

The ResourceAttributeList parameter is also required to define the resource type and its identifying value. Its Type field is reserved for the following values: IPV4_ADDRESS | IPV6_ADDRESS | MAC_ADDRESS | FQDN | VM_MANAGER_ID | VM_MANAGED_OBJECT_REFERENCE | VM_NAME | VM_PATH | BIOS_ID | MOTHERBOARD_SERIAL_NUMBER where the identifying value can be a string up to 256 characters.

In this particular example, the user wants to define the resource type by VM_NAME, but also has to set the VM_MANAGER_ID field as it is always required when setting any other "VM" related fields.

Sample Request

{ "MigrationTaskName":"canary-4c208ae8-9876-5432-1098-b748dd9179d3", "ProgressUpdateStream":"canary-017563f9-1234-5678-9de4-cf9d3378d18d", "ResourceAttributeList": [ { "Type":"VM_NAME", "Value":"v1.1.1.0-cloudfront" }, { "Type":"VM_MANAGER_ID", "Value":"a7b4c06d-e12f-1234-9gh7-i5j26k1lm2no" } ] }

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: