Configlets (API)
Pour obtenir la documentation complète de l’API, consultez la référence de l’API de plateforme à partir de l’interface Web. Il s’agit d’une section ciblée pour illustrer l’API configlet de la même manière que l’interface utilisateur. La principale différence entre l’interface utilisateur Web et l’API REST est que l’API Apstra n’utilise pas les configlets stockés sous api/design/configlets lorsque vous travaillez avec un blueprint. Les design-configlets sont destinés à être consommés dans l’interface utilisateur. Lorsque vous travaillez avec des configlets sur l’API, travaillez directement avec le blueprint.
Les configlets vivent dans http://aos-server/api/design/configlets et sont référencés par ID.
{ "ref_archs": [ "two_stage_l3clos" ], "created_at": "string", "last_modified_at": "string", "id": "string", "generators": [ { "config_style": "string", "template_text": "string", "negation_template_text": "string" } ], "display_name": "string", "section": "string" }
API - Créer un configlet
Pour créer un configlet, POST sur https://aos-server/api/design/configlets avec une structure JSON valide représentant le configlet. Vous pouvez attribuer ce configlet à partir de l’interface graphique d’Apstra. Cette méthode n’est pas requise pour que l’API REST affecte à un blueprint. Consultez la section Attribution d’un configlet pour plus de détails.
Un POST créera un nouveau configlet. Un PUT écrasera un configlet existant. PUT requiert l’URL du configlet. https://aos-server/api/design/configlets/{id}
curl -H "AuthToken: EXAMPLE" -d '{"display_name":"DNS","ref_archs":["two_stage_l3clos"],"section":"system","generators":[{"config_style":"eos","template_text":"ip name-server 192.168.1.1","negation_template_text":"no ip name-server 192.168.1.1"}]}' -X POST "http://aos-server/api/design/configlets"
La réponse contiendra l’ID du configlet nouvellement créé {"id": "995446c7-de7d-46bb-a88a-786839556064"}
API - Supprimer Configlet
La suppression d’un configlet nécessite un HTTP DELETE vers le configlet par l’URL http://aos-server/api/design/configlets/{id}
curl -H "AuthToken: EXAMPLE" -X DELETE "http://aos-server/api/design/configlets/995446c7-de7d-46bb-a88a-786839556064"
Une suppression réussie a une réponse vide {}
API - Assign Configlet
L’affectation d’un configlet à un blueprint nécessite l’affectation de conditions de périphérique ainsi que l’incorporation des détails du configlet. Lors de l’affectation d’un configlet à un blueprint, les configlets disponibles en tant que ressources de conception ne sont pas nécessaires. Ceux-ci ne sont utilisés qu’à des fins d’interface utilisateur.
Le configlet affecté réside dans https://aos-server/api/blueprints/blueprint_id/configlets
Syntaxe JSON pour placer un configlet dans un blueprint. Fondamentalement, il s’agit simplement d’un élément de dictionnaire 'items' contenant une liste de schémas de configlet.
{ "items": [ { "template_params": [ "string" ], "configlet": { "generators": [ { "config_style": "string", "template_text": "string", "negation_template_text": "string" } ], "section": "string", "display_name": "string" }, "condition": "string" } ] }
Exemple CURL - HTTP PUT
curl "http://aos-server/api/blueprints/e4068e99-813c-4290-b7cc-e145d85a98a8/configlets" -X PUT -H "AuthToken: EXAMPLE" -H "Content-Type: application/json; charset=utf-8" --data "[{""configlet"":{""generators"":[{""config_style"":""eos"",""template_text"":""ip name-server 192.168.1.1"",""negation_template_text"":""no ip name-server 192.168.1.1""}],""section"":""system"",""display_name"":""DNS""},""condition"":""role==spine""},{""configlet"":{""generators"":[{""config_style"":""eos"",""template_text"":""ip name-server 192.168.1.1"",""negation_template_text"":""no ip name-server 192.168.1.1""}],""section"":""system"",""display_name"":""DNS""},""condition"":""role==leaf""}]"
Réponse
{"items": [{"configlet": {"generators": [{"config_style": "eos", "template_text": "ip name-server 192.168.1.1", "negation_template_text": "no ip name-server 192.168.1.1"}], "section": "system", "display_name": "DNS"}, "condition": "role==spine"}, {"configlet": {"generators": [{"config_style": "eos", "template_text": "ip name-server 192.168.1.1", "negation_template_text": "no ip name-server 192.168.1.1"}], "section": "system", "display_name": "DNS"}, "condition": "role==leaf"}]}
API - Unassign Configlet
Pour annuler l’affectation d’un configlet, supprimez-le de la liste des éléments par PUT avec un message json vide.
curl "http://aos-server/api/blueprints/e4068e99-813c-4290-b7cc-e145d85a98a8/configlets" -X PUT -H "AuthToken: EXAMPLE" -H "Content-Type: application/json; charset=utf-8" --data ""
La réponse est un json set vide une fois le configlet supprimé : {"items » : []}