Premiers pas avec l'API Cloudability V3
Authentification de l'API
Note de l'auteur : Authentification pour Cloudability Commercial, Essential, Standard et Premium
Vous pouvez utiliser les clés API Cloudability ou Access Administration apptio-opentoken pour authentifier les demandes API Cloudability.
Les autorisations pour les interactions API de création, de mise à jour, de lecture et de suppression correspondent aux autorisations de l'utilisateur Cloudability. Par exemple, seul un administrateur de Cloudability peut créer un nouveau cluster de conteneurs pour la collecte de données, tandis que tout utilisateur de Cloudability ayant accès à l'API peut obtenir des informations sur l'utilisation des ressources d'un cluster de conteneurs existant.
Cloudability étant désormais disponible pour les utilisateurs des régions Europe, Asie-Pacifique et Moyen-Orient, toutes les références à api.cloudability.com dans cette documentation doivent être appelées api-eu.cloudability.com ou api-au.cloudability.com ou api-me.cloudability.com par les clients hébergés dans l'UE, l'APAC ou la région ME respectivement.
Dans les environnements GovCloud, vous devez utiliser Access Administration apptio-opentoken pour authentifier les demandes d'API Cloudability. L'authentification à l'aide des clés API Cloudability n'est pas prise en charge dans les environnements GovCloud.
Cloudability Clés API
Pour créer une clé API Cloudability :
- Ouvrez le site URL dans votre navigateur web : https://app.apptio.com/cloudability#/settings/preferences.
- Dans la section Cloudability API, sélectionnez Enable API. Une clé API est générée et affichée dans la zone de texte.
Access Administration apptio-opentoken
Pour plus d'informations sur l'obtention d'un apptio-opentoken, reportez-vous à Access Administration API : Authentification via les clés API.
Note de l'auteur : Authentification pour le gouvernement Cloudability
Interactions APIInteractions API utilisant les clés API de Coudability
Utilisez l'apptio-opentoken pour permettre l'accès à notre API. Visitez Enhanced Access Administration API : Authentification via les clés API pour savoir comment obtenir un code d'accès à l'application.
Les interactions API avec Cloudability sont sécurisées par https. Votre nom d'utilisateur apptio-opentoken constitue le composant du nom d'utilisateur de l'en-tête d'authentification de base. L'en-tête d'autorisation ressemblerait donc à quelque chose comme :
Autorisation : De base
Exemple
L'appel API suivant renvoie une liste de tous les budgets en cours.
curl https://api.cloudability.com/v3/budgets -u 'Your_API_Key:'Interactions API
Note de l'auteur : Authentification pour Cloudability Commercial, Essential, Standard et Premium
Interactions API utilisant les clés API de Coudability
Les interactions de l'API avec Cloudability sont sécurisées sur HTTPS. Votre jeton constitue le composant nom d'utilisateur de l'en-tête Basic Auth. L'en-tête d'autorisation pour l'authentification de base aura le format suivant :
Autorisation : De base
Exemple
L'appel API suivant renvoie une liste de tous les budgets en cours.
curl https://api.cloudability.com/v3/budgets -u 'Your_API_Key:'
Interactions API à l'aide de Frontdoor apptio-opentoken
Avec cette méthode d'authentification, passez l'apptio-opentoken et l'apptio-environmentid dans l'en-tête.
Exemple
L'API suivante renvoie une liste de tous les budgets actuels.
curl https://api.cloudability.com/v3/budgets -H "apptio-opentoken: [apptio opentoken]" -H "apptio-environmentid: [apptio Access Administration environment id]"
Format de la réponse
Toutes les réponses retenues seront présentées dans le format suivant :
{
result: {} or [],
meta: {},
}
result contiendra les résultats ou les données utiles de l'appel.
Les informations complémentaires (telles que la répartition des pages et autres) figureront dans l'attribut méta, le cas échéant.
Les valeurs primitives seront nulles si aucune valeur n'est présente (c'est-à-dire les nombres, les chaînes de caractères).
Les objets et les tableaux renvoient leur état vide ( [] ) si aucune valeur n'est présente.
Les dates sont représentées selon la norme ISO 8601 et utilisent le format AAAA-MM-JJ.
En-têtes
Demandes POST et PUT
Content-Type : application/json
Demandes GET (pour tous les points finaux)
Accepter : application/json
Demandes GET (supportées par certains points finaux)
Accepter : text/csv
Autorisation (si vous utilisez des clés API Cloudability )
Autorisation : Basic <cldy_token>
Mise en page
Tous les points de terminaison ne prennent pas en charge la pagination. Les points de terminaison qui ne prennent pas en charge la pagination renverront toujours tous les enregistrements. Les points de terminaison qui prennent en charge la pagination renvoient par défaut les 50 premiers enregistrements correspondants.
Lorsque vous essayez de paginer, vous devez utiliser les paramètres limit et offset en même temps. Lorsque vous utilisez ces paramètres, l'ensemble des résultats sera limité à la limite spécifiée à partir de la valeur de décalage.
La valeur par défaut de la limite est 50 (renvoie 50 enregistrements) et celle du décalage est 0 (début des enregistrements).
Exemple
L'exemple suivant montre comment utiliser les paramètres de limite et de décalage avec le tri.
/views?limit=5&offset=20
Tri
Utilisez le paramètre de requête sort pour trier vos résultats. Pour spécifier l'ordre de tri, vous pouvez ajouter - ( décroissant) ou + ( croissant) devant l'attribut.
Exemples
Trier les résultats pour le point final du portefeuille par l'attribut final dans l'ordre décroissant.
/portfolio/ec2?sort=-end
Trier les résultats pour le point final du portefeuille par l'attribut final dans l'ordre croissant.
/portfolio/ec2?sort=%2bend
(Veillez à coder correctement le symbole +)
Filtrage
Lorsque vous utilisez le paramètre de requête de filtre, vous fournissez une dimension sur laquelle vous voulez filtrer, suivie de l'expression de filtre.
Les requêtes filtrées limitent les lignes incluses dans le résultat. Seules les lignes qui répondent aux conditions du filtre sont incluses dans le résultat. Notez que les bibliothèques client encodent automatiquement URL les opérateurs de filtrage. Toutefois, si vous adressez des requêtes directement au protocole, vous devez coder explicitement URL les opérateurs de filtrage suivants. En outre, le filtrage intervient avant l'agrégation des dimensions, de sorte que les mesures renvoyées représentent le total pour les seuls enregistrements pertinents.
Syntaxe du filtre : expression de l'opérateur de nom
name : le nom de la dimension sur laquelle le filtre doit être appliqué.
opérateur : Spécifie le type de filtre à utiliser. Vous pouvez utiliser les opérateurs suivants :
== (égal)
!= (n'est pas égal)
> (plus grand que)
< (moins que)
>= (supérieur ou égal)
<= (inférieur ou égal)
=@ (contient)
!=@ (ne contient pas)
expression : Indique les valeurs incluses dans les résultats.
Pour appliquer plusieurs filtres à une demande, délimitez-les par des virgules dans un seul paramètre de filtre.
Exemples
Vérifier si l' état est actif :
/portfolio/ec2?filter=state==active
Vérifier si l' état est retraité :
/portfolio/ec2?filter=state==retired
Vérifier si la fin est inférieure à 1541803776000 :
/portfolio/ec2?filter=end<1541803776000
Vérifier si la fin est supérieure à 1541803776000 :
/portfolio/ec2?filter=end>1541803776000
Appliquer plusieurs filtres :
/portfolio/ec2?filter=state==active,end>1541803776000
Cloudability exemples de points finaux
La documentation relative à chaque point final comprendra un certain nombre d'exemples montrant comment interagir avec l'API. Les exemples utilisent cURL pour les interactions HTTP et jq pour l'analyse JSON. Ces deux outils CLI sont largement utilisés et peuvent être facilement employés pour interagir avec une API RESTful.