From a1d9b56bfe73059f46b664f6d03073c0ff26e2cb Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 13 May 2026 09:21:06 +0000 Subject: [PATCH] Publish API documentation --- docs/index.html | 5 +---- docs/openapi.json | 2 +- docs/redoc.html | 36 ++++++++++++------------------------ 3 files changed, 14 insertions(+), 29 deletions(-) diff --git a/docs/index.html b/docs/index.html index 9417fa43e..3a7d78f73 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,11 +1,8 @@ - + GNS3 controller API - Swagger UI diff --git a/docs/openapi.json b/docs/openapi.json index 54708d083..8ab09ade4 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -1 +1 @@ -{"openapi": "3.1.0", "info": {"title": "GNS3 controller API", "description": "This page describes the public controller API for GNS3", "version": "v3"}, "paths": {"/v3/version": {"get": {"tags": ["Controller"], "summary": "Get Version", "description": "Return the server version number.", "operationId": "get_version_v3_version_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Version"}}}}}}, "post": {"tags": ["Controller"], "summary": "Check Version", "description": "Check if version is the same as the server.", "operationId": "check_version_v3_version_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Version"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Version"}}}}, "409": {"description": "Invalid version", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/reload": {"post": {"tags": ["Controller"], "summary": "Reload", "description": "Reload the controller", "operationId": "reload_v3_reload_post", "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/shutdown": {"post": {"tags": ["Controller"], "summary": "Shutdown", "description": "Shutdown the server", "operationId": "shutdown_v3_shutdown_post", "responses": {"204": {"description": "Successful Response"}, "403": {"description": "Server shutdown not allowed", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/iou_license": {"get": {"tags": ["Controller"], "summary": "Get Iou License", "description": "Return the IOU license settings", "operationId": "get_iou_license_v3_iou_license_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IOULicense"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Controller"], "summary": "Update Iou License", "description": "Update the IOU license settings.", "operationId": "update_iou_license_v3_iou_license_put", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/IOULicense"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IOULicense"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/statistics": {"get": {"tags": ["Controller"], "summary": "Statistics", "description": "Return server statistics.", "operationId": "statistics_v3_statistics_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"additionalProperties": true, "type": "object"}, "type": "array", "title": "Response Statistics V3 Statistics Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/notifications": {"get": {"tags": ["Controller"], "summary": "Controller Http Notifications", "description": "Receive controller notifications about the controller from HTTP stream.", "operationId": "controller_http_notifications_v3_notifications_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/access/users/login": {"post": {"tags": ["Users"], "summary": "Login", "description": "Default user login method using forms (x-www-form-urlencoded).\nExample: curl -X POST http://host:port/v3/access/users/login -H \"Content-Type: application/x-www-form-urlencoded\" -d \"username=admin&password=admin\"", "operationId": "login_v3_access_users_login_post", "requestBody": {"content": {"application/x-www-form-urlencoded": {"schema": {"$ref": "#/components/schemas/Body_login_v3_access_users_login_post"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Token"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/users/authenticate": {"post": {"tags": ["Users"], "summary": "Authenticate", "description": "Alternative authentication method using json.\nExample: curl -X POST http://host:port/v3/access/users/authenticate -d '{\"username\": \"admin\", \"password\": \"admin\"}' -H \"Content-Type: application/json\"", "operationId": "authenticate_v3_access_users_authenticate_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Credentials"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Token"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/users/me": {"get": {"tags": ["Users"], "summary": "Get Logged In User", "description": "Get the current active user.", "operationId": "get_logged_in_user_v3_access_users_me_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/User"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Users"], "summary": "Update Logged In User", "description": "Update the current active user.", "operationId": "update_logged_in_user_v3_access_users_me_put", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/LoggedInUserUpdate"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/User"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/access/users": {"get": {"tags": ["Users"], "summary": "Get Users", "description": "Get all users.\n\nRequired privilege: User.Audit", "operationId": "get_users_v3_access_users_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/User"}, "type": "array", "title": "Response Get Users V3 Access Users Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Users"], "summary": "Create User", "description": "Create a new user.\n\nRequired privilege: User.Allocate", "operationId": "create_user_v3_access_users_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserCreate"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/User"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/access/users/{user_id}": {"get": {"tags": ["Users"], "summary": "Get User", "description": "Get a user.\n\nRequired privilege: User.Audit", "operationId": "get_user_v3_access_users__user_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/User"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Users"], "summary": "Update User", "description": "Update a user.\n\nRequired privilege: User.Modify", "operationId": "update_user_v3_access_users__user_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/User"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Users"], "summary": "Delete User", "description": "Delete a user.\n\nRequired privilege: User.Allocate", "operationId": "delete_user_v3_access_users__user_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/users/{user_id}/groups": {"get": {"tags": ["Users"], "summary": "Get User Memberships", "description": "Get user memberships.\n\nRequired privilege: Group.Audit", "operationId": "get_user_memberships_v3_access_users__user_id__groups_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/UserGroup"}, "title": "Response Get User Memberships V3 Access Users User Id Groups Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/groups": {"get": {"tags": ["Users groups"], "summary": "Get User Groups", "description": "Get all user groups.\n\nRequired privilege: Group.Audit", "operationId": "get_user_groups_v3_access_groups_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/UserGroup"}, "type": "array", "title": "Response Get User Groups V3 Access Groups Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Users groups"], "summary": "Create User Group", "description": "Create a new user group.\n\nRequired privilege: Group.Allocate", "operationId": "create_user_group_v3_access_groups_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserGroupCreate"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserGroup"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/access/groups/{user_group_id}": {"get": {"tags": ["Users groups"], "summary": "Get User Group", "description": "Get a user group.\n\nRequired privilege: Group.Audit", "operationId": "get_user_group_v3_access_groups__user_group_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_group_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Group Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserGroup"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Users groups"], "summary": "Update User Group", "description": "Update a user group.\n\nRequired privilege: Group.Modify", "operationId": "update_user_group_v3_access_groups__user_group_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_group_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Group Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserGroupUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserGroup"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Users groups"], "summary": "Delete User Group", "description": "Delete a user group.\n\nRequired privilege: Group.Allocate", "operationId": "delete_user_group_v3_access_groups__user_group_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_group_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Group Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/groups/{user_group_id}/members": {"get": {"tags": ["Users groups"], "summary": "Get User Group Members", "description": "Get all user group members.\n\nRequired privilege: Group.Audit", "operationId": "get_user_group_members_v3_access_groups__user_group_id__members_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_group_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Group Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/User"}, "title": "Response Get User Group Members V3 Access Groups User Group Id Members Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/groups/{user_group_id}/members/{user_id}": {"put": {"tags": ["Users groups"], "summary": "Add Member To Group", "description": "Add member to a user group.\n\nRequired privilege: Group.Modify", "operationId": "add_member_to_group_v3_access_groups__user_group_id__members__user_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_group_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Group Id"}}, {"name": "user_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Users groups"], "summary": "Remove Member From Group", "description": "Remove member from a user group.\n\nRequired privilege: Group.Modify", "operationId": "remove_member_from_group_v3_access_groups__user_group_id__members__user_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_group_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Group Id"}}, {"name": "user_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/roles": {"get": {"tags": ["Roles"], "summary": "Get Roles", "description": "Get all roles.\n\nRequired privilege: Role.Audit", "operationId": "get_roles_v3_access_roles_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/Role"}, "type": "array", "title": "Response Get Roles V3 Access Roles Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Roles"], "summary": "Create Role", "description": "Create a new role.\n\nRequired privilege: Role.Allocate", "operationId": "create_role_v3_access_roles_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/RoleCreate"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Role"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/access/roles/{role_id}": {"get": {"tags": ["Roles"], "summary": "Get Role", "description": "Get a role.\n\nRequired privilege: Role.Audit", "operationId": "get_role_v3_access_roles__role_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "role_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Role Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Role"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Roles"], "summary": "Update Role", "description": "Update a role.\n\nRequired privilege: Role.Modify", "operationId": "update_role_v3_access_roles__role_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "role_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Role Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RoleUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Role"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Roles"], "summary": "Delete Role", "description": "Delete a role.\n\nRequired privilege: Role.Allocate", "operationId": "delete_role_v3_access_roles__role_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "role_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Role Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/roles/{role_id}/privileges": {"get": {"tags": ["Roles"], "summary": "Get Role Privileges", "description": "Get all role privileges.\n\nRequired privilege: Role.Audit", "operationId": "get_role_privileges_v3_access_roles__role_id__privileges_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "role_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Role Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Privilege"}, "title": "Response Get Role Privileges V3 Access Roles Role Id Privileges Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/roles/{role_id}/privileges/{privilege_id}": {"put": {"tags": ["Roles"], "summary": "Add Privilege To Role", "description": "Add a privilege to a role.\n\nRequired privilege: Role.Modify", "operationId": "add_privilege_to_role_v3_access_roles__role_id__privileges__privilege_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "role_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Role Id"}}, {"name": "privilege_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Privilege Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Roles"], "summary": "Remove Privilege From Role", "description": "Remove privilege from a role.\n\nRequired privilege: Role.Modify", "operationId": "remove_privilege_from_role_v3_access_roles__role_id__privileges__privilege_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "role_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Role Id"}}, {"name": "privilege_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Privilege Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/privileges": {"get": {"tags": ["Privileges"], "summary": "Get Privileges", "description": "Get all privileges.\n\nRequired privilege: None", "operationId": "get_privileges_v3_access_privileges_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/Privilege"}, "type": "array", "title": "Response Get Privileges V3 Access Privileges Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/access/acl/endpoints": {"get": {"tags": ["ACL"], "summary": "Endpoints", "description": "List all endpoints to be used in ACL entries.", "operationId": "endpoints_v3_access_acl_endpoints_get", "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"additionalProperties": true, "type": "object"}, "type": "array", "title": "Response Endpoints V3 Access Acl Endpoints Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/access/acl": {"get": {"tags": ["ACL"], "summary": "Get Aces", "description": "Get all ACL entries.\n\nRequired privilege: ACE.Audit", "operationId": "get_aces_v3_access_acl_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/ACE"}, "type": "array", "title": "Response Get Aces V3 Access Acl Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["ACL"], "summary": "Create Ace", "description": "Create a new ACL entry.\n\nRequired privilege: ACE.Allocate", "operationId": "create_ace_v3_access_acl_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ACECreate"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ACE"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/access/acl/{ace_id}": {"get": {"tags": ["ACL"], "summary": "Get Ace", "description": "Get an ACL entry.\n\nRequired privilege: ACE.Audit", "operationId": "get_ace_v3_access_acl__ace_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "ace_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Ace Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ACE"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["ACL"], "summary": "Update Ace", "description": "Update an ACL entry.\n\nRequired privilege: ACE.Modify", "operationId": "update_ace_v3_access_acl__ace_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "ace_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Ace Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ACEUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ACE"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["ACL"], "summary": "Delete Ace", "description": "Delete an ACL entry.\n\nRequired privilege: ACE.Allocate", "operationId": "delete_ace_v3_access_acl__ace_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "ace_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Ace Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/images/qemu/{image_path}": {"post": {"tags": ["Images"], "summary": "Create Qemu Image", "description": "Create a new blank Qemu image.\n\nRequired privilege: Image.Allocate", "operationId": "create_qemu_image_v3_images_qemu__image_path__post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "image_path", "in": "path", "required": true, "schema": {"type": "string", "title": "Image Path"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/QemuDiskImageCreate"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Image"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/images": {"get": {"tags": ["Images"], "summary": "Get Images", "description": "Return all images.\n\nRequired privilege: Image.Audit", "operationId": "get_images_v3_images_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "image_type", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/ImageType"}, {"type": "null"}], "title": "Image Type"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Image"}, "title": "Response Get Images V3 Images Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/images/upload/{image_path}": {"post": {"tags": ["Images"], "summary": "Upload Image", "description": "Upload an image.\n\nExample: curl -X POST http://host:port/v3/images/upload/my_image_name.qcow2 -H 'Authorization: Bearer ' --data-binary @\"/path/to/image.qcow2\"\n\nRequired privilege: Image.Allocate", "operationId": "upload_image_v3_images_upload__image_path__post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "image_path", "in": "path", "required": true, "schema": {"type": "string", "title": "Image Path"}}, {"name": "install_appliances", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Install Appliances"}}], "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Image"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/images/prune": {"delete": {"tags": ["Images"], "summary": "Prune Images", "description": "Prune images not attached to any template.\n\nRequired privilege: Image.Allocate", "operationId": "prune_images_v3_images_prune_delete", "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/images/install": {"post": {"tags": ["Images"], "summary": "Install Images", "description": "Attempt to automatically create templates based on image checksums.\n\nRequired privilege: Image.Allocate", "operationId": "install_images_v3_images_install_post", "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/images/{image_path}": {"get": {"tags": ["Images"], "summary": "Get Image", "description": "Return an image.\n\nRequired privilege: Image.Audit", "operationId": "get_image_v3_images__image_path__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "image_path", "in": "path", "required": true, "schema": {"type": "string", "title": "Image Path"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Image"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Images"], "summary": "Delete Image", "description": "Delete an image.\n\nRequired privilege: Image.Allocate", "operationId": "delete_image_v3_images__image_path__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "image_path", "in": "path", "required": true, "schema": {"type": "string", "title": "Image Path"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/templates": {"get": {"tags": ["Templates"], "summary": "Get Templates", "description": "Return all templates.\n\nRequired privilege: Template.Audit", "operationId": "get_templates_v3_templates_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/Template"}, "type": "array", "title": "Response Get Templates V3 Templates Get"}}}}, "404": {"description": "Could not find template", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Templates"], "summary": "Create Template", "description": "Create a new template.\n\nRequired privilege: Template.Allocate", "operationId": "create_template_v3_templates_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/TemplateCreate"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Template"}}}}, "404": {"description": "Could not find template", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/templates/{template_id}": {"get": {"tags": ["Templates"], "summary": "Get Template", "description": "Return a template.\n\nRequired privilege: Template.Audit", "operationId": "get_template_v3_templates__template_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "template_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Template Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Template"}}}}, "404": {"description": "Could not find template", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Templates"], "summary": "Update Template", "description": "Update a template.\n\nRequired privilege: Template.Modify", "operationId": "update_template_v3_templates__template_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "template_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Template Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TemplateUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Template"}}}}, "404": {"description": "Could not find template", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Templates"], "summary": "Delete Template", "description": "Delete a template.\n\nRequired privilege: Template.Allocate", "operationId": "delete_template_v3_templates__template_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "template_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Template Id"}}, {"name": "prune_images", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Prune Images"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find template", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/templates/{template_id}/duplicate": {"post": {"tags": ["Templates"], "summary": "Duplicate Template", "description": "Duplicate a template.\n\nRequired privilege: Template.Allocate", "operationId": "duplicate_template_v3_templates__template_id__duplicate_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "template_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Template Id"}}], "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Template"}}}}, "404": {"description": "Could not find template", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects": {"get": {"tags": ["Projects"], "summary": "Get Projects", "description": "Return all projects.\n\nRequired privilege: Project.Audit", "operationId": "get_projects_v3_projects_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/Project"}, "type": "array", "title": "Response Get Projects V3 Projects Get"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Projects"], "summary": "Create Project", "description": "Create a new project.\n\nRequired privilege: Project.Allocate", "operationId": "create_project_v3_projects_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProjectCreate"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "409": {"description": "Could not create project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}": {"get": {"tags": ["Projects"], "summary": "Get Project", "description": "Return a project.\n\nRequired privilege: Project.Audit", "operationId": "get_project_v3_projects__project_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Projects"], "summary": "Update Project", "description": "Update a project.\n\nRequired privilege: Project.Modify", "operationId": "update_project_v3_projects__project_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProjectUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Projects"], "summary": "Delete Project", "description": "Delete a project.\n\nRequired privilege: Project.Allocate", "operationId": "delete_project_v3_projects__project_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/stats": {"get": {"tags": ["Projects"], "summary": "Get Project Stats", "description": "Return a project statistics.\n\nRequired privilege: Project.Audit", "operationId": "get_project_stats_v3_projects__project_id__stats_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "object", "additionalProperties": true, "title": "Response Get Project Stats V3 Projects Project Id Stats Get"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/close": {"post": {"tags": ["Projects"], "summary": "Close Project", "description": "Close a project.\n\nRequired privilege: Project.Allocate", "operationId": "close_project_v3_projects__project_id__close_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "409": {"description": "Could not close project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/open": {"post": {"tags": ["Projects"], "summary": "Open Project", "description": "Open a project.\n\nRequired privilege: Project.Allocate", "operationId": "open_project_v3_projects__project_id__open_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "409": {"description": "Could not open project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/load": {"post": {"tags": ["Projects"], "summary": "Load Project", "description": "Load a project (local server only).\n\nRequired privilege: Project.Allocate", "operationId": "load_project_v3_projects_load_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Body_load_project_v3_projects_load_post"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "409": {"description": "Could not load project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/notifications": {"get": {"tags": ["Projects"], "summary": "Project Http Notifications", "description": "Receive project notifications about the controller from HTTP stream.\n\nRequired privilege: Project.Audit", "operationId": "project_http_notifications_v3_projects__project_id__notifications_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/export": {"get": {"tags": ["Projects"], "summary": "Export Project", "description": "Export a project as a portable archive.\n\nRequired privilege: Project.Audit", "operationId": "export_project_v3_projects__project_id__export_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "include_snapshots", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Include Snapshots"}}, {"name": "include_images", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Include Images"}}, {"name": "reset_mac_addresses", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Reset Mac Addresses"}}, {"name": "keep_compute_ids", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Keep Compute Ids"}}, {"name": "compression", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/ProjectCompression", "default": "zstd"}}, {"name": "compression_level", "in": "query", "required": false, "schema": {"type": "integer", "title": "Compression Level"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/import": {"post": {"tags": ["Projects"], "summary": "Import Project", "description": "Import a project from a portable archive.\n\nRequired privilege: Project.Allocate", "operationId": "import_project_v3_projects__project_id__import_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "name", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}}], "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/duplicate": {"post": {"tags": ["Projects"], "summary": "Duplicate Project", "description": "Duplicate a project.\n\nRequired privilege: Project.Audit", "operationId": "duplicate_project_v3_projects__project_id__duplicate_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProjectDuplicate"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "409": {"description": "Could not duplicate project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/locked": {"get": {"tags": ["Projects"], "summary": "Locked Project", "description": "Returns whether a project is locked or not.\n\nRequired privilege: Project.Audit", "operationId": "locked_project_v3_projects__project_id__locked_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "boolean", "title": "Response Locked Project V3 Projects Project Id Locked Get"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/lock": {"post": {"tags": ["Projects"], "summary": "Lock Project", "description": "Lock all drawings and nodes in a given project.\n\nRequired privilege: Project.Audit", "operationId": "lock_project_v3_projects__project_id__lock_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/unlock": {"post": {"tags": ["Projects"], "summary": "Unlock Project", "description": "Unlock all drawings and nodes in a given project.\n\nRequired privilege: Project.Modify", "operationId": "unlock_project_v3_projects__project_id__unlock_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/files/{file_path}": {"get": {"tags": ["Projects"], "summary": "Get File", "description": "Return a file from a project.\n\nRequired privilege: Project.Audit", "operationId": "get_file_v3_projects__project_id__files__file_path__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "file_path", "in": "path", "required": true, "schema": {"type": "string", "title": "File Path"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["Projects"], "summary": "Write File", "description": "Write a file to a project.\n\nRequired privilege: Project.Modify", "operationId": "write_file_v3_projects__project_id__files__file_path__post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "file_path", "in": "path", "required": true, "schema": {"type": "string", "title": "File Path"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/templates/{template_id}": {"post": {"tags": ["Projects"], "summary": "Create Node From Template", "description": "Create a new node from a template.\n\nRequired privilege: Node.Allocate", "operationId": "create_node_from_template_v3_projects__project_id__templates__template_id__post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "template_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Template Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TemplateUsage"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Node"}}}}, "404": {"description": "Could not find project or template", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes": {"post": {"tags": ["Nodes"], "summary": "Create Node", "description": "Create a new node.\n\nRequired privilege: Node.Allocate", "operationId": "create_node_v3_projects__project_id__nodes_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NodeCreate"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Node"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "409": {"description": "Could not create node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "get": {"tags": ["Nodes"], "summary": "Get Nodes", "description": "Return all nodes belonging to a given project.\n\nRequired privilege: Node.Audit", "operationId": "get_nodes_v3_projects__project_id__nodes_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Node"}, "title": "Response Get Nodes V3 Projects Project Id Nodes Get"}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/start": {"post": {"tags": ["Nodes"], "summary": "Start All Nodes", "description": "Start all nodes belonging to a given project.\n\nRequired privilege: Node.PowerMgmt", "operationId": "start_all_nodes_v3_projects__project_id__nodes_start_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/stop": {"post": {"tags": ["Nodes"], "summary": "Stop All Nodes", "description": "Stop all nodes belonging to a given project.\n\nRequired privilege: Node.PowerMgmt", "operationId": "stop_all_nodes_v3_projects__project_id__nodes_stop_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/suspend": {"post": {"tags": ["Nodes"], "summary": "Suspend All Nodes", "description": "Suspend all nodes belonging to a given project.\n\nRequired privilege: Node.PowerMgmt", "operationId": "suspend_all_nodes_v3_projects__project_id__nodes_suspend_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/reload": {"post": {"tags": ["Nodes"], "summary": "Reload All Nodes", "description": "Reload all nodes belonging to a given project.\n\nRequired privilege: Node.PowerMgmt", "operationId": "reload_all_nodes_v3_projects__project_id__nodes_reload_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}": {"get": {"tags": ["Nodes"], "summary": "Get Node", "description": "Return a node from a given project.\n\nRequired privilege: Node.Audit", "operationId": "get_node_v3_projects__project_id__nodes__node_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Node"}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Nodes"], "summary": "Update Node", "description": "Update a node.\n\nRequired privilege: Node.Modify", "operationId": "update_node_v3_projects__project_id__nodes__node_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NodeUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Node"}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Nodes"], "summary": "Delete Node", "description": "Delete a node from a project.\n\nRequired privilege: Node.Allocate", "operationId": "delete_node_v3_projects__project_id__nodes__node_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "409": {"description": "Cannot delete node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/duplicate": {"post": {"tags": ["Nodes"], "summary": "Duplicate Node", "description": "Duplicate a node.\n\nRequired privilege: Node.Allocate", "operationId": "duplicate_node_v3_projects__project_id__nodes__node_id__duplicate_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NodeDuplicate"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Node"}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/start": {"post": {"tags": ["Nodes"], "summary": "Start Node", "description": "Start a node.\n\nRequired privilege: Node.PowerMgmt", "operationId": "start_node_v3_projects__project_id__nodes__node_id__start_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "additionalProperties": true, "title": "Start Data"}}}}, "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/stop": {"post": {"tags": ["Nodes"], "summary": "Stop Node", "description": "Stop a node.\n\nRequired privilege: Node.PowerMgmt", "operationId": "stop_node_v3_projects__project_id__nodes__node_id__stop_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/suspend": {"post": {"tags": ["Nodes"], "summary": "Suspend Node", "description": "Suspend a node.\n\nRequired privilege: Node.PowerMgmt", "operationId": "suspend_node_v3_projects__project_id__nodes__node_id__suspend_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/reload": {"post": {"tags": ["Nodes"], "summary": "Reload Node", "description": "Reload a node.\n\nRequired privilege: Node.PowerMgmt", "operationId": "reload_node_v3_projects__project_id__nodes__node_id__reload_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/isolate": {"post": {"tags": ["Nodes"], "summary": "Isolate Node", "description": "Isolate a node (suspend all attached links).\n\nRequired privilege: Link.Modify", "operationId": "isolate_node_v3_projects__project_id__nodes__node_id__isolate_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/unisolate": {"post": {"tags": ["Nodes"], "summary": "Unisolate Node", "description": "Un-isolate a node (resume all attached suspended links).\n\nRequired privilege: Link.Modify", "operationId": "unisolate_node_v3_projects__project_id__nodes__node_id__unisolate_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/links": {"get": {"tags": ["Nodes"], "summary": "Get Node Links", "description": "Return all the links connected to a node.\n\nRequired privilege: Link.Audit", "operationId": "get_node_links_v3_projects__project_id__nodes__node_id__links_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Link"}, "title": "Response Get Node Links V3 Projects Project Id Nodes Node Id Links Get"}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/dynamips/auto_idlepc": {"get": {"tags": ["Nodes"], "summary": "Auto Idlepc", "description": "Compute an Idle-PC value for a Dynamips node\n\nRequired privilege: Node.Audit", "operationId": "auto_idlepc_v3_projects__project_id__nodes__node_id__dynamips_auto_idlepc_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "object", "additionalProperties": true, "title": "Response Auto Idlepc V3 Projects Project Id Nodes Node Id Dynamips Auto Idlepc Get"}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/dynamips/idlepc_proposals": {"get": {"tags": ["Nodes"], "summary": "Idlepc Proposals", "description": "Compute a list of potential idle-pc values for a Dynamips node\n\nRequired privilege: Node.Audit", "operationId": "idlepc_proposals_v3_projects__project_id__nodes__node_id__dynamips_idlepc_proposals_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"type": "string"}, "title": "Response Idlepc Proposals V3 Projects Project Id Nodes Node Id Dynamips Idlepc Proposals Get"}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/qemu/disk_image/{disk_name}": {"post": {"tags": ["Nodes"], "summary": "Create Disk Image", "description": "Create a Qemu disk image.\n\nRequired privilege: Node.Allocate", "operationId": "create_disk_image_v3_projects__project_id__nodes__node_id__qemu_disk_image__disk_name__post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "disk_name", "in": "path", "required": true, "schema": {"type": "string", "title": "Disk Name"}}, {"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/QemuDiskImageCreate"}}}}, "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Nodes"], "summary": "Update Disk Image", "description": "Update a Qemu disk image.\n\nRequired privilege: Node.Allocate", "operationId": "update_disk_image_v3_projects__project_id__nodes__node_id__qemu_disk_image__disk_name__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "disk_name", "in": "path", "required": true, "schema": {"type": "string", "title": "Disk Name"}}, {"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/QemuDiskImageUpdate"}}}}, "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Nodes"], "summary": "Delete Disk Image", "description": "Delete a Qemu disk image.\n\nRequired privilege: Node.Allocate", "operationId": "delete_disk_image_v3_projects__project_id__nodes__node_id__qemu_disk_image__disk_name__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "disk_name", "in": "path", "required": true, "schema": {"type": "string", "title": "Disk Name"}}, {"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/files/{file_path}": {"get": {"tags": ["Nodes"], "summary": "Get File", "description": "Return a file from the node directory.\n\nRequired privilege: Node.Audit", "operationId": "get_file_v3_projects__project_id__nodes__node_id__files__file_path__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "file_path", "in": "path", "required": true, "schema": {"type": "string", "title": "File Path"}}, {"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["Nodes"], "summary": "Post File", "description": "Write a file in the node directory.\n\nRequired privilege: Node.Modify", "operationId": "post_file_v3_projects__project_id__nodes__node_id__files__file_path__post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "file_path", "in": "path", "required": true, "schema": {"type": "string", "title": "File Path"}}, {"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/console/reset": {"post": {"tags": ["Nodes"], "summary": "Reset Console All Nodes", "description": "Reset console for all nodes belonging to the project.\n\nRequired privilege: Node.Console", "operationId": "reset_console_all_nodes_v3_projects__project_id__nodes_console_reset_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/console/reset": {"post": {"tags": ["Nodes"], "summary": "Console Reset", "description": "Reset a console for a given node.\n\nRequired privilege: Node.Console", "operationId": "console_reset_v3_projects__project_id__nodes__node_id__console_reset_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/links": {"get": {"tags": ["Links"], "summary": "Get Links", "description": "Return all links for a given project.\n\nRequired privilege: Link.Audit", "operationId": "get_links_v3_projects__project_id__links_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Link"}, "title": "Response Get Links V3 Projects Project Id Links Get"}}}}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["Links"], "summary": "Create Link", "description": "Create a new link.\n\nRequired privilege: Link.Allocate", "operationId": "create_link_v3_projects__project_id__links_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LinkCreate"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Link"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "409": {"description": "Could not create link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/links/{link_id}/available_filters": {"get": {"tags": ["Links"], "summary": "Get Filters", "description": "Return all filters available for a given link.\n\nRequired privilege: Link.Audit", "operationId": "get_filters_v3_projects__project_id__links__link_id__available_filters_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"type": "object", "additionalProperties": true}, "title": "Response Get Filters V3 Projects Project Id Links Link Id Available Filters Get"}}}}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/links/{link_id}": {"get": {"tags": ["Links"], "summary": "Get Link", "description": "Return a link.\n\nRequired privilege: Link.Audit", "operationId": "get_link_v3_projects__project_id__links__link_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Link"}}}}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Links"], "summary": "Update Link", "description": "Update a link.\n\nRequired privilege: Link.Modify", "operationId": "update_link_v3_projects__project_id__links__link_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LinkUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Link"}}}}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Links"], "summary": "Delete Link", "description": "Delete a link.\n\nRequired privilege: Link.Allocate", "operationId": "delete_link_v3_projects__project_id__links__link_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/links/{link_id}/reset": {"post": {"tags": ["Links"], "summary": "Reset Link", "description": "Reset a link.\n\nRequired privilege: Link.Modify", "operationId": "reset_link_v3_projects__project_id__links__link_id__reset_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Link"}}}}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/links/{link_id}/capture/start": {"post": {"tags": ["Links"], "summary": "Start Capture", "description": "Start packet capture on the link.\n\nRequired privilege: Link.Capture", "operationId": "start_capture_v3_projects__project_id__links__link_id__capture_start_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "additionalProperties": true, "title": "Capture Data"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Link"}}}}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/links/{link_id}/capture/stop": {"post": {"tags": ["Links"], "summary": "Stop Capture", "description": "Stop packet capture on the link.\n\nRequired privilege: Link.Capture", "operationId": "stop_capture_v3_projects__project_id__links__link_id__capture_stop_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/links/{link_id}/capture/stream": {"get": {"tags": ["Links"], "summary": "Stream Pcap", "description": "Stream the PCAP capture file from compute.\n\nRequired privilege: Link.Capture", "operationId": "stream_pcap_v3_projects__project_id__links__link_id__capture_stream_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/links/{link_id}/iface": {"get": {"tags": ["Links"], "summary": "Get Iface", "description": "Return iface info for links to Cloud or NAT devices.\n\nRequired privilege: Link.Audit", "operationId": "get_iface_v3_projects__project_id__links__link_id__iface_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/UDPPortInfo"}, {"$ref": "#/components/schemas/EthernetPortInfo"}], "title": "Response Get Iface V3 Projects Project Id Links Link Id Iface Get"}}}}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/drawings": {"get": {"tags": ["Drawings"], "summary": "Get Drawings", "description": "Return the list of all drawings for a given project.\n\nRequired privilege: Drawing.Audit", "operationId": "get_drawings_v3_projects__project_id__drawings_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Drawing"}, "title": "Response Get Drawings V3 Projects Project Id Drawings Get"}}}}, "404": {"description": "Project or drawing not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["Drawings"], "summary": "Create Drawing", "description": "Create a new drawing.\n\nRequired privilege: Drawing.Allocate", "operationId": "create_drawing_v3_projects__project_id__drawings_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Drawing"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Drawing"}}}}, "404": {"description": "Project or drawing not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/drawings/{drawing_id}": {"get": {"tags": ["Drawings"], "summary": "Get Drawing", "description": "Return a drawing.\n\nRequired privilege: Drawing.Audit", "operationId": "get_drawing_v3_projects__project_id__drawings__drawing_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "drawing_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Drawing Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Drawing"}}}}, "404": {"description": "Project or drawing not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Drawings"], "summary": "Update Drawing", "description": "Update a drawing.\n\nRequired privilege: Drawing.Modify", "operationId": "update_drawing_v3_projects__project_id__drawings__drawing_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "drawing_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Drawing Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Drawing"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Drawing"}}}}, "404": {"description": "Project or drawing not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Drawings"], "summary": "Delete Drawing", "description": "Delete a drawing.\n\nRequired privilege: Drawing.Allocate", "operationId": "delete_drawing_v3_projects__project_id__drawings__drawing_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "drawing_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Drawing Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Project or drawing not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/symbols": {"get": {"tags": ["Symbols"], "summary": "Get Symbols", "description": "Return all symbols.\n\nRequired privilege: Symbol.Audit", "operationId": "get_symbols_v3_symbols_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"additionalProperties": true, "type": "object"}, "type": "array", "title": "Response Get Symbols V3 Symbols Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/symbols/{symbol_id}/raw": {"get": {"tags": ["Symbols"], "summary": "Get Symbol", "description": "Download a symbol file.\n\nRequired privilege: Symbol.Audit", "operationId": "get_symbol_v3_symbols__symbol_id__raw_get", "parameters": [{"name": "symbol_id", "in": "path", "required": true, "schema": {"type": "string", "title": "Symbol Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "404": {"description": "Could not find symbol", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["Symbols"], "summary": "Upload Symbol", "description": "Upload a symbol file.\n\nRequired privilege: Symbol.Allocate", "operationId": "upload_symbol_v3_symbols__symbol_id__raw_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "symbol_id", "in": "path", "required": true, "schema": {"type": "string", "title": "Symbol Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/symbols/{symbol_id}/dimensions": {"get": {"tags": ["Symbols"], "summary": "Get Symbol Dimensions", "description": "Get a symbol dimensions.\n\nRequired privilege: Symbol.Audit", "operationId": "get_symbol_dimensions_v3_symbols__symbol_id__dimensions_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "symbol_id", "in": "path", "required": true, "schema": {"type": "string", "title": "Symbol Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "object", "additionalProperties": true, "title": "Response Get Symbol Dimensions V3 Symbols Symbol Id Dimensions Get"}}}}, "404": {"description": "Could not find symbol", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/symbols/default_symbols": {"get": {"tags": ["Symbols"], "summary": "Get Default Symbols", "description": "Return all default symbols.\n\nRequired privilege: Symbol.Audit", "operationId": "get_default_symbols_v3_symbols_default_symbols_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"additionalProperties": true, "type": "object", "title": "Response Get Default Symbols V3 Symbols Default Symbols Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/snapshots": {"post": {"tags": ["Snapshots"], "summary": "Create Snapshot", "description": "Create a new snapshot of a project.\n\nRequired privilege: Snapshot.Allocate", "operationId": "create_snapshot_v3_projects__project_id__snapshots_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SnapshotCreate"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Snapshot"}}}}, "404": {"description": "Could not find project or snapshot", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "get": {"tags": ["Snapshots"], "summary": "Get Snapshots", "description": "Return all snapshots belonging to a given project.\n\nRequired privilege: Snapshot.Audit", "operationId": "get_snapshots_v3_projects__project_id__snapshots_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Snapshot"}, "title": "Response Get Snapshots V3 Projects Project Id Snapshots Get"}}}}, "404": {"description": "Could not find project or snapshot", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/snapshots/{snapshot_id}": {"delete": {"tags": ["Snapshots"], "summary": "Delete Snapshot", "description": "Delete a snapshot.\n\nRequired privilege: Snapshot.Allocate", "operationId": "delete_snapshot_v3_projects__project_id__snapshots__snapshot_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "snapshot_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Snapshot Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or snapshot", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/snapshots/{snapshot_id}/restore": {"post": {"tags": ["Snapshots"], "summary": "Restore Snapshot", "description": "Restore a snapshot.\n\nRequired privilege: Snapshot.Restore", "operationId": "restore_snapshot_v3_projects__project_id__snapshots__snapshot_id__restore_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "snapshot_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Snapshot Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "404": {"description": "Could not find project or snapshot", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/computes": {"post": {"tags": ["Computes"], "summary": "Create Compute", "description": "Create a new compute on the controller.\n\nRequired privilege: Compute.Allocate", "operationId": "create_compute_v3_computes_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "connect", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Connect"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ComputeCreate"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Compute"}}}}, "404": {"description": "Could not connect to compute", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "409": {"description": "Could not create compute", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "401": {"description": "Invalid authentication for compute", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "get": {"tags": ["Computes"], "summary": "Get Computes", "description": "Return all computes known by the controller.\n\nRequired privilege: Compute.Audit", "operationId": "get_computes_v3_computes_get", "security": [{"OAuth2PasswordBearer": []}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Compute"}, "title": "Response Get Computes V3 Computes Get"}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/computes/{compute_id}/connect": {"post": {"tags": ["Computes"], "summary": "Connect Compute", "description": "Connect to compute on the controller.\n\nRequired privilege: Compute.Audit", "operationId": "connect_compute_v3_computes__compute_id__connect_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/computes/{compute_id}": {"get": {"tags": ["Computes"], "summary": "Get Compute", "description": "Return a compute from the controller.\n\nRequired privilege: Compute.Audit", "operationId": "get_compute_v3_computes__compute_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Compute"}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Computes"], "summary": "Update Compute", "description": "Update a compute on the controller.\n\nRequired privilege: Compute.Modify", "operationId": "update_compute_v3_computes__compute_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ComputeUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Compute"}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Computes"], "summary": "Delete Compute", "description": "Delete a compute from the controller.\n\nRequired privilege: Compute.Allocate", "operationId": "delete_compute_v3_computes__compute_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/computes/{compute_id}/docker/images": {"get": {"tags": ["Computes"], "summary": "Docker Get Images", "description": "Get Docker images from a compute.", "operationId": "docker_get_images_v3_computes__compute_id__docker_images_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/ComputeDockerImage"}, "title": "Response Docker Get Images V3 Computes Compute Id Docker Images Get"}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/computes/{compute_id}/virtualbox/vms": {"get": {"tags": ["Computes"], "summary": "Virtualbox Vms", "description": "Get VirtualBox VMs from a compute.", "operationId": "virtualbox_vms_v3_computes__compute_id__virtualbox_vms_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/ComputeVirtualBoxVM"}, "title": "Response Virtualbox Vms V3 Computes Compute Id Virtualbox Vms Get"}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/computes/{compute_id}/vmware/vms": {"get": {"tags": ["Computes"], "summary": "Vmware Vms", "description": "Get VMware VMs from a compute.", "operationId": "vmware_vms_v3_computes__compute_id__vmware_vms_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/ComputeVMwareVM"}, "title": "Response Vmware Vms V3 Computes Compute Id Vmware Vms Get"}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/computes/{compute_id}/dynamips/auto_idlepc": {"post": {"tags": ["Computes"], "summary": "Dynamips Autoidlepc", "description": "Find a suitable Idle-PC value for a given IOS image. This may take a few minutes.", "operationId": "dynamips_autoidlepc_v3_computes__compute_id__dynamips_auto_idlepc_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AutoIdlePC"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/computes/{compute_id}/{emulator}/{endpoint_path}": {"get": {"tags": ["Computes"], "summary": "Forward Get", "description": "Forward a GET request to a compute.\nRead the full compute API documentation for available routes.", "operationId": "forward_get_v3_computes__compute_id___emulator___endpoint_path__get", "deprecated": true, "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}, {"name": "emulator", "in": "path", "required": true, "schema": {"type": "string", "title": "Emulator"}}, {"name": "endpoint_path", "in": "path", "required": true, "schema": {"type": "string", "title": "Endpoint Path"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Forward Get V3 Computes Compute Id Emulator Endpoint Path Get"}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["Computes"], "summary": "Forward Post", "description": "Forward a POST request to a compute.\nRead the full compute API documentation for available routes.", "operationId": "forward_post_v3_computes__compute_id___emulator___endpoint_path__post", "deprecated": true, "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}, {"name": "emulator", "in": "path", "required": true, "schema": {"type": "string", "title": "Emulator"}}, {"name": "endpoint_path", "in": "path", "required": true, "schema": {"type": "string", "title": "Endpoint Path"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "additionalProperties": true, "title": "Compute Data"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Forward Post V3 Computes Compute Id Emulator Endpoint Path Post"}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Computes"], "summary": "Forward Put", "description": "Forward a PUT request to a compute.\nRead the full compute API documentation for available routes.", "operationId": "forward_put_v3_computes__compute_id___emulator___endpoint_path__put", "deprecated": true, "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}, {"name": "emulator", "in": "path", "required": true, "schema": {"type": "string", "title": "Emulator"}}, {"name": "endpoint_path", "in": "path", "required": true, "schema": {"type": "string", "title": "Endpoint Path"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "additionalProperties": true, "title": "Compute Data"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Forward Put V3 Computes Compute Id Emulator Endpoint Path Put"}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/appliances": {"get": {"tags": ["Appliances"], "summary": "Get Appliances", "description": "Return all appliances known by the controller.\n\nRequired privilege: Appliance.Audit", "operationId": "get_appliances_v3_appliances_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "update", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Update"}}, {"name": "symbol_theme", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Symbol Theme"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Appliance"}, "title": "Response Get Appliances V3 Appliances Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/appliances/{appliance_id}": {"get": {"tags": ["Appliances"], "summary": "Get Appliance", "description": "Get an appliance file.\n\nRequired privilege: Appliance.Audit", "operationId": "get_appliance_v3_appliances__appliance_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "appliance_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Appliance Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Appliance"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/appliances/{appliance_id}/version": {"post": {"tags": ["Appliances"], "summary": "Add Appliance Version", "description": "Add a version to an appliance.\n\nRequired privilege: Appliance.Allocate", "operationId": "add_appliance_version_v3_appliances__appliance_id__version_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "appliance_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Appliance Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApplianceVersion"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "object", "additionalProperties": true, "title": "Response Add Appliance Version V3 Appliances Appliance Id Version Post"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/appliances/{appliance_id}/install": {"post": {"tags": ["Appliances"], "summary": "Install Appliance", "description": "Install an appliance.\n\nRequired privilege: Appliance.Allocate", "operationId": "install_appliance_v3_appliances__appliance_id__install_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "appliance_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Appliance Id"}}, {"name": "version", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Version"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/pools": {"get": {"tags": ["Resource pools"], "summary": "Get Resource Pools", "description": "Get all resource pools.\n\nRequired privilege: Pool.Audit", "operationId": "get_resource_pools_v3_pools_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/ResourcePool"}, "type": "array", "title": "Response Get Resource Pools V3 Pools Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Resource pools"], "summary": "Create Resource Pool", "description": "Create a new resource pool\n\nRequired privilege: Pool.Allocate", "operationId": "create_resource_pool_v3_pools_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResourcePoolCreate"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResourcePool"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/pools/{resource_pool_id}": {"get": {"tags": ["Resource pools"], "summary": "Get Resource Pool", "description": "Get a resource pool.\n\nRequired privilege: Pool.Audit", "operationId": "get_resource_pool_v3_pools__resource_pool_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "resource_pool_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Resource Pool Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResourcePool"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Resource pools"], "summary": "Update Resource Pool", "description": "Update a resource pool.\n\nRequired privilege: Pool.Modify", "operationId": "update_resource_pool_v3_pools__resource_pool_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "resource_pool_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Resource Pool Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResourcePoolUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResourcePool"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Resource pools"], "summary": "Delete Resource Pool", "description": "Delete a resource pool.\n\nRequired privilege: Pool.Allocate", "operationId": "delete_resource_pool_v3_pools__resource_pool_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "resource_pool_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Resource Pool Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/pools/{resource_pool_id}/resources": {"get": {"tags": ["Resource pools"], "summary": "Get Pool Resources", "description": "Get all resource in a pool.\n\nRequired privilege: Pool.Audit", "operationId": "get_pool_resources_v3_pools__resource_pool_id__resources_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "resource_pool_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Resource Pool Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Resource"}, "title": "Response Get Pool Resources V3 Pools Resource Pool Id Resources Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/pools/{resource_pool_id}/resources/{resource_id}": {"put": {"tags": ["Resource pools"], "summary": "Add Resource To Pool", "description": "Add resource to a resource pool.\n\nRequired privilege: Pool.Modify", "operationId": "add_resource_to_pool_v3_pools__resource_pool_id__resources__resource_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "resource_pool_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Resource Pool Id"}}, {"name": "resource_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Resource Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Resource pools"], "summary": "Remove Resource From Pool", "description": "Remove resource from a resource pool.\n\nRequired privilege: Pool.Modify", "operationId": "remove_resource_from_pool_v3_pools__resource_pool_id__resources__resource_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "resource_pool_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Resource Pool Id"}}, {"name": "resource_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Resource Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/gns3vm/engines": {"get": {"tags": ["GNS3 VM"], "summary": "Get Engines", "description": "Return the list of supported engines for the GNS3VM.", "operationId": "get_engines_v3_gns3vm_engines_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"additionalProperties": true, "type": "object"}, "type": "array", "title": "Response Get Engines V3 Gns3Vm Engines Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "deprecated": true, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/gns3vm/engines/{engine}/vms": {"get": {"tags": ["GNS3 VM"], "summary": "Get Vms", "description": "Return all the available VMs for a specific virtualization engine.", "operationId": "get_vms_v3_gns3vm_engines__engine__vms_get", "deprecated": true, "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "engine", "in": "path", "required": true, "schema": {"type": "string", "title": "Engine"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"type": "object", "additionalProperties": true}, "title": "Response Get Vms V3 Gns3Vm Engines Engine Vms Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/gns3vm": {"get": {"tags": ["GNS3 VM"], "summary": "Get Gns3Vm Settings", "description": "Return the GNS3 VM settings.", "operationId": "get_gns3vm_settings_v3_gns3vm_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GNS3VM"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "deprecated": true, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["GNS3 VM"], "summary": "Update Gns3Vm Settings", "description": "Update the GNS3 VM settings.", "operationId": "update_gns3vm_settings_v3_gns3vm_put", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/GNS3VM"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GNS3VM"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "deprecated": true, "security": [{"OAuth2PasswordBearer": []}]}}}, "components": {"schemas": {"ACE": {"properties": {"ace_type": {"$ref": "#/components/schemas/ACEType", "description": "Type of the ACE"}, "path": {"type": "string", "title": "Path"}, "propagate": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Propagate", "default": true}, "allowed": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Allowed", "default": true}, "user_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "User Id"}, "group_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Group Id"}, "role_id": {"type": "string", "format": "uuid", "title": "Role Id"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}, "ace_id": {"type": "string", "format": "uuid", "title": "Ace Id"}}, "type": "object", "required": ["ace_type", "path", "role_id", "ace_id"], "title": "ACE"}, "ACECreate": {"properties": {"ace_type": {"$ref": "#/components/schemas/ACEType", "description": "Type of the ACE"}, "path": {"type": "string", "title": "Path"}, "propagate": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Propagate", "default": true}, "allowed": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Allowed", "default": true}, "user_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "User Id"}, "group_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Group Id"}, "role_id": {"type": "string", "format": "uuid", "title": "Role Id"}}, "type": "object", "required": ["ace_type", "path", "role_id"], "title": "ACECreate", "description": "Properties to create an ACE."}, "ACEType": {"type": "string", "enum": ["user", "group"], "title": "ACEType"}, "ACEUpdate": {"properties": {"ace_type": {"$ref": "#/components/schemas/ACEType", "description": "Type of the ACE"}, "path": {"type": "string", "title": "Path"}, "propagate": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Propagate", "default": true}, "allowed": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Allowed", "default": true}, "user_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "User Id"}, "group_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Group Id"}, "role_id": {"type": "string", "format": "uuid", "title": "Role Id"}}, "type": "object", "required": ["ace_type", "path", "role_id"], "title": "ACEUpdate", "description": "Properties to update an ACE."}, "AdapterType": {"type": "string", "enum": ["e1000", "e1000-82544gc", "e1000-82545em", "e1000e", "i82550", "i82551", "i82557a", "i82557b", "i82557c", "i82558a", "i82558b", "i82559a", "i82559b", "i82559c", "i82559er", "i82562", "i82801", "igb", "ne2k_pci", "pcnet", "rocker", "rtl8139", "virtio", "virtio-net-pci", "vmxnet3"], "title": "AdapterType"}, "Appliance": {"properties": {"appliance_id": {"type": "string", "format": "uuid", "title": "Appliance ID"}, "name": {"type": "string", "title": "Appliance name"}, "builtin": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Whether the appliance is builtin or not"}, "category": {"$ref": "#/components/schemas/Category", "title": "Category of the appliance"}, "description": {"type": "string", "title": "Description of the appliance. Could be a marketing description"}, "vendor_name": {"type": "string", "title": "Name of the vendor"}, "vendor_url": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri"}, {"type": "string", "maxLength": 0}, {"type": "null"}], "title": "Website of the vendor"}, "documentation_url": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri"}, {"type": "string", "maxLength": 0}, {"type": "null"}], "title": "An optional documentation for using the appliance on vendor website"}, "product_name": {"type": "string", "title": "Product name"}, "product_url": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri"}, {"type": "string", "maxLength": 0}, {"type": "null"}], "title": "An optional product url on vendor website"}, "registry_version": {"$ref": "#/components/schemas/RegistryVersion", "title": "Version of the registry compatible with this appliance"}, "status": {"$ref": "#/components/schemas/Status", "title": "Document if the appliance is working or not"}, "availability": {"anyOf": [{"$ref": "#/components/schemas/Availability"}, {"type": "null"}], "title": "About image availability: can be downloaded directly; download requires a free registration; paid but a trial version (time or feature limited) is available; not available publicly"}, "maintainer": {"type": "string", "title": "Maintainer name"}, "maintainer_email": {"anyOf": [{"type": "string", "format": "email"}, {"type": "string", "maxLength": 0}, {"type": "null"}], "title": "Maintainer email"}, "usage": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "How to use the appliance"}, "symbol": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "An optional symbol for the appliance"}, "first_port_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Optional name of the first networking port example: eth0"}, "port_name_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Optional formating of the networking port example: eth{0}"}, "port_segment_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Optional port segment size. A port segment is a block of port. For example Ethernet0/0 Ethernet0/1 is the module 0 with a port segment size of 2"}, "linked_clone": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "False if you don't want to use a single image for all nodes"}, "docker": {"anyOf": [{"$ref": "#/components/schemas/Docker"}, {"type": "null"}], "title": "Docker specific options"}, "iou": {"anyOf": [{"$ref": "#/components/schemas/Iou"}, {"type": "null"}], "title": "IOU specific options"}, "dynamips": {"anyOf": [{"$ref": "#/components/schemas/Dynamips"}, {"type": "null"}], "title": "Dynamips specific options"}, "qemu": {"anyOf": [{"$ref": "#/components/schemas/Qemu"}, {"type": "null"}], "title": "Qemu specific options"}, "images": {"anyOf": [{"items": {"$ref": "#/components/schemas/ApplianceImage"}, "type": "array"}, {"type": "null"}], "title": "Images for this appliance"}, "versions": {"anyOf": [{"items": {"$ref": "#/components/schemas/ApplianceVersion"}, "type": "array"}, {"type": "null"}], "title": "Versions of the appliance"}}, "type": "object", "required": ["appliance_id", "name", "category", "description", "vendor_name", "product_name", "registry_version", "status", "maintainer"], "title": "Appliance"}, "ApplianceImage": {"properties": {"filename": {"type": "string", "title": "Filename"}, "version": {"type": "string", "title": "Version of the file"}, "md5sum": {"type": "string", "pattern": "^[a-f0-9]{32}$", "title": "md5sum of the file"}, "filesize": {"type": "integer", "title": "File size in bytes"}, "download_url": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri"}, {"type": "string", "maxLength": 0}, {"type": "null"}], "title": "Download url where you can download the appliance from a browser"}, "direct_download_url": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri"}, {"type": "string", "maxLength": 0}, {"type": "null"}], "title": "Optional. Non authenticated url to the image file where you can download the image."}, "compression": {"anyOf": [{"$ref": "#/components/schemas/Compression"}, {"type": "null"}], "title": "Optional, compression type of direct download url image."}}, "type": "object", "required": ["filename", "version", "md5sum", "filesize"], "title": "ApplianceImage"}, "ApplianceVersion": {"properties": {"name": {"type": "string", "title": "Name of the version"}, "idlepc": {"anyOf": [{"type": "string", "pattern": "^0x[0-9a-f]{8}"}, {"type": "null"}], "title": "Idlepc"}, "images": {"anyOf": [{"$ref": "#/components/schemas/ApplianceVersionImages"}, {"type": "null"}], "title": "Images used for this version"}}, "type": "object", "required": ["name"], "title": "ApplianceVersion"}, "ApplianceVersionImages": {"properties": {"kernel_image": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Kernel image"}, "initrd": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Initrd disk image"}, "image": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "OS image"}, "bios_image": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Bios image"}, "hda_disk_image": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hda disk image"}, "hdb_disk_image": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hdc disk image"}, "hdc_disk_image": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hdd disk image"}, "hdd_disk_image": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hdd diskimage"}, "cdrom_image": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "cdrom image"}}, "type": "object", "title": "ApplianceVersionImages"}, "Arch": {"type": "string", "enum": ["aarch64", "alpha", "arm", "cris", "i386", "lm32", "m68k", "microblaze", "microblazeel", "mips", "mips64", "mips64el", "mipsel", "moxie", "or32", "ppc", "ppc64", "ppcemb", "s390x", "sh4", "sh4eb", "sparc", "sparc64", "tricore", "unicore32", "x86_64", "xtensa", "xtensaeb"], "title": "Arch"}, "AutoIdlePC": {"properties": {"platform": {"type": "string", "title": "Platform", "description": "Cisco platform"}, "image": {"type": "string", "title": "Image", "description": "Image path"}, "ram": {"type": "integer", "title": "Ram", "description": "Amount of RAM in MB"}}, "type": "object", "required": ["platform", "image", "ram"], "title": "AutoIdlePC", "description": "Data for auto Idle-PC request.", "example": {"image": "/path/to/c7200_image.bin", "platform": "c7200", "ram": 256}}, "Availability": {"type": "string", "enum": ["free", "with-registration", "free-to-try", "service-contract"], "title": "Availability"}, "Body_load_project_v3_projects_load_post": {"properties": {"path": {"type": "string", "title": "Path"}}, "type": "object", "required": ["path"], "title": "Body_load_project_v3_projects_load_post"}, "Body_login_v3_access_users_login_post": {"properties": {"grant_type": {"anyOf": [{"type": "string", "pattern": "^password$"}, {"type": "null"}], "title": "Grant Type"}, "username": {"type": "string", "title": "Username"}, "password": {"type": "string", "format": "password", "title": "Password"}, "scope": {"type": "string", "title": "Scope", "default": ""}, "client_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Client Id"}, "client_secret": {"anyOf": [{"type": "string"}, {"type": "null"}], "format": "password", "title": "Client Secret"}}, "type": "object", "required": ["username", "password"], "title": "Body_login_v3_access_users_login_post"}, "BootPriority": {"type": "string", "enum": ["c", "d", "n", "cn", "cd", "dn", "dc", "nc", "nd"], "title": "BootPriority"}, "Capabilities": {"properties": {"version": {"type": "string", "title": "Version", "description": "Compute version number"}, "node_types": {"items": {"$ref": "#/components/schemas/NodeType"}, "type": "array", "title": "Node Types", "description": "Node types supported by the compute"}, "platform": {"type": "string", "title": "Platform", "description": "Platform where the compute is running (Linux, Windows or macOS)"}, "cpus": {"type": "integer", "title": "Cpus", "description": "Number of CPUs on this compute"}, "memory": {"type": "integer", "title": "Memory", "description": "Amount of memory on this compute"}, "disk_size": {"type": "integer", "title": "Disk Size", "description": "Disk size on this compute"}}, "type": "object", "required": ["version", "node_types", "platform", "cpus", "memory", "disk_size"], "title": "Capabilities", "description": "Capabilities supported by a compute."}, "Category": {"type": "string", "enum": ["router", "multilayer_switch", "switch", "firewall", "guest"], "title": "Category"}, "Category-Input": {"type": "string", "enum": ["router", "switch", "guest", "firewall"], "title": "Category", "description": "Supported categories"}, "Chassis": {"type": "string", "enum": ["1720", "1721", "1750", "1751", "1760", "2610", "2620", "2610XM", "2620XM", "2650XM", "2621", "2611XM", "2621XM", "2651XM", "3620", "3640", "3660"], "title": "Chassis"}, "Compression": {"type": "string", "enum": ["bzip2", "gzip", "lzma", "xz", "rar", "zip", "7z"], "title": "Compression"}, "Compute": {"properties": {"protocol": {"$ref": "#/components/schemas/Protocol"}, "host": {"type": "string", "title": "Host"}, "port": {"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0, "title": "Port"}, "user": {"type": "string", "title": "User"}, "password": {"anyOf": [{"type": "string", "format": "password", "writeOnly": true}, {"type": "null"}], "title": "Password"}, "name": {"type": "string", "title": "Name"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}, "compute_id": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}, "connected": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Connected", "description": "Whether the controller is connected to the compute or not"}, "cpu_usage_percent": {"anyOf": [{"type": "number", "maximum": 100.0, "minimum": 0.0}, {"type": "null"}], "title": "Cpu Usage Percent", "description": "CPU usage of the compute"}, "memory_usage_percent": {"anyOf": [{"type": "number", "maximum": 100.0, "minimum": 0.0}, {"type": "null"}], "title": "Memory Usage Percent", "description": "Memory usage of the compute"}, "disk_usage_percent": {"anyOf": [{"type": "number", "maximum": 100.0, "minimum": 0.0}, {"type": "null"}], "title": "Disk Usage Percent", "description": "Disk usage of the compute"}, "last_error": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Last Error", "description": "Last error found on the compute"}, "capabilities": {"anyOf": [{"$ref": "#/components/schemas/Capabilities"}, {"type": "null"}]}}, "type": "object", "required": ["protocol", "host", "port", "name", "compute_id"], "title": "Compute", "description": "Data returned for a compute."}, "ComputeCreate": {"properties": {"protocol": {"$ref": "#/components/schemas/Protocol"}, "host": {"type": "string", "title": "Host"}, "port": {"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0, "title": "Port"}, "user": {"type": "string", "title": "User"}, "password": {"anyOf": [{"type": "string", "format": "password", "writeOnly": true}, {"type": "null"}], "title": "Password"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}, "compute_id": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}, "type": "object", "required": ["protocol", "host", "port"], "title": "ComputeCreate", "description": "Data to create a compute.", "example": {"host": "127.0.0.1", "name": "My compute", "password": "password", "port": 3080, "user": "user"}}, "ComputeDockerImage": {"properties": {"image": {"type": "string", "title": "Image", "description": "Docker image name"}}, "type": "object", "required": ["image"], "title": "ComputeDockerImage", "description": "Docker image from compute."}, "ComputeUpdate": {"properties": {"protocol": {"anyOf": [{"$ref": "#/components/schemas/Protocol"}, {"type": "null"}]}, "host": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Host"}, "port": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Port"}, "user": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "User"}, "password": {"anyOf": [{"type": "string", "format": "password", "writeOnly": true}, {"type": "null"}], "title": "Password"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}}, "type": "object", "title": "ComputeUpdate", "description": "Data to update a compute.", "example": {"host": "10.0.0.1", "port": 8080}}, "ComputeVMwareVM": {"properties": {"vmname": {"type": "string", "title": "Vmname", "description": "VMware VM name"}, "vmx_path": {"type": "string", "title": "Vmx Path", "description": "Path to the vmx file"}}, "type": "object", "required": ["vmname", "vmx_path"], "title": "ComputeVMwareVM", "description": "VMware VM from compute."}, "ComputeVirtualBoxVM": {"properties": {"vmname": {"type": "string", "title": "Vmname", "description": "VirtualBox VM name"}, "ram": {"type": "integer", "title": "Ram", "description": "VirtualBox VM memory"}}, "type": "object", "required": ["vmname", "ram"], "title": "ComputeVirtualBoxVM", "description": "VirtualBox VM from compute."}, "ConsoleType": {"type": "string", "enum": ["vnc", "telnet", "http", "https", "spice", "spice+agent", "none"], "title": "ConsoleType", "description": "Supported console types."}, "ConsoleType-Input": {"type": "string", "enum": ["vnc", "telnet", "http", "https", "spice", "spice+agent", "none"], "title": "ConsoleType", "description": "Supported console types."}, "ConsoleType1": {"type": "string", "enum": ["telnet", "vnc", "spice", "spice+agent", "none"], "title": "ConsoleType1"}, "Credentials": {"properties": {"username": {"type": "string", "title": "Username"}, "password": {"type": "string", "title": "Password"}}, "type": "object", "required": ["username", "password"], "title": "Credentials"}, "CustomAdapter": {"properties": {"adapter_number": {"type": "integer", "title": "Adapter Number"}, "port_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Port Name"}, "adapter_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Adapter Type"}, "mac_address": {"anyOf": [{"type": "string", "pattern": "^([0-9a-fA-F]{2}[:]){5}([0-9a-fA-F]{2})$"}, {"type": "null"}], "title": "Mac Address"}}, "type": "object", "required": ["adapter_number"], "title": "CustomAdapter", "description": "Custom adapter data."}, "DiskInterface": {"type": "string", "enum": ["ide", "sata", "nvme", "scsi", "sd", "mtd", "floppy", "pflash", "virtio", "none"], "title": "DiskInterface"}, "Docker": {"properties": {"adapters": {"type": "integer", "title": "Number of ethernet adapters"}, "image": {"type": "string", "title": "Docker image in the Docker Hub"}, "start_command": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Command executed when the container start. Empty will use the default"}, "environment": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "One KEY=VAR environment by line"}, "console_type": {"anyOf": [{"$ref": "#/components/schemas/gns3server__schemas__controller__appliances__ConsoleType"}, {"type": "null"}], "title": "Type of console connection for the administration of the appliance"}, "console_http_port": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Console Http Port", "description": "Internal port in the container of the HTTP server"}, "console_http_path": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Console Http Path", "description": "Path of the web interface"}, "extra_hosts": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Extra Hosts", "description": "Hosts which will be written to /etc/hosts into container"}, "extra_volumes": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Extra Volumes", "description": "Additional directories to make persistent that are not included in the images VOLUME directive"}}, "type": "object", "required": ["adapters", "image"], "title": "Docker"}, "Drawing": {"properties": {"drawing_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Drawing Id"}, "project_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Project Id"}, "x": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "X"}, "y": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Y"}, "z": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Z"}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Locked"}, "rotation": {"anyOf": [{"type": "integer", "maximum": 360.0, "minimum": -359.0}, {"type": "null"}], "title": "Rotation"}, "svg": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Svg"}}, "type": "object", "title": "Drawing", "description": "Drawing data."}, "Dynamips": {"properties": {"chassis": {"anyOf": [{"$ref": "#/components/schemas/Chassis"}, {"type": "null"}], "title": "Chassis type"}, "platform": {"$ref": "#/components/schemas/Platform", "title": "Platform type"}, "ram": {"type": "integer", "minimum": 1.0, "title": "Amount of ram"}, "nvram": {"type": "integer", "minimum": 1.0, "title": "Amount of nvram"}, "startup_config": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Config loaded at startup"}, "wic0": {"anyOf": [{"$ref": "#/components/schemas/DynamipsWic"}, {"type": "null"}]}, "wic1": {"anyOf": [{"$ref": "#/components/schemas/DynamipsWic"}, {"type": "null"}]}, "wic2": {"anyOf": [{"$ref": "#/components/schemas/DynamipsWic"}, {"type": "null"}]}, "slot0": {"anyOf": [{"$ref": "#/components/schemas/DynamipsSlot"}, {"type": "null"}]}, "slot1": {"anyOf": [{"$ref": "#/components/schemas/DynamipsSlot"}, {"type": "null"}]}, "slot2": {"anyOf": [{"$ref": "#/components/schemas/DynamipsSlot"}, {"type": "null"}]}, "slot3": {"anyOf": [{"$ref": "#/components/schemas/DynamipsSlot"}, {"type": "null"}]}, "slot4": {"anyOf": [{"$ref": "#/components/schemas/DynamipsSlot"}, {"type": "null"}]}, "slot5": {"anyOf": [{"$ref": "#/components/schemas/DynamipsSlot"}, {"type": "null"}]}, "slot6": {"anyOf": [{"$ref": "#/components/schemas/DynamipsSlot"}, {"type": "null"}]}, "midplane": {"anyOf": [{"$ref": "#/components/schemas/Midplane"}, {"type": "null"}]}, "npe": {"anyOf": [{"$ref": "#/components/schemas/Npe"}, {"type": "null"}]}}, "type": "object", "required": ["platform", "ram", "nvram"], "title": "Dynamips"}, "DynamipsSlot": {"type": "string", "enum": ["C7200-IO-2FE", "C7200-IO-FE", "C7200-IO-GE-E", "NM-16ESW", "NM-1E", "NM-1FE-TX", "NM-4E", "NM-4T", "PA-2FE-TX", "PA-4E", "PA-4T+", "PA-8E", "PA-8T", "PA-A1", "PA-FE-TX", "PA-GE", "PA-POS-OC3", "C2600-MB-2FE", "C2600-MB-1E", "C1700-MB-1FE", "C2600-MB-2E", "C2600-MB-1FE", "C1700-MB-WIC1", "GT96100-FE", "Leopard-2FE", ""], "title": "DynamipsSlot"}, "DynamipsWic": {"type": "string", "enum": ["WIC-1ENET", "WIC-1T", "WIC-2T"], "title": "DynamipsWic"}, "Engine": {"type": "string", "enum": ["vmware", "virtualbox", "hyper-v", "none"], "title": "Engine", "description": "\"The engine to use for the GNS3 VM."}, "ErrorMessage": {"properties": {"message": {"type": "string", "title": "Message"}}, "type": "object", "required": ["message"], "title": "ErrorMessage", "description": "Error message."}, "EthernetPortInfo": {"properties": {"node_id": {"type": "string", "format": "uuid", "title": "Node Id"}, "interface": {"type": "string", "title": "Interface"}, "type": {"type": "string", "title": "Type"}}, "type": "object", "required": ["node_id", "interface", "type"], "title": "EthernetPortInfo", "description": "Ethernet port information."}, "GNS3VM": {"properties": {"enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Enable", "description": "Enable/disable the GNS3 VM"}, "vmname": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Vmname", "description": "GNS3 VM name"}, "when_exit": {"anyOf": [{"$ref": "#/components/schemas/WhenExit"}, {"type": "null"}], "description": "Action when the GNS3 VM exits"}, "headless": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Headless", "description": "Start the GNS3 VM GUI or not"}, "engine": {"anyOf": [{"$ref": "#/components/schemas/Engine"}, {"type": "null"}], "description": "The engine to use for the GNS3 VM"}, "allocate_vcpus_ram": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Allocate Vcpus Ram", "description": "Allocate vCPUS and RAM settings"}, "vcpus": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Vcpus", "description": "Number of CPUs to allocate for the GNS3 VM"}, "ram": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Ram", "description": "Amount of memory to allocate for the GNS3 VM"}, "port": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Port"}}, "type": "object", "title": "GNS3VM", "description": "GNS3 VM data."}, "HTTPValidationError": {"properties": {"detail": {"items": {"$ref": "#/components/schemas/ValidationError"}, "type": "array", "title": "Detail"}}, "type": "object", "title": "HTTPValidationError"}, "IOULicense": {"properties": {"iourc_content": {"type": "string", "title": "Iourc Content", "description": "Content of iourc file"}, "license_check": {"type": "boolean", "title": "License Check", "description": "Whether the license must be checked or not"}}, "type": "object", "required": ["iourc_content", "license_check"], "title": "IOULicense"}, "Image": {"properties": {"filename": {"type": "string", "title": "Filename", "description": "Image filename"}, "path": {"type": "string", "title": "Path", "description": "Image path"}, "image_type": {"$ref": "#/components/schemas/ImageType", "description": "Image type"}, "image_size": {"type": "integer", "title": "Image Size", "description": "Image size in bytes"}, "checksum": {"type": "string", "title": "Checksum", "description": "Checksum value"}, "checksum_algorithm": {"type": "string", "title": "Checksum Algorithm", "description": "Checksum algorithm"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}}, "type": "object", "required": ["filename", "path", "image_type", "image_size", "checksum", "checksum_algorithm"], "title": "Image"}, "ImageType": {"type": "string", "enum": ["qemu", "ios", "iou"], "title": "ImageType"}, "Iou": {"properties": {"ethernet_adapters": {"type": "integer", "title": "Number of ethernet adapters"}, "serial_adapters": {"type": "integer", "title": "Number of serial adapters"}, "nvram": {"type": "integer", "title": "Host NVRAM"}, "ram": {"type": "integer", "title": "Host RAM"}, "startup_config": {"type": "string", "title": "Config loaded at startup"}}, "type": "object", "required": ["ethernet_adapters", "serial_adapters", "nvram", "ram", "startup_config"], "title": "Iou"}, "Kvm": {"type": "string", "enum": ["require", "allow", "disable"], "title": "Kvm"}, "Label": {"properties": {"text": {"type": "string", "title": "Text"}, "style": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Style", "description": "SVG style attribute. Apply default style if null"}, "x": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "X", "description": "Relative X position of the label. Center it if null"}, "y": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Y", "description": "Relative Y position of the label"}, "rotation": {"anyOf": [{"type": "integer", "maximum": 360.0, "minimum": -359.0}, {"type": "null"}], "title": "Rotation", "description": "Rotation of the label"}}, "type": "object", "required": ["text"], "title": "Label", "description": "Label data."}, "Link": {"properties": {"nodes": {"anyOf": [{"items": {"$ref": "#/components/schemas/LinkNode"}, "type": "array", "maxItems": 2, "minItems": 0}, {"type": "null"}], "title": "Nodes"}, "suspend": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Suspend"}, "link_style": {"anyOf": [{"$ref": "#/components/schemas/LinkStyle"}, {"type": "null"}]}, "filters": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Filters"}, "link_id": {"type": "string", "format": "uuid", "title": "Link Id"}, "project_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Project Id"}, "link_type": {"anyOf": [{"$ref": "#/components/schemas/LinkType"}, {"type": "null"}]}, "capturing": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Capturing", "description": "Read only property. True if a capture running on the link"}, "capture_file_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Capture File Name", "description": "Read only property. The name of the capture file if a capture is running"}, "capture_file_path": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Capture File Path", "description": "Read only property. The full path of the capture file if a capture is running"}, "capture_compute_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Capture Compute Id", "description": "Read only property. The compute identifier where a capture is running"}}, "type": "object", "required": ["link_id"], "title": "Link"}, "LinkCreate": {"properties": {"nodes": {"items": {"$ref": "#/components/schemas/LinkNode"}, "type": "array", "maxItems": 2, "minItems": 2, "title": "Nodes"}, "suspend": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Suspend"}, "link_style": {"anyOf": [{"$ref": "#/components/schemas/LinkStyle"}, {"type": "null"}]}, "filters": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Filters"}, "link_id": {"type": "string", "format": "uuid", "title": "Link Id"}}, "type": "object", "required": ["nodes"], "title": "LinkCreate"}, "LinkNode": {"properties": {"node_id": {"type": "string", "format": "uuid", "title": "Node Id"}, "adapter_number": {"type": "integer", "title": "Adapter Number"}, "port_number": {"type": "integer", "title": "Port Number"}, "label": {"anyOf": [{"$ref": "#/components/schemas/Label"}, {"type": "null"}]}}, "type": "object", "required": ["node_id", "adapter_number", "port_number"], "title": "LinkNode", "description": "Link node data."}, "LinkStyle": {"properties": {"color": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Color"}, "width": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Width"}, "type": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Type"}}, "type": "object", "title": "LinkStyle"}, "LinkType": {"type": "string", "enum": ["ethernet", "serial"], "title": "LinkType", "description": "Link type."}, "LinkUpdate": {"properties": {"nodes": {"anyOf": [{"items": {"$ref": "#/components/schemas/LinkNode"}, "type": "array", "maxItems": 2, "minItems": 0}, {"type": "null"}], "title": "Nodes"}, "suspend": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Suspend"}, "link_style": {"anyOf": [{"$ref": "#/components/schemas/LinkStyle"}, {"type": "null"}]}, "filters": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Filters"}}, "type": "object", "title": "LinkUpdate"}, "LoggedInUserUpdate": {"properties": {"password": {"anyOf": [{"type": "string", "maxLength": 100, "minLength": 8, "format": "password", "writeOnly": true}, {"type": "null"}], "title": "Password"}, "email": {"anyOf": [{"type": "string", "format": "email"}, {"type": "null"}], "title": "Email"}, "full_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Full Name"}}, "type": "object", "title": "LoggedInUserUpdate", "description": "Properties to update a logged-in user."}, "Midplane": {"type": "string", "enum": ["std", "vxr"], "title": "Midplane"}, "Node": {"properties": {"compute_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "string"}], "title": "Compute Id"}, "name": {"type": "string", "title": "Name"}, "node_type": {"$ref": "#/components/schemas/NodeType"}, "node_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Node Id"}, "console": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Console", "description": "Console TCP port"}, "console_type": {"anyOf": [{"$ref": "#/components/schemas/ConsoleType"}, {"type": "null"}]}, "console_auto_start": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Console Auto Start", "description": "Automatically start the console when the node has started", "default": false}, "aux": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Aux", "description": "Auxiliary console TCP port"}, "aux_type": {"anyOf": [{"$ref": "#/components/schemas/ConsoleType"}, {"type": "null"}]}, "properties": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Properties", "description": "Properties specific to an emulator"}, "label": {"anyOf": [{"$ref": "#/components/schemas/Label"}, {"type": "null"}]}, "symbol": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Symbol"}, "x": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "X", "default": 0}, "y": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Y", "default": 0}, "z": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Z", "default": 1}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Locked", "description": "Whether the element locked or not", "default": false}, "port_name_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Port Name Format", "descript_port_name_formation": "Formatting for port name {0} will be replace by port number"}, "port_segment_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Port Segment Size", "description": "Size of the port segment"}, "first_port_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "First Port Name", "description": "Name of the first port"}, "custom_adapters": {"anyOf": [{"items": {"$ref": "#/components/schemas/CustomAdapter"}, "type": "array"}, {"type": "null"}], "title": "Custom Adapters"}, "template_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Template Id", "description": "Template UUID from which the node has been created. Read only"}, "project_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Project Id"}, "node_directory": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Node Directory", "description": "Working directory of the node. Read only"}, "status": {"anyOf": [{"$ref": "#/components/schemas/NodeStatus"}, {"type": "null"}], "description": "Node status. Read only"}, "command_line": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Command Line", "description": "Command line use to start the node. Read only"}, "width": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Width", "description": "Width of the node. Read only"}, "height": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Height", "description": "Height of the node. Read only"}, "ports": {"anyOf": [{"items": {"$ref": "#/components/schemas/NodePort"}, "type": "array"}, {"type": "null"}], "title": "Ports", "description": "List of node ports. Read only"}, "console_host": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Console Host", "description": "Console host. Warning if the host is 0.0.0.0 or :: (listen on all interfaces) you need to use the same address you use to connect to the controller"}}, "type": "object", "required": ["compute_id", "name", "node_type"], "title": "Node"}, "NodeCreate": {"properties": {"compute_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "string"}], "title": "Compute Id"}, "name": {"type": "string", "title": "Name"}, "node_type": {"$ref": "#/components/schemas/NodeType"}, "node_id": {"type": "string", "format": "uuid", "title": "Node Id"}, "console": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Console", "description": "Console TCP port"}, "console_type": {"anyOf": [{"$ref": "#/components/schemas/ConsoleType-Input"}, {"type": "null"}]}, "console_auto_start": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Console Auto Start", "description": "Automatically start the console when the node has started", "default": false}, "aux": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Aux", "description": "Auxiliary console TCP port"}, "aux_type": {"anyOf": [{"$ref": "#/components/schemas/ConsoleType-Input"}, {"type": "null"}]}, "properties": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Properties", "description": "Properties specific to an emulator"}, "label": {"anyOf": [{"$ref": "#/components/schemas/Label"}, {"type": "null"}]}, "symbol": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Symbol"}, "x": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "X", "default": 0}, "y": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Y", "default": 0}, "z": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Z", "default": 1}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Locked", "description": "Whether the element locked or not", "default": false}, "port_name_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Port Name Format", "descript_port_name_formation": "Formatting for port name {0} will be replace by port number"}, "port_segment_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Port Segment Size", "description": "Size of the port segment"}, "first_port_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "First Port Name", "description": "Name of the first port"}, "custom_adapters": {"anyOf": [{"items": {"$ref": "#/components/schemas/CustomAdapter"}, "type": "array"}, {"type": "null"}], "title": "Custom Adapters"}}, "type": "object", "required": ["compute_id", "name", "node_type"], "title": "NodeCreate"}, "NodeDuplicate": {"properties": {"x": {"type": "integer", "title": "X"}, "y": {"type": "integer", "title": "Y"}, "z": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Z", "default": 0}}, "type": "object", "required": ["x", "y"], "title": "NodeDuplicate", "description": "Data to duplicate a node."}, "NodePort": {"properties": {"name": {"type": "string", "title": "Name", "description": "Port name"}, "short_name": {"type": "string", "title": "Short Name", "description": "Port name"}, "adapter_number": {"type": "integer", "title": "Adapter Number", "description": "Adapter slot"}, "adapter_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Adapter Type", "description": "Adapter type"}, "port_number": {"type": "integer", "title": "Port Number", "description": "Port slot"}, "link_type": {"$ref": "#/components/schemas/gns3server__schemas__controller__nodes__LinkType", "description": "Type of link"}, "data_link_types": {"additionalProperties": true, "type": "object", "title": "Data Link Types", "description": "Available PCAP types for capture"}, "mac_address": {"anyOf": [{"type": "string", "pattern": "^([0-9a-fA-F]{2}[:]){5}([0-9a-fA-F]{2})$"}, {"type": "null"}], "title": "Mac Address"}}, "type": "object", "required": ["name", "short_name", "adapter_number", "port_number", "link_type", "data_link_types"], "title": "NodePort", "description": "Node port data."}, "NodeStatus": {"type": "string", "enum": ["stopped", "started", "suspended"], "title": "NodeStatus", "description": "Supported node statuses."}, "NodeType": {"type": "string", "enum": ["cloud", "nat", "ethernet_hub", "ethernet_switch", "frame_relay_switch", "atm_switch", "docker", "dynamips", "vpcs", "virtualbox", "vmware", "iou", "qemu"], "title": "NodeType", "description": "Supported node types."}, "NodeUpdate": {"properties": {"compute_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "string"}, {"type": "null"}], "title": "Compute Id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}, "node_type": {"anyOf": [{"$ref": "#/components/schemas/NodeType"}, {"type": "null"}]}, "node_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Node Id"}, "console": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Console", "description": "Console TCP port"}, "console_type": {"anyOf": [{"$ref": "#/components/schemas/ConsoleType-Input"}, {"type": "null"}]}, "console_auto_start": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Console Auto Start", "description": "Automatically start the console when the node has started", "default": false}, "aux": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Aux", "description": "Auxiliary console TCP port"}, "aux_type": {"anyOf": [{"$ref": "#/components/schemas/ConsoleType-Input"}, {"type": "null"}]}, "properties": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Properties", "description": "Properties specific to an emulator"}, "label": {"anyOf": [{"$ref": "#/components/schemas/Label"}, {"type": "null"}]}, "symbol": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Symbol"}, "x": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "X", "default": 0}, "y": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Y", "default": 0}, "z": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Z", "default": 1}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Locked", "description": "Whether the element locked or not", "default": false}, "port_name_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Port Name Format", "descript_port_name_formation": "Formatting for port name {0} will be replace by port number"}, "port_segment_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Port Segment Size", "description": "Size of the port segment"}, "first_port_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "First Port Name", "description": "Name of the first port"}, "custom_adapters": {"anyOf": [{"items": {"$ref": "#/components/schemas/CustomAdapter"}, "type": "array"}, {"type": "null"}], "title": "Custom Adapters"}}, "type": "object", "title": "NodeUpdate", "description": "Data to update a node."}, "Npe": {"type": "string", "enum": ["npe-100", "npe-150", "npe-175", "npe-200", "npe-225", "npe-300", "npe-400", "npe-g2"], "title": "Npe"}, "Platform": {"type": "string", "enum": ["c1700", "c2600", "c2691", "c3725", "c3745", "c3600", "c7200"], "title": "Platform"}, "Privilege": {"properties": {"name": {"type": "string", "title": "Name"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}, "privilege_id": {"type": "string", "format": "uuid", "title": "Privilege Id"}}, "type": "object", "required": ["name", "privilege_id"], "title": "Privilege"}, "ProcessPriority": {"type": "string", "enum": ["realtime", "very high", "high", "normal", "low", "very low", "null"], "title": "ProcessPriority"}, "Project": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}, "project_id": {"type": "string", "format": "uuid", "title": "Project Id"}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Path", "description": "Project directory"}, "auto_close": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Close", "description": "Close project when last client leaves"}, "auto_open": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Open", "description": "Project opens when GNS3 starts"}, "auto_start": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Start", "description": "Project starts when opened"}, "scene_height": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Scene Height", "description": "Height of the drawing area"}, "scene_width": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Scene Width", "description": "Width of the drawing area"}, "zoom": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Zoom", "description": "Zoom of the drawing area"}, "show_layers": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Layers", "description": "Show layers on the drawing area"}, "snap_to_grid": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Snap To Grid", "description": "Snap to grid on the drawing area"}, "show_grid": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Grid", "description": "Show the grid on the drawing area"}, "grid_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Grid Size", "description": "Grid size for the drawing area for nodes"}, "drawing_grid_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Drawing Grid Size", "description": "Grid size for the drawing area for drawings"}, "show_interface_labels": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Interface Labels", "description": "Show interface labels on the drawing area"}, "supplier": {"anyOf": [{"$ref": "#/components/schemas/Supplier"}, {"type": "null"}], "description": "Supplier of the project"}, "variables": {"anyOf": [{"items": {"$ref": "#/components/schemas/Variable"}, "type": "array"}, {"type": "null"}], "title": "Variables", "description": "Variables required to run the project"}, "status": {"anyOf": [{"$ref": "#/components/schemas/ProjectStatus"}, {"type": "null"}]}, "filename": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Filename"}}, "type": "object", "required": ["project_id"], "title": "Project"}, "ProjectCompression": {"type": "string", "enum": ["none", "zip", "bzip2", "lzma", "zstd"], "title": "ProjectCompression", "description": "Supported project compression."}, "ProjectCreate": {"properties": {"name": {"type": "string", "title": "Name"}, "project_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Project Id"}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Path", "description": "Project directory"}, "auto_close": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Close", "description": "Close project when last client leaves"}, "auto_open": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Open", "description": "Project opens when GNS3 starts"}, "auto_start": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Start", "description": "Project starts when opened"}, "scene_height": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Scene Height", "description": "Height of the drawing area"}, "scene_width": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Scene Width", "description": "Width of the drawing area"}, "zoom": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Zoom", "description": "Zoom of the drawing area"}, "show_layers": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Layers", "description": "Show layers on the drawing area"}, "snap_to_grid": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Snap To Grid", "description": "Snap to grid on the drawing area"}, "show_grid": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Grid", "description": "Show the grid on the drawing area"}, "grid_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Grid Size", "description": "Grid size for the drawing area for nodes"}, "drawing_grid_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Drawing Grid Size", "description": "Grid size for the drawing area for drawings"}, "show_interface_labels": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Interface Labels", "description": "Show interface labels on the drawing area"}, "supplier": {"anyOf": [{"$ref": "#/components/schemas/Supplier"}, {"type": "null"}], "description": "Supplier of the project"}, "variables": {"anyOf": [{"items": {"$ref": "#/components/schemas/Variable"}, "type": "array"}, {"type": "null"}], "title": "Variables", "description": "Variables required to run the project"}}, "type": "object", "required": ["name"], "title": "ProjectCreate", "description": "Properties for project creation."}, "ProjectDuplicate": {"properties": {"name": {"type": "string", "title": "Name"}, "project_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Project Id"}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Path", "description": "Project directory"}, "auto_close": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Close", "description": "Close project when last client leaves"}, "auto_open": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Open", "description": "Project opens when GNS3 starts"}, "auto_start": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Start", "description": "Project starts when opened"}, "scene_height": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Scene Height", "description": "Height of the drawing area"}, "scene_width": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Scene Width", "description": "Width of the drawing area"}, "zoom": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Zoom", "description": "Zoom of the drawing area"}, "show_layers": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Layers", "description": "Show layers on the drawing area"}, "snap_to_grid": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Snap To Grid", "description": "Snap to grid on the drawing area"}, "show_grid": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Grid", "description": "Show the grid on the drawing area"}, "grid_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Grid Size", "description": "Grid size for the drawing area for nodes"}, "drawing_grid_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Drawing Grid Size", "description": "Grid size for the drawing area for drawings"}, "show_interface_labels": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Interface Labels", "description": "Show interface labels on the drawing area"}, "supplier": {"anyOf": [{"$ref": "#/components/schemas/Supplier"}, {"type": "null"}], "description": "Supplier of the project"}, "variables": {"anyOf": [{"items": {"$ref": "#/components/schemas/Variable"}, "type": "array"}, {"type": "null"}], "title": "Variables", "description": "Variables required to run the project"}, "reset_mac_addresses": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Reset Mac Addresses", "description": "Reset MAC addresses for this project", "default": false}}, "type": "object", "required": ["name"], "title": "ProjectDuplicate", "description": "Properties for project duplication."}, "ProjectStatus": {"type": "string", "enum": ["opened", "closed"], "title": "ProjectStatus", "description": "Supported project statuses."}, "ProjectUpdate": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}, "project_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Project Id"}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Path", "description": "Project directory"}, "auto_close": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Close", "description": "Close project when last client leaves"}, "auto_open": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Open", "description": "Project opens when GNS3 starts"}, "auto_start": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Start", "description": "Project starts when opened"}, "scene_height": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Scene Height", "description": "Height of the drawing area"}, "scene_width": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Scene Width", "description": "Width of the drawing area"}, "zoom": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Zoom", "description": "Zoom of the drawing area"}, "show_layers": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Layers", "description": "Show layers on the drawing area"}, "snap_to_grid": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Snap To Grid", "description": "Snap to grid on the drawing area"}, "show_grid": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Grid", "description": "Show the grid on the drawing area"}, "grid_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Grid Size", "description": "Grid size for the drawing area for nodes"}, "drawing_grid_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Drawing Grid Size", "description": "Grid size for the drawing area for drawings"}, "show_interface_labels": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Interface Labels", "description": "Show interface labels on the drawing area"}, "supplier": {"anyOf": [{"$ref": "#/components/schemas/Supplier"}, {"type": "null"}], "description": "Supplier of the project"}, "variables": {"anyOf": [{"items": {"$ref": "#/components/schemas/Variable"}, "type": "array"}, {"type": "null"}], "title": "Variables", "description": "Variables required to run the project"}}, "type": "object", "title": "ProjectUpdate", "description": "Properties for project update."}, "Protocol": {"type": "string", "enum": ["http", "https"], "title": "Protocol", "description": "Protocol supported to communicate with a compute."}, "Qemu": {"properties": {"adapter_type": {"$ref": "#/components/schemas/AdapterType", "title": "Type of network adapter"}, "adapters": {"type": "integer", "title": "Number of adapters"}, "ram": {"type": "integer", "title": "Ram allocated to the appliance (MB)"}, "cpus": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Number of Virtual CPU"}, "hda_disk_interface": {"anyOf": [{"$ref": "#/components/schemas/DiskInterface"}, {"type": "null"}], "title": "Disk interface for the installed hda_disk_image"}, "hdb_disk_interface": {"anyOf": [{"$ref": "#/components/schemas/DiskInterface"}, {"type": "null"}], "title": "Disk interface for the installed hdb_disk_image"}, "hdc_disk_interface": {"anyOf": [{"$ref": "#/components/schemas/DiskInterface"}, {"type": "null"}], "title": "Disk interface for the installed hdc_disk_image"}, "hdd_disk_interface": {"anyOf": [{"$ref": "#/components/schemas/DiskInterface"}, {"type": "null"}], "title": "Disk interface for the installed hdd_disk_image"}, "arch": {"$ref": "#/components/schemas/Arch", "title": "Architecture emulated"}, "console_type": {"$ref": "#/components/schemas/ConsoleType1", "title": "Type of console connection for the administration of the appliance"}, "boot_priority": {"anyOf": [{"$ref": "#/components/schemas/BootPriority"}, {"type": "null"}], "title": "Disk boot priority. Refer to -boot option in qemu manual for more details."}, "kernel_command_line": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Command line parameters send to the kernel"}, "kvm": {"$ref": "#/components/schemas/Kvm", "title": "KVM requirements"}, "options": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Optional additional qemu command line options"}, "cpu_throttling": {"anyOf": [{"type": "number", "maximum": 100.0, "minimum": 0.0}, {"type": "null"}], "title": "Throttle the CPU"}, "process_priority": {"anyOf": [{"$ref": "#/components/schemas/ProcessPriority"}, {"type": "null"}], "title": "Process priority for QEMU"}}, "type": "object", "required": ["adapter_type", "adapters", "ram", "arch", "console_type", "kvm"], "title": "Qemu"}, "QemuDiskImageAdapterType": {"type": "string", "enum": ["ide", "lsilogic", "buslogic", "legacyESX"], "title": "QemuDiskImageAdapterType", "description": "Supported Qemu disk image on/off options."}, "QemuDiskImageCreate": {"properties": {"format": {"$ref": "#/components/schemas/QemuDiskImageFormat", "description": "Image format type"}, "size": {"type": "integer", "title": "Size", "description": "Image size in Megabytes"}, "preallocation": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImagePreallocation"}, {"type": "null"}]}, "cluster_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Cluster Size"}, "refcount_bits": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Refcount Bits"}, "lazy_refcounts": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageOnOff"}, {"type": "null"}]}, "subformat": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageSubformat"}, {"type": "null"}]}, "static": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageOnOff"}, {"type": "null"}]}, "zeroed_grain": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageOnOff"}, {"type": "null"}]}, "adapter_type": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageAdapterType"}, {"type": "null"}]}}, "type": "object", "required": ["format", "size"], "title": "QemuDiskImageCreate"}, "QemuDiskImageFormat": {"type": "string", "enum": ["qcow2", "qcow", "vpc", "vdi", "vdmk", "raw"], "title": "QemuDiskImageFormat", "description": "Supported Qemu disk image formats."}, "QemuDiskImageOnOff": {"type": "string", "enum": ["on", "off"], "title": "QemuDiskImageOnOff", "description": "Supported Qemu image on/off options."}, "QemuDiskImagePreallocation": {"type": "string", "enum": ["off", "metadata", "falloc", "full"], "title": "QemuDiskImagePreallocation", "description": "Supported Qemu disk image pre-allocation options."}, "QemuDiskImageSubformat": {"type": "string", "enum": ["dynamic", "fixed", "streamOptimized", "twoGbMaxExtentSparse", "twoGbMaxExtentFlat", "monolithicSparse", "monolithicFlat"], "title": "QemuDiskImageSubformat", "description": "Supported Qemu disk image sub-format options."}, "QemuDiskImageUpdate": {"properties": {"format": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageFormat"}, {"type": "null"}], "description": "Image format type"}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Size", "description": "Image size in Megabytes"}, "preallocation": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImagePreallocation"}, {"type": "null"}]}, "cluster_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Cluster Size"}, "refcount_bits": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Refcount Bits"}, "lazy_refcounts": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageOnOff"}, {"type": "null"}]}, "subformat": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageSubformat"}, {"type": "null"}]}, "static": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageOnOff"}, {"type": "null"}]}, "zeroed_grain": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageOnOff"}, {"type": "null"}]}, "adapter_type": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageAdapterType"}, {"type": "null"}]}, "extend": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Extend", "description": "Number of Megabytes to extend the image"}}, "type": "object", "title": "QemuDiskImageUpdate"}, "RegistryVersion": {"type": "integer", "enum": [1, 2, 3, 4, 5, 6], "title": "RegistryVersion"}, "Resource": {"properties": {"resource_id": {"type": "string", "format": "uuid", "title": "Resource Id"}, "resource_type": {"$ref": "#/components/schemas/ResourceType", "description": "Type of the resource"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}}, "type": "object", "required": ["resource_id", "resource_type"], "title": "Resource"}, "ResourcePool": {"properties": {"name": {"type": "string", "title": "Name"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}, "resource_pool_id": {"type": "string", "format": "uuid", "title": "Resource Pool Id"}}, "type": "object", "required": ["name", "resource_pool_id"], "title": "ResourcePool"}, "ResourcePoolCreate": {"properties": {"name": {"type": "string", "title": "Name"}}, "type": "object", "required": ["name"], "title": "ResourcePoolCreate", "description": "Properties to create a resource pool."}, "ResourcePoolUpdate": {"properties": {"name": {"type": "string", "title": "Name"}}, "type": "object", "required": ["name"], "title": "ResourcePoolUpdate", "description": "Properties to update a resource pool."}, "ResourceType": {"type": "string", "enum": ["project"], "title": "ResourceType"}, "Role": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}, "role_id": {"type": "string", "format": "uuid", "title": "Role Id"}, "is_builtin": {"type": "boolean", "title": "Is Builtin"}, "privileges": {"items": {"$ref": "#/components/schemas/Privilege"}, "type": "array", "title": "Privileges"}}, "type": "object", "required": ["role_id", "is_builtin", "privileges"], "title": "Role"}, "RoleCreate": {"properties": {"name": {"type": "string", "title": "Name"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}}, "type": "object", "required": ["name"], "title": "RoleCreate", "description": "Properties to create a role."}, "RoleUpdate": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}}, "type": "object", "title": "RoleUpdate", "description": "Properties to update a role."}, "Snapshot": {"properties": {"name": {"type": "string", "title": "Name"}, "snapshot_id": {"type": "string", "format": "uuid", "title": "Snapshot Id"}, "project_id": {"type": "string", "format": "uuid", "title": "Project Id"}, "created_at": {"type": "integer", "title": "Created At", "description": "Date of the snapshot (UTC timestamp)"}}, "type": "object", "required": ["name", "snapshot_id", "project_id", "created_at"], "title": "Snapshot"}, "SnapshotCreate": {"properties": {"name": {"type": "string", "title": "Name"}}, "type": "object", "required": ["name"], "title": "SnapshotCreate", "description": "Properties for snapshot creation."}, "Status": {"type": "string", "enum": ["stable", "experimental", "broken"], "title": "Status"}, "Supplier": {"properties": {"logo": {"type": "string", "title": "Logo", "description": "Path to the project supplier logo"}, "url": {"anyOf": [{"type": "string", "maxLength": 2083, "minLength": 1, "format": "uri"}, {"type": "null"}], "title": "Url", "description": "URL to the project supplier site"}}, "type": "object", "required": ["logo"], "title": "Supplier"}, "Template": {"properties": {"template_id": {"type": "string", "format": "uuid", "title": "Template Id"}, "name": {"type": "string", "title": "Name"}, "version": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Version"}, "category": {"$ref": "#/components/schemas/gns3server__schemas__controller__templates__Category"}, "default_name_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Default Name Format"}, "symbol": {"type": "string", "title": "Symbol"}, "template_type": {"$ref": "#/components/schemas/NodeType"}, "compute_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Compute Id"}, "usage": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Usage", "default": ""}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}, "builtin": {"type": "boolean", "title": "Builtin"}}, "additionalProperties": true, "type": "object", "required": ["template_id", "name", "category", "symbol", "template_type", "builtin"], "title": "Template"}, "TemplateCreate": {"properties": {"template_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Template Id"}, "name": {"type": "string", "title": "Name"}, "version": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Version"}, "category": {"anyOf": [{"$ref": "#/components/schemas/Category-Input"}, {"type": "null"}]}, "default_name_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Default Name Format"}, "symbol": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Symbol"}, "template_type": {"$ref": "#/components/schemas/NodeType"}, "compute_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Compute Id"}, "usage": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Usage", "default": ""}}, "additionalProperties": true, "type": "object", "required": ["name", "template_type"], "title": "TemplateCreate", "description": "Properties to create a template."}, "TemplateUpdate": {"properties": {"template_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Template Id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}, "version": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Version"}, "category": {"anyOf": [{"$ref": "#/components/schemas/Category-Input"}, {"type": "null"}]}, "default_name_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Default Name Format"}, "symbol": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Symbol"}, "template_type": {"anyOf": [{"$ref": "#/components/schemas/NodeType"}, {"type": "null"}]}, "compute_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Compute Id"}, "usage": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Usage", "default": ""}}, "additionalProperties": true, "type": "object", "title": "TemplateUpdate"}, "TemplateUsage": {"properties": {"x": {"type": "integer", "title": "X"}, "y": {"type": "integer", "title": "Y"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "description": "Use this name to create a new node"}, "compute_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Compute Id", "description": "Used if the template doesn't have a default compute"}}, "type": "object", "required": ["x", "y"], "title": "TemplateUsage"}, "Token": {"properties": {"access_token": {"type": "string", "title": "Access Token"}, "token_type": {"type": "string", "title": "Token Type"}}, "type": "object", "required": ["access_token", "token_type"], "title": "Token"}, "UDPPortInfo": {"properties": {"node_id": {"type": "string", "format": "uuid", "title": "Node Id"}, "lport": {"type": "integer", "title": "Lport"}, "rhost": {"type": "string", "title": "Rhost"}, "rport": {"type": "integer", "title": "Rport"}, "type": {"type": "string", "title": "Type"}}, "type": "object", "required": ["node_id", "lport", "rhost", "rport", "type"], "title": "UDPPortInfo", "description": "UDP port information."}, "User": {"properties": {"username": {"anyOf": [{"type": "string", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$"}, {"type": "null"}], "title": "Username"}, "is_active": {"type": "boolean", "title": "Is Active", "default": true}, "email": {"anyOf": [{"type": "string", "format": "email"}, {"type": "null"}], "title": "Email"}, "full_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Full Name"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}, "user_id": {"type": "string", "format": "uuid", "title": "User Id"}, "last_login": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Last Login"}, "is_superadmin": {"type": "boolean", "title": "Is Superadmin", "default": false}}, "type": "object", "required": ["user_id"], "title": "User"}, "UserCreate": {"properties": {"username": {"type": "string", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$", "title": "Username"}, "is_active": {"type": "boolean", "title": "Is Active", "default": true}, "email": {"anyOf": [{"type": "string", "format": "email"}, {"type": "null"}], "title": "Email"}, "full_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Full Name"}, "password": {"type": "string", "maxLength": 100, "minLength": 8, "format": "password", "title": "Password", "writeOnly": true}}, "type": "object", "required": ["username", "password"], "title": "UserCreate", "description": "Properties to create a user."}, "UserGroup": {"properties": {"name": {"anyOf": [{"type": "string", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$"}, {"type": "null"}], "title": "Name"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}, "user_group_id": {"type": "string", "format": "uuid", "title": "User Group Id"}, "is_builtin": {"type": "boolean", "title": "Is Builtin"}}, "type": "object", "required": ["user_group_id", "is_builtin"], "title": "UserGroup"}, "UserGroupCreate": {"properties": {"name": {"anyOf": [{"type": "string", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$"}, {"type": "null"}], "title": "Name"}}, "type": "object", "required": ["name"], "title": "UserGroupCreate", "description": "Properties to create a user group."}, "UserGroupUpdate": {"properties": {"name": {"anyOf": [{"type": "string", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$"}, {"type": "null"}], "title": "Name"}}, "type": "object", "title": "UserGroupUpdate", "description": "Properties to update a user group."}, "UserUpdate": {"properties": {"username": {"anyOf": [{"type": "string", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$"}, {"type": "null"}], "title": "Username"}, "is_active": {"type": "boolean", "title": "Is Active", "default": true}, "email": {"anyOf": [{"type": "string", "format": "email"}, {"type": "null"}], "title": "Email"}, "full_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Full Name"}, "password": {"anyOf": [{"type": "string", "maxLength": 100, "minLength": 8, "format": "password", "writeOnly": true}, {"type": "null"}], "title": "Password"}}, "type": "object", "title": "UserUpdate", "description": "Properties to update a user."}, "ValidationError": {"properties": {"loc": {"items": {"anyOf": [{"type": "string"}, {"type": "integer"}]}, "type": "array", "title": "Location"}, "msg": {"type": "string", "title": "Message"}, "type": {"type": "string", "title": "Error Type"}}, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError"}, "Variable": {"properties": {"name": {"type": "string", "title": "Name", "description": "Variable name"}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Value", "description": "Variable value"}}, "type": "object", "required": ["name"], "title": "Variable"}, "Version": {"properties": {"controller_host": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Controller Host", "description": "Controller hostname or IP address"}, "version": {"type": "string", "title": "Version", "description": "Version number"}, "local": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Local", "description": "Whether this is a local server or not"}}, "type": "object", "required": ["version"], "title": "Version"}, "WhenExit": {"type": "string", "enum": ["stop", "suspend", "keep"], "title": "WhenExit", "description": "What to do with the VM when GNS3 VM exits."}, "gns3server__schemas__controller__appliances__ConsoleType": {"type": "string", "enum": ["telnet", "vnc", "http", "https", "none"], "title": "ConsoleType"}, "gns3server__schemas__controller__nodes__LinkType": {"type": "string", "enum": ["ethernet", "serial"], "title": "LinkType", "description": "Supported link types."}, "gns3server__schemas__controller__templates__Category": {"type": "string", "enum": ["router", "switch", "guest", "firewall"], "title": "Category", "description": "Supported categories"}}, "securitySchemes": {"OAuth2PasswordBearer": {"type": "oauth2", "flows": {"password": {"scopes": {}, "tokenUrl": "/v3/access/users/login"}}}}}} \ No newline at end of file +{"openapi": "3.1.0", "info": {"title": "GNS3 controller API", "description": "This page describes the public controller API for GNS3", "version": "3.0.0"}, "paths": {"/v3/version": {"get": {"tags": ["Controller"], "summary": "Get Version", "description": "Return the server version number.", "operationId": "get_version_v3_version_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Version"}}}}}}, "post": {"tags": ["Controller"], "summary": "Check Version", "description": "Check if version is the same as the server.", "operationId": "check_version_v3_version_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Version"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Version"}}}}, "409": {"description": "Invalid version", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/reload": {"post": {"tags": ["Controller"], "summary": "Reload", "description": "Reload the controller", "operationId": "reload_v3_reload_post", "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/shutdown": {"post": {"tags": ["Controller"], "summary": "Shutdown", "description": "Shutdown the server", "operationId": "shutdown_v3_shutdown_post", "responses": {"204": {"description": "Successful Response"}, "403": {"description": "Server shutdown not allowed", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/iou_license": {"get": {"tags": ["Controller"], "summary": "Get Iou License", "description": "Return the IOU license settings", "operationId": "get_iou_license_v3_iou_license_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IOULicense"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Controller"], "summary": "Update Iou License", "description": "Update the IOU license settings.", "operationId": "update_iou_license_v3_iou_license_put", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/IOULicense"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IOULicense"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/statistics": {"get": {"tags": ["Controller"], "summary": "Statistics", "description": "Return server statistics including compute resources, projects, and nodes.", "operationId": "statistics_v3_statistics_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"additionalProperties": true, "type": "object", "title": "Response Statistics V3 Statistics Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/notifications": {"get": {"tags": ["Controller"], "summary": "Controller Http Notifications", "description": "Receive controller notifications about the controller from HTTP stream.", "operationId": "controller_http_notifications_v3_notifications_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/access/users/login": {"post": {"tags": ["Users"], "summary": "Login", "description": "Default user login method using forms (x-www-form-urlencoded).\nExample: curl -X POST http://host:port/v3/access/users/login -H \"Content-Type: application/x-www-form-urlencoded\" -d \"username=admin&password=admin\"", "operationId": "login_v3_access_users_login_post", "requestBody": {"content": {"application/x-www-form-urlencoded": {"schema": {"$ref": "#/components/schemas/Body_login_v3_access_users_login_post"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Token"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/users/authenticate": {"post": {"tags": ["Users"], "summary": "Authenticate", "description": "Alternative authentication method using json.\nExample: curl -X POST http://host:port/v3/access/users/authenticate -d '{\"username\": \"admin\", \"password\": \"admin\"}' -H \"Content-Type: application/json\"", "operationId": "authenticate_v3_access_users_authenticate_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Credentials"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Token"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/users/logout": {"post": {"tags": ["Users"], "summary": "Logout", "description": "Logout the current user by revoking all existing tokens.", "operationId": "logout_v3_access_users_logout_post", "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/access/users/me": {"get": {"tags": ["Users"], "summary": "Get Logged In User", "description": "Get the current active user.", "operationId": "get_logged_in_user_v3_access_users_me_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/User"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Users"], "summary": "Update Logged In User", "description": "Update the current active user.", "operationId": "update_logged_in_user_v3_access_users_me_put", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/LoggedInUserUpdate"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/User"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/access/users": {"get": {"tags": ["Users"], "summary": "Get Users", "description": "Get all users.\n\nRequired privilege: User.Audit", "operationId": "get_users_v3_access_users_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/User"}, "type": "array", "title": "Response Get Users V3 Access Users Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Users"], "summary": "Create User", "description": "Create a new user.\n\nRequired privilege: User.Allocate", "operationId": "create_user_v3_access_users_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserCreate"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/User"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/access/users/{user_id}": {"get": {"tags": ["Users"], "summary": "Get User", "description": "Get a user.\n\nRequired privilege: User.Audit", "operationId": "get_user_v3_access_users__user_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/User"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Users"], "summary": "Update User", "description": "Update a user.\n\nRequired privilege: User.Modify", "operationId": "update_user_v3_access_users__user_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/User"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Users"], "summary": "Delete User", "description": "Delete a user.\n\nRequired privilege: User.Allocate", "operationId": "delete_user_v3_access_users__user_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/users/{user_id}/groups": {"get": {"tags": ["Users"], "summary": "Get User Memberships", "description": "Get user memberships.\n\nRequired privilege: Group.Audit", "operationId": "get_user_memberships_v3_access_users__user_id__groups_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/UserGroup"}, "title": "Response Get User Memberships V3 Access Users User Id Groups Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/groups": {"get": {"tags": ["Users groups"], "summary": "Get User Groups", "description": "Get all user groups.\n\nRequired privilege: Group.Audit", "operationId": "get_user_groups_v3_access_groups_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/UserGroup"}, "type": "array", "title": "Response Get User Groups V3 Access Groups Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Users groups"], "summary": "Create User Group", "description": "Create a new user group.\n\nRequired privilege: Group.Allocate", "operationId": "create_user_group_v3_access_groups_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserGroupCreate"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserGroup"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/access/groups/{user_group_id}": {"get": {"tags": ["Users groups"], "summary": "Get User Group", "description": "Get a user group.\n\nRequired privilege: Group.Audit", "operationId": "get_user_group_v3_access_groups__user_group_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_group_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Group Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserGroup"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Users groups"], "summary": "Update User Group", "description": "Update a user group.\n\nRequired privilege: Group.Modify", "operationId": "update_user_group_v3_access_groups__user_group_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_group_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Group Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserGroupUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserGroup"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Users groups"], "summary": "Delete User Group", "description": "Delete a user group.\n\nRequired privilege: Group.Allocate", "operationId": "delete_user_group_v3_access_groups__user_group_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_group_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Group Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/groups/{user_group_id}/members": {"get": {"tags": ["Users groups"], "summary": "Get User Group Members", "description": "Get all user group members.\n\nRequired privilege: Group.Audit", "operationId": "get_user_group_members_v3_access_groups__user_group_id__members_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_group_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Group Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/User"}, "title": "Response Get User Group Members V3 Access Groups User Group Id Members Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/groups/{user_group_id}/members/{user_id}": {"put": {"tags": ["Users groups"], "summary": "Add Member To Group", "description": "Add member to a user group.\n\nRequired privilege: Group.Modify", "operationId": "add_member_to_group_v3_access_groups__user_group_id__members__user_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_group_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Group Id"}}, {"name": "user_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Users groups"], "summary": "Remove Member From Group", "description": "Remove member from a user group.\n\nRequired privilege: Group.Modify", "operationId": "remove_member_from_group_v3_access_groups__user_group_id__members__user_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "user_group_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Group Id"}}, {"name": "user_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "User Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/roles": {"get": {"tags": ["Roles"], "summary": "Get Roles", "description": "Get all roles.\n\nRequired privilege: Role.Audit", "operationId": "get_roles_v3_access_roles_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/Role"}, "type": "array", "title": "Response Get Roles V3 Access Roles Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Roles"], "summary": "Create Role", "description": "Create a new role.\n\nRequired privilege: Role.Allocate", "operationId": "create_role_v3_access_roles_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/RoleCreate"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Role"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/access/roles/{role_id}": {"get": {"tags": ["Roles"], "summary": "Get Role", "description": "Get a role.\n\nRequired privilege: Role.Audit", "operationId": "get_role_v3_access_roles__role_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "role_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Role Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Role"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Roles"], "summary": "Update Role", "description": "Update a role.\n\nRequired privilege: Role.Modify", "operationId": "update_role_v3_access_roles__role_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "role_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Role Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RoleUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Role"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Roles"], "summary": "Delete Role", "description": "Delete a role.\n\nRequired privilege: Role.Allocate", "operationId": "delete_role_v3_access_roles__role_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "role_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Role Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/roles/{role_id}/privileges": {"get": {"tags": ["Roles"], "summary": "Get Role Privileges", "description": "Get all role privileges.\n\nRequired privilege: Role.Audit", "operationId": "get_role_privileges_v3_access_roles__role_id__privileges_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "role_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Role Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Privilege"}, "title": "Response Get Role Privileges V3 Access Roles Role Id Privileges Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/roles/{role_id}/privileges/{privilege_id}": {"put": {"tags": ["Roles"], "summary": "Add Privilege To Role", "description": "Add a privilege to a role.\n\nRequired privilege: Role.Modify", "operationId": "add_privilege_to_role_v3_access_roles__role_id__privileges__privilege_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "role_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Role Id"}}, {"name": "privilege_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Privilege Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Roles"], "summary": "Remove Privilege From Role", "description": "Remove privilege from a role.\n\nRequired privilege: Role.Modify", "operationId": "remove_privilege_from_role_v3_access_roles__role_id__privileges__privilege_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "role_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Role Id"}}, {"name": "privilege_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Privilege Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/access/privileges": {"get": {"tags": ["Privileges"], "summary": "Get Privileges", "description": "Get all privileges.\n\nRequired privilege: None", "operationId": "get_privileges_v3_access_privileges_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/Privilege"}, "type": "array", "title": "Response Get Privileges V3 Access Privileges Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/access/acl/endpoints": {"get": {"tags": ["ACL"], "summary": "Endpoints", "description": "List all endpoints to be used in ACL entries.", "operationId": "endpoints_v3_access_acl_endpoints_get", "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"additionalProperties": true, "type": "object"}, "type": "array", "title": "Response Endpoints V3 Access Acl Endpoints Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/access/acl": {"get": {"tags": ["ACL"], "summary": "Get Aces", "description": "Get all ACL entries.\n\nRequired privilege: ACE.Audit", "operationId": "get_aces_v3_access_acl_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/ACE"}, "type": "array", "title": "Response Get Aces V3 Access Acl Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["ACL"], "summary": "Create Ace", "description": "Create a new ACL entry.\n\nRequired privilege: ACE.Allocate", "operationId": "create_ace_v3_access_acl_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ACECreate"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ACE"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/access/acl/{ace_id}": {"get": {"tags": ["ACL"], "summary": "Get Ace", "description": "Get an ACL entry.\n\nRequired privilege: ACE.Audit", "operationId": "get_ace_v3_access_acl__ace_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "ace_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Ace Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ACE"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["ACL"], "summary": "Update Ace", "description": "Update an ACL entry.\n\nRequired privilege: ACE.Modify", "operationId": "update_ace_v3_access_acl__ace_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "ace_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Ace Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ACEUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ACE"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["ACL"], "summary": "Delete Ace", "description": "Delete an ACL entry.\n\nRequired privilege: ACE.Allocate", "operationId": "delete_ace_v3_access_acl__ace_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "ace_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Ace Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/images/qemu/{image_path}": {"post": {"tags": ["Images"], "summary": "Create Qemu Image", "description": "Create a new blank Qemu image.\n\nRequired privilege: Image.Allocate", "operationId": "create_qemu_image_v3_images_qemu__image_path__post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "image_path", "in": "path", "required": true, "schema": {"type": "string", "title": "Image Path"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/QemuDiskImageCreate"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Image"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/images": {"get": {"tags": ["Images"], "summary": "Get Images", "description": "Return all images.\n\nRequired privilege: Image.Audit", "operationId": "get_images_v3_images_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "image_type", "in": "query", "required": false, "schema": {"anyOf": [{"$ref": "#/components/schemas/ImageType"}, {"type": "null"}], "title": "Image Type"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Image"}, "title": "Response Get Images V3 Images Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/images/upload/{image_path}": {"post": {"tags": ["Images"], "summary": "Upload Image", "description": "Upload an image.\n\nExample: curl -X POST http://host:port/v3/images/upload/my_image_name.qcow2 -H 'Authorization: Bearer ' --data-binary @\"/path/to/image.qcow2\"\n\nRequired privilege: Image.Allocate", "operationId": "upload_image_v3_images_upload__image_path__post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "image_path", "in": "path", "required": true, "schema": {"type": "string", "title": "Image Path"}}, {"name": "install_appliances", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Install Appliances"}}], "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Image"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/images/prune": {"delete": {"tags": ["Images"], "summary": "Prune Images", "description": "Prune images not attached to any template.\n\nRequired privilege: Image.Allocate", "operationId": "prune_images_v3_images_prune_delete", "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/images/install": {"post": {"tags": ["Images"], "summary": "Install Images", "description": "Attempt to automatically create templates based on image checksums.\n\nRequired privilege: Image.Allocate", "operationId": "install_images_v3_images_install_post", "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/images/{image_path}": {"get": {"tags": ["Images"], "summary": "Get Image", "description": "Return an image.\n\nRequired privilege: Image.Audit", "operationId": "get_image_v3_images__image_path__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "image_path", "in": "path", "required": true, "schema": {"type": "string", "title": "Image Path"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Image"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Images"], "summary": "Delete Image", "description": "Delete an image.\n\nRequired privilege: Image.Allocate", "operationId": "delete_image_v3_images__image_path__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "image_path", "in": "path", "required": true, "schema": {"type": "string", "title": "Image Path"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/templates": {"post": {"tags": ["Templates"], "summary": "Create Template", "description": "Create a new template.\n\nRequired privilege: Template.Allocate", "operationId": "create_template_v3_templates_post", "security": [{"OAuth2PasswordBearer": []}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TemplateCreate"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Template"}}}}, "404": {"description": "Could not find template", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "get": {"tags": ["Templates"], "summary": "Get Templates", "description": "Return all templates.\n\nRequired privilege: Template.Audit\n\nQuery Parameters:\n- tags: Filter by tags. Multiple tags are ANDed together.\n Example: ?tags=vendor:cisco&tags=model:7200", "operationId": "get_templates_v3_templates_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "tags", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "description": "Filter by tags (e.g. tags=vendor:cisco&tags=model:7200)", "title": "Tags"}, "description": "Filter by tags (e.g. tags=vendor:cisco&tags=model:7200)"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Template"}, "title": "Response Get Templates V3 Templates Get"}}}}, "404": {"description": "Could not find template", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/templates/{template_id}": {"get": {"tags": ["Templates"], "summary": "Get Template", "description": "Return a template.\n\nRequired privilege: Template.Audit", "operationId": "get_template_v3_templates__template_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "template_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Template Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Template"}}}}, "404": {"description": "Could not find template", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Templates"], "summary": "Update Template", "description": "Update a template.\n\nRequired privilege: Template.Modify", "operationId": "update_template_v3_templates__template_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "template_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Template Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TemplateUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Template"}}}}, "404": {"description": "Could not find template", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Templates"], "summary": "Delete Template", "description": "Delete a template.\n\nRequired privilege: Template.Allocate", "operationId": "delete_template_v3_templates__template_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "template_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Template Id"}}, {"name": "prune_images", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Prune Images"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find template", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/templates/{template_id}/duplicate": {"post": {"tags": ["Templates"], "summary": "Duplicate Template", "description": "Duplicate a template.\n\nRequired privilege: Template.Allocate", "operationId": "duplicate_template_v3_templates__template_id__duplicate_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "template_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Template Id"}}], "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Template"}}}}, "404": {"description": "Could not find template", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects": {"get": {"tags": ["Projects"], "summary": "Get Projects", "description": "Return all projects.\n\nRequired privilege: Project.Audit", "operationId": "get_projects_v3_projects_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/Project"}, "type": "array", "title": "Response Get Projects V3 Projects Get"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Projects"], "summary": "Create Project", "description": "Create a new project.\n\nRequired privilege: Project.Allocate", "operationId": "create_project_v3_projects_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProjectCreate"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "409": {"description": "Could not create project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}": {"get": {"tags": ["Projects"], "summary": "Get Project", "description": "Return a project.\n\nRequired privilege: Project.Audit", "operationId": "get_project_v3_projects__project_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Projects"], "summary": "Update Project", "description": "Update a project.\n\nRequired privilege: Project.Modify", "operationId": "update_project_v3_projects__project_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProjectUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Projects"], "summary": "Delete Project", "description": "Delete a project.\n\nRequired privilege: Project.Allocate", "operationId": "delete_project_v3_projects__project_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/stats": {"get": {"tags": ["Projects"], "summary": "Get Project Stats", "description": "Return a project statistics.\n\nRequired privilege: Project.Audit", "operationId": "get_project_stats_v3_projects__project_id__stats_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "object", "additionalProperties": true, "title": "Response Get Project Stats V3 Projects Project Id Stats Get"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/close": {"post": {"tags": ["Projects"], "summary": "Close Project", "description": "Close a project.\n\nRequired privilege: Project.Allocate", "operationId": "close_project_v3_projects__project_id__close_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "409": {"description": "Could not close project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/open": {"post": {"tags": ["Projects"], "summary": "Open Project", "description": "Open a project.\n\nRequired privilege: Project.Allocate", "operationId": "open_project_v3_projects__project_id__open_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "409": {"description": "Could not open project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/load": {"post": {"tags": ["Projects"], "summary": "Load Project", "description": "Load a project (local server only).\n\nRequired privilege: Project.Allocate", "operationId": "load_project_v3_projects_load_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Body_load_project_v3_projects_load_post"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "409": {"description": "Could not load project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/notifications": {"get": {"tags": ["Projects"], "summary": "Project Http Notifications", "description": "Receive project notifications about the controller from HTTP stream.\n\nRequired privilege: Project.Audit", "operationId": "project_http_notifications_v3_projects__project_id__notifications_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/export": {"get": {"tags": ["Projects"], "summary": "Export Project", "description": "Export a project as a portable archive.\n\nRequired privilege: Project.Audit", "operationId": "export_project_v3_projects__project_id__export_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "include_snapshots", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Include Snapshots"}}, {"name": "include_images", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Include Images"}}, {"name": "reset_mac_addresses", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Reset Mac Addresses"}}, {"name": "keep_compute_ids", "in": "query", "required": false, "schema": {"type": "boolean", "default": false, "title": "Keep Compute Ids"}}, {"name": "compression", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/ProjectCompression", "default": "zstd"}}, {"name": "compression_level", "in": "query", "required": false, "schema": {"type": "integer", "title": "Compression Level"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/import": {"post": {"tags": ["Projects"], "summary": "Import Project", "description": "Import a project from a portable archive.\n\nRequired privilege: Project.Allocate", "operationId": "import_project_v3_projects__project_id__import_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "name", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}}], "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/duplicate": {"post": {"tags": ["Projects"], "summary": "Duplicate Project", "description": "Duplicate a project.\n\nRequired privilege: Project.Audit", "operationId": "duplicate_project_v3_projects__project_id__duplicate_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProjectDuplicate"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "409": {"description": "Could not duplicate project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/locked": {"get": {"tags": ["Projects"], "summary": "Locked Project", "description": "Returns whether a project is locked or not.\n\nRequired privilege: Project.Audit", "operationId": "locked_project_v3_projects__project_id__locked_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "boolean", "title": "Response Locked Project V3 Projects Project Id Locked Get"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/lock": {"post": {"tags": ["Projects"], "summary": "Lock Project", "description": "Lock all drawings and nodes in a given project.\n\nRequired privilege: Project.Audit", "operationId": "lock_project_v3_projects__project_id__lock_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/unlock": {"post": {"tags": ["Projects"], "summary": "Unlock Project", "description": "Unlock all drawings and nodes in a given project.\n\nRequired privilege: Project.Modify", "operationId": "unlock_project_v3_projects__project_id__unlock_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/files/{file_path}": {"get": {"tags": ["Projects"], "summary": "Get File", "description": "Return a file from a project.\n\nRequired privilege: Project.Audit", "operationId": "get_file_v3_projects__project_id__files__file_path__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "file_path", "in": "path", "required": true, "schema": {"type": "string", "title": "File Path"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["Projects"], "summary": "Write File", "description": "Write a file to a project.\n\nRequired privilege: Project.Modify", "operationId": "write_file_v3_projects__project_id__files__file_path__post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "file_path", "in": "path", "required": true, "schema": {"type": "string", "title": "File Path"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/templates/{template_id}": {"post": {"tags": ["Projects"], "summary": "Create Node From Template", "description": "Create a new node from a template.\n\nRequired privilege: Node.Allocate", "operationId": "create_node_from_template_v3_projects__project_id__templates__template_id__post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "template_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Template Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TemplateUsage"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Node"}}}}, "404": {"description": "Could not find project or template", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes": {"post": {"tags": ["Nodes"], "summary": "Create Node", "description": "Create a new node.\n\nRequired privilege: Node.Allocate", "operationId": "create_node_v3_projects__project_id__nodes_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NodeCreate"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Node"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "409": {"description": "Could not create node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "get": {"tags": ["Nodes"], "summary": "Get Nodes", "description": "Return all nodes belonging to a given project.\n\nRequired privilege: Node.Audit\n\nQuery Parameters:\n- tags: Filter by tags. Multiple tags are ANDed together.\n Example: ?tags=vendor:cisco&tags=model:7200", "operationId": "get_nodes_v3_projects__project_id__nodes_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "tags", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"type": "string"}}, {"type": "null"}], "description": "Filter by tags (e.g. tags=vendor:cisco&tags=model:7200)", "title": "Tags"}, "description": "Filter by tags (e.g. tags=vendor:cisco&tags=model:7200)"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Node"}, "title": "Response Get Nodes V3 Projects Project Id Nodes Get"}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/start": {"post": {"tags": ["Nodes"], "summary": "Start All Nodes", "description": "Start all nodes belonging to a given project.\n\nRequired privilege: Node.PowerMgmt", "operationId": "start_all_nodes_v3_projects__project_id__nodes_start_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/stop": {"post": {"tags": ["Nodes"], "summary": "Stop All Nodes", "description": "Stop all nodes belonging to a given project.\n\nRequired privilege: Node.PowerMgmt", "operationId": "stop_all_nodes_v3_projects__project_id__nodes_stop_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/suspend": {"post": {"tags": ["Nodes"], "summary": "Suspend All Nodes", "description": "Suspend all nodes belonging to a given project.\n\nRequired privilege: Node.PowerMgmt", "operationId": "suspend_all_nodes_v3_projects__project_id__nodes_suspend_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/reload": {"post": {"tags": ["Nodes"], "summary": "Reload All Nodes", "description": "Reload all nodes belonging to a given project.\n\nRequired privilege: Node.PowerMgmt", "operationId": "reload_all_nodes_v3_projects__project_id__nodes_reload_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}": {"get": {"tags": ["Nodes"], "summary": "Get Node", "description": "Return a node from a given project.\n\nRequired privilege: Node.Audit", "operationId": "get_node_v3_projects__project_id__nodes__node_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Node"}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Nodes"], "summary": "Update Node", "description": "Update a node.\n\nRequired privilege: Node.Modify", "operationId": "update_node_v3_projects__project_id__nodes__node_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NodeUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Node"}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Nodes"], "summary": "Delete Node", "description": "Delete a node from a project.\n\nRequired privilege: Node.Allocate", "operationId": "delete_node_v3_projects__project_id__nodes__node_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "409": {"description": "Cannot delete node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/duplicate": {"post": {"tags": ["Nodes"], "summary": "Duplicate Node", "description": "Duplicate a node.\n\nRequired privilege: Node.Allocate", "operationId": "duplicate_node_v3_projects__project_id__nodes__node_id__duplicate_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NodeDuplicate"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Node"}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/start": {"post": {"tags": ["Nodes"], "summary": "Start Node", "description": "Start a node.\n\nRequired privilege: Node.PowerMgmt", "operationId": "start_node_v3_projects__project_id__nodes__node_id__start_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"content": {"application/json": {"schema": {"anyOf": [{"type": "object", "additionalProperties": true}, {"type": "null"}], "title": "Start Data"}}}}, "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/stop": {"post": {"tags": ["Nodes"], "summary": "Stop Node", "description": "Stop a node.\n\nRequired privilege: Node.PowerMgmt", "operationId": "stop_node_v3_projects__project_id__nodes__node_id__stop_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/suspend": {"post": {"tags": ["Nodes"], "summary": "Suspend Node", "description": "Suspend a node.\n\nRequired privilege: Node.PowerMgmt", "operationId": "suspend_node_v3_projects__project_id__nodes__node_id__suspend_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/reload": {"post": {"tags": ["Nodes"], "summary": "Reload Node", "description": "Reload a node.\n\nRequired privilege: Node.PowerMgmt", "operationId": "reload_node_v3_projects__project_id__nodes__node_id__reload_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/isolate": {"post": {"tags": ["Nodes"], "summary": "Isolate Node", "description": "Isolate a node (suspend all attached links).\n\nRequired privilege: Link.Modify", "operationId": "isolate_node_v3_projects__project_id__nodes__node_id__isolate_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/unisolate": {"post": {"tags": ["Nodes"], "summary": "Unisolate Node", "description": "Un-isolate a node (resume all attached suspended links).\n\nRequired privilege: Link.Modify", "operationId": "unisolate_node_v3_projects__project_id__nodes__node_id__unisolate_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/links": {"get": {"tags": ["Nodes"], "summary": "Get Node Links", "description": "Return all the links connected to a node.\n\nRequired privilege: Link.Audit", "operationId": "get_node_links_v3_projects__project_id__nodes__node_id__links_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Link"}, "title": "Response Get Node Links V3 Projects Project Id Nodes Node Id Links Get"}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/dynamips/auto_idlepc": {"get": {"tags": ["Nodes"], "summary": "Auto Idlepc", "description": "Compute an Idle-PC value for a Dynamips node\n\nRequired privilege: Node.Audit", "operationId": "auto_idlepc_v3_projects__project_id__nodes__node_id__dynamips_auto_idlepc_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "object", "additionalProperties": true, "title": "Response Auto Idlepc V3 Projects Project Id Nodes Node Id Dynamips Auto Idlepc Get"}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/dynamips/idlepc_proposals": {"get": {"tags": ["Nodes"], "summary": "Idlepc Proposals", "description": "Compute a list of potential idle-pc values for a Dynamips node\n\nRequired privilege: Node.Audit", "operationId": "idlepc_proposals_v3_projects__project_id__nodes__node_id__dynamips_idlepc_proposals_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"type": "string"}, "title": "Response Idlepc Proposals V3 Projects Project Id Nodes Node Id Dynamips Idlepc Proposals Get"}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/qemu/disk_image/{disk_name}": {"post": {"tags": ["Nodes"], "summary": "Create Disk Image", "description": "Create a Qemu disk image.\n\nRequired privilege: Node.Allocate", "operationId": "create_disk_image_v3_projects__project_id__nodes__node_id__qemu_disk_image__disk_name__post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "disk_name", "in": "path", "required": true, "schema": {"type": "string", "title": "Disk Name"}}, {"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/QemuDiskImageCreate"}}}}, "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Nodes"], "summary": "Update Disk Image", "description": "Update a Qemu disk image.\n\nRequired privilege: Node.Allocate", "operationId": "update_disk_image_v3_projects__project_id__nodes__node_id__qemu_disk_image__disk_name__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "disk_name", "in": "path", "required": true, "schema": {"type": "string", "title": "Disk Name"}}, {"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/QemuDiskImageUpdate"}}}}, "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Nodes"], "summary": "Delete Disk Image", "description": "Delete a Qemu disk image.\n\nRequired privilege: Node.Allocate", "operationId": "delete_disk_image_v3_projects__project_id__nodes__node_id__qemu_disk_image__disk_name__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "disk_name", "in": "path", "required": true, "schema": {"type": "string", "title": "Disk Name"}}, {"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/files": {"get": {"tags": ["Nodes"], "summary": "List Node Files", "description": "List files in a node directory with detailed metadata.\n\nRequired privilege: Node.Audit", "operationId": "list_node_files_v3_projects__project_id__nodes__node_id__files_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/NodeFile"}, "title": "Response List Node Files V3 Projects Project Id Nodes Node Id Files Get"}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/files/{file_path}": {"get": {"tags": ["Nodes"], "summary": "Get File", "description": "Return a file from the node directory.\n\nRequired privilege: Node.Audit", "operationId": "get_file_v3_projects__project_id__nodes__node_id__files__file_path__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "file_path", "in": "path", "required": true, "schema": {"type": "string", "title": "File Path"}}, {"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["Nodes"], "summary": "Post File", "description": "Write a file in the node directory.\n\nRequired privilege: Node.Modify", "operationId": "post_file_v3_projects__project_id__nodes__node_id__files__file_path__post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "file_path", "in": "path", "required": true, "schema": {"type": "string", "title": "File Path"}}, {"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/console/reset": {"post": {"tags": ["Nodes"], "summary": "Reset Console All Nodes", "description": "Reset console for all nodes belonging to the project.\n\nRequired privilege: Node.Console", "operationId": "reset_console_all_nodes_v3_projects__project_id__nodes_console_reset_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/console/reset": {"post": {"tags": ["Nodes"], "summary": "Console Reset", "description": "Reset a console for a given node.\n\nRequired privilege: Node.Console", "operationId": "console_reset_v3_projects__project_id__nodes__node_id__console_reset_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "node_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Node Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/links": {"get": {"tags": ["Links"], "summary": "Get Links", "description": "Return all links for a given project.\n\nRequired privilege: Link.Audit", "operationId": "get_links_v3_projects__project_id__links_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Link"}, "title": "Response Get Links V3 Projects Project Id Links Get"}}}}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["Links"], "summary": "Create Link", "description": "Create a new link.\n\nRequired privilege: Link.Allocate", "operationId": "create_link_v3_projects__project_id__links_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LinkCreate"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Link"}}}}, "404": {"description": "Could not find project", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "409": {"description": "Could not create link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/links/{link_id}/available_filters": {"get": {"tags": ["Links"], "summary": "Get Filters", "description": "Return all filters available for a given link.\n\nRequired privilege: Link.Audit", "operationId": "get_filters_v3_projects__project_id__links__link_id__available_filters_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"type": "object", "additionalProperties": true}, "title": "Response Get Filters V3 Projects Project Id Links Link Id Available Filters Get"}}}}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/links/{link_id}": {"get": {"tags": ["Links"], "summary": "Get Link", "description": "Return a link.\n\nRequired privilege: Link.Audit", "operationId": "get_link_v3_projects__project_id__links__link_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Link"}}}}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Links"], "summary": "Update Link", "description": "Update a link.\n\nRequired privilege: Link.Modify", "operationId": "update_link_v3_projects__project_id__links__link_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LinkUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Link"}}}}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Links"], "summary": "Delete Link", "description": "Delete a link.\n\nRequired privilege: Link.Allocate", "operationId": "delete_link_v3_projects__project_id__links__link_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/links/{link_id}/reset": {"post": {"tags": ["Links"], "summary": "Reset Link", "description": "Reset a link.\n\nRequired privilege: Link.Modify", "operationId": "reset_link_v3_projects__project_id__links__link_id__reset_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Link"}}}}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/links/{link_id}/capture/start": {"post": {"tags": ["Links"], "summary": "Start Capture", "description": "Start packet capture on the link.\n\nRequired privilege: Link.Capture", "operationId": "start_capture_v3_projects__project_id__links__link_id__capture_start_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LinkCapture"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Link"}}}}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/links/{link_id}/capture/stop": {"post": {"tags": ["Links"], "summary": "Stop Capture", "description": "Stop packet capture on the link.\n\nRequired privilege: Link.Capture", "operationId": "stop_capture_v3_projects__project_id__links__link_id__capture_stop_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/links/{link_id}/capture/wireshark/restart": {"post": {"tags": ["Links"], "summary": "Restart Wireshark", "description": "Restart Wireshark window without stopping the capture.\n\nThis allows recovery after accidentally closing the Wireshark window.\n\nRequired privilege: Link.Capture", "operationId": "restart_wireshark_v3_projects__project_id__links__link_id__capture_wireshark_restart_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "object", "additionalProperties": true, "title": "Response Restart Wireshark V3 Projects Project Id Links Link Id Capture Wireshark Restart Post"}}}}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/links/{link_id}/capture/stream": {"get": {"tags": ["Links"], "summary": "Stream Pcap", "description": "Stream the PCAP capture file from compute.\n\nRequired privilege: Link.Capture", "operationId": "stream_pcap_v3_projects__project_id__links__link_id__capture_stream_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/links/{link_id}/capture/file": {"get": {"tags": ["Links"], "summary": "Download Capture File", "description": "Download the PCAP capture file.\n\nThis endpoint allows downloading the capture file even while capture is active.\nThe file is streamed directly, so partial data may be received if capture is still running.\n\nRequired privilege: Link.Capture", "operationId": "download_capture_file_v3_projects__project_id__links__link_id__capture_file_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "responses": {"200": {"description": "Successful Response"}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/links/{link_id}/iface": {"get": {"tags": ["Links"], "summary": "Get Iface", "description": "Return iface info for links to Cloud or NAT devices.\n\nRequired privilege: Link.Audit", "operationId": "get_iface_v3_projects__project_id__links__link_id__iface_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "link_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Link Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/UDPPortInfo"}, {"$ref": "#/components/schemas/EthernetPortInfo"}], "title": "Response Get Iface V3 Projects Project Id Links Link Id Iface Get"}}}}, "404": {"description": "Could not find project or link", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/drawings": {"get": {"tags": ["Drawings"], "summary": "Get Drawings", "description": "Return the list of all drawings for a given project.\n\nRequired privilege: Drawing.Audit", "operationId": "get_drawings_v3_projects__project_id__drawings_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Drawing"}, "title": "Response Get Drawings V3 Projects Project Id Drawings Get"}}}}, "404": {"description": "Project or drawing not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["Drawings"], "summary": "Create Drawing", "description": "Create a new drawing.\n\nRequired privilege: Drawing.Allocate", "operationId": "create_drawing_v3_projects__project_id__drawings_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Drawing"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Drawing"}}}}, "404": {"description": "Project or drawing not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/drawings/{drawing_id}": {"get": {"tags": ["Drawings"], "summary": "Get Drawing", "description": "Return a drawing.\n\nRequired privilege: Drawing.Audit", "operationId": "get_drawing_v3_projects__project_id__drawings__drawing_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "drawing_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Drawing Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Drawing"}}}}, "404": {"description": "Project or drawing not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Drawings"], "summary": "Update Drawing", "description": "Update a drawing.\n\nRequired privilege: Drawing.Modify", "operationId": "update_drawing_v3_projects__project_id__drawings__drawing_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "drawing_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Drawing Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Drawing"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Drawing"}}}}, "404": {"description": "Project or drawing not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Drawings"], "summary": "Delete Drawing", "description": "Delete a drawing.\n\nRequired privilege: Drawing.Allocate", "operationId": "delete_drawing_v3_projects__project_id__drawings__drawing_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}, {"name": "drawing_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Drawing Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Project or drawing not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/symbols": {"get": {"tags": ["Symbols"], "summary": "Get Symbols", "description": "Return all symbols.\n\nRequired privilege: Symbol.Audit", "operationId": "get_symbols_v3_symbols_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"additionalProperties": true, "type": "object"}, "type": "array", "title": "Response Get Symbols V3 Symbols Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/symbols/{symbol_id}/raw": {"get": {"tags": ["Symbols"], "summary": "Get Symbol", "description": "Download a symbol file.\n\nRequired privilege: Symbol.Audit", "operationId": "get_symbol_v3_symbols__symbol_id__raw_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "symbol_id", "in": "path", "required": true, "schema": {"type": "string", "title": "Symbol Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "404": {"description": "Could not find symbol", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["Symbols"], "summary": "Upload Symbol", "description": "Upload a symbol file.\n\nRequired privilege: Symbol.Allocate", "operationId": "upload_symbol_v3_symbols__symbol_id__raw_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "symbol_id", "in": "path", "required": true, "schema": {"type": "string", "title": "Symbol Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/symbols/{symbol_id}/dimensions": {"get": {"tags": ["Symbols"], "summary": "Get Symbol Dimensions", "description": "Get a symbol dimensions.\n\nRequired privilege: Symbol.Audit", "operationId": "get_symbol_dimensions_v3_symbols__symbol_id__dimensions_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "symbol_id", "in": "path", "required": true, "schema": {"type": "string", "title": "Symbol Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "object", "additionalProperties": true, "title": "Response Get Symbol Dimensions V3 Symbols Symbol Id Dimensions Get"}}}}, "404": {"description": "Could not find symbol", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/symbols/default_symbols": {"get": {"tags": ["Symbols"], "summary": "Get Default Symbols", "description": "Return all default symbols.\n\nRequired privilege: Symbol.Audit", "operationId": "get_default_symbols_v3_symbols_default_symbols_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"additionalProperties": true, "type": "object", "title": "Response Get Default Symbols V3 Symbols Default Symbols Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/symbols/{symbol_id}": {"delete": {"tags": ["Symbols"], "summary": "Delete Symbol", "description": "Delete a custom symbol file.\n\nRequired privilege: Symbol.Allocate", "operationId": "delete_symbol_v3_symbols__symbol_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "symbol_id", "in": "path", "required": true, "schema": {"type": "string", "title": "Symbol Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/snapshots": {"post": {"tags": ["Snapshots"], "summary": "Create Snapshot", "description": "Create a new snapshot of a project.\n\nRequired privilege: Snapshot.Allocate", "operationId": "create_snapshot_v3_projects__project_id__snapshots_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SnapshotCreate"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Snapshot"}}}}, "404": {"description": "Could not find project or snapshot", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "get": {"tags": ["Snapshots"], "summary": "Get Snapshots", "description": "Return all snapshots belonging to a given project.\n\nRequired privilege: Snapshot.Audit", "operationId": "get_snapshots_v3_projects__project_id__snapshots_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Snapshot"}, "title": "Response Get Snapshots V3 Projects Project Id Snapshots Get"}}}}, "404": {"description": "Could not find project or snapshot", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/snapshots/{snapshot_id}": {"delete": {"tags": ["Snapshots"], "summary": "Delete Snapshot", "description": "Delete a snapshot.\n\nRequired privilege: Snapshot.Allocate", "operationId": "delete_snapshot_v3_projects__project_id__snapshots__snapshot_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "snapshot_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Snapshot Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find project or snapshot", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/snapshots/{snapshot_id}/restore": {"post": {"tags": ["Snapshots"], "summary": "Restore Snapshot", "description": "Restore a snapshot.\n\nRequired privilege: Snapshot.Restore", "operationId": "restore_snapshot_v3_projects__project_id__snapshots__snapshot_id__restore_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "snapshot_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Snapshot Id"}}, {"name": "project_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Project Id"}}], "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "404": {"description": "Could not find project or snapshot", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/computes": {"post": {"tags": ["Computes"], "summary": "Create Compute", "description": "Create a new compute on the controller.\n\nRequired privilege: Compute.Allocate", "operationId": "create_compute_v3_computes_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "connect", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Connect"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ComputeCreate"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Compute"}}}}, "404": {"description": "Could not connect to compute", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "409": {"description": "Could not create compute", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "401": {"description": "Invalid authentication for compute", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "get": {"tags": ["Computes"], "summary": "Get Computes", "description": "Return all computes known by the controller.\n\nRequired privilege: Compute.Audit", "operationId": "get_computes_v3_computes_get", "security": [{"OAuth2PasswordBearer": []}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Compute"}, "title": "Response Get Computes V3 Computes Get"}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/computes/{compute_id}/connect": {"post": {"tags": ["Computes"], "summary": "Connect Compute", "description": "Connect to compute on the controller.\n\nRequired privilege: Compute.Audit", "operationId": "connect_compute_v3_computes__compute_id__connect_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/computes/{compute_id}": {"get": {"tags": ["Computes"], "summary": "Get Compute", "description": "Return a compute from the controller.\n\nRequired privilege: Compute.Audit", "operationId": "get_compute_v3_computes__compute_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Compute"}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Computes"], "summary": "Update Compute", "description": "Update a compute on the controller.\n\nRequired privilege: Compute.Modify", "operationId": "update_compute_v3_computes__compute_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ComputeUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Compute"}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Computes"], "summary": "Delete Compute", "description": "Delete a compute from the controller.\n\nRequired privilege: Compute.Allocate", "operationId": "delete_compute_v3_computes__compute_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/computes/{compute_id}/docker/images": {"get": {"tags": ["Computes"], "summary": "Docker Get Images", "description": "Get Docker images from a compute.", "operationId": "docker_get_images_v3_computes__compute_id__docker_images_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/ComputeDockerImage"}, "title": "Response Docker Get Images V3 Computes Compute Id Docker Images Get"}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/computes/{compute_id}/virtualbox/vms": {"get": {"tags": ["Computes"], "summary": "Virtualbox Vms", "description": "Get VirtualBox VMs from a compute.", "operationId": "virtualbox_vms_v3_computes__compute_id__virtualbox_vms_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/ComputeVirtualBoxVM"}, "title": "Response Virtualbox Vms V3 Computes Compute Id Virtualbox Vms Get"}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/computes/{compute_id}/vmware/vms": {"get": {"tags": ["Computes"], "summary": "Vmware Vms", "description": "Get VMware VMs from a compute.", "operationId": "vmware_vms_v3_computes__compute_id__vmware_vms_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/ComputeVMwareVM"}, "title": "Response Vmware Vms V3 Computes Compute Id Vmware Vms Get"}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/computes/{compute_id}/dynamips/auto_idlepc": {"post": {"tags": ["Computes"], "summary": "Dynamips Autoidlepc", "description": "Find a suitable Idle-PC value for a given IOS image. This may take a few minutes.", "operationId": "dynamips_autoidlepc_v3_computes__compute_id__dynamips_auto_idlepc_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AutoIdlePC"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/computes/{compute_id}/{emulator}/{endpoint_path}": {"get": {"tags": ["Computes"], "summary": "Forward Get", "description": "Forward a GET request to a compute.\nRead the full compute API documentation for available routes.", "operationId": "forward_get_v3_computes__compute_id___emulator___endpoint_path__get", "deprecated": true, "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}, {"name": "emulator", "in": "path", "required": true, "schema": {"type": "string", "title": "Emulator"}}, {"name": "endpoint_path", "in": "path", "required": true, "schema": {"type": "string", "title": "Endpoint Path"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Forward Get V3 Computes Compute Id Emulator Endpoint Path Get"}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["Computes"], "summary": "Forward Post", "description": "Forward a POST request to a compute.\nRead the full compute API documentation for available routes.", "operationId": "forward_post_v3_computes__compute_id___emulator___endpoint_path__post", "deprecated": true, "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}, {"name": "emulator", "in": "path", "required": true, "schema": {"type": "string", "title": "Emulator"}}, {"name": "endpoint_path", "in": "path", "required": true, "schema": {"type": "string", "title": "Endpoint Path"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "additionalProperties": true, "title": "Compute Data"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Forward Post V3 Computes Compute Id Emulator Endpoint Path Post"}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Computes"], "summary": "Forward Put", "description": "Forward a PUT request to a compute.\nRead the full compute API documentation for available routes.", "operationId": "forward_put_v3_computes__compute_id___emulator___endpoint_path__put", "deprecated": true, "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "compute_id", "in": "path", "required": true, "schema": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}, {"name": "emulator", "in": "path", "required": true, "schema": {"type": "string", "title": "Emulator"}}, {"name": "endpoint_path", "in": "path", "required": true, "schema": {"type": "string", "title": "Endpoint Path"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "additionalProperties": true, "title": "Compute Data"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Forward Put V3 Computes Compute Id Emulator Endpoint Path Put"}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/appliances": {"get": {"tags": ["Appliances"], "summary": "Get Appliances", "description": "Return all appliances known by the controller.\n\nRequired privilege: Appliance.Audit", "operationId": "get_appliances_v3_appliances_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "update", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": false, "title": "Update"}}, {"name": "symbol_theme", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Symbol Theme"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"oneOf": [{"$ref": "#/components/schemas/ApplianceV1_6"}, {"$ref": "#/components/schemas/ApplianceV8"}], "discriminator": {"propertyName": "registry_version", "mapping": {"1": "#/components/schemas/ApplianceV1_6", "2": "#/components/schemas/ApplianceV1_6", "3": "#/components/schemas/ApplianceV1_6", "4": "#/components/schemas/ApplianceV1_6", "5": "#/components/schemas/ApplianceV1_6", "6": "#/components/schemas/ApplianceV1_6", "8": "#/components/schemas/ApplianceV8"}}}, "title": "Response Get Appliances V3 Appliances Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/appliances/{appliance_id}": {"get": {"tags": ["Appliances"], "summary": "Get Appliance", "description": "Get an appliance file.\n\nRequired privilege: Appliance.Audit", "operationId": "get_appliance_v3_appliances__appliance_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "appliance_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Appliance Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"oneOf": [{"$ref": "#/components/schemas/ApplianceV1_6"}, {"$ref": "#/components/schemas/ApplianceV8"}], "discriminator": {"propertyName": "registry_version", "mapping": {"1": "#/components/schemas/ApplianceV1_6", "2": "#/components/schemas/ApplianceV1_6", "3": "#/components/schemas/ApplianceV1_6", "4": "#/components/schemas/ApplianceV1_6", "5": "#/components/schemas/ApplianceV1_6", "6": "#/components/schemas/ApplianceV1_6", "8": "#/components/schemas/ApplianceV8"}}, "title": "Response Get Appliance V3 Appliances Appliance Id Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/appliances/{appliance_id}/version": {"post": {"tags": ["Appliances"], "summary": "Add Appliance Version", "description": "Add a version to an appliance.\n\nRequired privilege: Appliance.Allocate", "operationId": "add_appliance_version_v3_appliances__appliance_id__version_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "appliance_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Appliance Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/ApplianceVersion"}, {"$ref": "#/components/schemas/ApplianceVersionV8"}], "title": "Appliance Version"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "object", "additionalProperties": true, "title": "Response Add Appliance Version V3 Appliances Appliance Id Version Post"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/appliances/{appliance_id}/install": {"post": {"tags": ["Appliances"], "summary": "Install Appliance", "description": "Install an appliance.\n\nRequired privilege: Appliance.Allocate", "operationId": "install_appliance_v3_appliances__appliance_id__install_post", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "appliance_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Appliance Id"}}, {"name": "version", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Version"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/pools": {"get": {"tags": ["Resource pools"], "summary": "Get Resource Pools", "description": "Get all resource pools.\n\nRequired privilege: Pool.Audit", "operationId": "get_resource_pools_v3_pools_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"$ref": "#/components/schemas/ResourcePool"}, "type": "array", "title": "Response Get Resource Pools V3 Pools Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Resource pools"], "summary": "Create Resource Pool", "description": "Create a new resource pool\n\nRequired privilege: Pool.Allocate", "operationId": "create_resource_pool_v3_pools_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResourcePoolCreate"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResourcePool"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/pools/{resource_pool_id}": {"get": {"tags": ["Resource pools"], "summary": "Get Resource Pool", "description": "Get a resource pool.\n\nRequired privilege: Pool.Audit", "operationId": "get_resource_pool_v3_pools__resource_pool_id__get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "resource_pool_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Resource Pool Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResourcePool"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["Resource pools"], "summary": "Update Resource Pool", "description": "Update a resource pool.\n\nRequired privilege: Pool.Modify", "operationId": "update_resource_pool_v3_pools__resource_pool_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "resource_pool_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Resource Pool Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResourcePoolUpdate"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResourcePool"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Resource pools"], "summary": "Delete Resource Pool", "description": "Delete a resource pool.\n\nRequired privilege: Pool.Allocate", "operationId": "delete_resource_pool_v3_pools__resource_pool_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "resource_pool_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Resource Pool Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/pools/{resource_pool_id}/resources": {"get": {"tags": ["Resource pools"], "summary": "Get Pool Resources", "description": "Get all resource in a pool.\n\nRequired privilege: Pool.Audit", "operationId": "get_pool_resources_v3_pools__resource_pool_id__resources_get", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "resource_pool_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Resource Pool Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Resource"}, "title": "Response Get Pool Resources V3 Pools Resource Pool Id Resources Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/pools/{resource_pool_id}/resources/{resource_id}": {"put": {"tags": ["Resource pools"], "summary": "Add Resource To Pool", "description": "Add resource to a resource pool.\n\nRequired privilege: Pool.Modify", "operationId": "add_resource_to_pool_v3_pools__resource_pool_id__resources__resource_id__put", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "resource_pool_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Resource Pool Id"}}, {"name": "resource_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Resource Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "delete": {"tags": ["Resource pools"], "summary": "Remove Resource From Pool", "description": "Remove resource from a resource pool.\n\nRequired privilege: Pool.Modify", "operationId": "remove_resource_from_pool_v3_pools__resource_pool_id__resources__resource_id__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "resource_pool_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Resource Pool Id"}}, {"name": "resource_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "title": "Resource Id"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/gns3vm/engines": {"get": {"tags": ["GNS3 VM"], "summary": "Get Engines", "description": "Return the list of supported engines for the GNS3VM.", "operationId": "get_engines_v3_gns3vm_engines_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"additionalProperties": true, "type": "object"}, "type": "array", "title": "Response Get Engines V3 Gns3Vm Engines Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "deprecated": true, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/gns3vm/engines/{engine}/vms": {"get": {"tags": ["GNS3 VM"], "summary": "Get Vms", "description": "Return all the available VMs for a specific virtualization engine.", "operationId": "get_vms_v3_gns3vm_engines__engine__vms_get", "deprecated": true, "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "engine", "in": "path", "required": true, "schema": {"type": "string", "title": "Engine"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"type": "object", "additionalProperties": true}, "title": "Response Get Vms V3 Gns3Vm Engines Engine Vms Get"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/gns3vm": {"get": {"tags": ["GNS3 VM"], "summary": "Get Gns3Vm Settings", "description": "Return the GNS3 VM settings.", "operationId": "get_gns3vm_settings_v3_gns3vm_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GNS3VM"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "deprecated": true, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["GNS3 VM"], "summary": "Update Gns3Vm Settings", "description": "Update the GNS3 VM settings.", "operationId": "update_gns3vm_settings_v3_gns3vm_put", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/GNS3VM"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GNS3VM"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "deprecated": true, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/access/{path}": {"delete": {"tags": ["LLM Model Configurations"], "summary": "Ai Not Available", "operationId": "ai_not_available_v3_access__path__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "path", "in": "path", "required": true, "schema": {"type": "string", "title": "Path"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["LLM Model Configurations"], "summary": "Ai Not Available", "operationId": "ai_not_available_v3_access__path__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "path", "in": "path", "required": true, "schema": {"type": "string", "title": "Path"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["LLM Model Configurations"], "summary": "Ai Not Available", "operationId": "ai_not_available_v3_access__path__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "path", "in": "path", "required": true, "schema": {"type": "string", "title": "Path"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["LLM Model Configurations"], "summary": "Ai Not Available", "operationId": "ai_not_available_v3_access__path__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "path", "in": "path", "required": true, "schema": {"type": "string", "title": "Path"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "get": {"tags": ["LLM Model Configurations"], "summary": "Ai Not Available", "operationId": "ai_not_available_v3_access__path__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "path", "in": "path", "required": true, "schema": {"type": "string", "title": "Path"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/copilot/{path}": {"delete": {"tags": ["GNS3 Copilot"], "summary": "Ai Not Available", "operationId": "ai_not_available_v3_copilot__path__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "path", "in": "path", "required": true, "schema": {"type": "string", "title": "Path"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["GNS3 Copilot"], "summary": "Ai Not Available", "operationId": "ai_not_available_v3_copilot__path__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "path", "in": "path", "required": true, "schema": {"type": "string", "title": "Path"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["GNS3 Copilot"], "summary": "Ai Not Available", "operationId": "ai_not_available_v3_copilot__path__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "path", "in": "path", "required": true, "schema": {"type": "string", "title": "Path"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["GNS3 Copilot"], "summary": "Ai Not Available", "operationId": "ai_not_available_v3_copilot__path__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "path", "in": "path", "required": true, "schema": {"type": "string", "title": "Path"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "get": {"tags": ["GNS3 Copilot"], "summary": "Ai Not Available", "operationId": "ai_not_available_v3_copilot__path__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "path", "in": "path", "required": true, "schema": {"type": "string", "title": "Path"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/copilot/projects/{project_id}/chat/{path}": {"delete": {"tags": ["GNS3 Copilot"], "summary": "Ai Not Available", "operationId": "ai_not_available_v3_copilot_projects__project_id__chat__path__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "path", "in": "path", "required": true, "schema": {"type": "string", "title": "Path"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["GNS3 Copilot"], "summary": "Ai Not Available", "operationId": "ai_not_available_v3_copilot_projects__project_id__chat__path__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "path", "in": "path", "required": true, "schema": {"type": "string", "title": "Path"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["GNS3 Copilot"], "summary": "Ai Not Available", "operationId": "ai_not_available_v3_copilot_projects__project_id__chat__path__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "path", "in": "path", "required": true, "schema": {"type": "string", "title": "Path"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "put": {"tags": ["GNS3 Copilot"], "summary": "Ai Not Available", "operationId": "ai_not_available_v3_copilot_projects__project_id__chat__path__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "path", "in": "path", "required": true, "schema": {"type": "string", "title": "Path"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "get": {"tags": ["GNS3 Copilot"], "summary": "Ai Not Available", "operationId": "ai_not_available_v3_copilot_projects__project_id__chat__path__delete", "security": [{"OAuth2PasswordBearer": []}], "parameters": [{"name": "path", "in": "path", "required": true, "schema": {"type": "string", "title": "Path"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}}, "components": {"schemas": {"ACE": {"properties": {"ace_type": {"$ref": "#/components/schemas/ACEType", "description": "Type of the ACE"}, "path": {"type": "string", "title": "Path"}, "propagate": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Propagate", "default": true}, "allowed": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Allowed", "default": true}, "user_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "User Id"}, "group_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Group Id"}, "role_id": {"type": "string", "format": "uuid", "title": "Role Id"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}, "ace_id": {"type": "string", "format": "uuid", "title": "Ace Id"}}, "type": "object", "required": ["ace_type", "path", "role_id", "ace_id"], "title": "ACE"}, "ACECreate": {"properties": {"ace_type": {"$ref": "#/components/schemas/ACEType", "description": "Type of the ACE"}, "path": {"type": "string", "title": "Path"}, "propagate": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Propagate", "default": true}, "allowed": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Allowed", "default": true}, "user_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "User Id"}, "group_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Group Id"}, "role_id": {"type": "string", "format": "uuid", "title": "Role Id"}}, "type": "object", "required": ["ace_type", "path", "role_id"], "title": "ACECreate", "description": "Properties to create an ACE."}, "ACEType": {"type": "string", "enum": ["user", "group"], "title": "ACEType"}, "ACEUpdate": {"properties": {"ace_type": {"$ref": "#/components/schemas/ACEType", "description": "Type of the ACE"}, "path": {"type": "string", "title": "Path"}, "propagate": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Propagate", "default": true}, "allowed": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Allowed", "default": true}, "user_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "User Id"}, "group_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Group Id"}, "role_id": {"type": "string", "format": "uuid", "title": "Role Id"}}, "type": "object", "required": ["ace_type", "path", "role_id"], "title": "ACEUpdate", "description": "Properties to update an ACE."}, "ApplianceImage": {"properties": {"filename": {"type": "string", "title": "Filename"}, "version": {"type": "string", "title": "Version of the file"}, "md5sum": {"anyOf": [{"type": "string", "pattern": "^[a-f0-9]{32}$"}, {"type": "null"}], "title": "md5sum of the file"}, "filesize": {"type": "integer", "title": "File size in bytes"}, "download_url": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri"}, {"type": "string", "maxLength": 0}, {"type": "null"}], "title": "Download url where you can download the appliance from a browser"}, "direct_download_url": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri"}, {"type": "string", "maxLength": 0}, {"type": "null"}], "title": "Optional. Non authenticated url to the image file where you can download the image."}, "compression": {"anyOf": [{"$ref": "#/components/schemas/Compression"}, {"type": "null"}], "title": "Optional, compression type of direct download url image."}, "checksum": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "checksum of the image file"}, "checksum_type": {"anyOf": [{"$ref": "#/components/schemas/ChecksumType"}, {"type": "null"}], "title": "checksum type of the image file"}, "compression_target": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Optional, file name of the image file inside the compressed file."}}, "type": "object", "required": ["filename", "version", "filesize"], "title": "ApplianceImage", "description": "Appliance image definition - compatible with both versions"}, "ApplianceV1_6": {"properties": {"registry_version": {"type": "integer", "enum": [1, 2, 3, 4, 5, 6], "title": "Version of the registry compatible with this appliance"}, "appliance_id": {"type": "string", "format": "uuid", "title": "Appliance ID"}, "name": {"type": "string", "title": "Appliance name"}, "builtin": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Whether the appliance is builtin or not"}, "category": {"$ref": "#/components/schemas/gns3server__schemas__controller__appliances__Category", "title": "Category of the appliance"}, "description": {"type": "string", "title": "Description of the appliance. Could be a marketing description"}, "vendor_name": {"type": "string", "title": "Name of the vendor"}, "vendor_url": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri"}, {"type": "string", "maxLength": 0}, {"type": "null"}], "title": "Website of the vendor"}, "documentation_url": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri"}, {"type": "string", "maxLength": 0}, {"type": "null"}], "title": "An optional documentation for using the appliance on vendor website"}, "product_name": {"type": "string", "title": "Product name"}, "product_url": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri"}, {"type": "string", "maxLength": 0}, {"type": "null"}], "title": "An optional product url on vendor website"}, "status": {"$ref": "#/components/schemas/Status", "title": "Document if the appliance is working or not"}, "availability": {"anyOf": [{"$ref": "#/components/schemas/Availability"}, {"type": "null"}], "title": "About image availability: can be downloaded directly; download requires a free registration; paid but a trial version (time or feature limited) is available; not available publicly"}, "maintainer": {"type": "string", "title": "Maintainer name"}, "maintainer_email": {"anyOf": [{"type": "string", "format": "email"}, {"type": "string", "maxLength": 0}, {"type": "null"}], "title": "Maintainer email"}, "usage": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "How to use the appliance"}, "symbol": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "An optional symbol for the appliance"}, "first_port_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Optional name of the first networking port example: eth0"}, "port_name_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Optional formating of the networking port example: eth{0}"}, "port_segment_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Optional port segment size. A port segment is a block of port. For example Ethernet0/0 Ethernet0/1 is the module 0 with a port segment size of 2"}, "linked_clone": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "False if you don't want to use a single image for all nodes"}, "docker": {"anyOf": [{"$ref": "#/components/schemas/Docker"}, {"type": "null"}], "title": "Docker specific options"}, "iou": {"anyOf": [{"$ref": "#/components/schemas/Iou"}, {"type": "null"}], "title": "IOU specific options"}, "dynamips": {"anyOf": [{"$ref": "#/components/schemas/Dynamips"}, {"type": "null"}], "title": "Dynamips specific options"}, "qemu": {"anyOf": [{"$ref": "#/components/schemas/Qemu"}, {"type": "null"}], "title": "Qemu specific options"}, "tags": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "User-defined metadata tags for the appliance"}, "images": {"anyOf": [{"items": {"$ref": "#/components/schemas/ApplianceImage"}, "type": "array"}, {"type": "null"}], "title": "Images for this appliance"}, "versions": {"anyOf": [{"items": {"$ref": "#/components/schemas/ApplianceVersion"}, "type": "array"}, {"type": "null"}], "title": "Versions of the appliance"}}, "type": "object", "required": ["registry_version", "appliance_id", "name", "category", "description", "vendor_name", "product_name", "status", "maintainer"], "title": "ApplianceV1_6", "description": "GNS3 Appliance model for registry versions 1-6"}, "ApplianceV8": {"properties": {"registry_version": {"type": "integer", "const": 8, "title": "Version of the registry compatible with this appliance (version >=8 introduced breaking changes)"}, "appliance_id": {"type": "string", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", "title": "Appliance ID"}, "name": {"type": "string", "title": "Appliance name"}, "builtin": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Whether the appliance is builtin or not"}, "category": {"$ref": "#/components/schemas/gns3server__schemas__controller__appliances__Category", "title": "Category of the appliance"}, "description": {"type": "string", "title": "Description of the appliance. Could be a marketing description"}, "vendor_name": {"type": "string", "title": "Name of the vendor"}, "vendor_url": {"type": "string", "minLength": 1, "format": "uri", "title": "Website of the vendor"}, "vendor_logo_url": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri"}, {"type": "null"}], "title": "Link to the vendor logo (used by the GNS3 marketplace)"}, "documentation_url": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri"}, {"type": "null"}], "title": "An optional documentation for using the appliance on vendor website"}, "product_name": {"type": "string", "title": "Product name"}, "product_url": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri"}, {"type": "null"}], "title": "An optional product url on vendor website"}, "status": {"$ref": "#/components/schemas/Status", "title": "Document if the appliance is working or not"}, "availability": {"anyOf": [{"$ref": "#/components/schemas/Availability"}, {"type": "null"}], "title": "About image availability: can be downloaded directly; download requires a free registration; paid but a trial version (time or feature limited) is available; not available publicly"}, "maintainer": {"type": "string", "title": "Maintainer name"}, "maintainer_email": {"type": "string", "format": "email", "title": "Maintainer email"}, "installation_instructions": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Optional installation instructions"}, "usage": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "How to use the appliance"}, "default_username": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Default username for the appliance"}, "default_password": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Default password for the appliance"}, "symbol": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "An optional symbol for the appliance"}, "tags": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "User-defined metadata tags for the appliance"}, "settings": {"items": {"$ref": "#/components/schemas/TemplateSetting"}, "type": "array", "title": "Settings for running the appliance"}, "images": {"anyOf": [{"items": {"$ref": "#/components/schemas/ApplianceImage"}, "type": "array"}, {"type": "null"}], "title": "Images for this appliance"}, "versions": {"anyOf": [{"items": {"$ref": "#/components/schemas/ApplianceVersionV8"}, "type": "array"}, {"type": "null"}], "title": "Versions of the appliance"}}, "type": "object", "required": ["registry_version", "appliance_id", "name", "category", "description", "vendor_name", "vendor_url", "product_name", "status", "maintainer", "maintainer_email", "settings"], "title": "ApplianceV8", "description": "GNS3 Appliance model for registry version 8"}, "ApplianceVersion": {"properties": {"name": {"type": "string", "title": "Name of the version"}, "idlepc": {"anyOf": [{"type": "string", "pattern": "^0x[0-9a-f]{8}"}, {"type": "null"}], "title": "Idlepc"}, "images": {"anyOf": [{"$ref": "#/components/schemas/ApplianceVersionImages"}, {"type": "null"}], "title": "Images used for this version"}}, "type": "object", "required": ["name"], "title": "ApplianceVersion", "description": "Appliance version definition for v1-6"}, "ApplianceVersionImages": {"properties": {"kernel_image": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Kernel image"}, "initrd": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Initrd disk image"}, "image": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "OS image"}, "bios_image": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Bios image"}, "hda_disk_image": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hda disk image"}, "hdb_disk_image": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hdc disk image"}, "hdc_disk_image": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hdd disk image"}, "hdd_disk_image": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Hdd diskimage"}, "cdrom_image": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "cdrom image"}}, "type": "object", "title": "ApplianceVersionImages", "description": "Appliance version images configuration for v1-6"}, "ApplianceVersionV8": {"properties": {"name": {"type": "string", "title": "Name of the version"}, "settings": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Template settings to use to run the version"}, "category": {"anyOf": [{"$ref": "#/components/schemas/gns3server__schemas__controller__appliances__Category"}, {"type": "null"}], "title": "Category of the version"}, "installation_instructions": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Optional installation instructions for the version"}, "usage": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Optional instructions about using the version"}, "default_username": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Default username for the version"}, "default_password": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Default password for the version"}, "symbol": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "An optional symbol for the version"}, "images": {"anyOf": [{"$ref": "#/components/schemas/ApplianceVersionImages"}, {"type": "null"}], "title": "Images used for this version"}}, "type": "object", "required": ["name"], "title": "ApplianceVersionV8", "description": "Appliance version definition (v8)"}, "AutoIdlePC": {"properties": {"platform": {"type": "string", "title": "Platform", "description": "Cisco platform"}, "image": {"type": "string", "title": "Image", "description": "Image path"}, "ram": {"type": "integer", "title": "Ram", "description": "Amount of RAM in MB"}}, "type": "object", "required": ["platform", "image", "ram"], "title": "AutoIdlePC", "description": "Data for auto Idle-PC request.", "example": {"image": "/path/to/c7200_image.bin", "platform": "c7200", "ram": 256}}, "Availability": {"type": "string", "enum": ["free", "with-registration", "free-to-try", "service-contract"], "title": "Availability", "description": "Image availability enum"}, "Body_load_project_v3_projects_load_post": {"properties": {"path": {"type": "string", "title": "Path"}}, "type": "object", "required": ["path"], "title": "Body_load_project_v3_projects_load_post"}, "Body_login_v3_access_users_login_post": {"properties": {"grant_type": {"anyOf": [{"type": "string", "pattern": "^password$"}, {"type": "null"}], "title": "Grant Type"}, "username": {"type": "string", "title": "Username"}, "password": {"type": "string", "format": "password", "title": "Password"}, "scope": {"type": "string", "title": "Scope", "default": ""}, "client_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Client Id"}, "client_secret": {"anyOf": [{"type": "string"}, {"type": "null"}], "format": "password", "title": "Client Secret"}}, "type": "object", "required": ["username", "password"], "title": "Body_login_v3_access_users_login_post"}, "Capabilities": {"properties": {"version": {"type": "string", "title": "Version", "description": "Compute version number"}, "node_types": {"items": {"$ref": "#/components/schemas/NodeType"}, "type": "array", "title": "Node Types", "description": "Node types supported by the compute"}, "platform": {"type": "string", "title": "Platform", "description": "Platform where the compute is running (Linux, Windows or macOS)"}, "cpus": {"type": "integer", "title": "Cpus", "description": "Number of CPUs on this compute"}, "memory": {"type": "integer", "title": "Memory", "description": "Amount of memory on this compute"}, "disk_size": {"type": "integer", "title": "Disk Size", "description": "Disk size on this compute"}}, "type": "object", "required": ["version", "node_types", "platform", "cpus", "memory", "disk_size"], "title": "Capabilities", "description": "Capabilities supported by a compute."}, "ChecksumType": {"type": "string", "enum": ["md5"], "title": "ChecksumType", "description": "Checksum type enum"}, "Compression": {"type": "string", "enum": ["bzip2", "gzip", "lzma", "xz", "rar", "zip", "7z"], "title": "Compression", "description": "Compression type enum"}, "Compute": {"properties": {"protocol": {"$ref": "#/components/schemas/Protocol"}, "host": {"type": "string", "title": "Host"}, "port": {"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0, "title": "Port"}, "user": {"type": "string", "title": "User"}, "password": {"anyOf": [{"type": "string", "format": "password", "writeOnly": true}, {"type": "null"}], "title": "Password"}, "name": {"type": "string", "title": "Name"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}, "compute_id": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}, "connected": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Connected", "description": "Whether the controller is connected to the compute or not"}, "cpu_usage_percent": {"anyOf": [{"type": "number", "maximum": 100.0, "minimum": 0.0}, {"type": "null"}], "title": "Cpu Usage Percent", "description": "CPU usage of the compute"}, "memory_usage_percent": {"anyOf": [{"type": "number", "maximum": 100.0, "minimum": 0.0}, {"type": "null"}], "title": "Memory Usage Percent", "description": "Memory usage of the compute"}, "disk_usage_percent": {"anyOf": [{"type": "number", "maximum": 100.0, "minimum": 0.0}, {"type": "null"}], "title": "Disk Usage Percent", "description": "Disk usage of the compute"}, "last_error": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Last Error", "description": "Last error found on the compute"}, "capabilities": {"anyOf": [{"$ref": "#/components/schemas/Capabilities"}, {"type": "null"}]}}, "type": "object", "required": ["protocol", "host", "port", "name", "compute_id"], "title": "Compute", "description": "Data returned for a compute."}, "ComputeCreate": {"properties": {"protocol": {"$ref": "#/components/schemas/Protocol"}, "host": {"type": "string", "title": "Host"}, "port": {"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0, "title": "Port"}, "user": {"type": "string", "title": "User"}, "password": {"anyOf": [{"type": "string", "format": "password", "writeOnly": true}, {"type": "null"}], "title": "Password"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}, "compute_id": {"anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}], "title": "Compute Id"}}, "type": "object", "required": ["protocol", "host", "port"], "title": "ComputeCreate", "description": "Data to create a compute.", "example": {"host": "127.0.0.1", "name": "My compute", "password": "password", "port": 3080, "user": "user"}}, "ComputeDockerImage": {"properties": {"image": {"type": "string", "title": "Image", "description": "Docker image name"}}, "type": "object", "required": ["image"], "title": "ComputeDockerImage", "description": "Docker image from compute."}, "ComputeUpdate": {"properties": {"protocol": {"anyOf": [{"$ref": "#/components/schemas/Protocol"}, {"type": "null"}]}, "host": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Host"}, "port": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Port"}, "user": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "User"}, "password": {"anyOf": [{"type": "string", "format": "password", "writeOnly": true}, {"type": "null"}], "title": "Password"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}}, "type": "object", "title": "ComputeUpdate", "description": "Data to update a compute.", "example": {"host": "10.0.0.1", "port": 8080}}, "ComputeVMwareVM": {"properties": {"vmname": {"type": "string", "title": "Vmname", "description": "VMware VM name"}, "vmx_path": {"type": "string", "title": "Vmx Path", "description": "Path to the vmx file"}}, "type": "object", "required": ["vmname", "vmx_path"], "title": "ComputeVMwareVM", "description": "VMware VM from compute."}, "ComputeVirtualBoxVM": {"properties": {"vmname": {"type": "string", "title": "Vmname", "description": "VirtualBox VM name"}, "ram": {"type": "integer", "title": "Ram", "description": "VirtualBox VM memory"}}, "type": "object", "required": ["vmname", "ram"], "title": "ComputeVirtualBoxVM", "description": "VirtualBox VM from compute."}, "ConsoleType": {"type": "string", "enum": ["vnc", "telnet", "ssh", "http", "https", "spice", "spice+agent", "none"], "title": "ConsoleType", "description": "Supported console types."}, "Credentials": {"properties": {"username": {"type": "string", "title": "Username"}, "password": {"type": "string", "title": "Password"}}, "type": "object", "required": ["username", "password"], "title": "Credentials"}, "CustomAdapter": {"properties": {"adapter_number": {"type": "integer", "title": "Adapter Number"}, "port_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Port Name"}, "adapter_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Adapter Type"}, "mac_address": {"anyOf": [{"type": "string", "pattern": "^([0-9a-fA-F]{2}[:]){5}([0-9a-fA-F]{2})$"}, {"type": "null"}], "title": "Mac Address"}}, "type": "object", "required": ["adapter_number"], "title": "CustomAdapter", "description": "Custom adapter data."}, "CustomAdapterItem": {"properties": {"adapter_number": {"type": "integer", "title": "Adapter number"}, "port_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Custom port name"}, "adapter_type": {"anyOf": [{"$ref": "#/components/schemas/QemuAdapterType"}, {"type": "null"}], "title": "Custom adapter type"}, "mac_address": {"anyOf": [{"type": "string", "pattern": "^([0-9a-fA-F]{2}[:]){5}([0-9a-fA-F]{2})$"}, {"type": "null"}], "title": "Custom MAC address"}}, "type": "object", "required": ["adapter_number"], "title": "CustomAdapterItem", "description": "Custom adapter configuration (v8)"}, "Docker": {"properties": {"adapters": {"type": "integer", "title": "Number of Ethernet adapters"}, "image": {"type": "string", "title": "Docker image in the Docker Hub"}, "start_command": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Command executed when the container start. Empty will use the default"}, "environment": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "One KEY=VAR environment by line"}, "console_type": {"anyOf": [{"$ref": "#/components/schemas/DockerConsoleType"}, {"type": "null"}], "title": "Type of console connection for the administration of the appliance"}, "console_http_port": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Console Http Port", "description": "Internal port in the container of the HTTP server"}, "console_http_path": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Console Http Path", "description": "Path of the web interface"}, "extra_hosts": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Extra Hosts", "description": "Hosts which will be written to /etc/hosts into container"}, "extra_volumes": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Extra Volumes", "description": "Additional directories to make persistent that are not included in the images VOLUME directive"}}, "type": "object", "required": ["adapters", "image"], "title": "Docker", "description": "Docker configuration for v1-6"}, "DockerConsoleType": {"type": "string", "enum": ["telnet", "ssh", "vnc", "http", "https", "none"], "title": "DockerConsoleType", "description": "Docker console type enum"}, "DockerPropertiesV8": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name of the template"}, "category": {"anyOf": [{"$ref": "#/components/schemas/gns3server__schemas__controller__appliances__Category"}, {"type": "null"}], "title": "Category of the template"}, "default_name_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Default name format"}, "usage": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "How to use the template"}, "symbol": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Symbol of the template"}, "image": {"type": "string", "title": "Docker image"}, "adapters": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Number of ethernet adapters"}, "start_command": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Command executed when the container start. Empty will use the default"}, "environment": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "One KEY=VAR environment by line"}, "console_type": {"anyOf": [{"$ref": "#/components/schemas/DockerConsoleType"}, {"type": "null"}], "title": "Type of console"}, "console_http_port": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Internal port in the container of the HTTP server"}, "console_http_path": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Path of the web interface"}, "console_resolution": {"anyOf": [{"type": "string", "pattern": "^[0-9]+x[0-9]+$"}, {"type": "null"}], "title": "Console resolution for VNC, for example 1024x768"}, "extra_hosts": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Docker extra hosts (added to /etc/hosts)"}, "extra_volumes": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Additional directories to make persistent"}}, "type": "object", "required": ["image"], "title": "DockerPropertiesV8", "description": "Docker template properties (v8)"}, "Drawing": {"properties": {"drawing_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Drawing Id"}, "project_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Project Id"}, "x": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "X"}, "y": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Y"}, "z": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Z"}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Locked"}, "rotation": {"anyOf": [{"type": "integer", "maximum": 360.0, "minimum": -359.0}, {"type": "null"}], "title": "Rotation"}, "svg": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Svg"}}, "type": "object", "title": "Drawing", "description": "Drawing data."}, "Dynamips": {"properties": {"chassis": {"anyOf": [{"$ref": "#/components/schemas/DynamipsChassis"}, {"type": "null"}], "title": "Chassis type"}, "platform": {"$ref": "#/components/schemas/DynamipsPlatform", "title": "Platform type"}, "ram": {"type": "integer", "minimum": 1.0, "title": "Amount of ram"}, "nvram": {"type": "integer", "minimum": 1.0, "title": "Amount of nvram"}, "startup_config": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Config loaded at startup"}, "wic0": {"anyOf": [{"$ref": "#/components/schemas/DynamipsWic"}, {"type": "null"}]}, "wic1": {"anyOf": [{"$ref": "#/components/schemas/DynamipsWic"}, {"type": "null"}]}, "wic2": {"anyOf": [{"$ref": "#/components/schemas/DynamipsWic"}, {"type": "null"}]}, "slot0": {"anyOf": [{"$ref": "#/components/schemas/DynamipsSlot"}, {"type": "null"}]}, "slot1": {"anyOf": [{"$ref": "#/components/schemas/DynamipsSlot"}, {"type": "null"}]}, "slot2": {"anyOf": [{"$ref": "#/components/schemas/DynamipsSlot"}, {"type": "null"}]}, "slot3": {"anyOf": [{"$ref": "#/components/schemas/DynamipsSlot"}, {"type": "null"}]}, "slot4": {"anyOf": [{"$ref": "#/components/schemas/DynamipsSlot"}, {"type": "null"}]}, "slot5": {"anyOf": [{"$ref": "#/components/schemas/DynamipsSlot"}, {"type": "null"}]}, "slot6": {"anyOf": [{"$ref": "#/components/schemas/DynamipsSlot"}, {"type": "null"}]}, "midplane": {"anyOf": [{"$ref": "#/components/schemas/DynamipsMidplane"}, {"type": "null"}]}, "npe": {"anyOf": [{"$ref": "#/components/schemas/DynamipsNpe"}, {"type": "null"}]}}, "type": "object", "required": ["platform", "ram", "nvram"], "title": "Dynamips", "description": "Dynamips configuration for v1-6"}, "DynamipsChassis": {"type": "string", "enum": ["1720", "1721", "1750", "1751", "1760", "2610", "2620", "2610XM", "2620XM", "2650XM", "2621", "2611XM", "2621XM", "2651XM", "3620", "3640", "3660", ""], "title": "DynamipsChassis", "description": "Dynamips chassis enum"}, "DynamipsMidplane": {"type": "string", "enum": ["std", "vxr"], "title": "DynamipsMidplane", "description": "Dynamips midplane enum"}, "DynamipsNpe": {"type": "string", "enum": ["npe-100", "npe-150", "npe-175", "npe-200", "npe-225", "npe-300", "npe-400", "npe-g2"], "title": "DynamipsNpe", "description": "Dynamips NPE enum"}, "DynamipsPlatform": {"type": "string", "enum": ["c1700", "c2600", "c2691", "c3725", "c3745", "c3600", "c7200"], "title": "DynamipsPlatform", "description": "Dynamips platform enum"}, "DynamipsPropertiesV8": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name of the template"}, "category": {"anyOf": [{"$ref": "#/components/schemas/gns3server__schemas__controller__appliances__Category"}, {"type": "null"}], "title": "Category of the template"}, "default_name_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Default name format"}, "usage": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "How to use the template"}, "symbol": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Symbol of the template"}, "chassis": {"anyOf": [{"$ref": "#/components/schemas/DynamipsChassis"}, {"type": "null"}], "title": "Chassis type"}, "platform": {"anyOf": [{"$ref": "#/components/schemas/DynamipsPlatform"}, {"type": "null"}], "title": "Platform type"}, "ram": {"anyOf": [{"type": "integer", "minimum": 1.0}, {"type": "null"}], "title": "Amount of ram"}, "nvram": {"anyOf": [{"type": "integer", "minimum": 1.0}, {"type": "null"}], "title": "Amount of nvram"}, "idlepc": {"anyOf": [{"type": "string", "pattern": "^0x[0-9a-f]{8}"}, {"type": "null"}], "title": "Idlepc"}, "startup_config": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Config loaded at startup"}, "wic0": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Wic0"}, "wic1": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Wic1"}, "wic2": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Wic2"}, "slot0": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Slot0"}, "slot1": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Slot1"}, "slot2": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Slot2"}, "slot3": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Slot3"}, "slot4": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Slot4"}, "slot5": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Slot5"}, "slot6": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Slot6"}, "midplane": {"anyOf": [{"$ref": "#/components/schemas/DynamipsMidplane"}, {"type": "null"}]}, "npe": {"anyOf": [{"$ref": "#/components/schemas/DynamipsNpe"}, {"type": "null"}]}}, "type": "object", "title": "DynamipsPropertiesV8", "description": "Dynamips template properties (v8)"}, "DynamipsSlot": {"type": "string", "enum": ["C7200-IO-2FE", "C7200-IO-FE", "C7200-IO-GE-E", "NM-16ESW", "NM-1E", "NM-1FE-TX", "NM-4E", "NM-4T", "PA-2FE-TX", "PA-4E", "PA-4T+", "PA-8E", "PA-8T", "PA-A1", "PA-FE-TX", "PA-GE", "PA-POS-OC3", "C2600-MB-2FE", "C2600-MB-1E", "C1700-MB-1FE", "C2600-MB-2E", "C2600-MB-1FE", "C1700-MB-WIC1", "GT96100-FE", "Leopard-2FE", ""], "title": "DynamipsSlot", "description": "Dynamips slot enum"}, "DynamipsWic": {"type": "string", "enum": ["WIC-1ENET", "WIC-1T", "WIC-2T", ""], "title": "DynamipsWic", "description": "Dynamips WIC enum"}, "Engine": {"type": "string", "enum": ["vmware", "virtualbox", "hyper-v", "none"], "title": "Engine", "description": "\"The engine to use for the GNS3 VM."}, "ErrorMessage": {"properties": {"message": {"type": "string", "title": "Message"}}, "type": "object", "required": ["message"], "title": "ErrorMessage", "description": "Error message."}, "EthernetPortInfo": {"properties": {"node_id": {"type": "string", "format": "uuid", "title": "Node Id"}, "interface": {"type": "string", "title": "Interface"}, "type": {"type": "string", "title": "Type"}}, "type": "object", "required": ["node_id", "interface", "type"], "title": "EthernetPortInfo", "description": "Ethernet port information."}, "GNS3VM": {"properties": {"enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Enable", "description": "Enable/disable the GNS3 VM"}, "vmname": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Vmname", "description": "GNS3 VM name"}, "when_exit": {"anyOf": [{"$ref": "#/components/schemas/WhenExit"}, {"type": "null"}], "description": "Action when the GNS3 VM exits"}, "headless": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Headless", "description": "Start the GNS3 VM GUI or not"}, "engine": {"anyOf": [{"$ref": "#/components/schemas/Engine"}, {"type": "null"}], "description": "The engine to use for the GNS3 VM"}, "allocate_vcpus_ram": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Allocate Vcpus Ram", "description": "Allocate vCPUS and RAM settings"}, "vcpus": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Vcpus", "description": "Number of CPUs to allocate for the GNS3 VM"}, "ram": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Ram", "description": "Amount of memory to allocate for the GNS3 VM"}, "port": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Port"}}, "type": "object", "title": "GNS3VM", "description": "GNS3 VM data."}, "HTTPValidationError": {"properties": {"detail": {"items": {"$ref": "#/components/schemas/ValidationError"}, "type": "array", "title": "Detail"}}, "type": "object", "title": "HTTPValidationError"}, "IOULicense": {"properties": {"iourc_content": {"type": "string", "title": "Iourc Content", "description": "Content of iourc file"}, "license_check": {"type": "boolean", "title": "License Check", "description": "Whether the license must be checked or not"}}, "type": "object", "required": ["iourc_content", "license_check"], "title": "IOULicense"}, "Image": {"properties": {"filename": {"type": "string", "title": "Filename", "description": "Image filename"}, "path": {"type": "string", "title": "Path", "description": "Image path"}, "image_type": {"$ref": "#/components/schemas/ImageType", "description": "Image type"}, "image_size": {"type": "integer", "title": "Image Size", "description": "Image size in bytes"}, "checksum": {"type": "string", "title": "Checksum", "description": "Checksum value"}, "checksum_algorithm": {"type": "string", "title": "Checksum Algorithm", "description": "Checksum algorithm"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}}, "type": "object", "required": ["filename", "path", "image_type", "image_size", "checksum", "checksum_algorithm"], "title": "Image"}, "ImageType": {"type": "string", "enum": ["qemu", "ios", "iou"], "title": "ImageType"}, "Iou": {"properties": {"ethernet_adapters": {"type": "integer", "title": "Number of Ethernet adapters"}, "serial_adapters": {"type": "integer", "title": "Number of serial adapters"}, "nvram": {"type": "integer", "title": "Host NVRAM"}, "ram": {"type": "integer", "title": "Host RAM"}, "startup_config": {"type": "string", "title": "Config loaded at startup"}}, "type": "object", "required": ["ethernet_adapters", "serial_adapters", "nvram", "ram", "startup_config"], "title": "Iou", "description": "IOU configuration for v1-6"}, "IouPropertiesV8": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name of the template"}, "category": {"anyOf": [{"$ref": "#/components/schemas/gns3server__schemas__controller__appliances__Category"}, {"type": "null"}], "title": "Category of the template"}, "default_name_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Default name format"}, "usage": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "How to use the template"}, "symbol": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Symbol of the template"}, "ethernet_adapters": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Number of ethernet adapters"}, "serial_adapters": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Number of serial adapters"}, "ram": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Host RAM"}, "nvram": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Host NVRAM"}, "startup_config": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Config loaded at startup"}}, "type": "object", "title": "IouPropertiesV8", "description": "IOU template properties (v8)"}, "Kvm": {"type": "string", "enum": ["require", "allow", "disable"], "title": "Kvm", "description": "KVM requirements enum"}, "Label": {"properties": {"text": {"type": "string", "title": "Text"}, "style": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Style", "description": "SVG style attribute. Apply default style if null"}, "x": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "X", "description": "Relative X position of the label. Center it if null"}, "y": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Y", "description": "Relative Y position of the label"}, "rotation": {"anyOf": [{"type": "integer", "maximum": 360.0, "minimum": -359.0}, {"type": "null"}], "title": "Rotation", "description": "Rotation of the label"}}, "type": "object", "required": ["text"], "title": "Label", "description": "Label data."}, "Link": {"properties": {"nodes": {"anyOf": [{"items": {"$ref": "#/components/schemas/LinkNode"}, "type": "array", "maxItems": 2, "minItems": 0}, {"type": "null"}], "title": "Nodes"}, "suspend": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Suspend"}, "link_style": {"anyOf": [{"$ref": "#/components/schemas/LinkStyle"}, {"type": "null"}]}, "filters": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Filters"}, "link_id": {"type": "string", "format": "uuid", "title": "Link Id"}, "project_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Project Id"}, "link_type": {"anyOf": [{"$ref": "#/components/schemas/gns3server__schemas__controller__links__LinkType"}, {"type": "null"}]}, "capturing": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Capturing", "description": "Read only property. True if a capture running on the link"}, "capture_file_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Capture File Name", "description": "Read only property. The name of the capture file if a capture is running"}, "capture_file_path": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Capture File Path", "description": "Read only property. The full path of the capture file if a capture is running"}, "capture_compute_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Capture Compute Id", "description": "Read only property. The compute identifier where a capture is running"}, "wireshark": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Wireshark", "description": "Read only property. True if a Web Wireshark session is active on the link", "default": false}}, "type": "object", "required": ["link_id"], "title": "Link"}, "LinkCapture": {"properties": {"data_link_type": {"type": "string", "title": "Data Link Type", "default": "DLT_EN10MB"}, "capture_file_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Capture File Name"}, "wireshark": {"type": "boolean", "title": "Wireshark", "default": false}}, "type": "object", "title": "LinkCapture", "description": "Link capture data."}, "LinkCreate": {"properties": {"nodes": {"items": {"$ref": "#/components/schemas/LinkNode"}, "type": "array", "maxItems": 2, "minItems": 2, "title": "Nodes"}, "suspend": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Suspend"}, "link_style": {"anyOf": [{"$ref": "#/components/schemas/LinkStyle"}, {"type": "null"}]}, "filters": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Filters"}, "link_id": {"type": "string", "format": "uuid", "title": "Link Id"}}, "type": "object", "required": ["nodes"], "title": "LinkCreate"}, "LinkNode": {"properties": {"node_id": {"type": "string", "format": "uuid", "title": "Node Id"}, "adapter_number": {"type": "integer", "title": "Adapter Number"}, "port_number": {"type": "integer", "title": "Port Number"}, "label": {"anyOf": [{"$ref": "#/components/schemas/Label"}, {"type": "null"}]}}, "type": "object", "required": ["node_id", "adapter_number", "port_number"], "title": "LinkNode", "description": "Link node data."}, "LinkStyle": {"properties": {"color": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Color"}, "width": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Width"}, "type": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Type"}, "link_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Link Type"}, "bezier_curviness": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Bezier Curviness"}, "flowchart_roundness": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Flowchart Roundness"}, "control_offset": {"anyOf": [{"prefixItems": [{"type": "number"}, {"type": "number"}], "type": "array", "maxItems": 2, "minItems": 2}, {"type": "null"}], "title": "Control Offset"}}, "type": "object", "title": "LinkStyle"}, "LinkUpdate": {"properties": {"nodes": {"anyOf": [{"items": {"$ref": "#/components/schemas/LinkNode"}, "type": "array", "maxItems": 2, "minItems": 0}, {"type": "null"}], "title": "Nodes"}, "suspend": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Suspend"}, "link_style": {"anyOf": [{"$ref": "#/components/schemas/LinkStyle"}, {"type": "null"}]}, "filters": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Filters"}}, "type": "object", "title": "LinkUpdate"}, "LoggedInUserUpdate": {"properties": {"password": {"anyOf": [{"type": "string", "maxLength": 100, "minLength": 8, "format": "password", "writeOnly": true}, {"type": "null"}], "title": "Password"}, "email": {"anyOf": [{"type": "string", "format": "email"}, {"type": "null"}], "title": "Email"}, "full_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Full Name"}}, "type": "object", "title": "LoggedInUserUpdate", "description": "Properties to update a logged-in user."}, "Node": {"properties": {"compute_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "string"}], "title": "Compute Id"}, "name": {"type": "string", "title": "Name"}, "node_type": {"$ref": "#/components/schemas/NodeType"}, "node_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Node Id"}, "console": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Console", "description": "Console TCP port"}, "console_type": {"anyOf": [{"$ref": "#/components/schemas/ConsoleType"}, {"type": "null"}]}, "console_auto_start": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Console Auto Start", "description": "Automatically start the console when the node has started", "default": false}, "aux": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Aux", "description": "Auxiliary console TCP port"}, "aux_type": {"anyOf": [{"$ref": "#/components/schemas/ConsoleType"}, {"type": "null"}]}, "properties": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Properties", "description": "Properties specific to an emulator"}, "label": {"anyOf": [{"$ref": "#/components/schemas/Label"}, {"type": "null"}]}, "symbol": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Symbol"}, "x": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "X", "default": 0}, "y": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Y", "default": 0}, "z": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Z", "default": 1}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Locked", "description": "Whether the element locked or not", "default": false}, "port_name_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Port Name Format", "description": "Formatting for port name {0} will be replace by port number"}, "port_segment_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Port Segment Size", "description": "Size of the port segment"}, "first_port_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "First Port Name", "description": "Name of the first port"}, "custom_adapters": {"anyOf": [{"items": {"$ref": "#/components/schemas/CustomAdapter"}, "type": "array"}, {"type": "null"}], "title": "Custom Adapters"}, "tags": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Tags", "description": "User-defined metadata tags (e.g. 'vendor:cisco' or 'model:7200')"}, "template_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Template Id", "description": "Template UUID from which the node has been created. Read only"}, "project_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Project Id"}, "node_directory": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Node Directory", "description": "Working directory of the node. Read only"}, "status": {"anyOf": [{"$ref": "#/components/schemas/NodeStatus"}, {"type": "null"}], "description": "Node status. Read only"}, "command_line": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Command Line", "description": "Command line use to start the node. Read only"}, "width": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Width", "description": "Width of the node. Read only"}, "height": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Height", "description": "Height of the node. Read only"}, "ports": {"anyOf": [{"items": {"$ref": "#/components/schemas/NodePort"}, "type": "array"}, {"type": "null"}], "title": "Ports", "description": "List of node ports. Read only"}, "console_host": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Console Host", "description": "Console host. Warning if the host is 0.0.0.0 or :: (listen on all interfaces) you need to use the same address you use to connect to the controller"}}, "type": "object", "required": ["compute_id", "name", "node_type"], "title": "Node"}, "NodeCreate": {"properties": {"compute_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "string"}], "title": "Compute Id"}, "name": {"type": "string", "title": "Name"}, "node_type": {"$ref": "#/components/schemas/NodeType"}, "node_id": {"type": "string", "format": "uuid", "title": "Node Id"}, "console": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Console", "description": "Console TCP port"}, "console_type": {"anyOf": [{"$ref": "#/components/schemas/ConsoleType"}, {"type": "null"}]}, "console_auto_start": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Console Auto Start", "description": "Automatically start the console when the node has started", "default": false}, "aux": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Aux", "description": "Auxiliary console TCP port"}, "aux_type": {"anyOf": [{"$ref": "#/components/schemas/ConsoleType"}, {"type": "null"}]}, "properties": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Properties", "description": "Properties specific to an emulator"}, "label": {"anyOf": [{"$ref": "#/components/schemas/Label"}, {"type": "null"}]}, "symbol": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Symbol"}, "x": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "X", "default": 0}, "y": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Y", "default": 0}, "z": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Z", "default": 1}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Locked", "description": "Whether the element locked or not", "default": false}, "port_name_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Port Name Format", "description": "Formatting for port name {0} will be replace by port number"}, "port_segment_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Port Segment Size", "description": "Size of the port segment"}, "first_port_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "First Port Name", "description": "Name of the first port"}, "custom_adapters": {"anyOf": [{"items": {"$ref": "#/components/schemas/CustomAdapter"}, "type": "array"}, {"type": "null"}], "title": "Custom Adapters"}, "tags": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Tags", "description": "User-defined metadata tags (e.g. 'vendor:cisco' or 'model:7200')"}}, "type": "object", "required": ["compute_id", "name", "node_type"], "title": "NodeCreate"}, "NodeDuplicate": {"properties": {"x": {"type": "integer", "title": "X"}, "y": {"type": "integer", "title": "Y"}, "z": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Z", "default": 0}}, "type": "object", "required": ["x", "y"], "title": "NodeDuplicate", "description": "Data to duplicate a node."}, "NodeFile": {"properties": {"path": {"type": "string", "title": "Path", "description": "File name"}, "size": {"type": "integer", "title": "Size", "description": "File size in bytes"}, "created_at": {"type": "string", "title": "Created At", "description": "File creation time (ISO 8601)"}, "modified_at": {"type": "string", "title": "Modified At", "description": "File modification time (ISO 8601)"}, "extension": {"type": "string", "title": "Extension", "description": "File extension"}}, "type": "object", "required": ["path", "size", "created_at", "modified_at", "extension"], "title": "NodeFile", "description": "Detailed file information for node files."}, "NodePort": {"properties": {"name": {"type": "string", "title": "Name", "description": "Port name"}, "short_name": {"type": "string", "title": "Short Name", "description": "Port name"}, "adapter_number": {"type": "integer", "title": "Adapter Number", "description": "Adapter slot"}, "adapter_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Adapter Type", "description": "Adapter type"}, "port_number": {"type": "integer", "title": "Port Number", "description": "Port slot"}, "link_type": {"$ref": "#/components/schemas/gns3server__schemas__controller__nodes__LinkType", "description": "Type of link"}, "data_link_types": {"additionalProperties": true, "type": "object", "title": "Data Link Types", "description": "Available PCAP types for capture"}, "mac_address": {"anyOf": [{"type": "string", "pattern": "^([0-9a-fA-F]{2}[:]){5}([0-9a-fA-F]{2})$"}, {"type": "null"}], "title": "Mac Address"}}, "type": "object", "required": ["name", "short_name", "adapter_number", "port_number", "link_type", "data_link_types"], "title": "NodePort", "description": "Node port data."}, "NodeStatus": {"type": "string", "enum": ["stopped", "started", "suspended"], "title": "NodeStatus", "description": "Supported node statuses."}, "NodeType": {"type": "string", "enum": ["cloud", "nat", "ethernet_hub", "ethernet_switch", "frame_relay_switch", "atm_switch", "docker", "dynamips", "vpcs", "virtualbox", "vmware", "iou", "qemu"], "title": "NodeType", "description": "Supported node types."}, "NodeUpdate": {"properties": {"compute_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "string"}, {"type": "null"}], "title": "Compute Id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}, "node_type": {"anyOf": [{"$ref": "#/components/schemas/NodeType"}, {"type": "null"}]}, "node_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Node Id"}, "console": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Console", "description": "Console TCP port"}, "console_type": {"anyOf": [{"$ref": "#/components/schemas/ConsoleType"}, {"type": "null"}]}, "console_auto_start": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Console Auto Start", "description": "Automatically start the console when the node has started", "default": false}, "aux": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Aux", "description": "Auxiliary console TCP port"}, "aux_type": {"anyOf": [{"$ref": "#/components/schemas/ConsoleType"}, {"type": "null"}]}, "properties": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Properties", "description": "Properties specific to an emulator"}, "label": {"anyOf": [{"$ref": "#/components/schemas/Label"}, {"type": "null"}]}, "symbol": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Symbol"}, "x": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "X", "default": 0}, "y": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Y", "default": 0}, "z": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Z", "default": 1}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Locked", "description": "Whether the element locked or not", "default": false}, "port_name_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Port Name Format", "description": "Formatting for port name {0} will be replace by port number"}, "port_segment_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Port Segment Size", "description": "Size of the port segment"}, "first_port_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "First Port Name", "description": "Name of the first port"}, "custom_adapters": {"anyOf": [{"items": {"$ref": "#/components/schemas/CustomAdapter"}, "type": "array"}, {"type": "null"}], "title": "Custom Adapters"}, "tags": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Tags", "description": "User-defined metadata tags (e.g. 'vendor:cisco' or 'model:7200')"}}, "type": "object", "title": "NodeUpdate", "description": "Data to update a node."}, "Privilege": {"properties": {"name": {"type": "string", "title": "Name"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}, "privilege_id": {"type": "string", "format": "uuid", "title": "Privilege Id"}}, "type": "object", "required": ["name", "privilege_id"], "title": "Privilege"}, "Project": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}, "project_id": {"type": "string", "format": "uuid", "title": "Project Id"}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Path", "description": "Project directory"}, "auto_close": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Close", "description": "Close project when last client leaves"}, "auto_open": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Open", "description": "Project opens when GNS3 starts"}, "auto_start": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Start", "description": "Project starts when opened"}, "scene_height": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Scene Height", "description": "Height of the drawing area"}, "scene_width": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Scene Width", "description": "Width of the drawing area"}, "zoom": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Zoom", "description": "Zoom of the drawing area"}, "show_layers": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Layers", "description": "Show layers on the drawing area"}, "snap_to_grid": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Snap To Grid", "description": "Snap to grid on the drawing area"}, "show_grid": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Grid", "description": "Show the grid on the drawing area"}, "grid_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Grid Size", "description": "Grid size for the drawing area for nodes"}, "drawing_grid_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Drawing Grid Size", "description": "Grid size for the drawing area for drawings"}, "show_interface_labels": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Interface Labels", "description": "Show interface labels on the drawing area"}, "supplier": {"anyOf": [{"$ref": "#/components/schemas/Supplier"}, {"type": "null"}], "description": "Supplier of the project"}, "variables": {"anyOf": [{"items": {"$ref": "#/components/schemas/Variable"}, "type": "array"}, {"type": "null"}], "title": "Variables", "description": "Variables required to run the project"}, "status": {"anyOf": [{"$ref": "#/components/schemas/ProjectStatus"}, {"type": "null"}]}, "filename": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Filename"}, "created_by": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Created By", "description": "Username of the user who created the project"}}, "type": "object", "required": ["project_id"], "title": "Project"}, "ProjectCompression": {"type": "string", "enum": ["none", "zip", "bzip2", "lzma", "zstd"], "title": "ProjectCompression", "description": "Supported project compression."}, "ProjectCreate": {"properties": {"name": {"type": "string", "title": "Name"}, "project_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Project Id"}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Path", "description": "Project directory"}, "auto_close": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Close", "description": "Close project when last client leaves"}, "auto_open": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Open", "description": "Project opens when GNS3 starts"}, "auto_start": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Start", "description": "Project starts when opened"}, "scene_height": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Scene Height", "description": "Height of the drawing area"}, "scene_width": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Scene Width", "description": "Width of the drawing area"}, "zoom": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Zoom", "description": "Zoom of the drawing area"}, "show_layers": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Layers", "description": "Show layers on the drawing area"}, "snap_to_grid": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Snap To Grid", "description": "Snap to grid on the drawing area"}, "show_grid": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Grid", "description": "Show the grid on the drawing area"}, "grid_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Grid Size", "description": "Grid size for the drawing area for nodes"}, "drawing_grid_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Drawing Grid Size", "description": "Grid size for the drawing area for drawings"}, "show_interface_labels": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Interface Labels", "description": "Show interface labels on the drawing area"}, "supplier": {"anyOf": [{"$ref": "#/components/schemas/Supplier"}, {"type": "null"}], "description": "Supplier of the project"}, "variables": {"anyOf": [{"items": {"$ref": "#/components/schemas/Variable"}, "type": "array"}, {"type": "null"}], "title": "Variables", "description": "Variables required to run the project"}}, "type": "object", "required": ["name"], "title": "ProjectCreate", "description": "Properties for project creation."}, "ProjectDuplicate": {"properties": {"name": {"type": "string", "title": "Name"}, "project_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Project Id"}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Path", "description": "Project directory"}, "auto_close": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Close", "description": "Close project when last client leaves"}, "auto_open": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Open", "description": "Project opens when GNS3 starts"}, "auto_start": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Start", "description": "Project starts when opened"}, "scene_height": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Scene Height", "description": "Height of the drawing area"}, "scene_width": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Scene Width", "description": "Width of the drawing area"}, "zoom": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Zoom", "description": "Zoom of the drawing area"}, "show_layers": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Layers", "description": "Show layers on the drawing area"}, "snap_to_grid": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Snap To Grid", "description": "Snap to grid on the drawing area"}, "show_grid": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Grid", "description": "Show the grid on the drawing area"}, "grid_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Grid Size", "description": "Grid size for the drawing area for nodes"}, "drawing_grid_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Drawing Grid Size", "description": "Grid size for the drawing area for drawings"}, "show_interface_labels": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Interface Labels", "description": "Show interface labels on the drawing area"}, "supplier": {"anyOf": [{"$ref": "#/components/schemas/Supplier"}, {"type": "null"}], "description": "Supplier of the project"}, "variables": {"anyOf": [{"items": {"$ref": "#/components/schemas/Variable"}, "type": "array"}, {"type": "null"}], "title": "Variables", "description": "Variables required to run the project"}, "reset_mac_addresses": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Reset Mac Addresses", "description": "Reset MAC addresses for this project", "default": false}}, "type": "object", "required": ["name"], "title": "ProjectDuplicate", "description": "Properties for project duplication."}, "ProjectStatus": {"type": "string", "enum": ["opened", "closed"], "title": "ProjectStatus", "description": "Supported project statuses."}, "ProjectUpdate": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}, "project_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Project Id"}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Path", "description": "Project directory"}, "auto_close": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Close", "description": "Close project when last client leaves"}, "auto_open": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Open", "description": "Project opens when GNS3 starts"}, "auto_start": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Auto Start", "description": "Project starts when opened"}, "scene_height": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Scene Height", "description": "Height of the drawing area"}, "scene_width": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Scene Width", "description": "Width of the drawing area"}, "zoom": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Zoom", "description": "Zoom of the drawing area"}, "show_layers": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Layers", "description": "Show layers on the drawing area"}, "snap_to_grid": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Snap To Grid", "description": "Snap to grid on the drawing area"}, "show_grid": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Grid", "description": "Show the grid on the drawing area"}, "grid_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Grid Size", "description": "Grid size for the drawing area for nodes"}, "drawing_grid_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Drawing Grid Size", "description": "Grid size for the drawing area for drawings"}, "show_interface_labels": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Show Interface Labels", "description": "Show interface labels on the drawing area"}, "supplier": {"anyOf": [{"$ref": "#/components/schemas/Supplier"}, {"type": "null"}], "description": "Supplier of the project"}, "variables": {"anyOf": [{"items": {"$ref": "#/components/schemas/Variable"}, "type": "array"}, {"type": "null"}], "title": "Variables", "description": "Variables required to run the project"}}, "type": "object", "title": "ProjectUpdate", "description": "Properties for project update."}, "Protocol": {"type": "string", "enum": ["http", "https"], "title": "Protocol", "description": "Protocol supported to communicate with a compute."}, "Qemu": {"properties": {"adapter_type": {"$ref": "#/components/schemas/QemuAdapterType", "title": "Type of network adapter"}, "adapters": {"type": "integer", "title": "Number of adapters"}, "ram": {"type": "integer", "title": "RAM allocated to the appliance (MB)"}, "cpus": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Number of Virtual CPU"}, "hda_disk_interface": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskInterface"}, {"type": "null"}], "title": "Disk interface for the installed hda_disk_image"}, "hdb_disk_interface": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskInterface"}, {"type": "null"}], "title": "Disk interface for the installed hdb_disk_image"}, "hdc_disk_interface": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskInterface"}, {"type": "null"}], "title": "Disk interface for the installed hdc_disk_image"}, "hdd_disk_interface": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskInterface"}, {"type": "null"}], "title": "Disk interface for the installed hdd_disk_image"}, "arch": {"$ref": "#/components/schemas/QemuPlatform", "title": "Architecture emulated"}, "console_type": {"$ref": "#/components/schemas/QemuConsoleType", "title": "Type of console connection for the administration of the appliance"}, "boot_priority": {"anyOf": [{"$ref": "#/components/schemas/QemuBootPriority"}, {"type": "null"}], "title": "Disk boot priority"}, "kernel_command_line": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Command line parameters sent to the kernel"}, "kvm": {"$ref": "#/components/schemas/Kvm", "title": "KVM requirements"}, "options": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Optional additional qemu command line options"}, "cpu_throttling": {"anyOf": [{"type": "number", "maximum": 100.0, "minimum": 0.0}, {"type": "null"}], "title": "Throttle the CPU"}, "on_close": {"anyOf": [{"$ref": "#/components/schemas/QemuOnClose"}, {"type": "null"}], "title": "Action to execute on the VM is closed"}, "process_priority": {"anyOf": [{"$ref": "#/components/schemas/QemuProcessPriority"}, {"type": "null"}], "title": "Process priority for QEMU"}}, "type": "object", "required": ["adapter_type", "adapters", "ram", "arch", "console_type", "kvm"], "title": "Qemu", "description": "QEMU configuration for v1-6"}, "QemuAdapterType": {"type": "string", "enum": ["e1000", "i82550", "i82551", "i82557a", "i82557b", "i82557c", "i82558a", "i82558b", "i82559a", "i82559b", "i82559c", "i82559er", "i82562", "i82801", "igb", "ne2k_pci", "pcnet", "rtl8139", "virtio", "virtio-net-pci", "vmxnet3"], "title": "QemuAdapterType", "description": "Qemu adapter type enum"}, "QemuBootPriority": {"type": "string", "enum": ["c", "d", "n", "cn", "cd", "dn", "dc", "nc", "nd"], "title": "QemuBootPriority", "description": "Boot priority enum"}, "QemuConsoleType": {"type": "string", "enum": ["telnet", "ssh", "vnc", "spice", "spice+agent", "none"], "title": "QemuConsoleType", "description": "Qemu console type enum"}, "QemuDiskImageAdapterType": {"type": "string", "enum": ["ide", "lsilogic", "buslogic", "legacyESX"], "title": "QemuDiskImageAdapterType", "description": "Supported Qemu disk image on/off options."}, "QemuDiskImageCreate": {"properties": {"format": {"$ref": "#/components/schemas/QemuDiskImageFormat", "description": "Image format type"}, "size": {"type": "integer", "title": "Size", "description": "Image size in Megabytes"}, "preallocation": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImagePreallocation"}, {"type": "null"}]}, "cluster_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Cluster Size"}, "refcount_bits": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Refcount Bits"}, "lazy_refcounts": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageOnOff"}, {"type": "null"}]}, "subformat": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageSubformat"}, {"type": "null"}]}, "static": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageOnOff"}, {"type": "null"}]}, "zeroed_grain": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageOnOff"}, {"type": "null"}]}, "adapter_type": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageAdapterType"}, {"type": "null"}]}}, "type": "object", "required": ["format", "size"], "title": "QemuDiskImageCreate"}, "QemuDiskImageFormat": {"type": "string", "enum": ["qcow2", "qcow", "vpc", "vdi", "vdmk", "raw"], "title": "QemuDiskImageFormat", "description": "Supported Qemu disk image formats."}, "QemuDiskImageOnOff": {"type": "string", "enum": ["on", "off"], "title": "QemuDiskImageOnOff", "description": "Supported Qemu image on/off options."}, "QemuDiskImagePreallocation": {"type": "string", "enum": ["off", "metadata", "falloc", "full"], "title": "QemuDiskImagePreallocation", "description": "Supported Qemu disk image pre-allocation options."}, "QemuDiskImageSubformat": {"type": "string", "enum": ["dynamic", "fixed", "streamOptimized", "twoGbMaxExtentSparse", "twoGbMaxExtentFlat", "monolithicSparse", "monolithicFlat"], "title": "QemuDiskImageSubformat", "description": "Supported Qemu disk image sub-format options."}, "QemuDiskImageUpdate": {"properties": {"format": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageFormat"}, {"type": "null"}], "description": "Image format type"}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Size", "description": "Image size in Megabytes"}, "preallocation": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImagePreallocation"}, {"type": "null"}]}, "cluster_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Cluster Size"}, "refcount_bits": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Refcount Bits"}, "lazy_refcounts": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageOnOff"}, {"type": "null"}]}, "subformat": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageSubformat"}, {"type": "null"}]}, "static": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageOnOff"}, {"type": "null"}]}, "zeroed_grain": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageOnOff"}, {"type": "null"}]}, "adapter_type": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskImageAdapterType"}, {"type": "null"}]}, "extend": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Extend", "description": "Number of Megabytes to extend the image"}}, "type": "object", "title": "QemuDiskImageUpdate"}, "QemuDiskInterface": {"type": "string", "enum": ["ide", "sata", "nvme", "scsi", "sd", "mtd", "floppy", "pflash", "virtio", "none"], "title": "QemuDiskInterface", "description": "Disk interface enum"}, "QemuOnClose": {"type": "string", "enum": ["power_off", "shutdown_signal", "save_vm_state"], "title": "QemuOnClose", "description": "Qemu on_close action enum"}, "QemuPlatform": {"type": "string", "enum": ["aarch64", "alpha", "arm", "cris", "i386", "lm32", "m68k", "microblaze", "microblazeel", "mips", "mips64", "mips64el", "mipsel", "moxie", "or32", "ppc", "ppc64", "ppcemb", "s390x", "sh4", "sh4eb", "sparc", "sparc64", "tricore", "unicore32", "x86_64", "xtensa", "xtensaeb"], "title": "QemuPlatform", "description": "Qemu platform enum"}, "QemuProcessPriority": {"type": "string", "enum": ["realtime", "very high", "high", "normal", "low", "very low"], "title": "QemuProcessPriority", "description": "Qemu process priority enum"}, "QemuPropertiesV8": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name of the template"}, "category": {"anyOf": [{"$ref": "#/components/schemas/gns3server__schemas__controller__appliances__Category"}, {"type": "null"}], "title": "Category of the template"}, "default_name_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Default name format"}, "usage": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "How to use the template"}, "symbol": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Symbol of the template"}, "adapter_type": {"anyOf": [{"$ref": "#/components/schemas/QemuAdapterType"}, {"type": "null"}], "title": "Type of network adapter"}, "adapters": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Number of adapters"}, "custom_adapters": {"anyOf": [{"items": {"$ref": "#/components/schemas/CustomAdapterItem"}, "type": "array"}, {"type": "null"}], "title": "Custom adapters"}, "first_port_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Optional name of the first networking port example: eth0"}, "port_name_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Optional formating of the networking port example: eth{0}"}, "port_segment_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Optional port segment size. A port segment is a block of port. For example Ethernet0/0 Ethernet0/1 is the module 0 with a port segment size of 2"}, "linked_clone": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "False if you don't want to use a single image for all nodes"}, "ram": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Ram allocated to the appliance (MB)"}, "cpus": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Number of Virtual CPU"}, "hda_disk_interface": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskInterface"}, {"type": "null"}], "title": "Disk interface for the installed hda_disk_image"}, "hdb_disk_interface": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskInterface"}, {"type": "null"}], "title": "Disk interface for the installed hdb_disk_image"}, "hdc_disk_interface": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskInterface"}, {"type": "null"}], "title": "Disk interface for the installed hdc_disk_image"}, "hdd_disk_interface": {"anyOf": [{"$ref": "#/components/schemas/QemuDiskInterface"}, {"type": "null"}], "title": "Disk interface for the installed hdd_disk_image"}, "platform": {"anyOf": [{"$ref": "#/components/schemas/QemuPlatform"}, {"type": "null"}], "title": "Platform to emulate"}, "console_type": {"anyOf": [{"$ref": "#/components/schemas/QemuConsoleType"}, {"type": "null"}], "title": "Type of console connection for the administration of the appliance"}, "boot_priority": {"anyOf": [{"$ref": "#/components/schemas/QemuBootPriority"}, {"type": "null"}], "title": "Optional define the disk boot priory. Refer to -boot option in qemu manual for more details."}, "kernel_command_line": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Command line parameters send to the kernel"}, "options": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Optional additional qemu command line options"}, "cpu_throttling": {"anyOf": [{"type": "number", "maximum": 100.0, "minimum": 0.0}, {"type": "null"}], "title": "Throttle the CPU"}, "tpm": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Enable the Trusted Platform Module (TPM)"}, "uefi": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Enable the UEFI boot mode"}, "on_close": {"anyOf": [{"$ref": "#/components/schemas/QemuOnClose"}, {"type": "null"}], "title": "Action to execute on the VM is closed"}, "process_priority": {"anyOf": [{"$ref": "#/components/schemas/QemuProcessPriority"}, {"type": "null"}], "title": "Process priority for QEMU"}}, "type": "object", "title": "QemuPropertiesV8", "description": "Qemu template properties (v8)"}, "Resource": {"properties": {"resource_id": {"type": "string", "format": "uuid", "title": "Resource Id"}, "resource_type": {"$ref": "#/components/schemas/ResourceType", "description": "Type of the resource"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}}, "type": "object", "required": ["resource_id", "resource_type"], "title": "Resource"}, "ResourcePool": {"properties": {"name": {"type": "string", "title": "Name"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}, "resource_pool_id": {"type": "string", "format": "uuid", "title": "Resource Pool Id"}}, "type": "object", "required": ["name", "resource_pool_id"], "title": "ResourcePool"}, "ResourcePoolCreate": {"properties": {"name": {"type": "string", "title": "Name"}}, "type": "object", "required": ["name"], "title": "ResourcePoolCreate", "description": "Properties to create a resource pool."}, "ResourcePoolUpdate": {"properties": {"name": {"type": "string", "title": "Name"}}, "type": "object", "required": ["name"], "title": "ResourcePoolUpdate", "description": "Properties to update a resource pool."}, "ResourceType": {"type": "string", "enum": ["project"], "title": "ResourceType"}, "Role": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}, "role_id": {"type": "string", "format": "uuid", "title": "Role Id"}, "is_builtin": {"type": "boolean", "title": "Is Builtin"}, "privileges": {"items": {"$ref": "#/components/schemas/Privilege"}, "type": "array", "title": "Privileges"}}, "type": "object", "required": ["role_id", "is_builtin", "privileges"], "title": "Role"}, "RoleCreate": {"properties": {"name": {"type": "string", "title": "Name"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}}, "type": "object", "required": ["name"], "title": "RoleCreate", "description": "Properties to create a role."}, "RoleUpdate": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description"}}, "type": "object", "title": "RoleUpdate", "description": "Properties to update a role."}, "Snapshot": {"properties": {"name": {"type": "string", "title": "Name", "description": "Name of the snapshot"}, "description": {"type": "string", "title": "Description", "description": "Description of the snapshot"}, "snapshot_id": {"type": "string", "format": "uuid", "title": "Snapshot Id"}, "project_id": {"type": "string", "format": "uuid", "title": "Project Id"}, "filename": {"type": "string", "title": "Filename", "description": "Filename of the snapshot"}, "created_at": {"type": "integer", "title": "Created At", "description": "Date of the snapshot (UTC timestamp)"}}, "type": "object", "required": ["name", "description", "snapshot_id", "project_id", "filename", "created_at"], "title": "Snapshot"}, "SnapshotCreate": {"properties": {"name": {"type": "string", "title": "Name", "description": "Name of the snapshot"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description", "description": "Description of the snapshot"}}, "type": "object", "required": ["name"], "title": "SnapshotCreate", "description": "Properties for snapshot creation."}, "Status": {"type": "string", "enum": ["stable", "experimental", "broken"], "title": "Status", "description": "Appliance status enum"}, "Supplier": {"properties": {"logo": {"type": "string", "title": "Logo", "description": "Path to the project supplier logo"}, "url": {"anyOf": [{"type": "string", "maxLength": 2083, "minLength": 1, "format": "uri"}, {"type": "null"}], "title": "Url", "description": "URL to the project supplier site"}}, "type": "object", "required": ["logo"], "title": "Supplier"}, "Template": {"properties": {"template_id": {"type": "string", "format": "uuid", "title": "Template Id"}, "name": {"type": "string", "title": "Name"}, "version": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Version"}, "category": {"$ref": "#/components/schemas/gns3server__schemas__controller__templates__Category"}, "default_name_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Default Name Format"}, "symbol": {"type": "string", "title": "Symbol"}, "template_type": {"$ref": "#/components/schemas/NodeType"}, "compute_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Compute Id"}, "usage": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Usage", "default": ""}, "tags": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Tags", "description": "User-defined metadata tags (e.g. 'vendor:cisco' or 'model:7200')"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}, "builtin": {"type": "boolean", "title": "Builtin"}}, "additionalProperties": true, "type": "object", "required": ["template_id", "name", "category", "symbol", "template_type", "builtin"], "title": "Template"}, "TemplateCreate": {"properties": {"template_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Template Id"}, "name": {"type": "string", "title": "Name"}, "version": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Version"}, "category": {"anyOf": [{"$ref": "#/components/schemas/gns3server__schemas__controller__templates__Category"}, {"type": "null"}]}, "default_name_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Default Name Format"}, "symbol": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Symbol"}, "template_type": {"$ref": "#/components/schemas/NodeType"}, "compute_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Compute Id"}, "usage": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Usage", "default": ""}, "tags": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Tags", "description": "User-defined metadata tags (e.g. 'vendor:cisco' or 'model:7200')"}}, "additionalProperties": true, "type": "object", "required": ["name", "template_type"], "title": "TemplateCreate", "description": "Properties to create a template."}, "TemplateSetting": {"properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name of the settings set"}, "default": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Whether these are the default settings"}, "inherit_default_properties": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Whether the default properties should be used", "default": true}, "template_type": {"$ref": "#/components/schemas/TemplateType", "title": "Type of emulator properties"}, "template_properties": {"anyOf": [{"$ref": "#/components/schemas/QemuPropertiesV8"}, {"$ref": "#/components/schemas/DynamipsPropertiesV8"}, {"$ref": "#/components/schemas/IouPropertiesV8"}, {"$ref": "#/components/schemas/DockerPropertiesV8"}], "title": "Properties for the template"}}, "type": "object", "required": ["template_type", "template_properties"], "title": "TemplateSetting", "description": "Emulator settings configuration (v8)"}, "TemplateType": {"type": "string", "enum": ["docker", "iou", "dynamips", "qemu"], "title": "TemplateType", "description": "Template type enum"}, "TemplateUpdate": {"properties": {"template_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Template Id"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name"}, "version": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Version"}, "category": {"anyOf": [{"$ref": "#/components/schemas/gns3server__schemas__controller__templates__Category"}, {"type": "null"}]}, "default_name_format": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Default Name Format"}, "symbol": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Symbol"}, "template_type": {"anyOf": [{"$ref": "#/components/schemas/NodeType"}, {"type": "null"}]}, "compute_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Compute Id"}, "usage": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Usage", "default": ""}, "tags": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Tags", "description": "User-defined metadata tags (e.g. 'vendor:cisco' or 'model:7200')"}}, "additionalProperties": true, "type": "object", "title": "TemplateUpdate"}, "TemplateUsage": {"properties": {"x": {"type": "integer", "title": "X"}, "y": {"type": "integer", "title": "Y"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "description": "Use this name to create a new node"}, "compute_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Compute Id", "description": "Used if the template doesn't have a default compute"}}, "type": "object", "required": ["x", "y"], "title": "TemplateUsage"}, "Token": {"properties": {"access_token": {"type": "string", "title": "Access Token"}, "token_type": {"type": "string", "title": "Token Type"}}, "type": "object", "required": ["access_token", "token_type"], "title": "Token"}, "UDPPortInfo": {"properties": {"node_id": {"type": "string", "format": "uuid", "title": "Node Id"}, "lport": {"type": "integer", "title": "Lport"}, "rhost": {"type": "string", "title": "Rhost"}, "rport": {"type": "integer", "title": "Rport"}, "type": {"type": "string", "title": "Type"}}, "type": "object", "required": ["node_id", "lport", "rhost", "rport", "type"], "title": "UDPPortInfo", "description": "UDP port information."}, "User": {"properties": {"username": {"anyOf": [{"type": "string", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$"}, {"type": "null"}], "title": "Username"}, "is_active": {"type": "boolean", "title": "Is Active", "default": true}, "email": {"anyOf": [{"type": "string", "format": "email"}, {"type": "null"}], "title": "Email"}, "full_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Full Name"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}, "user_id": {"type": "string", "format": "uuid", "title": "User Id"}, "last_login": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Last Login"}, "is_superadmin": {"type": "boolean", "title": "Is Superadmin", "default": false}}, "type": "object", "required": ["user_id"], "title": "User"}, "UserCreate": {"properties": {"username": {"type": "string", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$", "title": "Username"}, "is_active": {"type": "boolean", "title": "Is Active", "default": true}, "email": {"anyOf": [{"type": "string", "format": "email"}, {"type": "null"}], "title": "Email"}, "full_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Full Name"}, "password": {"type": "string", "maxLength": 100, "minLength": 8, "format": "password", "title": "Password", "writeOnly": true}}, "type": "object", "required": ["username", "password"], "title": "UserCreate", "description": "Properties to create a user."}, "UserGroup": {"properties": {"name": {"anyOf": [{"type": "string", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$"}, {"type": "null"}], "title": "Name"}, "created_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Created At"}, "updated_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Updated At"}, "user_group_id": {"type": "string", "format": "uuid", "title": "User Group Id"}, "is_builtin": {"type": "boolean", "title": "Is Builtin"}}, "type": "object", "required": ["user_group_id", "is_builtin"], "title": "UserGroup"}, "UserGroupCreate": {"properties": {"name": {"anyOf": [{"type": "string", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$"}, {"type": "null"}], "title": "Name"}}, "type": "object", "required": ["name"], "title": "UserGroupCreate", "description": "Properties to create a user group."}, "UserGroupUpdate": {"properties": {"name": {"anyOf": [{"type": "string", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$"}, {"type": "null"}], "title": "Name"}}, "type": "object", "title": "UserGroupUpdate", "description": "Properties to update a user group."}, "UserUpdate": {"properties": {"username": {"anyOf": [{"type": "string", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$"}, {"type": "null"}], "title": "Username"}, "is_active": {"type": "boolean", "title": "Is Active", "default": true}, "email": {"anyOf": [{"type": "string", "format": "email"}, {"type": "null"}], "title": "Email"}, "full_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Full Name"}, "password": {"anyOf": [{"type": "string", "maxLength": 100, "minLength": 8, "format": "password", "writeOnly": true}, {"type": "null"}], "title": "Password"}}, "type": "object", "title": "UserUpdate", "description": "Properties to update a user."}, "ValidationError": {"properties": {"loc": {"items": {"anyOf": [{"type": "string"}, {"type": "integer"}]}, "type": "array", "title": "Location"}, "msg": {"type": "string", "title": "Message"}, "type": {"type": "string", "title": "Error Type"}, "input": {"title": "Input"}, "ctx": {"type": "object", "title": "Context"}}, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError"}, "Variable": {"properties": {"name": {"type": "string", "title": "Name", "description": "Variable name"}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Value", "description": "Variable value"}}, "type": "object", "required": ["name"], "title": "Variable"}, "Version": {"properties": {"controller_host": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Controller Host", "description": "Controller hostname or IP address"}, "version": {"type": "string", "title": "Version", "description": "Version number"}, "local": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Local", "description": "Whether this is a local server or not"}}, "type": "object", "required": ["version"], "title": "Version"}, "WhenExit": {"type": "string", "enum": ["stop", "suspend", "keep"], "title": "WhenExit", "description": "What to do with the VM when GNS3 VM exits."}, "gns3server__schemas__controller__appliances__Category": {"type": "string", "enum": ["router", "multilayer_switch", "switch", "firewall", "guest"], "title": "Category", "description": "Appliance category enum"}, "gns3server__schemas__controller__links__LinkType": {"type": "string", "enum": ["ethernet", "serial"], "title": "LinkType", "description": "Link type."}, "gns3server__schemas__controller__nodes__LinkType": {"type": "string", "enum": ["ethernet", "serial"], "title": "LinkType", "description": "Supported link types."}, "gns3server__schemas__controller__templates__Category": {"type": "string", "enum": ["router", "switch", "guest", "firewall"], "title": "Category", "description": "Supported categories"}}, "securitySchemes": {"OAuth2PasswordBearer": {"type": "oauth2", "flows": {"password": {"scopes": {}, "tokenUrl": "/v3/access/users/login"}}}}}} \ No newline at end of file diff --git a/docs/redoc.html b/docs/redoc.html index e4b1048f8..bb28aa163 100644 --- a/docs/redoc.html +++ b/docs/redoc.html @@ -1,12 +1,14 @@ - - + GNS3 controller API - ReDoc + + + + + + - + + + \ No newline at end of file