gns3-server/docs/openapi.json
2021-04-13 09:38:14 +00:00

1 line
109 KiB
JSON

{"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/shutdown": {"post": {"tags": ["Controller"], "summary": "Shutdown", "description": "Shutdown the local 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"}}}}}}}, "/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.\n\n:param request:\n:param response:\n:return:", "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/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"}}}}}}, "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"}}}}}}}, "/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": {}}}}}}}, "/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"}}}}}}}, "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"}}}}}}}, "/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"}}}}}}, "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"}}}}}}, "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/login": {"post": {"tags": ["Users"], "summary": "Login", "description": "User login.", "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/users/me/": {"get": {"tags": ["Users"], "summary": "Get Current Active User", "description": "Get the current active user.", "operationId": "get_current_active_user_v3_users_users_me__get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/User"}}}}}, "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"}, "name": "update", "in": "query"}, {"required": false, "schema": {"title": "Symbol Theme", "type": "string", "default": "Classic"}, "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"}}}}}}}, "/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"}}}}}}, "post": {"tags": ["Computes"], "summary": "Create Compute", "description": "Create a new compute on the controller.", "operationId": "create_compute_v3_computes_post", "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"}}}}}}}, "/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"}}}}}}, "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"}}}}}}, "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"}}}}}}}, "/v3/computes/{compute_id}/{emulator}/images": {"get": {"tags": ["Computes"], "summary": "Get Images", "description": "Return the list of images available on a compute for a given emulator type.", "operationId": "get_images_v3_computes__compute_id___emulator__images_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"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "404": {"description": "Compute not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/computes/{compute_id}/{emulator}/{endpoint_path}": {"get": {"tags": ["Computes"], "summary": "Forward Get", "description": "Forward a GET request to a compute.\nRead the full compute API documentation for available routes.", "operationId": "forward_get_v3_computes__compute_id___emulator___endpoint_path__get", "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"}}}}}}, "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"}}}}}}, "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"}}}}}}}, "/v3/computes/{compute_id}/auto_idlepc": {"post": {"tags": ["Computes"], "summary": "Autoidlepc", "description": "Find a suitable Idle-PC value for a given IOS image. This may take a few minutes.", "operationId": "autoidlepc_v3_computes__compute_id__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"}}}}}}}, "/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"}}}}}}, "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"}}}}}}}, "/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"}}}}}}, "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"}}}}}}, "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"}}}}}}}, "/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": {}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}, "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"}}}}}}}, "/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"}}}}}}, "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/Link"}}}, "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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}, "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/Link"}}}, "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"}}}}}}, "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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}, "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/Node"}}}, "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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}, "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"}}}}}}, "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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}}, "/v3/projects/{project_id}/nodes/{node_id}/resize_disk": {"post": {"tags": ["Nodes"], "summary": "Resize Disk", "description": "Resize a disk image.", "operationId": "resize_disk_v3_projects__project_id__nodes__node_id__resize_disk_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": "Resize Data", "type": "object"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "404": {"description": "Could not find project or node", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/projects/{project_id}/nodes/{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"}}}}}}, "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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}}, "/v3/notifications": {"get": {"tags": ["Notifications"], "summary": "Http Notification", "description": "Receive controller notifications about the controller from HTTP stream.", "operationId": "http_notification_v3_notifications_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}}, "/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"}}}}}}, "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"}}}}}}}, "/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"}}}}}}, "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"}}}}}}, "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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}}, "/v3/projects/{project_id}/notifications": {"get": {"tags": ["Projects"], "summary": "Notification", "description": "Receive project notifications about the controller from HTTP stream.", "operationId": "notification_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"}}}}}}}, "/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": {"title": "Compression", "type": "string", "default": "zip"}, "name": "compression", "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"}}}}}}}, "/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": "Path", "type": "string", "format": "path"}, "name": "path", "in": "query"}, {"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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}, "post": {"tags": ["Projects"], "summary": "Write File", "description": "Write a file from 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"}}}}}}}, "/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"}}}}}}, "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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}}, "/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"}}}}}}}, "/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/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"}}}}}}, "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"}}}}}}}, "/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"}}}}}}, "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"}}}}}}, "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"}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Could not find template", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorMessage"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/v3/templates/{template_id}/duplicate": {"post": {"tags": ["Templates"], "summary": "Duplicate Template", "description": "Duplicate a template.", "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"}}}}}}}, "/v3/projects/{project_id}/templates/{template_id}": {"post": {"tags": ["Templates"], "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"}}}}}}}}, "components": {"schemas": {"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"}, "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"}, "name": {"title": "Name", "type": "string"}, "compute_id": {"title": "Compute Id", "anyOf": [{"type": "string"}, {"type": "string", "format": "uuid"}]}, "password": {"title": "Password", "type": "string", "format": "password", "writeOnly": true}}, "description": "Data to create a compute.", "example": {"name": "My compute", "host": "127.0.0.1", "port": 3080, "user": "user", "password": "password"}}, "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"}, "name": {"title": "Name", "type": "string"}, "password": {"title": "Password", "type": "string", "format": "password", "writeOnly": true}}, "description": "Data to update a compute.", "example": {"host": "10.0.0.1", "port": 8080}}, "ConsoleType": {"title": "ConsoleType", "enum": ["vnc", "telnet", "http", "https", "spice", "spice+agent", "none"], "type": "string", "description": "Supported console types."}, "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."}, "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"}}}, "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", "type": "object", "properties": {"link_id": {"title": "Link Id", "type": "string", "format": "uuid"}, "project_id": {"title": "Project Id", "type": "string", "format": "uuid"}, "nodes": {"title": "Nodes", "type": "array", "items": {"$ref": "#/components/schemas/LinkNode"}}, "suspend": {"title": "Suspend", "type": "boolean"}, "filters": {"title": "Filters", "type": "object"}, "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"}, "link_type": {"$ref": "#/components/schemas/gns3server__schemas__links__LinkType"}}, "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."}, "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"}, "project_id": {"title": "Project Id", "type": "string", "format": "uuid"}, "node_id": {"title": "Node Id", "type": "string", "format": "uuid"}, "template_id": {"title": "Template Id", "type": "string", "description": "Template UUID from which the node has been created. Read only", "format": "uuid"}, "node_directory": {"title": "Node Directory", "type": "string", "description": "Working directory of the node. Read only"}, "command_line": {"title": "Command Line", "type": "string", "description": "Command line use to start the node"}, "console": {"title": "Console", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer", "description": "Console TCP port"}, "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"}, "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"}, "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"}, "status": {"$ref": "#/components/schemas/NodeStatus"}, "label": {"$ref": "#/components/schemas/Label"}, "symbol": {"title": "Symbol", "type": "string"}, "width": {"title": "Width", "type": "integer", "description": "Width of the node (Read only)"}, "height": {"title": "Height", "type": "integer", "description": "Height of the node (Read only)"}, "x": {"title": "X", "type": "integer"}, "y": {"title": "Y", "type": "integer"}, "z": {"title": "Z", "type": "integer"}, "locked": {"title": "Locked", "type": "boolean", "description": "Whether the element locked or not"}, "port_name_format": {"title": "Port Name Format", "type": "string", "description": "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"}}, "ports": {"title": "Ports", "type": "array", "items": {"$ref": "#/components/schemas/NodePort"}, "description": "List of node ports (read only)"}}, "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__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"}, "project_id": {"title": "Project Id", "type": "string", "format": "uuid"}, "node_id": {"title": "Node Id", "type": "string", "format": "uuid"}, "template_id": {"title": "Template Id", "type": "string", "description": "Template UUID from which the node has been created. Read only", "format": "uuid"}, "node_directory": {"title": "Node Directory", "type": "string", "description": "Working directory of the node. Read only"}, "command_line": {"title": "Command Line", "type": "string", "description": "Command line use to start the node"}, "console": {"title": "Console", "maximum": 65535.0, "exclusiveMinimum": 0.0, "type": "integer", "description": "Console TCP port"}, "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"}, "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"}, "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"}, "status": {"$ref": "#/components/schemas/NodeStatus"}, "label": {"$ref": "#/components/schemas/Label"}, "symbol": {"title": "Symbol", "type": "string"}, "width": {"title": "Width", "type": "integer", "description": "Width of the node (Read only)"}, "height": {"title": "Height", "type": "integer", "description": "Height of the node (Read only)"}, "x": {"title": "X", "type": "integer"}, "y": {"title": "Y", "type": "integer"}, "z": {"title": "Z", "type": "integer"}, "locked": {"title": "Locked", "type": "boolean", "description": "Whether the element locked or not"}, "port_name_format": {"title": "Port Name Format", "type": "string", "description": "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"}}, "ports": {"title": "Ports", "type": "array", "items": {"$ref": "#/components/schemas/NodePort"}, "description": "List of node ports (read only)"}}, "description": "Data to update a node."}, "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."}, "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."}, "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"}, "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", "compute_id"], "type": "object", "properties": {"template_id": {"title": "Template Id", "type": "string", "format": "uuid"}, "name": {"title": "Name", "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"}, "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"}, "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"}, "is_active": {"title": "Is Active", "type": "boolean", "default": true}, "is_superuser": {"title": "Is Superuser", "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"}, "email": {"title": "Email", "type": "string", "format": "email"}, "full_name": {"title": "Full Name", "type": "string"}, "password": {"title": "Password", "maxLength": 100, "minLength": 7, "type": "string"}}, "description": "Properties to create an user."}, "UserUpdate": {"title": "UserUpdate", "type": "object", "properties": {"username": {"title": "Username", "minLength": 3, "pattern": "[a-zA-Z0-9_-]+$", "type": "string"}, "email": {"title": "Email", "type": "string", "format": "email"}, "full_name": {"title": "Full Name", "type": "string"}, "password": {"title": "Password", "maxLength": 100, "minLength": 7, "type": "string"}}, "description": "Properties to update an user."}, "ValidationError": {"title": "ValidationError", "required": ["loc", "msg", "type"], "type": "object", "properties": {"loc": {"title": "Location", "type": "array", "items": {"type": "string"}}, "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": {"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__links__LinkType": {"title": "LinkType", "enum": ["ethernet", "serial"], "type": "string", "description": "Link type."}, "gns3server__schemas__nodes__LinkType": {"title": "LinkType", "enum": ["ethernet", "serial"], "type": "string", "description": "Supported link types."}}, "securitySchemes": {"OAuth2PasswordBearer": {"type": "oauth2", "flows": {"password": {"scopes": {}, "tokenUrl": "/v3/users/login"}}}}}}