Cette section détaille les endpoints pour créer, lister, modifier et supprimer les règles de stockage. Ces règles définissent comment les données sont filtrées et sauvegardées pour optimiser la base de données.
Lister les règles de stockage
Description
Cette requête récupère la liste de toutes les règles de stockage disponibles.
GET /v2/storage-rules
Scope
Pour effectuer cette requête, vous devez posséder le scope suivant : metrics:read.
Paramètres
paginationKey (string, optionnel) : Clé pour obtenir la page de résultats suivante (voir gestion de la pagination).
limit (integer, optionnel) : Nombre de résultats par page (défaut : 50).
Ces paramètres doivent être ajoutés à la fin de l'URL pour construire la chaîne de requête. Le premier est précédé d'un "?" et les suivants sont séparés par un "&".
Syntaxe générale de la requête GET :
.../storage-rules?limit=[limite]&paginationKey=[cle_pagination]
Exemple de requête
# Commande pour lister toutes les règles de stockage
curl -X GET \
'https://xxx.indaba.api.indasuite.io-base.com/v2/storage-rules' \
-H 'Authorization: Bearer VOTRE_JETON_JWT'
Réponses
Exemple de réponse valide (200 OK) :
{
"data": [
{
"id": "e232594c-b40a-4e0b-8d18-57317a9a06cd",
"name": "storage rule 1",
"deadband": 0.01,
"validityInSecond": 0,
"decimalPrecision": 3,
"isDefault": false
},
{
"id": "8059a704-9bae-47e2-a1ae-99790853a66a",
"name": "storage rule 2",
"deadband": 0.003,
"validityInSecond": 300,
"decimalPrecision": 4,
"isDefault": false
}
],
"paginationInfo": {
"count": 2,
"isComplete": true
},
"statusCode": 1010,
"message": "OK"
}
Gestion de la Pagination (isComplete) :
Veuillez vous référer au paragraphe de gestion de la pagination.
Erreurs Courantes :
Veuillez vous référer à la liste des erreurs courantes.
Créer une nouvelle règle de stockage
Description
Cette requête permet de créer une nouvelle règle de stockage pour définir les conditions de sauvegarde des données.
POST /v2/storage-rules
Scope
Pour effectuer cette requête, vous devez posséder le scope suivant : metrics:admin.
Corps de la requête
name (string, obligatoire) : Nom unique de la règle de stockage.
validityInSecond (integer, optionnel) : Durée de validité en secondes. Si une valeur ne change pas (ou reste dans la bande morte) pendant cette durée, elle ne sera pas ré-enregistrée.
deadband (number, optionnel) : Bande morte. Si l'écart entre une nouvelle valeur et la précédente est inférieur à ce delta, la nouvelle valeur n'est pas enregistrée.
decimalPrecision (integer, optionnel) : Nombre de chiffres après la virgule à conserver pour les valeurs.
Les champs suivants doivent être fournis dans le corps de la requête, au format JSON.
Syntaxe générale du corps de la requête :
{
"name": "nom_unique_de_la_regle",
"validityInSecond": 3600,
"deadband": 0.5,
"decimalPrecision": 2
}
Exemple de requête
# Commande pour créer une nouvelle règle de stockage avec tous les champs
curl -X POST \
--url 'https://xxx.indaba.api.indasuite.io-base.com/v2/storage-rules' \
# ----- En-têtes -----
-H 'Authorization: Bearer VOTRE_JETON_JWT' \
-H 'Content-Type: application/json' \
# ----- Corps de la requête -----
-d '
{
"name": "storage rule api test_2",
"validityInSecond": 3600,
"deadband": 0,
"decimalPrecision": 1
}
'
Réponses
Exemple de réponse valide (201 OK) :
{
"data": {
"id": "adacb6b9-0178-4cd2-a11e-40d121cae56e",
"name": "storage rule api test_2",
"deadband": 0,
"validityInSecond": 3600,
"decimalPrecision": 1,
"isDefault": false
},
"resultCode": 1010,
"message": "OK"
}
Erreurs Courantes :
Veuillez vous référer à la liste des erreurs courantes.
Mettre à jour une règle de stockage
Description
Cette requête permet de modifier une règle de stockage existante.
PUT /v2/storage-rules/{storageRuleId}
Scope
Pour effectuer cette requête, vous devez posséder le scope suivant : metrics:admin.
Paramètres
storageRuleId (uuid, obligatoire) : ID de la règle de stockage à modifier.
Cette requête utilise un paramètre de chemin, qui est intégré directement dans l'URL.
Syntaxe générale de l'URL :
.../storage-rules/[uuid_de_la_regle_de_stockage]
Corps de la requête
Les champs suivants doivent être fournis dans le corps de la requête, au format JSON. Ils sont identiques à ceux de la création d'une règle de stockage.
Syntaxe générale du corps de la requête :
{
"name": "nouveau_nom_de_la_regle",
"validityInSecond": 3600,
"deadband": 0,
"decimalPrecision": 1
}
Exemple de requête
# Commande pour mettre à jour une règle de stockage avec tous les champs
curl -X PUT \
--url 'https://xxx.indaba.api.indasuite.io-base.com/v2/storage-rules/ae915375-048f-41bc-807c-69b451b85975' \
# ----- En-têtes -----
-H 'Authorization: Bearer VOTRE_JETON_JWT' \
-H 'Content-Type: application/json' \
# ----- Corps de la requête -----
-d '
{
"name": "TestRule_Updated_Complete",
"validityInSecond": 600,
"deadband": 0,
"decimalPrecision": 2
}
'
Réponses
Exemple de réponse valide (200 OK) :
{
"statusCode": 1010,
"message": "OK"
}
Erreurs Courantes :
Veuillez vous référer à la liste des erreurs courantes.
Supprimer une règle de stockage
Description
Cette requête supprime une règle de stockage.
Attention, les métriques qui utilisaient cette règle retomberont sur la règle de stockage par défaut.
DELETE /v2/storage-rules/{storageRuleId}
Scope
Pour effectuer cette requête, vous devez posséder le scope suivant : metrics:admin.
Paramètres
storageRuleId (uuid, obligatoire) : ID de la règle de stockage à supprimer.
Cette requête utilise un paramètre de chemin, qui est intégré directement dans l'URL.
Syntaxe générale de la requête DELETE :
.../storage-rules/[uuid_de_la_regle_de_stockage]
Exemple de requête
# Commande pour supprimer une règle de stockage
curl -X DELETE \
'https://xxx.indaba.api.indasuite.io-base.com/v2/storage-rules/ae915375-048f-41bc-807c-69b451b85975' \
-H 'Authorization: Bearer VOTRE_JETON_JWT'
Réponses
Exemple de réponse valide (200 OK) :
{
"statusCode": 1010,
"message": "OK"
}
Erreurs Courantes :
Veuillez vous référer à la liste des erreurs courantes.
Gestion de la Pagination (isComplete)
Pour garantir de bonnes performances, l'API peut diviser les réponses contenant un grand nombre de résultats en plusieurs "pages". Certaines réponses contiennent un champ booléen nommé "isComplete", dans l'objet "paginationInfo" pour gérer ce cas.
Si isComplete est true : Vous avez reçu toutes les données.
Si isComplete est false : Il reste des données à récupérer. Pour obtenir la suite :
Récupérez la valeur du champ "paginationKey" dans la réponse que vous venez de recevoir.
Effectuez une nouvelle requête en y ajoutant "paginationKey" comme paramètre et en attribuant à ce paramètre la valeur récupérée.
Répétez ce processus jusqu'à ce que la réponse finale contienne "isComplete" : true.
Erreurs Courantes
Vous rencontrerez principalement les codes d'erreur HTTP suivants :
400 Bad Request : Votre requête est malformée. Cela peut être dû à un paramètre manquant, un type de donnée incorrect ou un JSON invalide. Le corps de la réponse contiendra un tableau errors détaillant le problème.
{
"errors": [
{
"error": "Type_De_L_Erreur",
"message": "Description détaillée de l'erreur spécifique."
}
],
"statusCode": 1050,
"message": "Invalid request"
}
401 Unauthorized : Votre jeton d'authentification (JWT) est manquant, invalide ou expiré. Vous devez obtenir un nouveau jeton valide.
403 Forbidden : Votre jeton d'authentification est valide, mais vous n'avez pas les droits nécessaires pour cette action. Cela peut arriver pour deux raisons :
Votre jeton n'a pas les droits (scope) nécessaires (par exemple, vous tentez d'écrire des données sans avoir le scope metrics:write).
Votre jeton a le bon scope, mais votre utilisateur (ou compte de service) n'est pas rattaché à une autorisation qui donne accès à la métrique demandée.
404 Not Found : La ressource que vous essayez d'atteindre n'existe pas. Cela se produit typiquement si vous utilisez un ID incorrect ou si vous demandez une métrique qui n'existe pas.