Accessing the Cleura Cloud REST API
Cleura Cloud provides a REST API, which you can take advantage of with a
tool like curl
. But before you do, you must create a token for the
current session. For that, you only need to have an
account in Cleura Cloud.
Creating a token
Cleura Cloud REST API calls use token authentication. The process of obtaining a valid token works slightly differently, based on whether your account has two-factor authentication (2FA) enabled or not.
If you do not have 2FA enabled for your account, to create a token,
have your username (your_cc_username
) and password
(your_cc_password
) to the Cleura Cloud handy and type:
curl -d '{"auth": {"login": "your_cc_username", "password": "your_cc_password"}}' \
https://rest.cleura.cloud/auth/v1/tokens
Provided you typed your username and password correctly and that there
were no connection issues to the remote endpoint, you will get a JSON
object with a string (token
) that holds your session token:
{
"result": "login_ok",
"token": "vahkie7EiDaij7chegaitee2zohsh1oh"
}
If your Cleura Cloud account has 2FA enabled, you must configure it with SMS as a second-factor option. Accounts with only WebAuthn as their second factor cannot be used for Cleura Cloud REST API operations.
First, initiate a token request giving your Cleura Cloud username and
password, and setting the twofa_method
option to sms
:
curl -d '{"auth": {"login": "your_cc_username", "password": "your_cc_password", "twofa_method": "sms"}}' \
https://rest.cleura.cloud/auth/v1/tokens
Instead of a token, you will get a verification code
(look at verification
):
{
"result": "twofactor_required",
"type": "sms",
"verification": "ahb4en3cho"
}
This verification code is required for requesting a 2FA code:
curl -d '{"request2fa": {"login": "your_cc_username", "verification": "ahb4en3cho"}}' \
https://rest.cleura.cloud/auth/v1/tokens/request2facode
You will now receive your 6-digit second-factor code via an SMS message. This enables you to request your REST API token like this:
curl -d '{"verify2fa": {"login": "your_cc_username", "verification": "ahb4en3cho", "code": 123456}}' \
https://rest.cleura.cloud/auth/v1/tokens/verify2fa
Make sure not to put the code in quotes, for it is
of type integer and that fact should be reflected during the
assignment to code
. You will get a JSON object with your token:
{
"result": "login_ok",
"token": "fiushood9oraTiNa4ban3eemeezoeDae"
}
Now that you have obtained a valid token, you can proceed with making Cleura Cloud REST API calls.
Testing the token
One way to make sure the token is valid is by getting a list of all
supported regions. All you have to do is use curl
to provide your
username (your_cc_username
) and token and connect to the
https://rest.cleura.cloud/accesscontrol/v1/openstack/domains
endpoint:
curl -H "X-AUTH-LOGIN: your_cc_username" \
-H "X-AUTH-TOKEN: vahkie7EiDaij7chegaitee2zohsh1oh" \
https://rest.cleura.cloud/accesscontrol/v1/openstack/domains
All supported regions should be returned as objects in a JSON array:
[
{
"area": {
"id": "6",
"name": "Sweden \/ Stockholm",
"tag": "SE_STO2",
"regions": [
{
"zone_id": "2",
"name": "Stockholm \/ Sweden",
"status": "active",
"region": "Sto2"
}
]
},
"id": "79b0cef45b504586ad0bf057dc4cb8b8",
"status": "provisioned",
"name": "CCP_Domain_43597",
"enabled": true
},
{
"area": {
"id": "7",
"name": "Germany \/ Frankfurt",
"tag": "DE",
"regions": [
{
"zone_id": "6",
"name": "Frankfurt \/ Germany",
"status": "active",
"region": "Fra1"
}
]
},
"id": "08db589d04f442e19c272f2cd1a02906",
"status": "provisioned",
"name": "CCP_Domain_43597",
"enabled": true
},
{
"area": {
"id": "1",
"name": "Europe",
"tag": "EU",
"regions": [
{
"zone_id": "1",
"name": "Karlskrona \/ Sweden",
"status": "active",
"region": "Kna1"
}
]
},
"id": "a018123218f5428ba96d7fb212d90cf2",
"status": "provisioned",
"name": "CCP_Domain_43597",
"enabled": true
}
]