From fa62e0c3aac89baf83b945acb4959fa1fb0e0402 Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 30 Aug 2022 20:56:08 +0000 Subject: [PATCH] Publish API documentation --- docs/openapi.json | 2 +- docs/redoc.html | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/openapi.json b/docs/openapi.json index 51487525..c345dfde 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -1 +1 @@ -{"openapi": "3.0.2", "info": {"title": "GNS3 controller API", "description": "This page describes the public controller API for GNS3", "version": "v3"}, "paths": {"/": {"get": {"tags": ["Index"], "summary": "Root", "operationId": "root__get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}}, "/debug": {"get": {"tags": ["Index"], "summary": "Debug", "operationId": "debug_debug_get", "responses": {"200": {"description": "Successful Response", "content": {"text/html": {"schema": {"type": "string"}}}}}, "deprecated": true}}, "/static/web-ui/{file_path}": {"get": {"tags": ["Index"], "summary": "Web Ui", "description": "Web user interface", "operationId": "web_ui_static_web_ui__file_path__get", "parameters": [{"required": true, "schema": {"title": "File Path", "type": "string"}, "name": "file_path", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/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": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/users/login": {"post": {"tags": ["Users"], "summary": "Login", "description": "Default user login method using forms (x-www-form-urlencoded).\nExample: curl http://host:port/v3/users/login -H \"Content-Type: application/x-www-form-urlencoded\" -d \"username=admin&password=admin\"", "operationId": "login_v3_users_login_post", "requestBody": {"content": {"application/x-www-form-urlencoded": {"schema": {"$ref": "#/components/schemas/Body_login_v3_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/users/authenticate": {"post": {"tags": ["Users"], "summary": "Authenticate", "description": "Alternative authentication method using json.\nExample: curl http://host:port/v3/users/authenticate -d '{\"username\": \"admin\", \"password\": \"admin\"}' -H \"Content-Type: application/json\"", "operationId": "authenticate_v3_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/users/me": {"get": {"tags": ["Users"], "summary": "Get Logged In User", "description": "Get the current active user.", "operationId": "get_logged_in_user_v3_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_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/users": {"get": {"tags": ["Users"], "summary": "Get Users", "description": "Get all users.", "operationId": "get_users_v3_users_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Users V3 Users Get", "type": "array", "items": {"$ref": "#/components/schemas/User"}}}}}, "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.", "operationId": "create_user_v3_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/users/{user_id}": {"get": {"tags": ["Users"], "summary": "Get User", "description": "Get an user.", "operationId": "get_user_v3_users__user_id__get", "parameters": [{"required": true, "schema": {"title": "User Id", "type": "string", "format": "uuid"}, "name": "user_id", "in": "path"}], "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 User", "description": "Update an user.", "operationId": "update_user_v3_users__user_id__put", "parameters": [{"required": true, "schema": {"title": "User Id", "type": "string", "format": "uuid"}, "name": "user_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserUpdate"}}}, "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": []}]}, "delete": {"tags": ["Users"], "summary": "Delete User", "description": "Delete an user.", "operationId": "delete_user_v3_users__user_id__delete", "parameters": [{"required": true, "schema": {"title": "User Id", "type": "string", "format": "uuid"}, "name": "user_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/users/{user_id}/groups": {"get": {"tags": ["Users"], "summary": "Get User Memberships", "description": "Get user memberships.", "operationId": "get_user_memberships_v3_users__user_id__groups_get", "parameters": [{"required": true, "schema": {"title": "User Id", "type": "string", "format": "uuid"}, "name": "user_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get User Memberships V3 Users User Id Groups Get", "type": "array", "items": {"$ref": "#/components/schemas/UserGroup"}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/users/{user_id}/permissions": {"get": {"tags": ["Users"], "summary": "Get User Permissions", "description": "Get user permissions.", "operationId": "get_user_permissions_v3_users__user_id__permissions_get", "parameters": [{"required": true, "schema": {"title": "User Id", "type": "string", "format": "uuid"}, "name": "user_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get User Permissions V3 Users User Id Permissions Get", "type": "array", "items": {"$ref": "#/components/schemas/Permission"}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/users/{user_id}/permissions/{permission_id}": {"put": {"tags": ["Users"], "summary": "Add Permission To User", "description": "Add a permission to an user.", "operationId": "add_permission_to_user_v3_users__user_id__permissions__permission_id__put", "parameters": [{"required": true, "schema": {"title": "User Id", "type": "string", "format": "uuid"}, "name": "user_id", "in": "path"}, {"required": true, "schema": {"title": "Permission Id", "type": "string", "format": "uuid"}, "name": "permission_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Users"], "summary": "Remove Permission From User", "description": "Remove permission from an user.", "operationId": "remove_permission_from_user_v3_users__user_id__permissions__permission_id__delete", "parameters": [{"required": true, "schema": {"title": "User Id", "type": "string", "format": "uuid"}, "name": "user_id", "in": "path"}, {"required": true, "schema": {"title": "Permission Id", "type": "string", "format": "uuid"}, "name": "permission_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/groups": {"get": {"tags": ["Users groups"], "summary": "Get User Groups", "description": "Get all user groups.", "operationId": "get_user_groups_v3_groups_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get User Groups V3 Groups Get", "type": "array", "items": {"$ref": "#/components/schemas/UserGroup"}}}}}, "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.", "operationId": "create_user_group_v3_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/groups/{user_group_id}": {"get": {"tags": ["Users groups"], "summary": "Get User Group", "description": "Get an user group.", "operationId": "get_user_group_v3_groups__user_group_id__get", "parameters": [{"required": true, "schema": {"title": "User Group Id", "type": "string", "format": "uuid"}, "name": "user_group_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Users groups"], "summary": "Update User Group", "description": "Update an user group.", "operationId": "update_user_group_v3_groups__user_group_id__put", "parameters": [{"required": true, "schema": {"title": "User Group Id", "type": "string", "format": "uuid"}, "name": "user_group_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserGroupUpdate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Users groups"], "summary": "Delete User Group", "description": "Delete an user group", "operationId": "delete_user_group_v3_groups__user_group_id__delete", "parameters": [{"required": true, "schema": {"title": "User Group Id", "type": "string", "format": "uuid"}, "name": "user_group_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/groups/{user_group_id}/members": {"get": {"tags": ["Users groups"], "summary": "Get User Group Members", "description": "Get all user group members.", "operationId": "get_user_group_members_v3_groups__user_group_id__members_get", "parameters": [{"required": true, "schema": {"title": "User Group Id", "type": "string", "format": "uuid"}, "name": "user_group_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get User Group Members V3 Groups User Group Id Members Get", "type": "array", "items": {"$ref": "#/components/schemas/User"}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/groups/{user_group_id}/members/{user_id}": {"put": {"tags": ["Users groups"], "summary": "Add Member To Group", "description": "Add member to an user group.", "operationId": "add_member_to_group_v3_groups__user_group_id__members__user_id__put", "parameters": [{"required": true, "schema": {"title": "User Group Id", "type": "string", "format": "uuid"}, "name": "user_group_id", "in": "path"}, {"required": true, "schema": {"title": "User Id", "type": "string", "format": "uuid"}, "name": "user_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Users groups"], "summary": "Remove Member From Group", "description": "Remove member from an user group.", "operationId": "remove_member_from_group_v3_groups__user_group_id__members__user_id__delete", "parameters": [{"required": true, "schema": {"title": "User Group Id", "type": "string", "format": "uuid"}, "name": "user_group_id", "in": "path"}, {"required": true, "schema": {"title": "User Id", "type": "string", "format": "uuid"}, "name": "user_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/groups/{user_group_id}/roles": {"get": {"tags": ["Users groups"], "summary": "Get User Group Roles", "description": "Get all user group roles.", "operationId": "get_user_group_roles_v3_groups__user_group_id__roles_get", "parameters": [{"required": true, "schema": {"title": "User Group Id", "type": "string", "format": "uuid"}, "name": "user_group_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get User Group Roles V3 Groups User Group Id Roles Get", "type": "array", "items": {"$ref": "#/components/schemas/Role"}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/groups/{user_group_id}/roles/{role_id}": {"put": {"tags": ["Users groups"], "summary": "Add Role To Group", "description": "Add role to an user group.", "operationId": "add_role_to_group_v3_groups__user_group_id__roles__role_id__put", "parameters": [{"required": true, "schema": {"title": "User Group Id", "type": "string", "format": "uuid"}, "name": "user_group_id", "in": "path"}, {"required": true, "schema": {"title": "Role Id", "type": "string", "format": "uuid"}, "name": "role_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Users groups"], "summary": "Remove Role From Group", "description": "Remove role from an user group.", "operationId": "remove_role_from_group_v3_groups__user_group_id__roles__role_id__delete", "parameters": [{"required": true, "schema": {"title": "User Group Id", "type": "string", "format": "uuid"}, "name": "user_group_id", "in": "path"}, {"required": true, "schema": {"title": "Role Id", "type": "string", "format": "uuid"}, "name": "role_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/roles": {"get": {"tags": ["Roles"], "summary": "Get Roles", "description": "Get all roles.", "operationId": "get_roles_v3_roles_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Roles V3 Roles Get", "type": "array", "items": {"$ref": "#/components/schemas/Role"}}}}}, "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.", "operationId": "create_role_v3_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/roles/{role_id}": {"get": {"tags": ["Roles"], "summary": "Get Role", "description": "Get a role.", "operationId": "get_role_v3_roles__role_id__get", "parameters": [{"required": true, "schema": {"title": "Role Id", "type": "string", "format": "uuid"}, "name": "role_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Roles"], "summary": "Update Role", "description": "Update a role.", "operationId": "update_role_v3_roles__role_id__put", "parameters": [{"required": true, "schema": {"title": "Role Id", "type": "string", "format": "uuid"}, "name": "role_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/RoleUpdate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Roles"], "summary": "Delete Role", "description": "Delete a role.", "operationId": "delete_role_v3_roles__role_id__delete", "parameters": [{"required": true, "schema": {"title": "Role Id", "type": "string", "format": "uuid"}, "name": "role_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/roles/{role_id}/permissions": {"get": {"tags": ["Roles"], "summary": "Get Role Permissions", "description": "Get all role permissions.", "operationId": "get_role_permissions_v3_roles__role_id__permissions_get", "parameters": [{"required": true, "schema": {"title": "Role Id", "type": "string", "format": "uuid"}, "name": "role_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Role Permissions V3 Roles Role Id Permissions Get", "type": "array", "items": {"$ref": "#/components/schemas/Permission"}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/roles/{role_id}/permissions/{permission_id}": {"put": {"tags": ["Roles"], "summary": "Add Permission To Role", "description": "Add a permission to a role.", "operationId": "add_permission_to_role_v3_roles__role_id__permissions__permission_id__put", "parameters": [{"required": true, "schema": {"title": "Role Id", "type": "string", "format": "uuid"}, "name": "role_id", "in": "path"}, {"required": true, "schema": {"title": "Permission Id", "type": "string", "format": "uuid"}, "name": "permission_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Roles"], "summary": "Remove Permission From Role", "description": "Remove member from an user group.", "operationId": "remove_permission_from_role_v3_roles__role_id__permissions__permission_id__delete", "parameters": [{"required": true, "schema": {"title": "Role Id", "type": "string", "format": "uuid"}, "name": "role_id", "in": "path"}, {"required": true, "schema": {"title": "Permission Id", "type": "string", "format": "uuid"}, "name": "permission_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/permissions": {"get": {"tags": ["Permissions"], "summary": "Get Permissions", "description": "Get all permissions.", "operationId": "get_permissions_v3_permissions_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Permissions V3 Permissions Get", "type": "array", "items": {"$ref": "#/components/schemas/Permission"}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Permissions"], "summary": "Create Permission", "description": "Create a new permission.", "operationId": "create_permission_v3_permissions_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/PermissionCreate"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Permission"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/permissions/{permission_id}": {"get": {"tags": ["Permissions"], "summary": "Get Permission", "description": "Get a permission.", "operationId": "get_permission_v3_permissions__permission_id__get", "parameters": [{"required": true, "schema": {"title": "Permission Id", "type": "string", "format": "uuid"}, "name": "permission_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Permission"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Permissions"], "summary": "Update Permission", "description": "Update a permission.", "operationId": "update_permission_v3_permissions__permission_id__put", "parameters": [{"required": true, "schema": {"title": "Permission Id", "type": "string", "format": "uuid"}, "name": "permission_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/PermissionUpdate"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Permission"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Permissions"], "summary": "Delete Permission", "description": "Delete a permission.", "operationId": "delete_permission_v3_permissions__permission_id__delete", "parameters": [{"required": true, "schema": {"title": "Permission Id", "type": "string", "format": "uuid"}, "name": "permission_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/permissions/prune": {"post": {"tags": ["Permissions"], "summary": "Prune Permissions", "description": "Prune orphaned permissions.", "operationId": "prune_permissions_v3_permissions_prune_post", "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/images": {"get": {"tags": ["Images"], "summary": "Get Images", "description": "Return all images.", "operationId": "get_images_v3_images_get", "parameters": [{"required": false, "schema": {"$ref": "#/components/schemas/ImageType"}, "name": "image_type", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Images V3 Images Get", "type": "array", "items": {"$ref": "#/components/schemas/Image"}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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\"", "operationId": "upload_image_v3_images_upload__image_path__post", "parameters": [{"required": true, "schema": {"title": "Image Path", "type": "string"}, "name": "image_path", "in": "path"}, {"required": false, "schema": {"title": "Install Appliances", "type": "boolean", "default": false}, "name": "install_appliances", "in": "query"}, {"required": false, "schema": {"title": "Allow Raw Image", "type": "boolean", "default": false}, "name": "allow_raw_image", "in": "query"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/images/{image_path}": {"get": {"tags": ["Images"], "summary": "Get Image", "description": "Return an image.", "operationId": "get_image_v3_images__image_path__get", "parameters": [{"required": true, "schema": {"title": "Image Path", "type": "string"}, "name": "image_path", "in": "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Images"], "summary": "Delete Image", "description": "Delete an image.", "operationId": "delete_image_v3_images__image_path__delete", "parameters": [{"required": true, "schema": {"title": "Image Path", "type": "string"}, "name": "image_path", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/images/prune": {"post": {"tags": ["Images"], "summary": "Prune Images", "description": "Prune images not attached to any template.", "operationId": "prune_images_v3_images_prune_post", "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/templates": {"get": {"tags": ["Templates"], "summary": "Get Templates", "description": "Return all templates.", "operationId": "get_templates_v3_templates_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Templates V3 Templates Get", "type": "array", "items": {"$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": []}]}, "post": {"tags": ["Templates"], "summary": "Create Template", "description": "Create a new template.", "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.", "operationId": "get_template_v3_templates__template_id__get", "parameters": [{"required": true, "schema": {"title": "Template Id", "type": "string", "format": "uuid"}, "name": "template_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Templates"], "summary": "Update Template", "description": "Update a template.", "operationId": "update_template_v3_templates__template_id__put", "parameters": [{"required": true, "schema": {"title": "Template Id", "type": "string", "format": "uuid"}, "name": "template_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/TemplateUpdate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Templates"], "summary": "Delete Template", "description": "Delete a template.", "operationId": "delete_template_v3_templates__template_id__delete", "parameters": [{"required": true, "schema": {"title": "Template Id", "type": "string", "format": "uuid"}, "name": "template_id", "in": "path"}, {"required": false, "schema": {"title": "Prune Images", "type": "boolean", "default": false}, "name": "prune_images", "in": "query"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/templates/{template_id}/duplicate": {"post": {"tags": ["Templates"], "summary": "Duplicate Template", "description": "Duplicate a template.", "operationId": "duplicate_template_v3_templates__template_id__duplicate_post", "parameters": [{"required": true, "schema": {"title": "Template Id", "type": "string", "format": "uuid"}, "name": "template_id", "in": "path"}], "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/projects": {"get": {"tags": ["Projects"], "summary": "Get Projects", "description": "Return all projects.", "operationId": "get_projects_v3_projects_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Projects V3 Projects Get", "type": "array", "items": {"$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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Projects"], "summary": "Create Project", "description": "Create a new project.", "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.", "operationId": "get_project_v3_projects__project_id__get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Projects"], "summary": "Update Project", "description": "Update a project.", "operationId": "update_project_v3_projects__project_id__put", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProjectUpdate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Projects"], "summary": "Delete Project", "description": "Delete a project.", "operationId": "delete_project_v3_projects__project_id__delete", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/stats": {"get": {"tags": ["Projects"], "summary": "Get Project Stats", "description": "Return a project statistics.", "operationId": "get_project_stats_v3_projects__project_id__stats_get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/close": {"post": {"tags": ["Projects"], "summary": "Close Project", "description": "Close a project.", "operationId": "close_project_v3_projects__project_id__close_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/open": {"post": {"tags": ["Projects"], "summary": "Open Project", "description": "Open a project.", "operationId": "open_project_v3_projects__project_id__open_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/load": {"post": {"tags": ["Projects"], "summary": "Load Project", "description": "Load a project (local server only).", "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.", "operationId": "project_http_notifications_v3_projects__project_id__notifications_get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/export": {"get": {"tags": ["Projects"], "summary": "Export Project", "description": "Export a project as a portable archive.", "operationId": "export_project_v3_projects__project_id__export_get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": false, "schema": {"title": "Include Snapshots", "type": "boolean", "default": false}, "name": "include_snapshots", "in": "query"}, {"required": false, "schema": {"title": "Include Images", "type": "boolean", "default": false}, "name": "include_images", "in": "query"}, {"required": false, "schema": {"title": "Reset Mac Addresses", "type": "boolean", "default": false}, "name": "reset_mac_addresses", "in": "query"}, {"required": false, "schema": {"allOf": [{"$ref": "#/components/schemas/ProjectCompression"}], "default": "zstd"}, "name": "compression", "in": "query"}, {"required": false, "schema": {"title": "Compression Level", "type": "integer"}, "name": "compression_level", "in": "query"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/import": {"post": {"tags": ["Projects"], "summary": "Import Project", "description": "Import a project from a portable archive.", "operationId": "import_project_v3_projects__project_id__import_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": false, "schema": {"title": "Name", "type": "string"}, "name": "name", "in": "query"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/duplicate": {"post": {"tags": ["Projects"], "summary": "Duplicate Project", "description": "Duplicate a project.", "operationId": "duplicate_project_v3_projects__project_id__duplicate_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProjectDuplicate"}}}, "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 duplicate 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}/files/{file_path}": {"get": {"tags": ["Projects"], "summary": "Get File", "description": "Return a file from a project.", "operationId": "get_file_v3_projects__project_id__files__file_path__get", "parameters": [{"required": true, "schema": {"title": "File Path", "type": "string"}, "name": "file_path", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Projects"], "summary": "Write File", "description": "Write a file to a project.", "operationId": "write_file_v3_projects__project_id__files__file_path__post", "parameters": [{"required": true, "schema": {"title": "File Path", "type": "string"}, "name": "file_path", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/templates/{template_id}": {"post": {"tags": ["Projects"], "summary": "Create Node From Template", "description": "Create a new node from a template.", "operationId": "create_node_from_template_v3_projects__project_id__templates__template_id__post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Template Id", "type": "string", "format": "uuid"}, "name": "template_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/TemplateUsage"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes": {"get": {"tags": ["Nodes"], "summary": "Get Nodes", "description": "Return all nodes belonging to a given project.", "operationId": "get_nodes_v3_projects__project_id__nodes_get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Nodes V3 Projects Project Id Nodes Get", "type": "array", "items": {"$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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Nodes"], "summary": "Create Node", "description": "Create a new node.", "operationId": "create_node_v3_projects__project_id__nodes_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/NodeCreate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/start": {"post": {"tags": ["Nodes"], "summary": "Start All Nodes", "description": "Start all nodes belonging to a given project.", "operationId": "start_all_nodes_v3_projects__project_id__nodes_start_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/stop": {"post": {"tags": ["Nodes"], "summary": "Stop All Nodes", "description": "Stop all nodes belonging to a given project.", "operationId": "stop_all_nodes_v3_projects__project_id__nodes_stop_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/suspend": {"post": {"tags": ["Nodes"], "summary": "Suspend All Nodes", "description": "Suspend all nodes belonging to a given project.", "operationId": "suspend_all_nodes_v3_projects__project_id__nodes_suspend_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/reload": {"post": {"tags": ["Nodes"], "summary": "Reload All Nodes", "description": "Reload all nodes belonging to a given project.", "operationId": "reload_all_nodes_v3_projects__project_id__nodes_reload_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}": {"get": {"tags": ["Nodes"], "summary": "Get Node", "description": "Return a node from a given project.", "operationId": "get_node_v3_projects__project_id__nodes__node_id__get", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Nodes"], "summary": "Update Node", "description": "Update a node.", "operationId": "update_node_v3_projects__project_id__nodes__node_id__put", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/NodeUpdate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Nodes"], "summary": "Delete Node", "description": "Delete a node from a project.", "operationId": "delete_node_v3_projects__project_id__nodes__node_id__delete", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/duplicate": {"post": {"tags": ["Nodes"], "summary": "Duplicate Node", "description": "Duplicate a node.", "operationId": "duplicate_node_v3_projects__project_id__nodes__node_id__duplicate_post", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/NodeDuplicate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/start": {"post": {"tags": ["Nodes"], "summary": "Start Node", "description": "Start a node.", "operationId": "start_node_v3_projects__project_id__nodes__node_id__start_post", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Start Data", "type": "object"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/stop": {"post": {"tags": ["Nodes"], "summary": "Stop Node", "description": "Stop a node.", "operationId": "stop_node_v3_projects__project_id__nodes__node_id__stop_post", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/suspend": {"post": {"tags": ["Nodes"], "summary": "Suspend Node", "description": "Suspend a node.", "operationId": "suspend_node_v3_projects__project_id__nodes__node_id__suspend_post", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/reload": {"post": {"tags": ["Nodes"], "summary": "Reload Node", "description": "Reload a node.", "operationId": "reload_node_v3_projects__project_id__nodes__node_id__reload_post", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/isolate": {"post": {"tags": ["Nodes"], "summary": "Isolate Node", "description": "Isolate a node (suspend all attached links).", "operationId": "isolate_node_v3_projects__project_id__nodes__node_id__isolate_post", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/unisolate": {"post": {"tags": ["Nodes"], "summary": "Unisolate Node", "description": "Un-isolate a node (resume all attached suspended links).", "operationId": "unisolate_node_v3_projects__project_id__nodes__node_id__unisolate_post", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/links": {"get": {"tags": ["Nodes"], "summary": "Get Node Links", "description": "Return all the links connected to a node.", "operationId": "get_node_links_v3_projects__project_id__nodes__node_id__links_get", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Node Links V3 Projects Project Id Nodes Node Id Links Get", "type": "array", "items": {"$ref": "#/components/schemas/Link"}}}}}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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", "operationId": "auto_idlepc_v3_projects__project_id__nodes__node_id__dynamips_auto_idlepc_get", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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", "operationId": "idlepc_proposals_v3_projects__project_id__nodes__node_id__dynamips_idlepc_proposals_get", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/qemu/disk_image/{disk_name}": {"put": {"tags": ["Nodes"], "summary": "Update Disk Image", "description": "Update a Qemu disk image.", "operationId": "update_disk_image_v3_projects__project_id__nodes__node_id__qemu_disk_image__disk_name__put", "parameters": [{"required": true, "schema": {"title": "Disk Name", "type": "string"}, "name": "disk_name", "in": "path"}, {"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/QemuDiskImageUpdate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Nodes"], "summary": "Create Disk Image", "description": "Create a Qemu disk image.", "operationId": "create_disk_image_v3_projects__project_id__nodes__node_id__qemu_disk_image__disk_name__post", "parameters": [{"required": true, "schema": {"title": "Disk Name", "type": "string"}, "name": "disk_name", "in": "path"}, {"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/QemuDiskImageCreate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Nodes"], "summary": "Delete Disk Image", "description": "Delete a Qemu disk image.", "operationId": "delete_disk_image_v3_projects__project_id__nodes__node_id__qemu_disk_image__disk_name__delete", "parameters": [{"required": true, "schema": {"title": "Disk Name", "type": "string"}, "name": "disk_name", "in": "path"}, {"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/files/{file_path}": {"get": {"tags": ["Nodes"], "summary": "Get File", "description": "Return a file in the node directory", "operationId": "get_file_v3_projects__project_id__nodes__node_id__files__file_path__get", "parameters": [{"required": true, "schema": {"title": "File Path", "type": "string"}, "name": "file_path", "in": "path"}, {"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Nodes"], "summary": "Post File", "description": "Write a file in the node directory.", "operationId": "post_file_v3_projects__project_id__nodes__node_id__files__file_path__post", "parameters": [{"required": true, "schema": {"title": "File Path", "type": "string"}, "name": "file_path", "in": "path"}, {"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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.", "operationId": "reset_console_all_nodes_v3_projects__project_id__nodes_console_reset_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/console/reset": {"post": {"tags": ["Nodes"], "summary": "Console Reset", "operationId": "console_reset_v3_projects__project_id__nodes__node_id__console_reset_post", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/links": {"get": {"tags": ["Links"], "summary": "Get Links", "description": "Return all links for a given project.", "operationId": "get_links_v3_projects__project_id__links_get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Links V3 Projects Project Id Links Get", "type": "array", "items": {"$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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Links"], "summary": "Create Link", "description": "Create a new link.", "operationId": "create_link_v3_projects__project_id__links_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/LinkCreate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/links/{link_id}/available_filters": {"get": {"tags": ["Links"], "summary": "Get Filters", "description": "Return all filters available for a given link.", "operationId": "get_filters_v3_projects__project_id__links__link_id__available_filters_get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Link Id", "type": "string", "format": "uuid"}, "name": "link_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/links/{link_id}": {"get": {"tags": ["Links"], "summary": "Get Link", "description": "Return a link.", "operationId": "get_link_v3_projects__project_id__links__link_id__get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Link Id", "type": "string", "format": "uuid"}, "name": "link_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Links"], "summary": "Update Link", "description": "Update a link.", "operationId": "update_link_v3_projects__project_id__links__link_id__put", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Link Id", "type": "string", "format": "uuid"}, "name": "link_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/LinkUpdate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Links"], "summary": "Delete Link", "description": "Delete a link.", "operationId": "delete_link_v3_projects__project_id__links__link_id__delete", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Link Id", "type": "string", "format": "uuid"}, "name": "link_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/links/{link_id}/reset": {"post": {"tags": ["Links"], "summary": "Reset Link", "description": "Reset a link.", "operationId": "reset_link_v3_projects__project_id__links__link_id__reset_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Link Id", "type": "string", "format": "uuid"}, "name": "link_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/links/{link_id}/capture/start": {"post": {"tags": ["Links"], "summary": "Start Capture", "description": "Start packet capture on the link.", "operationId": "start_capture_v3_projects__project_id__links__link_id__capture_start_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Link Id", "type": "string", "format": "uuid"}, "name": "link_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Capture Data", "type": "object"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/links/{link_id}/capture/stop": {"post": {"tags": ["Links"], "summary": "Stop Capture", "description": "Stop packet capture on the link.", "operationId": "stop_capture_v3_projects__project_id__links__link_id__capture_stop_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Link Id", "type": "string", "format": "uuid"}, "name": "link_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/links/{link_id}/capture/stream": {"get": {"tags": ["Links"], "summary": "Stream Pcap", "description": "Stream the PCAP capture file from compute.", "operationId": "stream_pcap_v3_projects__project_id__links__link_id__capture_stream_get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Link Id", "type": "string", "format": "uuid"}, "name": "link_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/drawings": {"get": {"tags": ["Drawings"], "summary": "Get Drawings", "description": "Return the list of all drawings for a given project.", "operationId": "get_drawings_v3_projects__project_id__drawings_get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Drawings V3 Projects Project Id Drawings Get", "type": "array", "items": {"$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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Drawings"], "summary": "Create Drawing", "description": "Create a new drawing.", "operationId": "create_drawing_v3_projects__project_id__drawings_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Drawing"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/drawings/{drawing_id}": {"get": {"tags": ["Drawings"], "summary": "Get Drawing", "description": "Return a drawing.", "operationId": "get_drawing_v3_projects__project_id__drawings__drawing_id__get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Drawing Id", "type": "string", "format": "uuid"}, "name": "drawing_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Drawings"], "summary": "Update Drawing", "description": "Update a drawing.", "operationId": "update_drawing_v3_projects__project_id__drawings__drawing_id__put", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Drawing Id", "type": "string", "format": "uuid"}, "name": "drawing_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Drawing"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Drawings"], "summary": "Delete Drawing", "description": "Delete a drawing.", "operationId": "delete_drawing_v3_projects__project_id__drawings__drawing_id__delete", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Drawing Id", "type": "string", "format": "uuid"}, "name": "drawing_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/symbols": {"get": {"tags": ["Symbols"], "summary": "Get Symbols", "operationId": "get_symbols_v3_symbols_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}}, "/v3/symbols/{symbol_id}/raw": {"get": {"tags": ["Symbols"], "summary": "Get Symbol", "description": "Download a symbol file.", "operationId": "get_symbol_v3_symbols__symbol_id__raw_get", "parameters": [{"required": true, "schema": {"title": "Symbol Id", "type": "string"}, "name": "symbol_id", "in": "path"}], "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.", "operationId": "upload_symbol_v3_symbols__symbol_id__raw_post", "parameters": [{"required": true, "schema": {"title": "Symbol Id", "type": "string"}, "name": "symbol_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/symbols/{symbol_id}/dimensions": {"get": {"tags": ["Symbols"], "summary": "Get Symbol Dimensions", "description": "Get a symbol dimensions.", "operationId": "get_symbol_dimensions_v3_symbols__symbol_id__dimensions_get", "parameters": [{"required": true, "schema": {"title": "Symbol Id", "type": "string"}, "name": "symbol_id", "in": "path"}], "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"}}}}}}}, "/v3/symbols/default_symbols": {"get": {"tags": ["Symbols"], "summary": "Get Default Symbols", "description": "Return all default symbols.", "operationId": "get_default_symbols_v3_symbols_default_symbols_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}}, "/v3/projects/{project_id}/snapshots": {"get": {"tags": ["Snapshots"], "summary": "Get Snapshots", "description": "Return all snapshots belonging to a given project.", "operationId": "get_snapshots_v3_projects__project_id__snapshots_get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Snapshots V3 Projects Project Id Snapshots Get", "type": "array", "items": {"$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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Snapshots"], "summary": "Create Snapshot", "description": "Create a new snapshot of a project.", "operationId": "create_snapshot_v3_projects__project_id__snapshots_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/SnapshotCreate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/snapshots/{snapshot_id}": {"delete": {"tags": ["Snapshots"], "summary": "Delete Snapshot", "description": "Delete a snapshot.", "operationId": "delete_snapshot_v3_projects__project_id__snapshots__snapshot_id__delete", "parameters": [{"required": true, "schema": {"title": "Snapshot Id", "type": "string", "format": "uuid"}, "name": "snapshot_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/snapshots/{snapshot_id}/restore": {"post": {"tags": ["Snapshots"], "summary": "Restore Snapshot", "description": "Restore a snapshot.", "operationId": "restore_snapshot_v3_projects__project_id__snapshots__snapshot_id__restore_post", "parameters": [{"required": true, "schema": {"title": "Snapshot Id", "type": "string", "format": "uuid"}, "name": "snapshot_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/computes": {"get": {"tags": ["Computes"], "summary": "Get Computes", "description": "Return all computes known by the controller.", "operationId": "get_computes_v3_computes_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Computes V3 Computes Get", "type": "array", "items": {"$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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Computes"], "summary": "Create Compute", "description": "Create a new compute on the controller.", "operationId": "create_compute_v3_computes_post", "parameters": [{"required": false, "schema": {"title": "Connect", "type": "boolean", "default": false}, "name": "connect", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ComputeCreate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/computes/{compute_id}/connect": {"post": {"tags": ["Computes"], "summary": "Connect Compute", "description": "Connect to compute on the controller.", "operationId": "connect_compute_v3_computes__compute_id__connect_post", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/computes/{compute_id}": {"get": {"tags": ["Computes"], "summary": "Get Compute", "description": "Return a compute from the controller.", "operationId": "get_compute_v3_computes__compute_id__get", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Computes"], "summary": "Update Compute", "description": "Update a compute on the controller.", "operationId": "update_compute_v3_computes__compute_id__put", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ComputeUpdate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Computes"], "summary": "Delete Compute", "description": "Delete a compute from the controller.", "operationId": "delete_compute_v3_computes__compute_id__delete", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Docker Get Images V3 Computes Compute Id Docker Images Get", "type": "array", "items": {"$ref": "#/components/schemas/ComputeDockerImage"}}}}}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Virtualbox Vms V3 Computes Compute Id Virtualbox Vms Get", "type": "array", "items": {"$ref": "#/components/schemas/ComputeVirtualBoxVM"}}}}}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Vmware Vms V3 Computes Compute Id Vmware Vms Get", "type": "array", "items": {"$ref": "#/components/schemas/ComputeVMwareVM"}}}}}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/AutoIdlePC"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}, {"required": true, "schema": {"title": "Emulator", "type": "string"}, "name": "emulator", "in": "path"}, {"required": true, "schema": {"title": "Endpoint Path", "type": "string"}, "name": "endpoint_path", "in": "path"}], "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"}}}}}, "deprecated": true, "security": [{"OAuth2PasswordBearer": []}]}, "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", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}, {"required": true, "schema": {"title": "Emulator", "type": "string"}, "name": "emulator", "in": "path"}, {"required": true, "schema": {"title": "Endpoint Path", "type": "string"}, "name": "endpoint_path", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Compute Data", "type": "object"}}}, "required": true}, "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"}}}}}, "deprecated": true, "security": [{"OAuth2PasswordBearer": []}]}, "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", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}, {"required": true, "schema": {"title": "Emulator", "type": "string"}, "name": "emulator", "in": "path"}, {"required": true, "schema": {"title": "Endpoint Path", "type": "string"}, "name": "endpoint_path", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Compute Data", "type": "object"}}}, "required": true}, "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"}}}}}, "deprecated": true, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/notifications": {"get": {"tags": ["Notifications"], "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/appliances": {"get": {"tags": ["Appliances"], "summary": "Get Appliances", "description": "Return all appliances known by the controller.", "operationId": "get_appliances_v3_appliances_get", "parameters": [{"required": false, "schema": {"title": "Update", "type": "boolean", "default": false}, "name": "update", "in": "query"}, {"required": false, "schema": {"title": "Symbol Theme", "type": "string"}, "name": "symbol_theme", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/appliances/{appliance_id}": {"get": {"tags": ["Appliances"], "summary": "Get Appliance", "description": "Get an appliance file.", "operationId": "get_appliance_v3_appliances__appliance_id__get", "parameters": [{"required": true, "schema": {"title": "Appliance Id", "type": "string", "format": "uuid"}, "name": "appliance_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/appliances/{appliance_id}/version": {"post": {"tags": ["Appliances"], "summary": "Add Appliance Version", "description": "Add a version to an appliance", "operationId": "add_appliance_version_v3_appliances__appliance_id__version_post", "parameters": [{"required": true, "schema": {"title": "Appliance Id", "type": "string", "format": "uuid"}, "name": "appliance_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApplianceVersion"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/appliances/{appliance_id}/install": {"post": {"tags": ["Appliances"], "summary": "Install Appliance", "description": "Install an appliance.", "operationId": "install_appliance_v3_appliances__appliance_id__install_post", "parameters": [{"required": true, "schema": {"title": "Appliance Id", "type": "string", "format": "uuid"}, "name": "appliance_id", "in": "path"}, {"required": false, "schema": {"title": "Version", "type": "string"}, "name": "version", "in": "query"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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": {}}}}, "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", "parameters": [{"required": true, "schema": {"title": "Engine", "type": "string"}, "name": "engine", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "deprecated": true, "security": [{"OAuth2PasswordBearer": []}]}}, "/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": {"ApplianceVersion": {"title": "ApplianceVersion", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name of the version", "type": "string"}, "idlepc": {"title": "Idlepc", "pattern": "^0x[0-9a-f]{8}", "type": "string"}, "images": {"title": "Images used for this version", "allOf": [{"$ref": "#/components/schemas/ApplianceVersionImages"}]}}}, "ApplianceVersionImages": {"title": "ApplianceVersionImages", "type": "object", "properties": {"kernel_image": {"title": "Kernel image", "type": "string"}, "initrd": {"title": "Initrd disk image", "type": "string"}, "image": {"title": "OS image", "type": "string"}, "bios_image": {"title": "Bios image", "type": "string"}, "hda_disk_image": {"title": "Hda disk image", "type": "string"}, "hdb_disk_image": {"title": "Hdc disk image", "type": "string"}, "hdc_disk_image": {"title": "Hdd disk image", "type": "string"}, "hdd_disk_image": {"title": "Hdd diskimage", "type": "string"}, "cdrom_image": {"title": "cdrom image", "type": "string"}}}, "AutoIdlePC": {"title": "AutoIdlePC", "required": ["platform", "image", "ram"], "type": "object", "properties": {"platform": {"title": "Platform", "type": "string", "description": "Cisco platform"}, "image": {"title": "Image", "type": "string", "description": "Image path"}, "ram": {"title": "Ram", "type": "integer", "description": "Amount of RAM in MB"}}, "description": "Data for auto Idle-PC request.", "example": {"platform": "c7200", "image": "/path/to/c7200_image.bin", "ram": 256}}, "Body_load_project_v3_projects_load_post": {"title": "Body_load_project_v3_projects_load_post", "required": ["path"], "type": "object", "properties": {"path": {"title": "Path", "type": "string"}}}, "Body_login_v3_users_login_post": {"title": "Body_login_v3_users_login_post", "required": ["username", "password"], "type": "object", "properties": {"grant_type": {"title": "Grant Type", "pattern": "password", "type": "string"}, "username": {"title": "Username", "type": "string"}, "password": {"title": "Password", "type": "string"}, "scope": {"title": "Scope", "type": "string", "default": ""}, "client_id": {"title": "Client Id", "type": "string"}, "client_secret": {"title": "Client Secret", "type": "string"}}}, "Capabilities": {"title": "Capabilities", "required": ["version", "node_types", "platform", "cpus", "memory", "disk_size"], "type": "object", "properties": {"version": {"title": "Version", "type": "string", "description": "Compute version number"}, "node_types": {"type": "array", "items": {"$ref": "#/components/schemas/NodeType"}, "description": "Node types supported by the compute"}, "platform": {"title": "Platform", "type": "string", "description": "Platform where the compute is running (Linux, Windows or macOS)"}, "cpus": {"title": "Cpus", "type": "integer", "description": "Number of CPUs on this compute"}, "memory": {"title": "Memory", "type": "integer", "description": "Amount of memory on this compute"}, "disk_size": {"title": "Disk Size", "type": "integer", "description": "Disk size on this compute"}}, "description": "Capabilities supported by a compute."}, "Category": {"title": "Category", "enum": ["router", "switch", "guest", "firewall"], "type": "string", "description": "Supported categories"}, "Compute": {"title": "Compute", "required": ["protocol", "host", "port", "name", "compute_id"], "type": "object", "properties": {"protocol": {"$ref": "#/components/schemas/Protocol"}, "host": {"title": "Host", "type": "string"}, "port": {"title": "Port", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer"}, "user": {"title": "User", "type": "string"}, "password": {"title": "Password", "type": "string", "format": "password", "writeOnly": true}, "name": {"title": "Name", "type": "string"}, "created_at": {"title": "Created At", "type": "string", "format": "date-time"}, "updated_at": {"title": "Updated At", "type": "string", "format": "date-time"}, "compute_id": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "connected": {"title": "Connected", "type": "boolean", "description": "Whether the controller is connected to the compute or not"}, "cpu_usage_percent": {"title": "Cpu Usage Percent", "maximum": 100.0, "minimum": 0.0, "type": "number", "description": "CPU usage of the compute"}, "memory_usage_percent": {"title": "Memory Usage Percent", "maximum": 100.0, "minimum": 0.0, "type": "number", "description": "Memory usage of the compute"}, "disk_usage_percent": {"title": "Disk Usage Percent", "maximum": 100.0, "minimum": 0.0, "type": "number", "description": "Disk usage of the compute"}, "last_error": {"title": "Last Error", "type": "string", "description": "Last error found on the compute"}, "capabilities": {"$ref": "#/components/schemas/Capabilities"}}, "description": "Data returned for a compute."}, "ComputeCreate": {"title": "ComputeCreate", "required": ["protocol", "host", "port"], "type": "object", "properties": {"protocol": {"$ref": "#/components/schemas/Protocol"}, "host": {"title": "Host", "type": "string"}, "port": {"title": "Port", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer"}, "user": {"title": "User", "type": "string"}, "password": {"title": "Password", "type": "string", "format": "password", "writeOnly": true}, "name": {"title": "Name", "type": "string"}, "compute_id": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}}, "description": "Data to create a compute.", "example": {"name": "My compute", "host": "127.0.0.1", "port": 3080, "user": "user", "password": "password"}}, "ComputeDockerImage": {"title": "ComputeDockerImage", "required": ["image"], "type": "object", "properties": {"image": {"title": "Image", "type": "string", "description": "Docker image name"}}, "description": "Docker image from compute."}, "ComputeUpdate": {"title": "ComputeUpdate", "type": "object", "properties": {"protocol": {"$ref": "#/components/schemas/Protocol"}, "host": {"title": "Host", "type": "string"}, "port": {"title": "Port", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer"}, "user": {"title": "User", "type": "string"}, "password": {"title": "Password", "type": "string", "format": "password", "writeOnly": true}, "name": {"title": "Name", "type": "string"}}, "description": "Data to update a compute.", "example": {"host": "10.0.0.1", "port": 8080}}, "ComputeVMwareVM": {"title": "ComputeVMwareVM", "required": ["vmname", "vmx_path"], "type": "object", "properties": {"vmname": {"title": "Vmname", "type": "string", "description": "VMware VM name"}, "vmx_path": {"title": "Vmx Path", "type": "string", "description": "Path to the vmx file"}}, "description": "VMware VM from compute."}, "ComputeVirtualBoxVM": {"title": "ComputeVirtualBoxVM", "required": ["vmname", "ram"], "type": "object", "properties": {"vmname": {"title": "Vmname", "type": "string", "description": "VirtualBox VM name"}, "ram": {"title": "Ram", "type": "integer", "description": "VirtualBox VM memory"}}, "description": "VirtualBox VM from compute."}, "ConsoleType": {"title": "ConsoleType", "enum": ["vnc", "telnet", "http", "https", "spice", "spice+agent", "none"], "type": "string", "description": "Supported console types."}, "Credentials": {"title": "Credentials", "required": ["username", "password"], "type": "object", "properties": {"username": {"title": "Username", "type": "string"}, "password": {"title": "Password", "type": "string"}}}, "CustomAdapter": {"title": "CustomAdapter", "required": ["adapter_number"], "type": "object", "properties": {"adapter_number": {"title": "Adapter Number", "type": "integer"}, "port_name": {"title": "Port Name", "type": "string"}, "adapter_type": {"title": "Adapter Type", "type": "string"}, "mac_address": {"title": "Mac Address", "pattern": "^([0-9a-fA-F]{2}[:]){5}([0-9a-fA-F]{2})$", "type": "string"}}, "description": "Custom adapter data."}, "Drawing": {"title": "Drawing", "type": "object", "properties": {"drawing_id": {"title": "Drawing Id", "type": "string", "format": "uuid"}, "project_id": {"title": "Project Id", "type": "string", "format": "uuid"}, "x": {"title": "X", "type": "integer"}, "y": {"title": "Y", "type": "integer"}, "z": {"title": "Z", "type": "integer"}, "locked": {"title": "Locked", "type": "boolean"}, "rotation": {"title": "Rotation", "maximum": 360.0, "minimum": -359.0, "type": "integer"}, "svg": {"title": "Svg", "type": "string"}}, "description": "Drawing data."}, "Engine": {"title": "Engine", "enum": ["vmware", "virtualbox", "hyper-v", "none"], "type": "string", "description": "\"The engine to use for the GNS3 VM."}, "ErrorMessage": {"title": "ErrorMessage", "required": ["message"], "type": "object", "properties": {"message": {"title": "Message", "type": "string"}}, "description": "Error message."}, "GNS3VM": {"title": "GNS3VM", "type": "object", "properties": {"enable": {"title": "Enable", "type": "boolean", "description": "Enable/disable the GNS3 VM"}, "vmname": {"title": "Vmname", "type": "string", "description": "GNS3 VM name"}, "when_exit": {"allOf": [{"$ref": "#/components/schemas/WhenExit"}], "description": "Action when the GNS3 VM exits"}, "headless": {"title": "Headless", "type": "boolean", "description": "Start the GNS3 VM GUI or not"}, "engine": {"allOf": [{"$ref": "#/components/schemas/Engine"}], "description": "The engine to use for the GNS3 VM"}, "allocate_vcpus_ram": {"title": "Allocate Vcpus Ram", "type": "boolean", "description": "Allocate vCPUS and RAM settings"}, "vcpus": {"title": "Vcpus", "type": "integer", "description": "Number of CPUs to allocate for the GNS3 VM"}, "ram": {"title": "Ram", "type": "integer", "description": "Amount of memory to allocate for the GNS3 VM"}, "port": {"title": "Port", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer"}}, "description": "GNS3 VM data."}, "HTTPMethods": {"title": "HTTPMethods", "enum": ["GET", "HEAD", "POST", "PATCH", "PUT", "DELETE"], "type": "string", "description": "HTTP method type."}, "HTTPValidationError": {"title": "HTTPValidationError", "type": "object", "properties": {"detail": {"title": "Detail", "type": "array", "items": {"$ref": "#/components/schemas/ValidationError"}}}}, "IOULicense": {"title": "IOULicense", "required": ["iourc_content", "license_check"], "type": "object", "properties": {"iourc_content": {"title": "Iourc Content", "type": "string", "description": "Content of iourc file"}, "license_check": {"title": "License Check", "type": "boolean", "description": "Whether the license must be checked or not"}}}, "Image": {"title": "Image", "required": ["filename", "path", "image_type", "image_size", "checksum", "checksum_algorithm"], "type": "object", "properties": {"filename": {"title": "Filename", "type": "string", "description": "Image filename"}, "path": {"title": "Path", "type": "string", "description": "Image path"}, "image_type": {"allOf": [{"$ref": "#/components/schemas/ImageType"}], "description": "Image type"}, "image_size": {"title": "Image Size", "type": "integer", "description": "Image size in bytes"}, "checksum": {"title": "Checksum", "type": "string", "description": "Checksum value"}, "checksum_algorithm": {"title": "Checksum Algorithm", "type": "string", "description": "Checksum algorithm"}, "created_at": {"title": "Created At", "type": "string", "format": "date-time"}, "updated_at": {"title": "Updated At", "type": "string", "format": "date-time"}}, "description": "Common image properties."}, "ImageType": {"title": "ImageType", "enum": ["qemu", "ios", "iou"], "type": "string", "description": "An enumeration."}, "Label": {"title": "Label", "required": ["text"], "type": "object", "properties": {"text": {"title": "Text", "type": "string"}, "style": {"title": "Style", "type": "string", "description": "SVG style attribute. Apply default style if null"}, "x": {"title": "X", "type": "integer", "description": "Relative X position of the label. Center it if null"}, "y": {"title": "Y", "type": "integer", "description": "Relative Y position of the label"}, "rotation": {"title": "Rotation", "maximum": 360.0, "minimum": -359.0, "type": "integer", "description": "Rotation of the label"}}, "description": "Label data."}, "Link": {"title": "Link", "required": ["link_id"], "type": "object", "properties": {"nodes": {"title": "Nodes", "maxItems": 2, "minItems": 0, "type": "array", "items": {"$ref": "#/components/schemas/LinkNode"}}, "suspend": {"title": "Suspend", "type": "boolean"}, "link_style": {"$ref": "#/components/schemas/LinkStyle"}, "filters": {"title": "Filters", "type": "object"}, "link_id": {"title": "Link Id", "type": "string", "format": "uuid"}, "project_id": {"title": "Project Id", "type": "string", "format": "uuid"}, "link_type": {"$ref": "#/components/schemas/gns3server__schemas__controller__links__LinkType"}, "capturing": {"title": "Capturing", "type": "boolean", "description": "Read only property. True if a capture running on the link"}, "capture_file_name": {"title": "Capture File Name", "type": "string", "description": "Read only property. The name of the capture file if a capture is running"}, "capture_file_path": {"title": "Capture File Path", "type": "string", "description": "Read only property. The full path of the capture file if a capture is running"}, "capture_compute_id": {"title": "Capture Compute Id", "type": "string", "description": "Read only property. The compute identifier where a capture is running"}}, "description": "Link data."}, "LinkCreate": {"title": "LinkCreate", "required": ["nodes"], "type": "object", "properties": {"nodes": {"title": "Nodes", "maxItems": 2, "minItems": 2, "type": "array", "items": {"$ref": "#/components/schemas/LinkNode"}}, "suspend": {"title": "Suspend", "type": "boolean"}, "link_style": {"$ref": "#/components/schemas/LinkStyle"}, "filters": {"title": "Filters", "type": "object"}, "link_id": {"title": "Link Id", "type": "string", "format": "uuid"}}, "description": "Link data."}, "LinkNode": {"title": "LinkNode", "required": ["node_id", "adapter_number", "port_number"], "type": "object", "properties": {"node_id": {"title": "Node Id", "type": "string", "format": "uuid"}, "adapter_number": {"title": "Adapter Number", "type": "integer"}, "port_number": {"title": "Port Number", "type": "integer"}, "label": {"$ref": "#/components/schemas/Label"}}, "description": "Link node data."}, "LinkStyle": {"title": "LinkStyle", "type": "object", "properties": {"color": {"title": "Color", "type": "string"}, "width": {"title": "Width", "type": "integer"}, "type": {"title": "Type", "type": "integer"}}}, "LinkUpdate": {"title": "LinkUpdate", "type": "object", "properties": {"nodes": {"title": "Nodes", "maxItems": 2, "minItems": 0, "type": "array", "items": {"$ref": "#/components/schemas/LinkNode"}}, "suspend": {"title": "Suspend", "type": "boolean"}, "link_style": {"$ref": "#/components/schemas/LinkStyle"}, "filters": {"title": "Filters", "type": "object"}}, "description": "Link data."}, "LoggedInUserUpdate": {"title": "LoggedInUserUpdate", "type": "object", "properties": {"password": {"title": "Password", "maxLength": 100, "minLength": 6, "type": "string", "format": "password", "writeOnly": true}, "email": {"title": "Email", "type": "string", "format": "email"}, "full_name": {"title": "Full Name", "type": "string"}}, "description": "Properties to update a logged in user."}, "Node": {"title": "Node", "required": ["compute_id", "name", "node_type"], "type": "object", "properties": {"compute_id": {"title": "Compute Id", "anyOf": [{"type": "string", "format": "uuid"}, {"type": "string"}]}, "name": {"title": "Name", "type": "string"}, "node_type": {"$ref": "#/components/schemas/NodeType"}, "node_id": {"title": "Node Id", "type": "string", "format": "uuid"}, "console": {"title": "Console", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer", "description": "Console TCP port"}, "console_type": {"$ref": "#/components/schemas/ConsoleType"}, "console_auto_start": {"title": "Console Auto Start", "type": "boolean", "description": "Automatically start the console when the node has started", "default": false}, "aux": {"title": "Aux", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer", "description": "Auxiliary console TCP port"}, "aux_type": {"$ref": "#/components/schemas/ConsoleType"}, "properties": {"title": "Properties", "type": "object", "description": "Properties specific to an emulator"}, "label": {"$ref": "#/components/schemas/Label"}, "symbol": {"title": "Symbol", "type": "string"}, "x": {"title": "X", "type": "integer", "default": 0}, "y": {"title": "Y", "type": "integer", "default": 0}, "z": {"title": "Z", "type": "integer", "default": 1}, "locked": {"title": "Locked", "type": "boolean", "description": "Whether the element locked or not", "default": false}, "port_name_format": {"title": "Port Name Format", "type": "string", "descript_port_name_formation": "Formatting for port name {0} will be replace by port number"}, "port_segment_size": {"title": "Port Segment Size", "type": "integer", "description": "Size of the port segment"}, "first_port_name": {"title": "First Port Name", "type": "string", "description": "Name of the first port"}, "custom_adapters": {"title": "Custom Adapters", "type": "array", "items": {"$ref": "#/components/schemas/CustomAdapter"}}, "template_id": {"title": "Template Id", "type": "string", "description": "Template UUID from which the node has been created. Read only", "format": "uuid"}, "project_id": {"title": "Project Id", "type": "string", "format": "uuid"}, "node_directory": {"title": "Node Directory", "type": "string", "description": "Working directory of the node. Read only"}, "status": {"allOf": [{"$ref": "#/components/schemas/NodeStatus"}], "description": "Node status. Read only"}, "command_line": {"title": "Command Line", "type": "string", "description": "Command line use to start the node. Read only"}, "width": {"title": "Width", "type": "integer", "description": "Width of the node. Read only"}, "height": {"title": "Height", "type": "integer", "description": "Height of the node. Read only"}, "ports": {"title": "Ports", "type": "array", "items": {"$ref": "#/components/schemas/NodePort"}, "description": "List of node ports. Read only"}, "console_host": {"title": "Console Host", "type": "string", "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"}}, "description": "Node data."}, "NodeCreate": {"title": "NodeCreate", "required": ["compute_id", "name", "node_type"], "type": "object", "properties": {"compute_id": {"title": "Compute Id", "anyOf": [{"type": "string", "format": "uuid"}, {"type": "string"}]}, "name": {"title": "Name", "type": "string"}, "node_type": {"$ref": "#/components/schemas/NodeType"}, "node_id": {"title": "Node Id", "type": "string", "format": "uuid"}, "console": {"title": "Console", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer", "description": "Console TCP port"}, "console_type": {"$ref": "#/components/schemas/ConsoleType"}, "console_auto_start": {"title": "Console Auto Start", "type": "boolean", "description": "Automatically start the console when the node has started", "default": false}, "aux": {"title": "Aux", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer", "description": "Auxiliary console TCP port"}, "aux_type": {"$ref": "#/components/schemas/ConsoleType"}, "properties": {"title": "Properties", "type": "object", "description": "Properties specific to an emulator"}, "label": {"$ref": "#/components/schemas/Label"}, "symbol": {"title": "Symbol", "type": "string"}, "x": {"title": "X", "type": "integer", "default": 0}, "y": {"title": "Y", "type": "integer", "default": 0}, "z": {"title": "Z", "type": "integer", "default": 1}, "locked": {"title": "Locked", "type": "boolean", "description": "Whether the element locked or not", "default": false}, "port_name_format": {"title": "Port Name Format", "type": "string", "descript_port_name_formation": "Formatting for port name {0} will be replace by port number"}, "port_segment_size": {"title": "Port Segment Size", "type": "integer", "description": "Size of the port segment"}, "first_port_name": {"title": "First Port Name", "type": "string", "description": "Name of the first port"}, "custom_adapters": {"title": "Custom Adapters", "type": "array", "items": {"$ref": "#/components/schemas/CustomAdapter"}}}, "description": "Node data."}, "NodeDuplicate": {"title": "NodeDuplicate", "required": ["x", "y"], "type": "object", "properties": {"x": {"title": "X", "type": "integer"}, "y": {"title": "Y", "type": "integer"}, "z": {"title": "Z", "type": "integer", "default": 0}}, "description": "Data to duplicate a node."}, "NodePort": {"title": "NodePort", "required": ["name", "short_name", "adapter_number", "port_number", "link_type", "data_link_types"], "type": "object", "properties": {"name": {"title": "Name", "type": "string", "description": "Port name"}, "short_name": {"title": "Short Name", "type": "string", "description": "Port name"}, "adapter_number": {"title": "Adapter Number", "type": "integer", "description": "Adapter slot"}, "adapter_type": {"title": "Adapter Type", "type": "string", "description": "Adapter type"}, "port_number": {"title": "Port Number", "type": "integer", "description": "Port slot"}, "link_type": {"allOf": [{"$ref": "#/components/schemas/gns3server__schemas__controller__nodes__LinkType"}], "description": "Type of link"}, "data_link_types": {"title": "Data Link Types", "type": "object", "description": "Available PCAP types for capture"}, "mac_address": {"title": "Mac Address", "pattern": "^([0-9a-fA-F]{2}[:]){5}([0-9a-fA-F]{2})$", "type": "string"}}, "description": "Node port data."}, "NodeStatus": {"title": "NodeStatus", "enum": ["stopped", "started", "suspended"], "type": "string", "description": "Supported node statuses."}, "NodeType": {"title": "NodeType", "enum": ["cloud", "nat", "ethernet_hub", "ethernet_switch", "frame_relay_switch", "atm_switch", "docker", "dynamips", "vpcs", "virtualbox", "vmware", "iou", "qemu"], "type": "string", "description": "Supported node types."}, "NodeUpdate": {"title": "NodeUpdate", "type": "object", "properties": {"compute_id": {"title": "Compute Id", "anyOf": [{"type": "string", "format": "uuid"}, {"type": "string"}]}, "name": {"title": "Name", "type": "string"}, "node_type": {"$ref": "#/components/schemas/NodeType"}, "node_id": {"title": "Node Id", "type": "string", "format": "uuid"}, "console": {"title": "Console", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer", "description": "Console TCP port"}, "console_type": {"$ref": "#/components/schemas/ConsoleType"}, "console_auto_start": {"title": "Console Auto Start", "type": "boolean", "description": "Automatically start the console when the node has started", "default": false}, "aux": {"title": "Aux", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer", "description": "Auxiliary console TCP port"}, "aux_type": {"$ref": "#/components/schemas/ConsoleType"}, "properties": {"title": "Properties", "type": "object", "description": "Properties specific to an emulator"}, "label": {"$ref": "#/components/schemas/Label"}, "symbol": {"title": "Symbol", "type": "string"}, "x": {"title": "X", "type": "integer", "default": 0}, "y": {"title": "Y", "type": "integer", "default": 0}, "z": {"title": "Z", "type": "integer", "default": 1}, "locked": {"title": "Locked", "type": "boolean", "description": "Whether the element locked or not", "default": false}, "port_name_format": {"title": "Port Name Format", "type": "string", "descript_port_name_formation": "Formatting for port name {0} will be replace by port number"}, "port_segment_size": {"title": "Port Segment Size", "type": "integer", "description": "Size of the port segment"}, "first_port_name": {"title": "First Port Name", "type": "string", "description": "Name of the first port"}, "custom_adapters": {"title": "Custom Adapters", "type": "array", "items": {"$ref": "#/components/schemas/CustomAdapter"}}}, "description": "Data to update a node."}, "Permission": {"title": "Permission", "required": ["methods", "path", "action", "permission_id"], "type": "object", "properties": {"methods": {"type": "array", "items": {"$ref": "#/components/schemas/HTTPMethods"}}, "path": {"title": "Path", "type": "string"}, "action": {"$ref": "#/components/schemas/PermissionAction"}, "description": {"title": "Description", "type": "string"}, "created_at": {"title": "Created At", "type": "string", "format": "date-time"}, "updated_at": {"title": "Updated At", "type": "string", "format": "date-time"}, "permission_id": {"title": "Permission Id", "type": "string", "format": "uuid"}}, "description": "Common permission properties."}, "PermissionAction": {"title": "PermissionAction", "enum": ["ALLOW", "DENY"], "type": "string", "description": "Action to perform when permission is matched."}, "PermissionCreate": {"title": "PermissionCreate", "required": ["methods", "path", "action"], "type": "object", "properties": {"methods": {"type": "array", "items": {"$ref": "#/components/schemas/HTTPMethods"}}, "path": {"title": "Path", "type": "string"}, "action": {"$ref": "#/components/schemas/PermissionAction"}, "description": {"title": "Description", "type": "string"}}, "description": "Properties to create a permission."}, "PermissionUpdate": {"title": "PermissionUpdate", "required": ["methods", "path", "action"], "type": "object", "properties": {"methods": {"type": "array", "items": {"$ref": "#/components/schemas/HTTPMethods"}}, "path": {"title": "Path", "type": "string"}, "action": {"$ref": "#/components/schemas/PermissionAction"}, "description": {"title": "Description", "type": "string"}}, "description": "Properties to update a role."}, "Project": {"title": "Project", "required": ["project_id"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "project_id": {"title": "Project Id", "type": "string", "format": "uuid"}, "path": {"title": "Path", "type": "string", "description": "Project directory"}, "auto_close": {"title": "Auto Close", "type": "boolean", "description": "Close project when last client leaves"}, "auto_open": {"title": "Auto Open", "type": "boolean", "description": "Project opens when GNS3 starts"}, "auto_start": {"title": "Auto Start", "type": "boolean", "description": "Project starts when opened"}, "scene_height": {"title": "Scene Height", "type": "integer", "description": "Height of the drawing area"}, "scene_width": {"title": "Scene Width", "type": "integer", "description": "Width of the drawing area"}, "zoom": {"title": "Zoom", "type": "integer", "description": "Zoom of the drawing area"}, "show_layers": {"title": "Show Layers", "type": "boolean", "description": "Show layers on the drawing area"}, "snap_to_grid": {"title": "Snap To Grid", "type": "boolean", "description": "Snap to grid on the drawing area"}, "show_grid": {"title": "Show Grid", "type": "boolean", "description": "Show the grid on the drawing area"}, "grid_size": {"title": "Grid Size", "type": "integer", "description": "Grid size for the drawing area for nodes"}, "drawing_grid_size": {"title": "Drawing Grid Size", "type": "integer", "description": "Grid size for the drawing area for drawings"}, "show_interface_labels": {"title": "Show Interface Labels", "type": "boolean", "description": "Show interface labels on the drawing area"}, "supplier": {"title": "Supplier", "allOf": [{"$ref": "#/components/schemas/Supplier"}], "description": "Supplier of the project"}, "variables": {"title": "Variables", "type": "array", "items": {"$ref": "#/components/schemas/Variable"}, "description": "Variables required to run the project"}, "status": {"$ref": "#/components/schemas/ProjectStatus"}, "filename": {"title": "Filename", "type": "string"}}, "description": "Common properties for projects."}, "ProjectCompression": {"title": "ProjectCompression", "enum": ["none", "zip", "bzip2", "lzma", "zstd"], "type": "string", "description": "Supported project compression."}, "ProjectCreate": {"title": "ProjectCreate", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "project_id": {"title": "Project Id", "type": "string", "format": "uuid"}, "path": {"title": "Path", "type": "string", "description": "Project directory"}, "auto_close": {"title": "Auto Close", "type": "boolean", "description": "Close project when last client leaves"}, "auto_open": {"title": "Auto Open", "type": "boolean", "description": "Project opens when GNS3 starts"}, "auto_start": {"title": "Auto Start", "type": "boolean", "description": "Project starts when opened"}, "scene_height": {"title": "Scene Height", "type": "integer", "description": "Height of the drawing area"}, "scene_width": {"title": "Scene Width", "type": "integer", "description": "Width of the drawing area"}, "zoom": {"title": "Zoom", "type": "integer", "description": "Zoom of the drawing area"}, "show_layers": {"title": "Show Layers", "type": "boolean", "description": "Show layers on the drawing area"}, "snap_to_grid": {"title": "Snap To Grid", "type": "boolean", "description": "Snap to grid on the drawing area"}, "show_grid": {"title": "Show Grid", "type": "boolean", "description": "Show the grid on the drawing area"}, "grid_size": {"title": "Grid Size", "type": "integer", "description": "Grid size for the drawing area for nodes"}, "drawing_grid_size": {"title": "Drawing Grid Size", "type": "integer", "description": "Grid size for the drawing area for drawings"}, "show_interface_labels": {"title": "Show Interface Labels", "type": "boolean", "description": "Show interface labels on the drawing area"}, "supplier": {"title": "Supplier", "allOf": [{"$ref": "#/components/schemas/Supplier"}], "description": "Supplier of the project"}, "variables": {"title": "Variables", "type": "array", "items": {"$ref": "#/components/schemas/Variable"}, "description": "Variables required to run the project"}}, "description": "Properties for project creation."}, "ProjectDuplicate": {"title": "ProjectDuplicate", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "project_id": {"title": "Project Id", "type": "string", "format": "uuid"}, "path": {"title": "Path", "type": "string", "description": "Project directory"}, "auto_close": {"title": "Auto Close", "type": "boolean", "description": "Close project when last client leaves"}, "auto_open": {"title": "Auto Open", "type": "boolean", "description": "Project opens when GNS3 starts"}, "auto_start": {"title": "Auto Start", "type": "boolean", "description": "Project starts when opened"}, "scene_height": {"title": "Scene Height", "type": "integer", "description": "Height of the drawing area"}, "scene_width": {"title": "Scene Width", "type": "integer", "description": "Width of the drawing area"}, "zoom": {"title": "Zoom", "type": "integer", "description": "Zoom of the drawing area"}, "show_layers": {"title": "Show Layers", "type": "boolean", "description": "Show layers on the drawing area"}, "snap_to_grid": {"title": "Snap To Grid", "type": "boolean", "description": "Snap to grid on the drawing area"}, "show_grid": {"title": "Show Grid", "type": "boolean", "description": "Show the grid on the drawing area"}, "grid_size": {"title": "Grid Size", "type": "integer", "description": "Grid size for the drawing area for nodes"}, "drawing_grid_size": {"title": "Drawing Grid Size", "type": "integer", "description": "Grid size for the drawing area for drawings"}, "show_interface_labels": {"title": "Show Interface Labels", "type": "boolean", "description": "Show interface labels on the drawing area"}, "supplier": {"title": "Supplier", "allOf": [{"$ref": "#/components/schemas/Supplier"}], "description": "Supplier of the project"}, "variables": {"title": "Variables", "type": "array", "items": {"$ref": "#/components/schemas/Variable"}, "description": "Variables required to run the project"}, "reset_mac_addresses": {"title": "Reset Mac Addresses", "type": "boolean", "description": "Reset MAC addresses for this project", "default": false}}, "description": "Properties for project duplication."}, "ProjectStatus": {"title": "ProjectStatus", "enum": ["opened", "closed"], "type": "string", "description": "Supported project statuses."}, "ProjectUpdate": {"title": "ProjectUpdate", "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "project_id": {"title": "Project Id", "type": "string", "format": "uuid"}, "path": {"title": "Path", "type": "string", "description": "Project directory"}, "auto_close": {"title": "Auto Close", "type": "boolean", "description": "Close project when last client leaves"}, "auto_open": {"title": "Auto Open", "type": "boolean", "description": "Project opens when GNS3 starts"}, "auto_start": {"title": "Auto Start", "type": "boolean", "description": "Project starts when opened"}, "scene_height": {"title": "Scene Height", "type": "integer", "description": "Height of the drawing area"}, "scene_width": {"title": "Scene Width", "type": "integer", "description": "Width of the drawing area"}, "zoom": {"title": "Zoom", "type": "integer", "description": "Zoom of the drawing area"}, "show_layers": {"title": "Show Layers", "type": "boolean", "description": "Show layers on the drawing area"}, "snap_to_grid": {"title": "Snap To Grid", "type": "boolean", "description": "Snap to grid on the drawing area"}, "show_grid": {"title": "Show Grid", "type": "boolean", "description": "Show the grid on the drawing area"}, "grid_size": {"title": "Grid Size", "type": "integer", "description": "Grid size for the drawing area for nodes"}, "drawing_grid_size": {"title": "Drawing Grid Size", "type": "integer", "description": "Grid size for the drawing area for drawings"}, "show_interface_labels": {"title": "Show Interface Labels", "type": "boolean", "description": "Show interface labels on the drawing area"}, "supplier": {"title": "Supplier", "allOf": [{"$ref": "#/components/schemas/Supplier"}], "description": "Supplier of the project"}, "variables": {"title": "Variables", "type": "array", "items": {"$ref": "#/components/schemas/Variable"}, "description": "Variables required to run the project"}}, "description": "Properties for project update."}, "Protocol": {"title": "Protocol", "enum": ["http", "https"], "type": "string", "description": "Protocol supported to communicate with a compute."}, "QemuDiskImageAdapterType": {"title": "QemuDiskImageAdapterType", "enum": ["ide", "lsilogic", "buslogic", "legacyESX"], "type": "string", "description": "Supported Qemu disk image on/off options."}, "QemuDiskImageCreate": {"title": "QemuDiskImageCreate", "required": ["format", "size"], "type": "object", "properties": {"format": {"allOf": [{"$ref": "#/components/schemas/QemuDiskImageFormat"}], "description": "Image format type"}, "size": {"title": "Size", "type": "integer", "description": "Image size in Megabytes"}, "preallocation": {"$ref": "#/components/schemas/QemuDiskImagePreallocation"}, "cluster_size": {"title": "Cluster Size", "type": "integer"}, "refcount_bits": {"title": "Refcount Bits", "type": "integer"}, "lazy_refcounts": {"$ref": "#/components/schemas/QemuDiskImageOnOff"}, "subformat": {"$ref": "#/components/schemas/QemuDiskImageSubformat"}, "static": {"$ref": "#/components/schemas/QemuDiskImageOnOff"}, "zeroed_grain": {"$ref": "#/components/schemas/QemuDiskImageOnOff"}, "adapter_type": {"$ref": "#/components/schemas/QemuDiskImageAdapterType"}}}, "QemuDiskImageFormat": {"title": "QemuDiskImageFormat", "enum": ["qcow2", "qcow", "vpc", "vdi", "vdmk", "raw"], "type": "string", "description": "Supported Qemu disk image formats."}, "QemuDiskImageOnOff": {"title": "QemuDiskImageOnOff", "enum": ["on", "off"], "type": "string", "description": "Supported Qemu image on/off options."}, "QemuDiskImagePreallocation": {"title": "QemuDiskImagePreallocation", "enum": ["off", "metadata", "falloc", "full"], "type": "string", "description": "Supported Qemu disk image pre-allocation options."}, "QemuDiskImageSubformat": {"title": "QemuDiskImageSubformat", "enum": ["dynamic", "fixed", "streamOptimized", "twoGbMaxExtentSparse", "twoGbMaxExtentFlat", "monolithicSparse", "monolithicFlat"], "type": "string", "description": "Supported Qemu disk image sub-format options."}, "QemuDiskImageUpdate": {"title": "QemuDiskImageUpdate", "type": "object", "properties": {"format": {"allOf": [{"$ref": "#/components/schemas/QemuDiskImageFormat"}], "description": "Image format type"}, "size": {"title": "Size", "type": "integer", "description": "Image size in Megabytes"}, "preallocation": {"$ref": "#/components/schemas/QemuDiskImagePreallocation"}, "cluster_size": {"title": "Cluster Size", "type": "integer"}, "refcount_bits": {"title": "Refcount Bits", "type": "integer"}, "lazy_refcounts": {"$ref": "#/components/schemas/QemuDiskImageOnOff"}, "subformat": {"$ref": "#/components/schemas/QemuDiskImageSubformat"}, "static": {"$ref": "#/components/schemas/QemuDiskImageOnOff"}, "zeroed_grain": {"$ref": "#/components/schemas/QemuDiskImageOnOff"}, "adapter_type": {"$ref": "#/components/schemas/QemuDiskImageAdapterType"}, "extend": {"title": "Extend", "type": "integer", "description": "Number of Megabytes to extend the image"}}}, "Role": {"title": "Role", "required": ["role_id", "is_builtin", "permissions"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "description": {"title": "Description", "type": "string"}, "created_at": {"title": "Created At", "type": "string", "format": "date-time"}, "updated_at": {"title": "Updated At", "type": "string", "format": "date-time"}, "role_id": {"title": "Role Id", "type": "string", "format": "uuid"}, "is_builtin": {"title": "Is Builtin", "type": "boolean"}, "permissions": {"title": "Permissions", "type": "array", "items": {"$ref": "#/components/schemas/Permission"}}}, "description": "Common role properties."}, "RoleCreate": {"title": "RoleCreate", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "description": {"title": "Description", "type": "string"}}, "description": "Properties to create a role."}, "RoleUpdate": {"title": "RoleUpdate", "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "description": {"title": "Description", "type": "string"}}, "description": "Properties to update a role."}, "Snapshot": {"title": "Snapshot", "required": ["name", "snapshot_id", "project_id", "created_at"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "snapshot_id": {"title": "Snapshot Id", "type": "string", "format": "uuid"}, "project_id": {"title": "Project Id", "type": "string", "format": "uuid"}, "created_at": {"title": "Created At", "type": "integer", "description": "Date of the snapshot (UTC timestamp)"}}, "description": "Common properties for snapshot."}, "SnapshotCreate": {"title": "SnapshotCreate", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}}, "description": "Properties for snapshot creation."}, "Supplier": {"title": "Supplier", "required": ["logo"], "type": "object", "properties": {"logo": {"title": "Logo", "type": "string", "description": "Path to the project supplier logo"}, "url": {"title": "Url", "maxLength": 2083, "minLength": 1, "type": "string", "description": "URL to the project supplier site", "format": "uri"}}}, "Template": {"title": "Template", "required": ["template_id", "name", "category", "symbol", "builtin", "template_type"], "type": "object", "properties": {"template_id": {"title": "Template Id", "type": "string", "format": "uuid"}, "name": {"title": "Name", "type": "string"}, "version": {"title": "Version", "type": "string"}, "category": {"$ref": "#/components/schemas/Category"}, "default_name_format": {"title": "Default Name Format", "type": "string"}, "symbol": {"title": "Symbol", "type": "string"}, "builtin": {"title": "Builtin", "type": "boolean"}, "template_type": {"$ref": "#/components/schemas/NodeType"}, "compute_id": {"title": "Compute Id", "type": "string"}, "usage": {"title": "Usage", "type": "string", "default": ""}, "created_at": {"title": "Created At", "type": "string", "format": "date-time"}, "updated_at": {"title": "Updated At", "type": "string", "format": "date-time"}}, "description": "Common template properties."}, "TemplateCreate": {"title": "TemplateCreate", "required": ["name", "template_type"], "type": "object", "properties": {"template_id": {"title": "Template Id", "type": "string", "format": "uuid"}, "name": {"title": "Name", "type": "string"}, "version": {"title": "Version", "type": "string"}, "category": {"$ref": "#/components/schemas/Category"}, "default_name_format": {"title": "Default Name Format", "type": "string"}, "symbol": {"title": "Symbol", "type": "string"}, "builtin": {"title": "Builtin", "type": "boolean"}, "template_type": {"$ref": "#/components/schemas/NodeType"}, "compute_id": {"title": "Compute Id", "type": "string"}, "usage": {"title": "Usage", "type": "string", "default": ""}}, "description": "Properties to create a template."}, "TemplateUpdate": {"title": "TemplateUpdate", "type": "object", "properties": {"template_id": {"title": "Template Id", "type": "string", "format": "uuid"}, "name": {"title": "Name", "type": "string"}, "version": {"title": "Version", "type": "string"}, "category": {"$ref": "#/components/schemas/Category"}, "default_name_format": {"title": "Default Name Format", "type": "string"}, "symbol": {"title": "Symbol", "type": "string"}, "builtin": {"title": "Builtin", "type": "boolean"}, "template_type": {"$ref": "#/components/schemas/NodeType"}, "compute_id": {"title": "Compute Id", "type": "string"}, "usage": {"title": "Usage", "type": "string", "default": ""}}, "description": "Common template properties."}, "TemplateUsage": {"title": "TemplateUsage", "required": ["x", "y"], "type": "object", "properties": {"x": {"title": "X", "type": "integer"}, "y": {"title": "Y", "type": "integer"}, "name": {"title": "Name", "type": "string", "description": "Use this name to create a new node"}, "compute_id": {"title": "Compute Id", "type": "string", "description": "Used if the template doesn't have a default compute"}}}, "Token": {"title": "Token", "required": ["access_token", "token_type"], "type": "object", "properties": {"access_token": {"title": "Access Token", "type": "string"}, "token_type": {"title": "Token Type", "type": "string"}}}, "User": {"title": "User", "required": ["user_id"], "type": "object", "properties": {"username": {"title": "Username", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$", "type": "string"}, "is_active": {"title": "Is Active", "type": "boolean", "default": true}, "email": {"title": "Email", "type": "string", "format": "email"}, "full_name": {"title": "Full Name", "type": "string"}, "created_at": {"title": "Created At", "type": "string", "format": "date-time"}, "updated_at": {"title": "Updated At", "type": "string", "format": "date-time"}, "user_id": {"title": "User Id", "type": "string", "format": "uuid"}, "last_login": {"title": "Last Login", "type": "string", "format": "date-time"}, "is_superadmin": {"title": "Is Superadmin", "type": "boolean", "default": false}}, "description": "Common user properties."}, "UserCreate": {"title": "UserCreate", "required": ["username", "password"], "type": "object", "properties": {"username": {"title": "Username", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$", "type": "string"}, "is_active": {"title": "Is Active", "type": "boolean", "default": true}, "email": {"title": "Email", "type": "string", "format": "email"}, "full_name": {"title": "Full Name", "type": "string"}, "password": {"title": "Password", "maxLength": 100, "minLength": 6, "type": "string", "format": "password", "writeOnly": true}}, "description": "Properties to create an user."}, "UserGroup": {"title": "UserGroup", "required": ["user_group_id", "is_builtin"], "type": "object", "properties": {"name": {"title": "Name", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$", "type": "string"}, "created_at": {"title": "Created At", "type": "string", "format": "date-time"}, "updated_at": {"title": "Updated At", "type": "string", "format": "date-time"}, "user_group_id": {"title": "User Group Id", "type": "string", "format": "uuid"}, "is_builtin": {"title": "Is Builtin", "type": "boolean"}}, "description": "Common user group properties."}, "UserGroupCreate": {"title": "UserGroupCreate", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$", "type": "string"}}, "description": "Properties to create an user group."}, "UserGroupUpdate": {"title": "UserGroupUpdate", "type": "object", "properties": {"name": {"title": "Name", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$", "type": "string"}}, "description": "Properties to update an user group."}, "UserUpdate": {"title": "UserUpdate", "type": "object", "properties": {"username": {"title": "Username", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$", "type": "string"}, "is_active": {"title": "Is Active", "type": "boolean", "default": true}, "email": {"title": "Email", "type": "string", "format": "email"}, "full_name": {"title": "Full Name", "type": "string"}, "password": {"title": "Password", "maxLength": 100, "minLength": 6, "type": "string", "format": "password", "writeOnly": true}}, "description": "Properties to update an user."}, "ValidationError": {"title": "ValidationError", "required": ["loc", "msg", "type"], "type": "object", "properties": {"loc": {"title": "Location", "type": "array", "items": {"anyOf": [{"type": "string"}, {"type": "integer"}]}}, "msg": {"title": "Message", "type": "string"}, "type": {"title": "Error Type", "type": "string"}}}, "Variable": {"title": "Variable", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "type": "string", "description": "Variable name"}, "value": {"title": "Value", "type": "string", "description": "Variable value"}}}, "Version": {"title": "Version", "required": ["version"], "type": "object", "properties": {"controller_host": {"title": "Controller Host", "type": "string", "description": "Controller hostname or IP address"}, "version": {"title": "Version", "type": "string", "description": "Version number"}, "local": {"title": "Local", "type": "boolean", "description": "Whether this is a local server or not"}}}, "WhenExit": {"title": "WhenExit", "enum": ["stop", "suspend", "keep"], "type": "string", "description": "What to do with the VM when GNS3 VM exits."}, "gns3server__schemas__controller__links__LinkType": {"title": "LinkType", "enum": ["ethernet", "serial"], "type": "string", "description": "Link type."}, "gns3server__schemas__controller__nodes__LinkType": {"title": "LinkType", "enum": ["ethernet", "serial"], "type": "string", "description": "Supported link types."}}, "securitySchemes": {"OAuth2PasswordBearer": {"type": "oauth2", "flows": {"password": {"scopes": {}, "tokenUrl": "/v3/users/login"}}}}}} \ No newline at end of file +{"openapi": "3.0.2", "info": {"title": "GNS3 controller API", "description": "This page describes the public controller API for GNS3", "version": "v3"}, "paths": {"/": {"get": {"tags": ["Index"], "summary": "Root", "operationId": "root__get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}}, "/debug": {"get": {"tags": ["Index"], "summary": "Debug", "operationId": "debug_debug_get", "responses": {"200": {"description": "Successful Response", "content": {"text/html": {"schema": {"type": "string"}}}}}, "deprecated": true}}, "/static/web-ui/{file_path}": {"get": {"tags": ["Index"], "summary": "Web Ui", "description": "Web user interface", "operationId": "web_ui_static_web_ui__file_path__get", "parameters": [{"required": true, "schema": {"title": "File Path", "type": "string"}, "name": "file_path", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/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": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/users/login": {"post": {"tags": ["Users"], "summary": "Login", "description": "Default user login method using forms (x-www-form-urlencoded).\nExample: curl http://host:port/v3/users/login -H \"Content-Type: application/x-www-form-urlencoded\" -d \"username=admin&password=admin\"", "operationId": "login_v3_users_login_post", "requestBody": {"content": {"application/x-www-form-urlencoded": {"schema": {"$ref": "#/components/schemas/Body_login_v3_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/users/authenticate": {"post": {"tags": ["Users"], "summary": "Authenticate", "description": "Alternative authentication method using json.\nExample: curl http://host:port/v3/users/authenticate -d '{\"username\": \"admin\", \"password\": \"admin\"}' -H \"Content-Type: application/json\"", "operationId": "authenticate_v3_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/users/me": {"get": {"tags": ["Users"], "summary": "Get Logged In User", "description": "Get the current active user.", "operationId": "get_logged_in_user_v3_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_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/users": {"get": {"tags": ["Users"], "summary": "Get Users", "description": "Get all users.", "operationId": "get_users_v3_users_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Users V3 Users Get", "type": "array", "items": {"$ref": "#/components/schemas/User"}}}}}, "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.", "operationId": "create_user_v3_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/users/{user_id}": {"get": {"tags": ["Users"], "summary": "Get User", "description": "Get an user.", "operationId": "get_user_v3_users__user_id__get", "parameters": [{"required": true, "schema": {"title": "User Id", "type": "string", "format": "uuid"}, "name": "user_id", "in": "path"}], "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 User", "description": "Update an user.", "operationId": "update_user_v3_users__user_id__put", "parameters": [{"required": true, "schema": {"title": "User Id", "type": "string", "format": "uuid"}, "name": "user_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserUpdate"}}}, "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": []}]}, "delete": {"tags": ["Users"], "summary": "Delete User", "description": "Delete an user.", "operationId": "delete_user_v3_users__user_id__delete", "parameters": [{"required": true, "schema": {"title": "User Id", "type": "string", "format": "uuid"}, "name": "user_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/users/{user_id}/groups": {"get": {"tags": ["Users"], "summary": "Get User Memberships", "description": "Get user memberships.", "operationId": "get_user_memberships_v3_users__user_id__groups_get", "parameters": [{"required": true, "schema": {"title": "User Id", "type": "string", "format": "uuid"}, "name": "user_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get User Memberships V3 Users User Id Groups Get", "type": "array", "items": {"$ref": "#/components/schemas/UserGroup"}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/users/{user_id}/permissions": {"get": {"tags": ["Users"], "summary": "Get User Permissions", "description": "Get user permissions.", "operationId": "get_user_permissions_v3_users__user_id__permissions_get", "parameters": [{"required": true, "schema": {"title": "User Id", "type": "string", "format": "uuid"}, "name": "user_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get User Permissions V3 Users User Id Permissions Get", "type": "array", "items": {"$ref": "#/components/schemas/Permission"}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/users/{user_id}/permissions/{permission_id}": {"put": {"tags": ["Users"], "summary": "Add Permission To User", "description": "Add a permission to an user.", "operationId": "add_permission_to_user_v3_users__user_id__permissions__permission_id__put", "parameters": [{"required": true, "schema": {"title": "User Id", "type": "string", "format": "uuid"}, "name": "user_id", "in": "path"}, {"required": true, "schema": {"title": "Permission Id", "type": "string", "format": "uuid"}, "name": "permission_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Users"], "summary": "Remove Permission From User", "description": "Remove permission from an user.", "operationId": "remove_permission_from_user_v3_users__user_id__permissions__permission_id__delete", "parameters": [{"required": true, "schema": {"title": "User Id", "type": "string", "format": "uuid"}, "name": "user_id", "in": "path"}, {"required": true, "schema": {"title": "Permission Id", "type": "string", "format": "uuid"}, "name": "permission_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/groups": {"get": {"tags": ["Users groups"], "summary": "Get User Groups", "description": "Get all user groups.", "operationId": "get_user_groups_v3_groups_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get User Groups V3 Groups Get", "type": "array", "items": {"$ref": "#/components/schemas/UserGroup"}}}}}, "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.", "operationId": "create_user_group_v3_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/groups/{user_group_id}": {"get": {"tags": ["Users groups"], "summary": "Get User Group", "description": "Get an user group.", "operationId": "get_user_group_v3_groups__user_group_id__get", "parameters": [{"required": true, "schema": {"title": "User Group Id", "type": "string", "format": "uuid"}, "name": "user_group_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Users groups"], "summary": "Update User Group", "description": "Update an user group.", "operationId": "update_user_group_v3_groups__user_group_id__put", "parameters": [{"required": true, "schema": {"title": "User Group Id", "type": "string", "format": "uuid"}, "name": "user_group_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserGroupUpdate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Users groups"], "summary": "Delete User Group", "description": "Delete an user group", "operationId": "delete_user_group_v3_groups__user_group_id__delete", "parameters": [{"required": true, "schema": {"title": "User Group Id", "type": "string", "format": "uuid"}, "name": "user_group_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/groups/{user_group_id}/members": {"get": {"tags": ["Users groups"], "summary": "Get User Group Members", "description": "Get all user group members.", "operationId": "get_user_group_members_v3_groups__user_group_id__members_get", "parameters": [{"required": true, "schema": {"title": "User Group Id", "type": "string", "format": "uuid"}, "name": "user_group_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get User Group Members V3 Groups User Group Id Members Get", "type": "array", "items": {"$ref": "#/components/schemas/User"}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/groups/{user_group_id}/members/{user_id}": {"put": {"tags": ["Users groups"], "summary": "Add Member To Group", "description": "Add member to an user group.", "operationId": "add_member_to_group_v3_groups__user_group_id__members__user_id__put", "parameters": [{"required": true, "schema": {"title": "User Group Id", "type": "string", "format": "uuid"}, "name": "user_group_id", "in": "path"}, {"required": true, "schema": {"title": "User Id", "type": "string", "format": "uuid"}, "name": "user_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Users groups"], "summary": "Remove Member From Group", "description": "Remove member from an user group.", "operationId": "remove_member_from_group_v3_groups__user_group_id__members__user_id__delete", "parameters": [{"required": true, "schema": {"title": "User Group Id", "type": "string", "format": "uuid"}, "name": "user_group_id", "in": "path"}, {"required": true, "schema": {"title": "User Id", "type": "string", "format": "uuid"}, "name": "user_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/groups/{user_group_id}/roles": {"get": {"tags": ["Users groups"], "summary": "Get User Group Roles", "description": "Get all user group roles.", "operationId": "get_user_group_roles_v3_groups__user_group_id__roles_get", "parameters": [{"required": true, "schema": {"title": "User Group Id", "type": "string", "format": "uuid"}, "name": "user_group_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get User Group Roles V3 Groups User Group Id Roles Get", "type": "array", "items": {"$ref": "#/components/schemas/Role"}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/groups/{user_group_id}/roles/{role_id}": {"put": {"tags": ["Users groups"], "summary": "Add Role To Group", "description": "Add role to an user group.", "operationId": "add_role_to_group_v3_groups__user_group_id__roles__role_id__put", "parameters": [{"required": true, "schema": {"title": "User Group Id", "type": "string", "format": "uuid"}, "name": "user_group_id", "in": "path"}, {"required": true, "schema": {"title": "Role Id", "type": "string", "format": "uuid"}, "name": "role_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Users groups"], "summary": "Remove Role From Group", "description": "Remove role from an user group.", "operationId": "remove_role_from_group_v3_groups__user_group_id__roles__role_id__delete", "parameters": [{"required": true, "schema": {"title": "User Group Id", "type": "string", "format": "uuid"}, "name": "user_group_id", "in": "path"}, {"required": true, "schema": {"title": "Role Id", "type": "string", "format": "uuid"}, "name": "role_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/roles": {"get": {"tags": ["Roles"], "summary": "Get Roles", "description": "Get all roles.", "operationId": "get_roles_v3_roles_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Roles V3 Roles Get", "type": "array", "items": {"$ref": "#/components/schemas/Role"}}}}}, "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.", "operationId": "create_role_v3_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/roles/{role_id}": {"get": {"tags": ["Roles"], "summary": "Get Role", "description": "Get a role.", "operationId": "get_role_v3_roles__role_id__get", "parameters": [{"required": true, "schema": {"title": "Role Id", "type": "string", "format": "uuid"}, "name": "role_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Roles"], "summary": "Update Role", "description": "Update a role.", "operationId": "update_role_v3_roles__role_id__put", "parameters": [{"required": true, "schema": {"title": "Role Id", "type": "string", "format": "uuid"}, "name": "role_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/RoleUpdate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Roles"], "summary": "Delete Role", "description": "Delete a role.", "operationId": "delete_role_v3_roles__role_id__delete", "parameters": [{"required": true, "schema": {"title": "Role Id", "type": "string", "format": "uuid"}, "name": "role_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/roles/{role_id}/permissions": {"get": {"tags": ["Roles"], "summary": "Get Role Permissions", "description": "Get all role permissions.", "operationId": "get_role_permissions_v3_roles__role_id__permissions_get", "parameters": [{"required": true, "schema": {"title": "Role Id", "type": "string", "format": "uuid"}, "name": "role_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Role Permissions V3 Roles Role Id Permissions Get", "type": "array", "items": {"$ref": "#/components/schemas/Permission"}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/roles/{role_id}/permissions/{permission_id}": {"put": {"tags": ["Roles"], "summary": "Add Permission To Role", "description": "Add a permission to a role.", "operationId": "add_permission_to_role_v3_roles__role_id__permissions__permission_id__put", "parameters": [{"required": true, "schema": {"title": "Role Id", "type": "string", "format": "uuid"}, "name": "role_id", "in": "path"}, {"required": true, "schema": {"title": "Permission Id", "type": "string", "format": "uuid"}, "name": "permission_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Roles"], "summary": "Remove Permission From Role", "description": "Remove member from an user group.", "operationId": "remove_permission_from_role_v3_roles__role_id__permissions__permission_id__delete", "parameters": [{"required": true, "schema": {"title": "Role Id", "type": "string", "format": "uuid"}, "name": "role_id", "in": "path"}, {"required": true, "schema": {"title": "Permission Id", "type": "string", "format": "uuid"}, "name": "permission_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/permissions": {"get": {"tags": ["Permissions"], "summary": "Get Permissions", "description": "Get all permissions.", "operationId": "get_permissions_v3_permissions_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Permissions V3 Permissions Get", "type": "array", "items": {"$ref": "#/components/schemas/Permission"}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Permissions"], "summary": "Create Permission", "description": "Create a new permission.", "operationId": "create_permission_v3_permissions_post", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/PermissionCreate"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Permission"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/permissions/{permission_id}": {"get": {"tags": ["Permissions"], "summary": "Get Permission", "description": "Get a permission.", "operationId": "get_permission_v3_permissions__permission_id__get", "parameters": [{"required": true, "schema": {"title": "Permission Id", "type": "string", "format": "uuid"}, "name": "permission_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Permission"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Permissions"], "summary": "Update Permission", "description": "Update a permission.", "operationId": "update_permission_v3_permissions__permission_id__put", "parameters": [{"required": true, "schema": {"title": "Permission Id", "type": "string", "format": "uuid"}, "name": "permission_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/PermissionUpdate"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Permission"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Permissions"], "summary": "Delete Permission", "description": "Delete a permission.", "operationId": "delete_permission_v3_permissions__permission_id__delete", "parameters": [{"required": true, "schema": {"title": "Permission Id", "type": "string", "format": "uuid"}, "name": "permission_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/permissions/prune": {"post": {"tags": ["Permissions"], "summary": "Prune Permissions", "description": "Prune orphaned permissions.", "operationId": "prune_permissions_v3_permissions_prune_post", "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/images": {"get": {"tags": ["Images"], "summary": "Get Images", "description": "Return all images.", "operationId": "get_images_v3_images_get", "parameters": [{"required": false, "schema": {"$ref": "#/components/schemas/ImageType"}, "name": "image_type", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Images V3 Images Get", "type": "array", "items": {"$ref": "#/components/schemas/Image"}}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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\"", "operationId": "upload_image_v3_images_upload__image_path__post", "parameters": [{"required": true, "schema": {"title": "Image Path", "type": "string"}, "name": "image_path", "in": "path"}, {"required": false, "schema": {"title": "Install Appliances", "type": "boolean", "default": false}, "name": "install_appliances", "in": "query"}, {"required": false, "schema": {"title": "Allow Raw Image", "type": "boolean", "default": false}, "name": "allow_raw_image", "in": "query"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/images/{image_path}": {"get": {"tags": ["Images"], "summary": "Get Image", "description": "Return an image.", "operationId": "get_image_v3_images__image_path__get", "parameters": [{"required": true, "schema": {"title": "Image Path", "type": "string"}, "name": "image_path", "in": "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Images"], "summary": "Delete Image", "description": "Delete an image.", "operationId": "delete_image_v3_images__image_path__delete", "parameters": [{"required": true, "schema": {"title": "Image Path", "type": "string"}, "name": "image_path", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/images/prune": {"post": {"tags": ["Images"], "summary": "Prune Images", "description": "Prune images not attached to any template.", "operationId": "prune_images_v3_images_prune_post", "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/templates": {"get": {"tags": ["Templates"], "summary": "Get Templates", "description": "Return all templates.", "operationId": "get_templates_v3_templates_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Templates V3 Templates Get", "type": "array", "items": {"$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": []}]}, "post": {"tags": ["Templates"], "summary": "Create Template", "description": "Create a new template.", "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.", "operationId": "get_template_v3_templates__template_id__get", "parameters": [{"required": true, "schema": {"title": "Template Id", "type": "string", "format": "uuid"}, "name": "template_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Templates"], "summary": "Update Template", "description": "Update a template.", "operationId": "update_template_v3_templates__template_id__put", "parameters": [{"required": true, "schema": {"title": "Template Id", "type": "string", "format": "uuid"}, "name": "template_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/TemplateUpdate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Templates"], "summary": "Delete Template", "description": "Delete a template.", "operationId": "delete_template_v3_templates__template_id__delete", "parameters": [{"required": true, "schema": {"title": "Template Id", "type": "string", "format": "uuid"}, "name": "template_id", "in": "path"}, {"required": false, "schema": {"title": "Prune Images", "type": "boolean", "default": false}, "name": "prune_images", "in": "query"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/templates/{template_id}/duplicate": {"post": {"tags": ["Templates"], "summary": "Duplicate Template", "description": "Duplicate a template.", "operationId": "duplicate_template_v3_templates__template_id__duplicate_post", "parameters": [{"required": true, "schema": {"title": "Template Id", "type": "string", "format": "uuid"}, "name": "template_id", "in": "path"}], "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/projects": {"get": {"tags": ["Projects"], "summary": "Get Projects", "description": "Return all projects.", "operationId": "get_projects_v3_projects_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Projects V3 Projects Get", "type": "array", "items": {"$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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Projects"], "summary": "Create Project", "description": "Create a new project.", "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.", "operationId": "get_project_v3_projects__project_id__get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Projects"], "summary": "Update Project", "description": "Update a project.", "operationId": "update_project_v3_projects__project_id__put", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProjectUpdate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Projects"], "summary": "Delete Project", "description": "Delete a project.", "operationId": "delete_project_v3_projects__project_id__delete", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/stats": {"get": {"tags": ["Projects"], "summary": "Get Project Stats", "description": "Return a project statistics.", "operationId": "get_project_stats_v3_projects__project_id__stats_get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/close": {"post": {"tags": ["Projects"], "summary": "Close Project", "description": "Close a project.", "operationId": "close_project_v3_projects__project_id__close_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/open": {"post": {"tags": ["Projects"], "summary": "Open Project", "description": "Open a project.", "operationId": "open_project_v3_projects__project_id__open_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/load": {"post": {"tags": ["Projects"], "summary": "Load Project", "description": "Load a project (local server only).", "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.", "operationId": "project_http_notifications_v3_projects__project_id__notifications_get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/export": {"get": {"tags": ["Projects"], "summary": "Export Project", "description": "Export a project as a portable archive.", "operationId": "export_project_v3_projects__project_id__export_get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": false, "schema": {"title": "Include Snapshots", "type": "boolean", "default": false}, "name": "include_snapshots", "in": "query"}, {"required": false, "schema": {"title": "Include Images", "type": "boolean", "default": false}, "name": "include_images", "in": "query"}, {"required": false, "schema": {"title": "Reset Mac Addresses", "type": "boolean", "default": false}, "name": "reset_mac_addresses", "in": "query"}, {"required": false, "schema": {"allOf": [{"$ref": "#/components/schemas/ProjectCompression"}], "default": "zstd"}, "name": "compression", "in": "query"}, {"required": false, "schema": {"title": "Compression Level", "type": "integer"}, "name": "compression_level", "in": "query"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/import": {"post": {"tags": ["Projects"], "summary": "Import Project", "description": "Import a project from a portable archive.", "operationId": "import_project_v3_projects__project_id__import_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": false, "schema": {"title": "Name", "type": "string"}, "name": "name", "in": "query"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/duplicate": {"post": {"tags": ["Projects"], "summary": "Duplicate Project", "description": "Duplicate a project.", "operationId": "duplicate_project_v3_projects__project_id__duplicate_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProjectDuplicate"}}}, "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 duplicate 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}/lock": {"post": {"tags": ["Projects"], "summary": "Lock Project", "description": "Lock all drawings and nodes in a given project.", "operationId": "lock_project_v3_projects__project_id__lock_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/unlock": {"post": {"tags": ["Projects"], "summary": "Unlock Project", "description": "Unlock all drawings and nodes in a given project.", "operationId": "unlock_project_v3_projects__project_id__unlock_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/files/{file_path}": {"get": {"tags": ["Projects"], "summary": "Get File", "description": "Return a file from a project.", "operationId": "get_file_v3_projects__project_id__files__file_path__get", "parameters": [{"required": true, "schema": {"title": "File Path", "type": "string"}, "name": "file_path", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Projects"], "summary": "Write File", "description": "Write a file to a project.", "operationId": "write_file_v3_projects__project_id__files__file_path__post", "parameters": [{"required": true, "schema": {"title": "File Path", "type": "string"}, "name": "file_path", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/templates/{template_id}": {"post": {"tags": ["Projects"], "summary": "Create Node From Template", "description": "Create a new node from a template.", "operationId": "create_node_from_template_v3_projects__project_id__templates__template_id__post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Template Id", "type": "string", "format": "uuid"}, "name": "template_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/TemplateUsage"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes": {"get": {"tags": ["Nodes"], "summary": "Get Nodes", "description": "Return all nodes belonging to a given project.", "operationId": "get_nodes_v3_projects__project_id__nodes_get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Nodes V3 Projects Project Id Nodes Get", "type": "array", "items": {"$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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Nodes"], "summary": "Create Node", "description": "Create a new node.", "operationId": "create_node_v3_projects__project_id__nodes_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/NodeCreate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/start": {"post": {"tags": ["Nodes"], "summary": "Start All Nodes", "description": "Start all nodes belonging to a given project.", "operationId": "start_all_nodes_v3_projects__project_id__nodes_start_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/stop": {"post": {"tags": ["Nodes"], "summary": "Stop All Nodes", "description": "Stop all nodes belonging to a given project.", "operationId": "stop_all_nodes_v3_projects__project_id__nodes_stop_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/suspend": {"post": {"tags": ["Nodes"], "summary": "Suspend All Nodes", "description": "Suspend all nodes belonging to a given project.", "operationId": "suspend_all_nodes_v3_projects__project_id__nodes_suspend_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/reload": {"post": {"tags": ["Nodes"], "summary": "Reload All Nodes", "description": "Reload all nodes belonging to a given project.", "operationId": "reload_all_nodes_v3_projects__project_id__nodes_reload_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}": {"get": {"tags": ["Nodes"], "summary": "Get Node", "description": "Return a node from a given project.", "operationId": "get_node_v3_projects__project_id__nodes__node_id__get", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Nodes"], "summary": "Update Node", "description": "Update a node.", "operationId": "update_node_v3_projects__project_id__nodes__node_id__put", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/NodeUpdate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Nodes"], "summary": "Delete Node", "description": "Delete a node from a project.", "operationId": "delete_node_v3_projects__project_id__nodes__node_id__delete", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/duplicate": {"post": {"tags": ["Nodes"], "summary": "Duplicate Node", "description": "Duplicate a node.", "operationId": "duplicate_node_v3_projects__project_id__nodes__node_id__duplicate_post", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/NodeDuplicate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/start": {"post": {"tags": ["Nodes"], "summary": "Start Node", "description": "Start a node.", "operationId": "start_node_v3_projects__project_id__nodes__node_id__start_post", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Start Data", "type": "object"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/stop": {"post": {"tags": ["Nodes"], "summary": "Stop Node", "description": "Stop a node.", "operationId": "stop_node_v3_projects__project_id__nodes__node_id__stop_post", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/suspend": {"post": {"tags": ["Nodes"], "summary": "Suspend Node", "description": "Suspend a node.", "operationId": "suspend_node_v3_projects__project_id__nodes__node_id__suspend_post", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/reload": {"post": {"tags": ["Nodes"], "summary": "Reload Node", "description": "Reload a node.", "operationId": "reload_node_v3_projects__project_id__nodes__node_id__reload_post", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/isolate": {"post": {"tags": ["Nodes"], "summary": "Isolate Node", "description": "Isolate a node (suspend all attached links).", "operationId": "isolate_node_v3_projects__project_id__nodes__node_id__isolate_post", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/unisolate": {"post": {"tags": ["Nodes"], "summary": "Unisolate Node", "description": "Un-isolate a node (resume all attached suspended links).", "operationId": "unisolate_node_v3_projects__project_id__nodes__node_id__unisolate_post", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/links": {"get": {"tags": ["Nodes"], "summary": "Get Node Links", "description": "Return all the links connected to a node.", "operationId": "get_node_links_v3_projects__project_id__nodes__node_id__links_get", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Node Links V3 Projects Project Id Nodes Node Id Links Get", "type": "array", "items": {"$ref": "#/components/schemas/Link"}}}}}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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", "operationId": "auto_idlepc_v3_projects__project_id__nodes__node_id__dynamips_auto_idlepc_get", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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", "operationId": "idlepc_proposals_v3_projects__project_id__nodes__node_id__dynamips_idlepc_proposals_get", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/qemu/disk_image/{disk_name}": {"put": {"tags": ["Nodes"], "summary": "Update Disk Image", "description": "Update a Qemu disk image.", "operationId": "update_disk_image_v3_projects__project_id__nodes__node_id__qemu_disk_image__disk_name__put", "parameters": [{"required": true, "schema": {"title": "Disk Name", "type": "string"}, "name": "disk_name", "in": "path"}, {"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/QemuDiskImageUpdate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Nodes"], "summary": "Create Disk Image", "description": "Create a Qemu disk image.", "operationId": "create_disk_image_v3_projects__project_id__nodes__node_id__qemu_disk_image__disk_name__post", "parameters": [{"required": true, "schema": {"title": "Disk Name", "type": "string"}, "name": "disk_name", "in": "path"}, {"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/QemuDiskImageCreate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Nodes"], "summary": "Delete Disk Image", "description": "Delete a Qemu disk image.", "operationId": "delete_disk_image_v3_projects__project_id__nodes__node_id__qemu_disk_image__disk_name__delete", "parameters": [{"required": true, "schema": {"title": "Disk Name", "type": "string"}, "name": "disk_name", "in": "path"}, {"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/files/{file_path}": {"get": {"tags": ["Nodes"], "summary": "Get File", "description": "Return a file in the node directory", "operationId": "get_file_v3_projects__project_id__nodes__node_id__files__file_path__get", "parameters": [{"required": true, "schema": {"title": "File Path", "type": "string"}, "name": "file_path", "in": "path"}, {"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Nodes"], "summary": "Post File", "description": "Write a file in the node directory.", "operationId": "post_file_v3_projects__project_id__nodes__node_id__files__file_path__post", "parameters": [{"required": true, "schema": {"title": "File Path", "type": "string"}, "name": "file_path", "in": "path"}, {"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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.", "operationId": "reset_console_all_nodes_v3_projects__project_id__nodes_console_reset_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/nodes/{node_id}/console/reset": {"post": {"tags": ["Nodes"], "summary": "Console Reset", "operationId": "console_reset_v3_projects__project_id__nodes__node_id__console_reset_post", "parameters": [{"required": true, "schema": {"title": "Node Id", "type": "string", "format": "uuid"}, "name": "node_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/links": {"get": {"tags": ["Links"], "summary": "Get Links", "description": "Return all links for a given project.", "operationId": "get_links_v3_projects__project_id__links_get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Links V3 Projects Project Id Links Get", "type": "array", "items": {"$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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Links"], "summary": "Create Link", "description": "Create a new link.", "operationId": "create_link_v3_projects__project_id__links_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/LinkCreate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/links/{link_id}/available_filters": {"get": {"tags": ["Links"], "summary": "Get Filters", "description": "Return all filters available for a given link.", "operationId": "get_filters_v3_projects__project_id__links__link_id__available_filters_get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Link Id", "type": "string", "format": "uuid"}, "name": "link_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/links/{link_id}": {"get": {"tags": ["Links"], "summary": "Get Link", "description": "Return a link.", "operationId": "get_link_v3_projects__project_id__links__link_id__get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Link Id", "type": "string", "format": "uuid"}, "name": "link_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Links"], "summary": "Update Link", "description": "Update a link.", "operationId": "update_link_v3_projects__project_id__links__link_id__put", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Link Id", "type": "string", "format": "uuid"}, "name": "link_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/LinkUpdate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Links"], "summary": "Delete Link", "description": "Delete a link.", "operationId": "delete_link_v3_projects__project_id__links__link_id__delete", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Link Id", "type": "string", "format": "uuid"}, "name": "link_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/links/{link_id}/reset": {"post": {"tags": ["Links"], "summary": "Reset Link", "description": "Reset a link.", "operationId": "reset_link_v3_projects__project_id__links__link_id__reset_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Link Id", "type": "string", "format": "uuid"}, "name": "link_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/links/{link_id}/capture/start": {"post": {"tags": ["Links"], "summary": "Start Capture", "description": "Start packet capture on the link.", "operationId": "start_capture_v3_projects__project_id__links__link_id__capture_start_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Link Id", "type": "string", "format": "uuid"}, "name": "link_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Capture Data", "type": "object"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/links/{link_id}/capture/stop": {"post": {"tags": ["Links"], "summary": "Stop Capture", "description": "Stop packet capture on the link.", "operationId": "stop_capture_v3_projects__project_id__links__link_id__capture_stop_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Link Id", "type": "string", "format": "uuid"}, "name": "link_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/links/{link_id}/capture/stream": {"get": {"tags": ["Links"], "summary": "Stream Pcap", "description": "Stream the PCAP capture file from compute.", "operationId": "stream_pcap_v3_projects__project_id__links__link_id__capture_stream_get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Link Id", "type": "string", "format": "uuid"}, "name": "link_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/drawings": {"get": {"tags": ["Drawings"], "summary": "Get Drawings", "description": "Return the list of all drawings for a given project.", "operationId": "get_drawings_v3_projects__project_id__drawings_get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Drawings V3 Projects Project Id Drawings Get", "type": "array", "items": {"$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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Drawings"], "summary": "Create Drawing", "description": "Create a new drawing.", "operationId": "create_drawing_v3_projects__project_id__drawings_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Drawing"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/drawings/{drawing_id}": {"get": {"tags": ["Drawings"], "summary": "Get Drawing", "description": "Return a drawing.", "operationId": "get_drawing_v3_projects__project_id__drawings__drawing_id__get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Drawing Id", "type": "string", "format": "uuid"}, "name": "drawing_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Drawings"], "summary": "Update Drawing", "description": "Update a drawing.", "operationId": "update_drawing_v3_projects__project_id__drawings__drawing_id__put", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Drawing Id", "type": "string", "format": "uuid"}, "name": "drawing_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/Drawing"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Drawings"], "summary": "Delete Drawing", "description": "Delete a drawing.", "operationId": "delete_drawing_v3_projects__project_id__drawings__drawing_id__delete", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}, {"required": true, "schema": {"title": "Drawing Id", "type": "string", "format": "uuid"}, "name": "drawing_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/symbols": {"get": {"tags": ["Symbols"], "summary": "Get Symbols", "operationId": "get_symbols_v3_symbols_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}}, "/v3/symbols/{symbol_id}/raw": {"get": {"tags": ["Symbols"], "summary": "Get Symbol", "description": "Download a symbol file.", "operationId": "get_symbol_v3_symbols__symbol_id__raw_get", "parameters": [{"required": true, "schema": {"title": "Symbol Id", "type": "string"}, "name": "symbol_id", "in": "path"}], "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.", "operationId": "upload_symbol_v3_symbols__symbol_id__raw_post", "parameters": [{"required": true, "schema": {"title": "Symbol Id", "type": "string"}, "name": "symbol_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/symbols/{symbol_id}/dimensions": {"get": {"tags": ["Symbols"], "summary": "Get Symbol Dimensions", "description": "Get a symbol dimensions.", "operationId": "get_symbol_dimensions_v3_symbols__symbol_id__dimensions_get", "parameters": [{"required": true, "schema": {"title": "Symbol Id", "type": "string"}, "name": "symbol_id", "in": "path"}], "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"}}}}}}}, "/v3/symbols/default_symbols": {"get": {"tags": ["Symbols"], "summary": "Get Default Symbols", "description": "Return all default symbols.", "operationId": "get_default_symbols_v3_symbols_default_symbols_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}}, "/v3/projects/{project_id}/snapshots": {"get": {"tags": ["Snapshots"], "summary": "Get Snapshots", "description": "Return all snapshots belonging to a given project.", "operationId": "get_snapshots_v3_projects__project_id__snapshots_get", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Snapshots V3 Projects Project Id Snapshots Get", "type": "array", "items": {"$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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Snapshots"], "summary": "Create Snapshot", "description": "Create a new snapshot of a project.", "operationId": "create_snapshot_v3_projects__project_id__snapshots_post", "parameters": [{"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/SnapshotCreate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/snapshots/{snapshot_id}": {"delete": {"tags": ["Snapshots"], "summary": "Delete Snapshot", "description": "Delete a snapshot.", "operationId": "delete_snapshot_v3_projects__project_id__snapshots__snapshot_id__delete", "parameters": [{"required": true, "schema": {"title": "Snapshot Id", "type": "string", "format": "uuid"}, "name": "snapshot_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/projects/{project_id}/snapshots/{snapshot_id}/restore": {"post": {"tags": ["Snapshots"], "summary": "Restore Snapshot", "description": "Restore a snapshot.", "operationId": "restore_snapshot_v3_projects__project_id__snapshots__snapshot_id__restore_post", "parameters": [{"required": true, "schema": {"title": "Snapshot Id", "type": "string", "format": "uuid"}, "name": "snapshot_id", "in": "path"}, {"required": true, "schema": {"title": "Project Id", "type": "string", "format": "uuid"}, "name": "project_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/computes": {"get": {"tags": ["Computes"], "summary": "Get Computes", "description": "Return all computes known by the controller.", "operationId": "get_computes_v3_computes_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Computes V3 Computes Get", "type": "array", "items": {"$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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "post": {"tags": ["Computes"], "summary": "Create Compute", "description": "Create a new compute on the controller.", "operationId": "create_compute_v3_computes_post", "parameters": [{"required": false, "schema": {"title": "Connect", "type": "boolean", "default": false}, "name": "connect", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ComputeCreate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/computes/{compute_id}/connect": {"post": {"tags": ["Computes"], "summary": "Connect Compute", "description": "Connect to compute on the controller.", "operationId": "connect_compute_v3_computes__compute_id__connect_post", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/computes/{compute_id}": {"get": {"tags": ["Computes"], "summary": "Get Compute", "description": "Return a compute from the controller.", "operationId": "get_compute_v3_computes__compute_id__get", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "put": {"tags": ["Computes"], "summary": "Update Compute", "description": "Update a compute on the controller.", "operationId": "update_compute_v3_computes__compute_id__put", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ComputeUpdate"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}, "delete": {"tags": ["Computes"], "summary": "Delete Compute", "description": "Delete a compute from the controller.", "operationId": "delete_compute_v3_computes__compute_id__delete", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}], "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Docker Get Images V3 Computes Compute Id Docker Images Get", "type": "array", "items": {"$ref": "#/components/schemas/ComputeDockerImage"}}}}}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Virtualbox Vms V3 Computes Compute Id Virtualbox Vms Get", "type": "array", "items": {"$ref": "#/components/schemas/ComputeVirtualBoxVM"}}}}}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Vmware Vms V3 Computes Compute Id Vmware Vms Get", "type": "array", "items": {"$ref": "#/components/schemas/ComputeVMwareVM"}}}}}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/AutoIdlePC"}}}, "required": true}, "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"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}, {"required": true, "schema": {"title": "Emulator", "type": "string"}, "name": "emulator", "in": "path"}, {"required": true, "schema": {"title": "Endpoint Path", "type": "string"}, "name": "endpoint_path", "in": "path"}], "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"}}}}}, "deprecated": true, "security": [{"OAuth2PasswordBearer": []}]}, "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", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}, {"required": true, "schema": {"title": "Emulator", "type": "string"}, "name": "emulator", "in": "path"}, {"required": true, "schema": {"title": "Endpoint Path", "type": "string"}, "name": "endpoint_path", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Compute Data", "type": "object"}}}, "required": true}, "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"}}}}}, "deprecated": true, "security": [{"OAuth2PasswordBearer": []}]}, "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", "parameters": [{"required": true, "schema": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "name": "compute_id", "in": "path"}, {"required": true, "schema": {"title": "Emulator", "type": "string"}, "name": "emulator", "in": "path"}, {"required": true, "schema": {"title": "Endpoint Path", "type": "string"}, "name": "endpoint_path", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Compute Data", "type": "object"}}}, "required": true}, "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"}}}}}, "deprecated": true, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/notifications": {"get": {"tags": ["Notifications"], "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/appliances": {"get": {"tags": ["Appliances"], "summary": "Get Appliances", "description": "Return all appliances known by the controller.", "operationId": "get_appliances_v3_appliances_get", "parameters": [{"required": false, "schema": {"title": "Update", "type": "boolean", "default": false}, "name": "update", "in": "query"}, {"required": false, "schema": {"title": "Symbol Theme", "type": "string"}, "name": "symbol_theme", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/appliances/{appliance_id}": {"get": {"tags": ["Appliances"], "summary": "Get Appliance", "description": "Get an appliance file.", "operationId": "get_appliance_v3_appliances__appliance_id__get", "parameters": [{"required": true, "schema": {"title": "Appliance Id", "type": "string", "format": "uuid"}, "name": "appliance_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/appliances/{appliance_id}/version": {"post": {"tags": ["Appliances"], "summary": "Add Appliance Version", "description": "Add a version to an appliance", "operationId": "add_appliance_version_v3_appliances__appliance_id__version_post", "parameters": [{"required": true, "schema": {"title": "Appliance Id", "type": "string", "format": "uuid"}, "name": "appliance_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApplianceVersion"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/v3/appliances/{appliance_id}/install": {"post": {"tags": ["Appliances"], "summary": "Install Appliance", "description": "Install an appliance.", "operationId": "install_appliance_v3_appliances__appliance_id__install_post", "parameters": [{"required": true, "schema": {"title": "Appliance Id", "type": "string", "format": "uuid"}, "name": "appliance_id", "in": "path"}, {"required": false, "schema": {"title": "Version", "type": "string"}, "name": "version", "in": "query"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "security": [{"OAuth2PasswordBearer": []}]}}, "/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": {}}}}, "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", "parameters": [{"required": true, "schema": {"title": "Engine", "type": "string"}, "name": "engine", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}, "deprecated": true, "security": [{"OAuth2PasswordBearer": []}]}}, "/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": {"ApplianceVersion": {"title": "ApplianceVersion", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name of the version", "type": "string"}, "idlepc": {"title": "Idlepc", "pattern": "^0x[0-9a-f]{8}", "type": "string"}, "images": {"title": "Images used for this version", "allOf": [{"$ref": "#/components/schemas/ApplianceVersionImages"}]}}}, "ApplianceVersionImages": {"title": "ApplianceVersionImages", "type": "object", "properties": {"kernel_image": {"title": "Kernel image", "type": "string"}, "initrd": {"title": "Initrd disk image", "type": "string"}, "image": {"title": "OS image", "type": "string"}, "bios_image": {"title": "Bios image", "type": "string"}, "hda_disk_image": {"title": "Hda disk image", "type": "string"}, "hdb_disk_image": {"title": "Hdc disk image", "type": "string"}, "hdc_disk_image": {"title": "Hdd disk image", "type": "string"}, "hdd_disk_image": {"title": "Hdd diskimage", "type": "string"}, "cdrom_image": {"title": "cdrom image", "type": "string"}}}, "AutoIdlePC": {"title": "AutoIdlePC", "required": ["platform", "image", "ram"], "type": "object", "properties": {"platform": {"title": "Platform", "type": "string", "description": "Cisco platform"}, "image": {"title": "Image", "type": "string", "description": "Image path"}, "ram": {"title": "Ram", "type": "integer", "description": "Amount of RAM in MB"}}, "description": "Data for auto Idle-PC request.", "example": {"platform": "c7200", "image": "/path/to/c7200_image.bin", "ram": 256}}, "Body_load_project_v3_projects_load_post": {"title": "Body_load_project_v3_projects_load_post", "required": ["path"], "type": "object", "properties": {"path": {"title": "Path", "type": "string"}}}, "Body_login_v3_users_login_post": {"title": "Body_login_v3_users_login_post", "required": ["username", "password"], "type": "object", "properties": {"grant_type": {"title": "Grant Type", "pattern": "password", "type": "string"}, "username": {"title": "Username", "type": "string"}, "password": {"title": "Password", "type": "string"}, "scope": {"title": "Scope", "type": "string", "default": ""}, "client_id": {"title": "Client Id", "type": "string"}, "client_secret": {"title": "Client Secret", "type": "string"}}}, "Capabilities": {"title": "Capabilities", "required": ["version", "node_types", "platform", "cpus", "memory", "disk_size"], "type": "object", "properties": {"version": {"title": "Version", "type": "string", "description": "Compute version number"}, "node_types": {"type": "array", "items": {"$ref": "#/components/schemas/NodeType"}, "description": "Node types supported by the compute"}, "platform": {"title": "Platform", "type": "string", "description": "Platform where the compute is running (Linux, Windows or macOS)"}, "cpus": {"title": "Cpus", "type": "integer", "description": "Number of CPUs on this compute"}, "memory": {"title": "Memory", "type": "integer", "description": "Amount of memory on this compute"}, "disk_size": {"title": "Disk Size", "type": "integer", "description": "Disk size on this compute"}}, "description": "Capabilities supported by a compute."}, "Category": {"title": "Category", "enum": ["router", "switch", "guest", "firewall"], "type": "string", "description": "\n Supported categories\n "}, "Compute": {"title": "Compute", "required": ["protocol", "host", "port", "name", "compute_id"], "type": "object", "properties": {"protocol": {"$ref": "#/components/schemas/Protocol"}, "host": {"title": "Host", "type": "string"}, "port": {"title": "Port", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer"}, "user": {"title": "User", "type": "string"}, "password": {"title": "Password", "type": "string", "format": "password", "writeOnly": true}, "name": {"title": "Name", "type": "string"}, "created_at": {"title": "Created At", "type": "string", "format": "date-time"}, "updated_at": {"title": "Updated At", "type": "string", "format": "date-time"}, "compute_id": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "connected": {"title": "Connected", "type": "boolean", "description": "Whether the controller is connected to the compute or not"}, "cpu_usage_percent": {"title": "Cpu Usage Percent", "maximum": 100.0, "minimum": 0.0, "type": "number", "description": "CPU usage of the compute"}, "memory_usage_percent": {"title": "Memory Usage Percent", "maximum": 100.0, "minimum": 0.0, "type": "number", "description": "Memory usage of the compute"}, "disk_usage_percent": {"title": "Disk Usage Percent", "maximum": 100.0, "minimum": 0.0, "type": "number", "description": "Disk usage of the compute"}, "last_error": {"title": "Last Error", "type": "string", "description": "Last error found on the compute"}, "capabilities": {"$ref": "#/components/schemas/Capabilities"}}, "description": "Data returned for a compute."}, "ComputeCreate": {"title": "ComputeCreate", "required": ["protocol", "host", "port"], "type": "object", "properties": {"protocol": {"$ref": "#/components/schemas/Protocol"}, "host": {"title": "Host", "type": "string"}, "port": {"title": "Port", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer"}, "user": {"title": "User", "type": "string"}, "password": {"title": "Password", "type": "string", "format": "password", "writeOnly": true}, "name": {"title": "Name", "type": "string"}, "compute_id": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}}, "description": "Data to create a compute.", "example": {"name": "My compute", "host": "127.0.0.1", "port": 3080, "user": "user", "password": "password"}}, "ComputeDockerImage": {"title": "ComputeDockerImage", "required": ["image"], "type": "object", "properties": {"image": {"title": "Image", "type": "string", "description": "Docker image name"}}, "description": "Docker image from compute."}, "ComputeUpdate": {"title": "ComputeUpdate", "type": "object", "properties": {"protocol": {"$ref": "#/components/schemas/Protocol"}, "host": {"title": "Host", "type": "string"}, "port": {"title": "Port", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer"}, "user": {"title": "User", "type": "string"}, "password": {"title": "Password", "type": "string", "format": "password", "writeOnly": true}, "name": {"title": "Name", "type": "string"}}, "description": "Data to update a compute.", "example": {"host": "10.0.0.1", "port": 8080}}, "ComputeVMwareVM": {"title": "ComputeVMwareVM", "required": ["vmname", "vmx_path"], "type": "object", "properties": {"vmname": {"title": "Vmname", "type": "string", "description": "VMware VM name"}, "vmx_path": {"title": "Vmx Path", "type": "string", "description": "Path to the vmx file"}}, "description": "VMware VM from compute."}, "ComputeVirtualBoxVM": {"title": "ComputeVirtualBoxVM", "required": ["vmname", "ram"], "type": "object", "properties": {"vmname": {"title": "Vmname", "type": "string", "description": "VirtualBox VM name"}, "ram": {"title": "Ram", "type": "integer", "description": "VirtualBox VM memory"}}, "description": "VirtualBox VM from compute."}, "ConsoleType": {"title": "ConsoleType", "enum": ["vnc", "telnet", "http", "https", "spice", "spice+agent", "none"], "type": "string", "description": "\n Supported console types.\n "}, "Credentials": {"title": "Credentials", "required": ["username", "password"], "type": "object", "properties": {"username": {"title": "Username", "type": "string"}, "password": {"title": "Password", "type": "string"}}}, "CustomAdapter": {"title": "CustomAdapter", "required": ["adapter_number", "port_name"], "type": "object", "properties": {"adapter_number": {"title": "Adapter Number", "type": "integer"}, "port_name": {"title": "Port Name", "type": "string"}, "adapter_type": {"title": "Adapter Type", "type": "string"}, "mac_address": {"title": "Mac Address", "pattern": "^([0-9a-fA-F]{2}[:]){5}([0-9a-fA-F]{2})$", "type": "string"}}, "description": "Custom adapter data."}, "Drawing": {"title": "Drawing", "type": "object", "properties": {"drawing_id": {"title": "Drawing Id", "type": "string", "format": "uuid"}, "project_id": {"title": "Project Id", "type": "string", "format": "uuid"}, "x": {"title": "X", "type": "integer"}, "y": {"title": "Y", "type": "integer"}, "z": {"title": "Z", "type": "integer"}, "locked": {"title": "Locked", "type": "boolean"}, "rotation": {"title": "Rotation", "maximum": 360.0, "minimum": -359.0, "type": "integer"}, "svg": {"title": "Svg", "type": "string"}}, "description": "Drawing data."}, "Engine": {"title": "Engine", "enum": ["vmware", "virtualbox", "hyper-v", "none"], "type": "string", "description": "\n \"The engine to use for the GNS3 VM.\n "}, "ErrorMessage": {"title": "ErrorMessage", "required": ["message"], "type": "object", "properties": {"message": {"title": "Message", "type": "string"}}, "description": "Error message."}, "GNS3VM": {"title": "GNS3VM", "type": "object", "properties": {"enable": {"title": "Enable", "type": "boolean", "description": "Enable/disable the GNS3 VM"}, "vmname": {"title": "Vmname", "type": "string", "description": "GNS3 VM name"}, "when_exit": {"allOf": [{"$ref": "#/components/schemas/WhenExit"}], "description": "Action when the GNS3 VM exits"}, "headless": {"title": "Headless", "type": "boolean", "description": "Start the GNS3 VM GUI or not"}, "engine": {"allOf": [{"$ref": "#/components/schemas/Engine"}], "description": "The engine to use for the GNS3 VM"}, "allocate_vcpus_ram": {"title": "Allocate Vcpus Ram", "type": "boolean", "description": "Allocate vCPUS and RAM settings"}, "vcpus": {"title": "Vcpus", "type": "integer", "description": "Number of CPUs to allocate for the GNS3 VM"}, "ram": {"title": "Ram", "type": "integer", "description": "Amount of memory to allocate for the GNS3 VM"}, "port": {"title": "Port", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer"}}, "description": "GNS3 VM data."}, "HTTPMethods": {"title": "HTTPMethods", "enum": ["GET", "HEAD", "POST", "PATCH", "PUT", "DELETE"], "type": "string", "description": "\n HTTP method type.\n "}, "HTTPValidationError": {"title": "HTTPValidationError", "type": "object", "properties": {"detail": {"title": "Detail", "type": "array", "items": {"$ref": "#/components/schemas/ValidationError"}}}}, "IOULicense": {"title": "IOULicense", "required": ["iourc_content", "license_check"], "type": "object", "properties": {"iourc_content": {"title": "Iourc Content", "type": "string", "description": "Content of iourc file"}, "license_check": {"title": "License Check", "type": "boolean", "description": "Whether the license must be checked or not"}}}, "Image": {"title": "Image", "required": ["filename", "path", "image_type", "image_size", "checksum", "checksum_algorithm"], "type": "object", "properties": {"filename": {"title": "Filename", "type": "string", "description": "Image filename"}, "path": {"title": "Path", "type": "string", "description": "Image path"}, "image_type": {"allOf": [{"$ref": "#/components/schemas/ImageType"}], "description": "Image type"}, "image_size": {"title": "Image Size", "type": "integer", "description": "Image size in bytes"}, "checksum": {"title": "Checksum", "type": "string", "description": "Checksum value"}, "checksum_algorithm": {"title": "Checksum Algorithm", "type": "string", "description": "Checksum algorithm"}, "created_at": {"title": "Created At", "type": "string", "format": "date-time"}, "updated_at": {"title": "Updated At", "type": "string", "format": "date-time"}}, "description": "Common image properties."}, "ImageType": {"title": "ImageType", "enum": ["qemu", "ios", "iou"], "type": "string", "description": "An enumeration."}, "Label": {"title": "Label", "required": ["text"], "type": "object", "properties": {"text": {"title": "Text", "type": "string"}, "style": {"title": "Style", "type": "string", "description": "SVG style attribute. Apply default style if null"}, "x": {"title": "X", "type": "integer", "description": "Relative X position of the label. Center it if null"}, "y": {"title": "Y", "type": "integer", "description": "Relative Y position of the label"}, "rotation": {"title": "Rotation", "maximum": 360.0, "minimum": -359.0, "type": "integer", "description": "Rotation of the label"}}, "description": "Label data."}, "Link": {"title": "Link", "required": ["link_id"], "type": "object", "properties": {"nodes": {"title": "Nodes", "maxItems": 2, "minItems": 0, "type": "array", "items": {"$ref": "#/components/schemas/LinkNode"}}, "suspend": {"title": "Suspend", "type": "boolean"}, "link_style": {"$ref": "#/components/schemas/LinkStyle"}, "filters": {"title": "Filters", "type": "object"}, "link_id": {"title": "Link Id", "type": "string", "format": "uuid"}, "project_id": {"title": "Project Id", "type": "string", "format": "uuid"}, "link_type": {"$ref": "#/components/schemas/gns3server__schemas__controller__links__LinkType"}, "capturing": {"title": "Capturing", "type": "boolean", "description": "Read only property. True if a capture running on the link"}, "capture_file_name": {"title": "Capture File Name", "type": "string", "description": "Read only property. The name of the capture file if a capture is running"}, "capture_file_path": {"title": "Capture File Path", "type": "string", "description": "Read only property. The full path of the capture file if a capture is running"}, "capture_compute_id": {"title": "Capture Compute Id", "type": "string", "description": "Read only property. The compute identifier where a capture is running"}}, "description": "Link data."}, "LinkCreate": {"title": "LinkCreate", "required": ["nodes"], "type": "object", "properties": {"nodes": {"title": "Nodes", "maxItems": 2, "minItems": 2, "type": "array", "items": {"$ref": "#/components/schemas/LinkNode"}}, "suspend": {"title": "Suspend", "type": "boolean"}, "link_style": {"$ref": "#/components/schemas/LinkStyle"}, "filters": {"title": "Filters", "type": "object"}, "link_id": {"title": "Link Id", "type": "string", "format": "uuid"}}, "description": "Link data."}, "LinkNode": {"title": "LinkNode", "required": ["node_id", "adapter_number", "port_number"], "type": "object", "properties": {"node_id": {"title": "Node Id", "type": "string", "format": "uuid"}, "adapter_number": {"title": "Adapter Number", "type": "integer"}, "port_number": {"title": "Port Number", "type": "integer"}, "label": {"$ref": "#/components/schemas/Label"}}, "description": "Link node data."}, "LinkStyle": {"title": "LinkStyle", "type": "object", "properties": {"color": {"title": "Color", "type": "string"}, "width": {"title": "Width", "type": "integer"}, "type": {"title": "Type", "type": "integer"}}}, "LinkUpdate": {"title": "LinkUpdate", "type": "object", "properties": {"nodes": {"title": "Nodes", "maxItems": 2, "minItems": 0, "type": "array", "items": {"$ref": "#/components/schemas/LinkNode"}}, "suspend": {"title": "Suspend", "type": "boolean"}, "link_style": {"$ref": "#/components/schemas/LinkStyle"}, "filters": {"title": "Filters", "type": "object"}}, "description": "Link data."}, "LoggedInUserUpdate": {"title": "LoggedInUserUpdate", "type": "object", "properties": {"password": {"title": "Password", "maxLength": 100, "minLength": 6, "type": "string", "format": "password", "writeOnly": true}, "email": {"title": "Email", "type": "string", "format": "email"}, "full_name": {"title": "Full Name", "type": "string"}}, "description": "Properties to update a logged in user."}, "Node": {"title": "Node", "required": ["compute_id", "name", "node_type"], "type": "object", "properties": {"compute_id": {"title": "Compute Id", "anyOf": [{"type": "string", "format": "uuid"}, {"type": "string"}]}, "name": {"title": "Name", "type": "string"}, "node_type": {"$ref": "#/components/schemas/NodeType"}, "node_id": {"title": "Node Id", "type": "string", "format": "uuid"}, "console": {"title": "Console", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer", "description": "Console TCP port"}, "console_type": {"$ref": "#/components/schemas/ConsoleType"}, "console_auto_start": {"title": "Console Auto Start", "type": "boolean", "description": "Automatically start the console when the node has started", "default": false}, "aux": {"title": "Aux", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer", "description": "Auxiliary console TCP port"}, "aux_type": {"$ref": "#/components/schemas/ConsoleType"}, "properties": {"title": "Properties", "type": "object", "description": "Properties specific to an emulator"}, "label": {"$ref": "#/components/schemas/Label"}, "symbol": {"title": "Symbol", "type": "string"}, "x": {"title": "X", "type": "integer", "default": 0}, "y": {"title": "Y", "type": "integer", "default": 0}, "z": {"title": "Z", "type": "integer", "default": 1}, "locked": {"title": "Locked", "type": "boolean", "description": "Whether the element locked or not", "default": false}, "port_name_format": {"title": "Port Name Format", "type": "string", "descript_port_name_formation": "Formatting for port name {0} will be replace by port number"}, "port_segment_size": {"title": "Port Segment Size", "type": "integer", "description": "Size of the port segment"}, "first_port_name": {"title": "First Port Name", "type": "string", "description": "Name of the first port"}, "custom_adapters": {"title": "Custom Adapters", "type": "array", "items": {"$ref": "#/components/schemas/CustomAdapter"}}, "template_id": {"title": "Template Id", "type": "string", "description": "Template UUID from which the node has been created. Read only", "format": "uuid"}, "project_id": {"title": "Project Id", "type": "string", "format": "uuid"}, "node_directory": {"title": "Node Directory", "type": "string", "description": "Working directory of the node. Read only"}, "status": {"allOf": [{"$ref": "#/components/schemas/NodeStatus"}], "description": "Node status. Read only"}, "command_line": {"title": "Command Line", "type": "string", "description": "Command line use to start the node. Read only"}, "width": {"title": "Width", "type": "integer", "description": "Width of the node. Read only"}, "height": {"title": "Height", "type": "integer", "description": "Height of the node. Read only"}, "ports": {"title": "Ports", "type": "array", "items": {"$ref": "#/components/schemas/NodePort"}, "description": "List of node ports. Read only"}, "console_host": {"title": "Console Host", "type": "string", "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"}}, "description": "Node data."}, "NodeCreate": {"title": "NodeCreate", "required": ["compute_id", "name", "node_type"], "type": "object", "properties": {"compute_id": {"title": "Compute Id", "anyOf": [{"type": "string", "format": "uuid"}, {"type": "string"}]}, "name": {"title": "Name", "type": "string"}, "node_type": {"$ref": "#/components/schemas/NodeType"}, "node_id": {"title": "Node Id", "type": "string", "format": "uuid"}, "console": {"title": "Console", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer", "description": "Console TCP port"}, "console_type": {"$ref": "#/components/schemas/ConsoleType"}, "console_auto_start": {"title": "Console Auto Start", "type": "boolean", "description": "Automatically start the console when the node has started", "default": false}, "aux": {"title": "Aux", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer", "description": "Auxiliary console TCP port"}, "aux_type": {"$ref": "#/components/schemas/ConsoleType"}, "properties": {"title": "Properties", "type": "object", "description": "Properties specific to an emulator"}, "label": {"$ref": "#/components/schemas/Label"}, "symbol": {"title": "Symbol", "type": "string"}, "x": {"title": "X", "type": "integer", "default": 0}, "y": {"title": "Y", "type": "integer", "default": 0}, "z": {"title": "Z", "type": "integer", "default": 1}, "locked": {"title": "Locked", "type": "boolean", "description": "Whether the element locked or not", "default": false}, "port_name_format": {"title": "Port Name Format", "type": "string", "descript_port_name_formation": "Formatting for port name {0} will be replace by port number"}, "port_segment_size": {"title": "Port Segment Size", "type": "integer", "description": "Size of the port segment"}, "first_port_name": {"title": "First Port Name", "type": "string", "description": "Name of the first port"}, "custom_adapters": {"title": "Custom Adapters", "type": "array", "items": {"$ref": "#/components/schemas/CustomAdapter"}}}, "description": "Node data."}, "NodeDuplicate": {"title": "NodeDuplicate", "required": ["x", "y"], "type": "object", "properties": {"x": {"title": "X", "type": "integer"}, "y": {"title": "Y", "type": "integer"}, "z": {"title": "Z", "type": "integer", "default": 0}}, "description": "Data to duplicate a node."}, "NodePort": {"title": "NodePort", "required": ["name", "short_name", "adapter_number", "port_number", "link_type", "data_link_types"], "type": "object", "properties": {"name": {"title": "Name", "type": "string", "description": "Port name"}, "short_name": {"title": "Short Name", "type": "string", "description": "Port name"}, "adapter_number": {"title": "Adapter Number", "type": "integer", "description": "Adapter slot"}, "adapter_type": {"title": "Adapter Type", "type": "string", "description": "Adapter type"}, "port_number": {"title": "Port Number", "type": "integer", "description": "Port slot"}, "link_type": {"allOf": [{"$ref": "#/components/schemas/gns3server__schemas__controller__nodes__LinkType"}], "description": "Type of link"}, "data_link_types": {"title": "Data Link Types", "type": "object", "description": "Available PCAP types for capture"}, "mac_address": {"title": "Mac Address", "pattern": "^([0-9a-fA-F]{2}[:]){5}([0-9a-fA-F]{2})$", "type": "string"}}, "description": "Node port data."}, "NodeStatus": {"title": "NodeStatus", "enum": ["stopped", "started", "suspended"], "type": "string", "description": "\n Supported node statuses.\n "}, "NodeType": {"title": "NodeType", "enum": ["cloud", "nat", "ethernet_hub", "ethernet_switch", "frame_relay_switch", "atm_switch", "docker", "dynamips", "vpcs", "virtualbox", "vmware", "iou", "qemu"], "type": "string", "description": "\n Supported node types.\n "}, "NodeUpdate": {"title": "NodeUpdate", "type": "object", "properties": {"compute_id": {"title": "Compute Id", "anyOf": [{"type": "string", "format": "uuid"}, {"type": "string"}]}, "name": {"title": "Name", "type": "string"}, "node_type": {"$ref": "#/components/schemas/NodeType"}, "node_id": {"title": "Node Id", "type": "string", "format": "uuid"}, "console": {"title": "Console", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer", "description": "Console TCP port"}, "console_type": {"$ref": "#/components/schemas/ConsoleType"}, "console_auto_start": {"title": "Console Auto Start", "type": "boolean", "description": "Automatically start the console when the node has started", "default": false}, "aux": {"title": "Aux", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer", "description": "Auxiliary console TCP port"}, "aux_type": {"$ref": "#/components/schemas/ConsoleType"}, "properties": {"title": "Properties", "type": "object", "description": "Properties specific to an emulator"}, "label": {"$ref": "#/components/schemas/Label"}, "symbol": {"title": "Symbol", "type": "string"}, "x": {"title": "X", "type": "integer", "default": 0}, "y": {"title": "Y", "type": "integer", "default": 0}, "z": {"title": "Z", "type": "integer", "default": 1}, "locked": {"title": "Locked", "type": "boolean", "description": "Whether the element locked or not", "default": false}, "port_name_format": {"title": "Port Name Format", "type": "string", "descript_port_name_formation": "Formatting for port name {0} will be replace by port number"}, "port_segment_size": {"title": "Port Segment Size", "type": "integer", "description": "Size of the port segment"}, "first_port_name": {"title": "First Port Name", "type": "string", "description": "Name of the first port"}, "custom_adapters": {"title": "Custom Adapters", "type": "array", "items": {"$ref": "#/components/schemas/CustomAdapter"}}}, "description": "Data to update a node."}, "Permission": {"title": "Permission", "required": ["methods", "path", "action", "permission_id"], "type": "object", "properties": {"methods": {"type": "array", "items": {"$ref": "#/components/schemas/HTTPMethods"}}, "path": {"title": "Path", "type": "string"}, "action": {"$ref": "#/components/schemas/PermissionAction"}, "description": {"title": "Description", "type": "string"}, "created_at": {"title": "Created At", "type": "string", "format": "date-time"}, "updated_at": {"title": "Updated At", "type": "string", "format": "date-time"}, "permission_id": {"title": "Permission Id", "type": "string", "format": "uuid"}}, "description": "Common permission properties."}, "PermissionAction": {"title": "PermissionAction", "enum": ["ALLOW", "DENY"], "type": "string", "description": "\n Action to perform when permission is matched.\n "}, "PermissionCreate": {"title": "PermissionCreate", "required": ["methods", "path", "action"], "type": "object", "properties": {"methods": {"type": "array", "items": {"$ref": "#/components/schemas/HTTPMethods"}}, "path": {"title": "Path", "type": "string"}, "action": {"$ref": "#/components/schemas/PermissionAction"}, "description": {"title": "Description", "type": "string"}}, "description": "Properties to create a permission."}, "PermissionUpdate": {"title": "PermissionUpdate", "required": ["methods", "path", "action"], "type": "object", "properties": {"methods": {"type": "array", "items": {"$ref": "#/components/schemas/HTTPMethods"}}, "path": {"title": "Path", "type": "string"}, "action": {"$ref": "#/components/schemas/PermissionAction"}, "description": {"title": "Description", "type": "string"}}, "description": "Properties to update a role."}, "Project": {"title": "Project", "required": ["project_id"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "project_id": {"title": "Project Id", "type": "string", "format": "uuid"}, "path": {"title": "Path", "type": "string", "description": "Project directory"}, "auto_close": {"title": "Auto Close", "type": "boolean", "description": "Close project when last client leaves"}, "auto_open": {"title": "Auto Open", "type": "boolean", "description": "Project opens when GNS3 starts"}, "auto_start": {"title": "Auto Start", "type": "boolean", "description": "Project starts when opened"}, "scene_height": {"title": "Scene Height", "type": "integer", "description": "Height of the drawing area"}, "scene_width": {"title": "Scene Width", "type": "integer", "description": "Width of the drawing area"}, "zoom": {"title": "Zoom", "type": "integer", "description": "Zoom of the drawing area"}, "show_layers": {"title": "Show Layers", "type": "boolean", "description": "Show layers on the drawing area"}, "snap_to_grid": {"title": "Snap To Grid", "type": "boolean", "description": "Snap to grid on the drawing area"}, "show_grid": {"title": "Show Grid", "type": "boolean", "description": "Show the grid on the drawing area"}, "grid_size": {"title": "Grid Size", "type": "integer", "description": "Grid size for the drawing area for nodes"}, "drawing_grid_size": {"title": "Drawing Grid Size", "type": "integer", "description": "Grid size for the drawing area for drawings"}, "show_interface_labels": {"title": "Show Interface Labels", "type": "boolean", "description": "Show interface labels on the drawing area"}, "supplier": {"title": "Supplier", "allOf": [{"$ref": "#/components/schemas/Supplier"}], "description": "Supplier of the project"}, "variables": {"title": "Variables", "type": "array", "items": {"$ref": "#/components/schemas/Variable"}, "description": "Variables required to run the project"}, "status": {"$ref": "#/components/schemas/ProjectStatus"}, "filename": {"title": "Filename", "type": "string"}}, "description": "Common properties for projects."}, "ProjectCompression": {"title": "ProjectCompression", "enum": ["none", "zip", "bzip2", "lzma", "zstd"], "type": "string", "description": "\n Supported project compression.\n "}, "ProjectCreate": {"title": "ProjectCreate", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "project_id": {"title": "Project Id", "type": "string", "format": "uuid"}, "path": {"title": "Path", "type": "string", "description": "Project directory"}, "auto_close": {"title": "Auto Close", "type": "boolean", "description": "Close project when last client leaves"}, "auto_open": {"title": "Auto Open", "type": "boolean", "description": "Project opens when GNS3 starts"}, "auto_start": {"title": "Auto Start", "type": "boolean", "description": "Project starts when opened"}, "scene_height": {"title": "Scene Height", "type": "integer", "description": "Height of the drawing area"}, "scene_width": {"title": "Scene Width", "type": "integer", "description": "Width of the drawing area"}, "zoom": {"title": "Zoom", "type": "integer", "description": "Zoom of the drawing area"}, "show_layers": {"title": "Show Layers", "type": "boolean", "description": "Show layers on the drawing area"}, "snap_to_grid": {"title": "Snap To Grid", "type": "boolean", "description": "Snap to grid on the drawing area"}, "show_grid": {"title": "Show Grid", "type": "boolean", "description": "Show the grid on the drawing area"}, "grid_size": {"title": "Grid Size", "type": "integer", "description": "Grid size for the drawing area for nodes"}, "drawing_grid_size": {"title": "Drawing Grid Size", "type": "integer", "description": "Grid size for the drawing area for drawings"}, "show_interface_labels": {"title": "Show Interface Labels", "type": "boolean", "description": "Show interface labels on the drawing area"}, "supplier": {"title": "Supplier", "allOf": [{"$ref": "#/components/schemas/Supplier"}], "description": "Supplier of the project"}, "variables": {"title": "Variables", "type": "array", "items": {"$ref": "#/components/schemas/Variable"}, "description": "Variables required to run the project"}}, "description": "Properties for project creation."}, "ProjectDuplicate": {"title": "ProjectDuplicate", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "project_id": {"title": "Project Id", "type": "string", "format": "uuid"}, "path": {"title": "Path", "type": "string", "description": "Project directory"}, "auto_close": {"title": "Auto Close", "type": "boolean", "description": "Close project when last client leaves"}, "auto_open": {"title": "Auto Open", "type": "boolean", "description": "Project opens when GNS3 starts"}, "auto_start": {"title": "Auto Start", "type": "boolean", "description": "Project starts when opened"}, "scene_height": {"title": "Scene Height", "type": "integer", "description": "Height of the drawing area"}, "scene_width": {"title": "Scene Width", "type": "integer", "description": "Width of the drawing area"}, "zoom": {"title": "Zoom", "type": "integer", "description": "Zoom of the drawing area"}, "show_layers": {"title": "Show Layers", "type": "boolean", "description": "Show layers on the drawing area"}, "snap_to_grid": {"title": "Snap To Grid", "type": "boolean", "description": "Snap to grid on the drawing area"}, "show_grid": {"title": "Show Grid", "type": "boolean", "description": "Show the grid on the drawing area"}, "grid_size": {"title": "Grid Size", "type": "integer", "description": "Grid size for the drawing area for nodes"}, "drawing_grid_size": {"title": "Drawing Grid Size", "type": "integer", "description": "Grid size for the drawing area for drawings"}, "show_interface_labels": {"title": "Show Interface Labels", "type": "boolean", "description": "Show interface labels on the drawing area"}, "supplier": {"title": "Supplier", "allOf": [{"$ref": "#/components/schemas/Supplier"}], "description": "Supplier of the project"}, "variables": {"title": "Variables", "type": "array", "items": {"$ref": "#/components/schemas/Variable"}, "description": "Variables required to run the project"}, "reset_mac_addresses": {"title": "Reset Mac Addresses", "type": "boolean", "description": "Reset MAC addresses for this project", "default": false}}, "description": "Properties for project duplication."}, "ProjectStatus": {"title": "ProjectStatus", "enum": ["opened", "closed"], "type": "string", "description": "\n Supported project statuses.\n "}, "ProjectUpdate": {"title": "ProjectUpdate", "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "project_id": {"title": "Project Id", "type": "string", "format": "uuid"}, "path": {"title": "Path", "type": "string", "description": "Project directory"}, "auto_close": {"title": "Auto Close", "type": "boolean", "description": "Close project when last client leaves"}, "auto_open": {"title": "Auto Open", "type": "boolean", "description": "Project opens when GNS3 starts"}, "auto_start": {"title": "Auto Start", "type": "boolean", "description": "Project starts when opened"}, "scene_height": {"title": "Scene Height", "type": "integer", "description": "Height of the drawing area"}, "scene_width": {"title": "Scene Width", "type": "integer", "description": "Width of the drawing area"}, "zoom": {"title": "Zoom", "type": "integer", "description": "Zoom of the drawing area"}, "show_layers": {"title": "Show Layers", "type": "boolean", "description": "Show layers on the drawing area"}, "snap_to_grid": {"title": "Snap To Grid", "type": "boolean", "description": "Snap to grid on the drawing area"}, "show_grid": {"title": "Show Grid", "type": "boolean", "description": "Show the grid on the drawing area"}, "grid_size": {"title": "Grid Size", "type": "integer", "description": "Grid size for the drawing area for nodes"}, "drawing_grid_size": {"title": "Drawing Grid Size", "type": "integer", "description": "Grid size for the drawing area for drawings"}, "show_interface_labels": {"title": "Show Interface Labels", "type": "boolean", "description": "Show interface labels on the drawing area"}, "supplier": {"title": "Supplier", "allOf": [{"$ref": "#/components/schemas/Supplier"}], "description": "Supplier of the project"}, "variables": {"title": "Variables", "type": "array", "items": {"$ref": "#/components/schemas/Variable"}, "description": "Variables required to run the project"}}, "description": "Properties for project update."}, "Protocol": {"title": "Protocol", "enum": ["http", "https"], "type": "string", "description": "\n Protocol supported to communicate with a compute.\n "}, "QemuDiskImageAdapterType": {"title": "QemuDiskImageAdapterType", "enum": ["ide", "lsilogic", "buslogic", "legacyESX"], "type": "string", "description": "\n Supported Qemu disk image on/off options.\n "}, "QemuDiskImageCreate": {"title": "QemuDiskImageCreate", "required": ["format", "size"], "type": "object", "properties": {"format": {"allOf": [{"$ref": "#/components/schemas/QemuDiskImageFormat"}], "description": "Image format type"}, "size": {"title": "Size", "type": "integer", "description": "Image size in Megabytes"}, "preallocation": {"$ref": "#/components/schemas/QemuDiskImagePreallocation"}, "cluster_size": {"title": "Cluster Size", "type": "integer"}, "refcount_bits": {"title": "Refcount Bits", "type": "integer"}, "lazy_refcounts": {"$ref": "#/components/schemas/QemuDiskImageOnOff"}, "subformat": {"$ref": "#/components/schemas/QemuDiskImageSubformat"}, "static": {"$ref": "#/components/schemas/QemuDiskImageOnOff"}, "zeroed_grain": {"$ref": "#/components/schemas/QemuDiskImageOnOff"}, "adapter_type": {"$ref": "#/components/schemas/QemuDiskImageAdapterType"}}}, "QemuDiskImageFormat": {"title": "QemuDiskImageFormat", "enum": ["qcow2", "qcow", "vpc", "vdi", "vdmk", "raw"], "type": "string", "description": "\n Supported Qemu disk image formats.\n "}, "QemuDiskImageOnOff": {"title": "QemuDiskImageOnOff", "enum": ["on", "off"], "type": "string", "description": "\n Supported Qemu image on/off options.\n "}, "QemuDiskImagePreallocation": {"title": "QemuDiskImagePreallocation", "enum": ["off", "metadata", "falloc", "full"], "type": "string", "description": "\n Supported Qemu disk image pre-allocation options.\n "}, "QemuDiskImageSubformat": {"title": "QemuDiskImageSubformat", "enum": ["dynamic", "fixed", "streamOptimized", "twoGbMaxExtentSparse", "twoGbMaxExtentFlat", "monolithicSparse", "monolithicFlat"], "type": "string", "description": "\n Supported Qemu disk image sub-format options.\n "}, "QemuDiskImageUpdate": {"title": "QemuDiskImageUpdate", "type": "object", "properties": {"format": {"allOf": [{"$ref": "#/components/schemas/QemuDiskImageFormat"}], "description": "Image format type"}, "size": {"title": "Size", "type": "integer", "description": "Image size in Megabytes"}, "preallocation": {"$ref": "#/components/schemas/QemuDiskImagePreallocation"}, "cluster_size": {"title": "Cluster Size", "type": "integer"}, "refcount_bits": {"title": "Refcount Bits", "type": "integer"}, "lazy_refcounts": {"$ref": "#/components/schemas/QemuDiskImageOnOff"}, "subformat": {"$ref": "#/components/schemas/QemuDiskImageSubformat"}, "static": {"$ref": "#/components/schemas/QemuDiskImageOnOff"}, "zeroed_grain": {"$ref": "#/components/schemas/QemuDiskImageOnOff"}, "adapter_type": {"$ref": "#/components/schemas/QemuDiskImageAdapterType"}, "extend": {"title": "Extend", "type": "integer", "description": "Number of Megabytes to extend the image"}}}, "Role": {"title": "Role", "required": ["role_id", "is_builtin", "permissions"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "description": {"title": "Description", "type": "string"}, "created_at": {"title": "Created At", "type": "string", "format": "date-time"}, "updated_at": {"title": "Updated At", "type": "string", "format": "date-time"}, "role_id": {"title": "Role Id", "type": "string", "format": "uuid"}, "is_builtin": {"title": "Is Builtin", "type": "boolean"}, "permissions": {"title": "Permissions", "type": "array", "items": {"$ref": "#/components/schemas/Permission"}}}, "description": "Common role properties."}, "RoleCreate": {"title": "RoleCreate", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "description": {"title": "Description", "type": "string"}}, "description": "Properties to create a role."}, "RoleUpdate": {"title": "RoleUpdate", "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "description": {"title": "Description", "type": "string"}}, "description": "Properties to update a role."}, "Snapshot": {"title": "Snapshot", "required": ["name", "snapshot_id", "project_id", "created_at"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}, "snapshot_id": {"title": "Snapshot Id", "type": "string", "format": "uuid"}, "project_id": {"title": "Project Id", "type": "string", "format": "uuid"}, "created_at": {"title": "Created At", "type": "integer", "description": "Date of the snapshot (UTC timestamp)"}}, "description": "Common properties for snapshot."}, "SnapshotCreate": {"title": "SnapshotCreate", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "type": "string"}}, "description": "Properties for snapshot creation."}, "Supplier": {"title": "Supplier", "required": ["logo"], "type": "object", "properties": {"logo": {"title": "Logo", "type": "string", "description": "Path to the project supplier logo"}, "url": {"title": "Url", "maxLength": 2083, "minLength": 1, "type": "string", "description": "URL to the project supplier site", "format": "uri"}}}, "Template": {"title": "Template", "required": ["template_id", "name", "category", "symbol", "builtin", "template_type"], "type": "object", "properties": {"template_id": {"title": "Template Id", "type": "string", "format": "uuid"}, "name": {"title": "Name", "type": "string"}, "version": {"title": "Version", "type": "string"}, "category": {"$ref": "#/components/schemas/Category"}, "default_name_format": {"title": "Default Name Format", "type": "string"}, "symbol": {"title": "Symbol", "type": "string"}, "builtin": {"title": "Builtin", "type": "boolean"}, "template_type": {"$ref": "#/components/schemas/NodeType"}, "compute_id": {"title": "Compute Id", "type": "string"}, "usage": {"title": "Usage", "type": "string", "default": ""}, "created_at": {"title": "Created At", "type": "string", "format": "date-time"}, "updated_at": {"title": "Updated At", "type": "string", "format": "date-time"}}, "description": "Common template properties."}, "TemplateCreate": {"title": "TemplateCreate", "required": ["name", "template_type"], "type": "object", "properties": {"template_id": {"title": "Template Id", "type": "string", "format": "uuid"}, "name": {"title": "Name", "type": "string"}, "version": {"title": "Version", "type": "string"}, "category": {"$ref": "#/components/schemas/Category"}, "default_name_format": {"title": "Default Name Format", "type": "string"}, "symbol": {"title": "Symbol", "type": "string"}, "builtin": {"title": "Builtin", "type": "boolean"}, "template_type": {"$ref": "#/components/schemas/NodeType"}, "compute_id": {"title": "Compute Id", "type": "string"}, "usage": {"title": "Usage", "type": "string", "default": ""}}, "description": "Properties to create a template."}, "TemplateUpdate": {"title": "TemplateUpdate", "type": "object", "properties": {"template_id": {"title": "Template Id", "type": "string", "format": "uuid"}, "name": {"title": "Name", "type": "string"}, "version": {"title": "Version", "type": "string"}, "category": {"$ref": "#/components/schemas/Category"}, "default_name_format": {"title": "Default Name Format", "type": "string"}, "symbol": {"title": "Symbol", "type": "string"}, "builtin": {"title": "Builtin", "type": "boolean"}, "template_type": {"$ref": "#/components/schemas/NodeType"}, "compute_id": {"title": "Compute Id", "type": "string"}, "usage": {"title": "Usage", "type": "string", "default": ""}}, "description": "Common template properties."}, "TemplateUsage": {"title": "TemplateUsage", "required": ["x", "y"], "type": "object", "properties": {"x": {"title": "X", "type": "integer"}, "y": {"title": "Y", "type": "integer"}, "name": {"title": "Name", "type": "string", "description": "Use this name to create a new node"}, "compute_id": {"title": "Compute Id", "type": "string", "description": "Used if the template doesn't have a default compute"}}}, "Token": {"title": "Token", "required": ["access_token", "token_type"], "type": "object", "properties": {"access_token": {"title": "Access Token", "type": "string"}, "token_type": {"title": "Token Type", "type": "string"}}}, "User": {"title": "User", "required": ["user_id"], "type": "object", "properties": {"username": {"title": "Username", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$", "type": "string"}, "is_active": {"title": "Is Active", "type": "boolean", "default": true}, "email": {"title": "Email", "type": "string", "format": "email"}, "full_name": {"title": "Full Name", "type": "string"}, "created_at": {"title": "Created At", "type": "string", "format": "date-time"}, "updated_at": {"title": "Updated At", "type": "string", "format": "date-time"}, "user_id": {"title": "User Id", "type": "string", "format": "uuid"}, "last_login": {"title": "Last Login", "type": "string", "format": "date-time"}, "is_superadmin": {"title": "Is Superadmin", "type": "boolean", "default": false}}, "description": "Common user properties."}, "UserCreate": {"title": "UserCreate", "required": ["username", "password"], "type": "object", "properties": {"username": {"title": "Username", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$", "type": "string"}, "is_active": {"title": "Is Active", "type": "boolean", "default": true}, "email": {"title": "Email", "type": "string", "format": "email"}, "full_name": {"title": "Full Name", "type": "string"}, "password": {"title": "Password", "maxLength": 100, "minLength": 6, "type": "string", "format": "password", "writeOnly": true}}, "description": "Properties to create an user."}, "UserGroup": {"title": "UserGroup", "required": ["user_group_id", "is_builtin"], "type": "object", "properties": {"name": {"title": "Name", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$", "type": "string"}, "created_at": {"title": "Created At", "type": "string", "format": "date-time"}, "updated_at": {"title": "Updated At", "type": "string", "format": "date-time"}, "user_group_id": {"title": "User Group Id", "type": "string", "format": "uuid"}, "is_builtin": {"title": "Is Builtin", "type": "boolean"}}, "description": "Common user group properties."}, "UserGroupCreate": {"title": "UserGroupCreate", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$", "type": "string"}}, "description": "Properties to create an user group."}, "UserGroupUpdate": {"title": "UserGroupUpdate", "type": "object", "properties": {"name": {"title": "Name", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$", "type": "string"}}, "description": "Properties to update an user group."}, "UserUpdate": {"title": "UserUpdate", "type": "object", "properties": {"username": {"title": "Username", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$", "type": "string"}, "is_active": {"title": "Is Active", "type": "boolean", "default": true}, "email": {"title": "Email", "type": "string", "format": "email"}, "full_name": {"title": "Full Name", "type": "string"}, "password": {"title": "Password", "maxLength": 100, "minLength": 6, "type": "string", "format": "password", "writeOnly": true}}, "description": "Properties to update an user."}, "ValidationError": {"title": "ValidationError", "required": ["loc", "msg", "type"], "type": "object", "properties": {"loc": {"title": "Location", "type": "array", "items": {"anyOf": [{"type": "string"}, {"type": "integer"}]}}, "msg": {"title": "Message", "type": "string"}, "type": {"title": "Error Type", "type": "string"}}}, "Variable": {"title": "Variable", "required": ["name"], "type": "object", "properties": {"name": {"title": "Name", "type": "string", "description": "Variable name"}, "value": {"title": "Value", "type": "string", "description": "Variable value"}}}, "Version": {"title": "Version", "required": ["version"], "type": "object", "properties": {"controller_host": {"title": "Controller Host", "type": "string", "description": "Controller hostname or IP address"}, "version": {"title": "Version", "type": "string", "description": "Version number"}, "local": {"title": "Local", "type": "boolean", "description": "Whether this is a local server or not"}}}, "WhenExit": {"title": "WhenExit", "enum": ["stop", "suspend", "keep"], "type": "string", "description": "\n What to do with the VM when GNS3 VM exits.\n "}, "gns3server__schemas__controller__links__LinkType": {"title": "LinkType", "enum": ["ethernet", "serial"], "type": "string", "description": "\n Link type.\n "}, "gns3server__schemas__controller__nodes__LinkType": {"title": "LinkType", "enum": ["ethernet", "serial"], "type": "string", "description": "\n Supported link types.\n "}}, "securitySchemes": {"OAuth2PasswordBearer": {"type": "oauth2", "flows": {"password": {"scopes": {}, "tokenUrl": "/v3/users/login"}}}}}} \ No newline at end of file diff --git a/docs/redoc.html b/docs/redoc.html index 066f63ec..843776b2 100644 --- a/docs/redoc.html +++ b/docs/redoc.html @@ -21,6 +21,9 @@ +