구성 요소(API)
전체 API 설명서는 웹 인터페이스에서 플랫폼 API 참조를 참조하십시오. 이 섹션은 UI와 유사하게 구성 API를 보여주기 위한 대상 섹션입니다. 웹 UI와 REST API의 주요 차이점은 Apstra API는 청사진 작업 시 api/design/configlets에 저장된 구성을 사용하지 않는다는 것입니다. Design-configlet은 UI에서 사용하기 위한 것입니다. API에서 구성 요소(configlet)로 작업할 때는 블루프린트로 직접 작업합니다.
구성 집합은 http://aos-server/api/design/configlets 에 상주하며 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 - Configlet 생성
구성 요소를 만들려면 구성 요소를 나타내는 유효한 JSON 구조로 POST를 https://aos-server/api/design/configlets 합니다. Apstra GUI에서 이 구성을 할당할 수 있습니다. REST API가 블루프린트에 할당하는 데는 이 방법이 필요하지 않습니다. 자세한 내용은 configlet 할당 섹션을 참조하십시오.
POST는 새 구성을 만듭니다. PUT은 기존 구성 요소를 덮어씁니다. PUT에는 구성 요소의 URL이 필요합니다. 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"
응답에는 새로 생성된 구성의 ID가 포함됩니다 {"id": "995446c7-de7d-46bb-a88a-786839556064"}
API - Configlet 삭제
구성자를 삭제하려면 URL http://aos-server/api/design/configlets/{id}로 구성let에 대한 HTTP DELETE가 필요합니다.
curl -H "AuthToken: EXAMPLE" -X DELETE "http://aos-server/api/design/configlets/995446c7-de7d-46bb-a88a-786839556064"
DELETE가 성공하면 빈 응답이 있습니다 {}
API - Configlet 할당
Blueprint에 구성을 할당하려면 디바이스 조건을 할당하고 구성 요소 세부 정보를 내장해야 합니다. 청사진에 구성을 할당할 때 설계 리소스로 사용할 수 있는 구성은 필요하지 않습니다. UI 용도로만 사용됩니다.
할당된 구성 요소는 https://aos-server/api/blueprints/blueprint_id/configlets 에 있습니다.
Configlet을 블루프린트에 배치하기 위한 JSON 구문입니다. 기본적으로 이것은 구성 스키마 목록을 포함하는 'items' 사전 요소일 뿐입니다.
{ "items": [ { "template_params": [ "string" ], "configlet": { "generators": [ { "config_style": "string", "template_text": "string", "negation_template_text": "string" } ], "section": "string", "display_name": "string" }, "condition": "string" } ] }
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""}]"
응답
{"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 - Configlet 할당 취소
configlet을 할당 해제하려면 빈 json 게시물과 함께 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이 삭제되면 응답은 빈 json 세트입니다: {"items": []}