Using the OVH API (OVHcloud) with Tines
I’ve had to tinker a bit to get the OVH API working within Tines, but eventually succeeded.
INVALID_SIGNATURE was my main hurdle, but eventually got it working, make sure you have API details created beforehand
https://eu.api.ovh.com/createToken/, see their documentation at https://docs.ovh.com/gb/en/api/first-steps-with-ovh-api/
The all-in-one block

The magic for using 1 block is using the LOCAL block

These are my Local values and content
{
"url": "https://api.ovh.com/1.0/ip",
"method": "GET",
"body": "<<>>",
"timestamp": "<<UNIX_TIMESTAMP()>>",
"clear_sign": "<<CREDENTIAL.ovh_api_application_secret>>+<<CREDENTIAL.ovh_api_consumer_key>>+<<LOCAL.method>>+<<LOCAL.url>>+<<LOCAL.body>>+<<LOCAL.timestamp>>",
"signature": "$1$<<SHA1(LOCAL.clear_sign)>>"
}
this way we can set up the signature and hash it within 1 block and send it with the HEADER

Full block copy-paste below
{
"standardLibVersion": "14",
"actionRuntimeVersion": "4",
"agents": [
{
"disabled": false,
"name": "Get OVH IP addresses",
"description": null,
"options": "{\"url\":\"<<LOCAL.url>>\",\"content_type\":\"application_json\",\"method\":\"=LOCAL.method\",\"headers\":{\"X-Ovh-Application\":\"=CREDENTIAL.ovh_api_application_key\",\"X-Ovh-Consumer\":\"=CREDENTIAL.ovh_api_consumer_key\",\"X-Ovh-Timestamp\":\"=LOCAL.timestamp\",\"X-Ovh-Signature\":\"=LOCAL.signature\"},\"local\":{\"url\":\"https://api.ovh.com/1.0/ip\",\"method\":\"GET\",\"body\":\"<<>>\",\"timestamp\":\"<<UNIX_TIMESTAMP()>>\",\"clear_sign\":\"<<CREDENTIAL.ovh_api_application_secret>>+<<CREDENTIAL.ovh_api_consumer_key>>+<<LOCAL.method>>+<<LOCAL.url>>+<<LOCAL.body>>+<<LOCAL.timestamp>>\",\"signature\":\"$1$<<SHA1(LOCAL.clear_sign)>>\"}}",
"position": {
"x": 1950,
"y": 765
},
"type": "httpRequest",
"timeSavedUnit": "minutes",
"timeSavedValue": 0,
"monitorAllEvents": false,
"monitorFailures": false,
"monitorNoEventsEmitted": null,
"form": null
}
],
"links": [],
"diagramNotes": []
}
The 3-block setup

Same as the all-in-1 but spread in 3 blocks, for readability & debugging purposes
{
"standardLibVersion": "14",
"actionRuntimeVersion": "4",
"agents": [
{
"disabled": false,
"name": "Get OVH IP addresses",
"description": null,
"options": "{\"url\":\"<<ovh_api_to_request.url>>\",\"content_type\":\"application_json\",\"method\":\"get\",\"headers\":{\"X-Ovh-Application\":\"=CREDENTIAL.ovh_api_application_key\",\"X-Ovh-Consumer\":\"=CREDENTIAL.ovh_api_consumer_key\",\"X-Ovh-Timestamp\":\"=ovh_api_to_request.timestamp\",\"X-Ovh-Signature\":\"=ovh_signature\"},\"local\":{}}",
"position": {
"x": 1575,
"y": 1035
},
"type": "httpRequest",
"timeSavedUnit": "minutes",
"timeSavedValue": 0,
"monitorAllEvents": false,
"monitorFailures": false,
"monitorNoEventsEmitted": null,
"form": null
},
{
"disabled": false,
"name": "OVH Signature",
"description": null,
"options": "{\"mode\":\"message_only\",\"loop\":false,\"payload\":\"$1$<<SHA1(LOCAL.clear_sign)>>\",\"local\":{\"clear_sign\":\"<<CREDENTIAL.ovh_api_application_secret>>+<<CREDENTIAL.ovh_api_consumer_key>>+<<ovh_api_to_request.method>>+<<ovh_api_to_request.url>>+<<ovh_api_to_request.body>>+<<ovh_api_to_request.timestamp>>\"}}",
"position": {
"x": 1575,
"y": 930
},
"type": "eventTransformation",
"timeSavedUnit": "minutes",
"timeSavedValue": 0,
"monitorAllEvents": false,
"monitorFailures": false,
"monitorNoEventsEmitted": null,
"form": null
},
{
"disabled": false,
"name": "OVH API to request",
"description": null,
"options": "{\"mode\":\"message_only\",\"loop\":false,\"payload\":{\"url\":\"https://api.ovh.com/1.0/ip\",\"method\":\"GET\",\"body\":\"\",\"timestamp\":\"<<UNIX_TIMESTAMP()>>\"}}",
"position": {
"x": 1575,
"y": 825
},
"type": "eventTransformation",
"timeSavedUnit": "minutes",
"timeSavedValue": 0,
"monitorAllEvents": false,
"monitorFailures": false,
"monitorNoEventsEmitted": null,
"form": null
}
],
"links": [
{
"sourceIdentifier": 2,
"receiverIdentifier": 1
},
{
"sourceIdentifier": 1,
"receiverIdentifier": 0
}
],
"diagramNotes": []
}
