To change the lease on your deployment, you use the Deployment APIs to make a POST request with a new lease expiration date.
Prerequisites
- Verify that all general prerequisites have been satisfied. See Prerequisites for Managing Your Deployment.
- Verify that you have the ID of the deployment you want to reconfigure. See Deploy a Cloud Template with Contents Inline.
Procedure
Example: Change the Lease on Your Deployment
Change the lease on your deployment with ID 5551a299-8b67-45e3-909e-a638d11b0d9f.
Assign variables.
$ url='https://appliance.domain.com'
$ api_version='2020-08-25'
$ deployment_id='5551a299-8b67-45e3-909e-a638d11b0d9f'
List the actions available for your deployment.
$ curl -X GET \ $url/deployment/api/deployments/$deployment_id/actions?apiVersion=$api_version \ -H "Authorization: Bearer $access_token" | jq "."
A snippet of the response shows Deployment.ChangeLease.
... { "id": "Deployment.ChangeLease", "name": "ChangeLease", "displayName": "Change Lease", "description": "Set a deployment's expiration date", "valid": true, "actionType": "RESOURCE_ACTION" } ...
Assign the action ID variable.
$ action_id='Deployment.ChangeLease'
To get the schema for your action, list the deployment actions by ID.
$ curl -X GET \ $url/deployment/api/deployments/$deployment_id/actions/$action_id?apiVersion=$api_version \ -H "Authorization: Bearer $access_token" | jq "."
A snippet of the response provides the schema for the lease expiration date.
... "properties": { "Deployment expires in": { "type": "string", "readOnly": true, "default": "9d 21h 27m" }, "Lease Expiration Date": { "type": "string", "title": "Lease Expiration Date", "description": "The lease can be extended by up to 90d 0h 0m", "format": "date-time", "formatMinimum": "2021-02-12T21:47:00Z", "formatMaximum": "2021-05-20T19:15:00Z", "default": "2021-02-22T19:15:00Z" ...
Assign the lease expiry date variable in the propert format.
$ lease_expiry_date=2021-05-15T23:11:00Z
Submit a request to change the lease expiration.
$ curl -X POST \ $url/deployment/api/deployments/$deployment_id/requests \ -H "Authorization: Bearer $access_token" \ -H 'Content-Type: application/json' \ -d '{ "actionId":"Deployment.ChangeLease", "inputs": { "Lease Expiration Date": "'"$lease_expiry_date"'" } }' | jq "."
A snippet of the response shows request ID.
... "id": "6b9b5534-0d84-4f07-9941-5c3cc26f7e3b", "name": "Change Lease", "deploymentId": "5551a299-8b67-45e3-909e-a638d11b0d9f", ...
Assign the request ID variable.
$ request_id='6b9b5534-0d84-4f07-9941-5c3cc26f7e3b'
Check the status of the request.
$ curl -X GET \ $url/deployment/api/requests/$request_id?apiVersion=$api_version \ -H "Authorization: Bearer $access_token" | jq "."
A snippet of the response shows that the request was successful.
... "actionId": "Deployment.ChangeLease", "completedTasks": 1, "totalTasks": 1, "status": "SUCCESSFUL" }