Using resource reclamations
You can use the IBM Cloud® CLI or the IBM Cloud® Resource Controller API to manage the reclamation process of specific resources. For more information, see FAQ about resources
Listing reclaimed resources by using the CLI
To list reclaimed resources that can be restored or deleted by using the CLI, run the following command:
ibmcloud resource reclamations [--resource-instance-id INSTANCE_ID]
Enter the following command option:
- --resource-instance-id: The globally unique ID (GUID) of the resource instance.
The following example shows how to list the reclamations of a particular service instance:
ibmcloud resource reclamations --resource-instance-id abcd1234-ef56-486e-b293-22d6c7eb6699
Listing reclaimed resources by using the API
To list reclaimed resources that can be restored or deleted, call the IBM Cloud® Resource Controller API as shown in the following example:
Use the ListReclamationsOptions.Builder to create a ListReclamationsOptions object that contains the parameter values for the listReclamations method.
Instantiate the ListReclamationsOptions struct and set the fields to provide parameter values for the ListReclamations method.
curl -X GET https://resource-controller.cloud.ibm.com/v1/reclamations?account_id=b80a8b513ae24e178438b7a18bd8d609 -H 'Authorization: Bearer <IAM_TOKEN>'
ListReclamationsOptions listReclamationsOptions = new ListReclamationsOptions.Builder()
.accountId(accountId)
.build();
Response<ReclamationsList> response = service.listReclamations(listReclamationsOptions).execute();
ReclamationsList reclamationsList = response.getResult();
System.out.printf("listReclamations() response:\n%s\n", reclamationsList.toString());
const params = {
accountId: accountId,
};
resourceControllerService.listReclamations(params)
.then(res => {
var resources = res.result.resources;
resources.forEach(reclaim => {
if (reclaim.resource_instance_id.toString() === instanceGuid) {
reclamationId = reclaim.id;
}
});
console.log('listReclamations() response:\n' + JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err)
});
reclamations_list = resource_controller_service.list_reclamations(
account_id=account_id
).get_result()
print('\nlist_reclamations() response:\n',
json.dumps(reclamations_list, indent=2))
listReclamationsOptions := resourceControllerService.NewListReclamationsOptions()
listReclamationsOptions = listReclamationsOptions.SetAccountID(accountID)
reclamationsList, response, err := resourceControllerService.ListReclamations(listReclamationsOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(reclamationsList, "", " ")
fmt.Printf("\nListReclamations() response:\n%s\n", string(b))
Deleting a reclaimed resource by using the CLI
To delete a reclaimed resource by using the CLI, run the following command:
ibmcloud resource reclamation-delete ID [--comment COMMENT] [--f, --force]
Enter the following command options:
- ID: The ID of the resource reclamation. This is the reclamation ID and not the resource instance ID. (Required).
- --comment: Comments about the action.
- -f, --force: Force deletion without confirmation.
The following example shows how to delete a resource reclamation with ID d9fendfwlw:
ibmcloud resource reclamation-delete "d9fendfwlw"
The following example shows how to delete a resource reclamation with ID d9fendfwlw and leave a comment of no longer needed without confirmation:
ibmcloud resource reclamation-delete "d9fendfwlw" --comment "no longer needed" -f
Deleting resource by using the API
To reclaim (provisionally delete) a resource, call the IBM Cloud® Resource Controller API as shown in the following example. Specify
reclaim to delete a resource. id is the reclamation ID and not the resource instance ID.
curl -X POST https://resource-controller.cloud.ibm.com/v1/reclamations/0114be9024c6eede47d08a85ac0c5c43/actions/reclaim -H 'Authorization: Bearer <IAM_TOKEN>' -H 'Content-Type: application/json' -d '{
"request_by": "bar",
"comment": "reclaim resource instance 614fc866-1d4f-4c9e-973e-637f1089a6a1"
}'
RunReclamationActionOptions runReclamationActionOptions = new RunReclamationActionOptions.Builder()
.id(reclamationId)
.actionName("reclaim")
.build();
Response<Reclamation> response = service.runReclamationAction(runReclamationActionOptions).execute();
Reclamation reclamation = response.getResult();
System.out.printf("runReclamationAction() response:\n%s\n", reclamation.toString());
const params = {
id: reclamationId,
actionName: 'reclaim',
};
resourceControllerService.runReclamationAction(params)
.then(res => {
console.log('runReclamationAction() response:\n' + JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err)
});
reclamation = resource_controller_service.run_reclamation_action(
id=reclamation_id,
action_name='reclaim'
).get_result()
print('\nrun_reclamation_action() response:\n',
json.dumps(reclamation, indent=2))
runReclamationActionOptions := resourceControllerService.NewRunReclamationActionOptions(
reclamationID,
"reclaim",
)
reclamation, response, err := resourceControllerService.RunReclamationAction(runReclamationActionOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(reclamation, "", " ")
fmt.Printf("\nRunReclamationAction() response:\n%s\n", string(b))
Restoring a resource by using the CLI
Resources can typically be restored within 3 days of deletion. However, restoration periods might vary depending on the service, as each one follows its own retention policy. For more information, refer to the individual service's documentation.
Not all resources can be restored. You can run the ibmcloud resource reclamations command to check the resources that you can restore.
To restore a resource by using the CLI, run the following command:
ibmcloud resource reclamation-restore ID [--comment COMMENT]
Enter the following command options:
- ID: The ID of the resource reclamation. This is the reclamation ID and not the resource instance ID. (Required)
- --comment: Comments about the action.
The following example shows how to restore a resource with the d9fendfwlw ID:
ibmcloud resource reclamation-restore "d9fendfwlw"
For more information, see the ibmcloud resource reclamations command reference.
Restoring a resource by using the API
Resources can typically be restored within 3 days of deletion. However, restoration periods might vary depending on the service, as each one follows its own retention policy. For more information, refer to the individual service's documentation.
Not all resources can be restored. Get a list of all reclaimations to check the resources that you can restore.
To restore a resource by using the API, call the IBM Cloud® Resource Controller API as shown in the following example. Specify
restore to restore a resource. id is the reclamation ID and not the resource instance ID.
curl -X POST https://resource-controller.cloud.ibm.com/v1/reclamations/0114be9024c6eede47d08a85ac0c5c43/actions/restore -H 'Authorization: Bearer <IAM_TOKEN>' -H 'Content-Type: application/json' -d '{
"request_by": "bar",
"comment": "restore resource instance 614fc866-1d4f-4c9e-973e-637f1089a6a1"
}'
RunReclamationActionOptions runReclamationActionOptions = new RunReclamationActionOptions.Builder()
.id(reclamationId)
.actionName("restore")
.build();
Response<Reclamation> response = service.runReclamationAction(runReclamationActionOptions).execute();
Reclamation reclamation = response.getResult();
System.out.printf("runReclamationAction() response:\n%s\n", reclamation.toString());
const params = {
id: reclamationId,
actionName: 'restore',
};
resourceControllerService.runReclamationAction(params)
.then(res => {
console.log('runReclamationAction() response:\n' + JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err)
});
reclamation = resource_controller_service.run_reclamation_action(
id=reclamation_id,
action_name='restore'
).get_result()
print('\nrun_reclamation_action() response:\n',
json.dumps(reclamation, indent=2))
runReclamationActionOptions := resourceControllerService.NewRunReclamationActionOptions(
reclamationID,
"restore",
)
reclamation, response, err := resourceControllerService.RunReclamationAction(runReclamationActionOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(reclamation, "", " ")
fmt.Printf("\nRunReclamationAction() response:\n%s\n", string(b))