{
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "schemes": [
    "https"
  ],
  "swagger": "2.0",
  "info": {
    "title": "JNX Admin-Dashboard API Documentation.",
    "version": "1.0.0"
  },
  "host": "jannex",
  "basePath": "/v1",
  "paths": {
    "/adminarea/roles": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "adminarea"
        ],
        "summary": "Get all roles",
        "operationId": "adminareaGetRoles",
        "parameters": [
          {
            "description": "You can create a new api key in your user profile",
            "name": "X-Api-Key",
            "in": "header"
          }
        ],
        "responses": {
          "200": {
            "description": "All roles",
            "schema": {
              "$ref": "#/definitions/AdminAreaRolesResponse"
            }
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to get roles"
          }
        }
      }
    },
    "/crm/calls/create": {
      "post": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "crm"
        ],
        "summary": "Create crm call protocol",
        "operationId": "crmCreateCrmCallProtocol",
        "parameters": [
          {
            "description": "Crm call protocol",
            "name": "crmCallProtocol",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/CrmCallProtocolRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Crm call protocol created"
          },
          "400": {
            "description": "Invalid request query"
          },
          "401": {
            "description": "No permissions"
          },
          "404": {
            "description": "Customer not found"
          },
          "500": {
            "description": "Failed to create crm call protocol"
          }
        }
      }
    },
    "/crm/calls/delete/{id}": {
      "delete": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "crm"
        ],
        "summary": "Delete crm call protocol",
        "operationId": "crmDeleteCrmCallProtocol",
        "parameters": [
          {
            "description": "Call protocol id",
            "name": "id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Crm call protocol deleted"
          },
          "400": {
            "description": "Invalid request query"
          },
          "401": {
            "description": "No permissions"
          },
          "404": {
            "description": "Crm call protocol not found"
          },
          "500": {
            "description": "Failed to delete crm call protocol"
          }
        }
      }
    },
    "/crm/calls/{customerId}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "crm"
        ],
        "summary": "Get crm call protocols",
        "operationId": "crmGetCrmCallProtocols",
        "parameters": [
          {
            "description": "Customer id",
            "name": "customerId",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Crm call protocols",
            "schema": {
              "$ref": "#/definitions/CrmCallProtocol"
            }
          },
          "400": {
            "description": "Invalid request query"
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to get crm call protocols"
          }
        }
      }
    },
    "/crm/customer": {
      "post": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "crm"
        ],
        "summary": "Get crm customer by filters",
        "operationId": "crmGetCrmCustomer",
        "parameters": [
          {
            "description": "Crm customer",
            "name": "crmCustomer",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/CrmCustomer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Crm customer",
            "schema": {
              "$ref": "#/definitions/CrmTableCustomer"
            }
          },
          "400": {
            "description": "Invalid request query"
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to get crm customer"
          }
        }
      }
    },
    "/crm/customer/create": {
      "post": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "crm"
        ],
        "summary": "Create crm customer",
        "operationId": "crmCreateCrmCustomer",
        "parameters": [
          {
            "description": "Crm customer",
            "name": "crmCustomer",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/CrmCustomer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Crm customer",
            "schema": {
              "$ref": "#/definitions/CrmCustomer"
            }
          },
          "400": {
            "description": "Invalid request query"
          },
          "401": {
            "description": "No permissions"
          },
          "409": {
            "description": "Crm customer with the company name already exists"
          },
          "500": {
            "description": "Failed to create crm customer"
          }
        }
      }
    },
    "/crm/customer/update/{id}": {
      "post": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "crm"
        ],
        "summary": "Update crm customer",
        "operationId": "crmUpdateCrmCustomer",
        "parameters": [
          {
            "description": "Customer id",
            "name": "id",
            "in": "path"
          },
          {
            "description": "Crm customer",
            "name": "crmCustomer",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/CrmCustomer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Crm customer",
            "schema": {
              "$ref": "#/definitions/CrmCustomer"
            }
          },
          "400": {
            "description": "Invalid request query"
          },
          "401": {
            "description": "No permissions"
          },
          "404": {
            "description": "Crm customer not found"
          },
          "409": {
            "description": "Crm customer with the company name already exists"
          },
          "500": {
            "description": "Failed to update crm customer"
          }
        }
      }
    },
    "/crm/customer/view/{id}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "crm"
        ],
        "summary": "Get crm customer by id",
        "operationId": "crmGetCrmCustomerById",
        "parameters": [
          {
            "description": "Customer id",
            "name": "id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Crm customer",
            "schema": {
              "$ref": "#/definitions/CrmCustomer"
            }
          },
          "400": {
            "description": "Invalid request query"
          },
          "401": {
            "description": "No permissions"
          },
          "404": {
            "description": "Crm customer not found"
          },
          "500": {
            "description": "Failed to get crm customer"
          }
        }
      }
    },
    "/crm/customers": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "crm"
        ],
        "summary": "Get all crm customers",
        "operationId": "crmGetAllCustomers",
        "responses": {
          "200": {
            "description": "Crm customers",
            "schema": {
              "$ref": "#/definitions/CrmTableCustomer"
            }
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to get crm customers"
          }
        }
      }
    },
    "/crm/link/{id}": {
      "post": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "crm"
        ],
        "summary": "Use crm link",
        "operationId": "crmUseLink",
        "parameters": [
          {
            "description": "Link id",
            "name": "id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Crm link used"
          },
          "400": {
            "description": "Invalid request query"
          },
          "401": {
            "description": "No permissions"
          },
          "404": {
            "description": "Crm link not found"
          },
          "500": {
            "description": "Failed to use crm link"
          }
        }
      }
    },
    "/crm/links": {
      "post": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "crm"
        ],
        "summary": "Create crm link",
        "operationId": "crmCreateCrmLink",
        "parameters": [
          {
            "description": "Crm link",
            "name": "crmLink",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/CrmLink"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Crm link created"
          },
          "400": {
            "description": "Invalid request query"
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to create crm link"
          }
        }
      }
    },
    "/crm/links/{customerId}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "crm"
        ],
        "summary": "Get crm links",
        "operationId": "crmGetCrmLinks",
        "parameters": [
          {
            "description": "Customer id",
            "name": "customerId",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Crm links",
            "schema": {
              "$ref": "#/definitions/CrmLink"
            }
          },
          "400": {
            "description": "Invalid request query"
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to get crm links"
          }
        }
      }
    },
    "/crm/links/{id}": {
      "delete": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "crm"
        ],
        "summary": "Delete crm link",
        "operationId": "crmDeleteCrmLink",
        "parameters": [
          {
            "description": "Link id",
            "name": "id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Crm link deleted"
          },
          "400": {
            "description": "Invalid request query"
          },
          "401": {
            "description": "No permissions"
          },
          "404": {
            "description": "Crm link not found"
          },
          "500": {
            "description": "Failed to delete crm link"
          }
        }
      }
    },
    "/crm/nolink": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "crm"
        ],
        "summary": "Redirect to crm no link provided",
        "operationId": "crmNoLinkProvidedRedirect",
        "responses": {
          "200": {
            "description": "Redirect to crm no link provided"
          },
          "500": {
            "description": "Failed to redirect to crm no link provided"
          }
        }
      }
    },
    "/customerfeedback": {
      "post": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "customerFeedback"
        ],
        "summary": "Create customer feedback",
        "operationId": "createCustomerFeedback",
        "parameters": [
          {
            "description": "Feedback origin",
            "name": "origin",
            "in": "query"
          },
          {
            "name": "data",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/CustomerFeedbackRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Feedback created"
          },
          "400": {
            "description": "Invalid request"
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to create feedback"
          }
        }
      }
    },
    "/customerfeedback/origin": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "customerFeedback"
        ],
        "summary": "Get feedbacks by origin",
        "operationId": "getCustomerOriginFeedbacks",
        "parameters": [
          {
            "description": "Feedback origin",
            "name": "origin",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "List of feedbacks",
            "schema": {
              "$ref": "#/definitions/CustomerFeedback"
            }
          },
          "400": {
            "description": "Invalid request query"
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to get origins"
          }
        }
      }
    },
    "/customerfeedback/origins": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "customerFeedback"
        ],
        "summary": "Get all origins",
        "operationId": "getCustomerFeedbackOrigins",
        "responses": {
          "200": {
            "description": "List of origins"
          },
          "400": {
            "description": "Invalid request query"
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to get origins"
          }
        }
      }
    },
    "/equipment/documentation/create": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "equipment"
        ],
        "summary": "Create a new equipment documentation",
        "operationId": "equipmentCreateEquipmentDocumentation",
        "parameters": [
          {
            "description": "You can create a new api key in your user profile",
            "name": "X-Api-Key",
            "in": "header"
          },
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/CreateEquipmentDocumentationRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "New equipment documentation created successfully"
          },
          "400": {
            "description": "Invalid request body"
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to create equipment documentation"
          }
        }
      }
    },
    "/equipment/documentation/edit": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "equipment"
        ],
        "summary": "Edit equipment documentation",
        "operationId": "equipmentEditEquipmentDocumentation",
        "parameters": [
          {
            "description": "You can create a new api key in your user profile",
            "name": "X-Api-Key",
            "in": "header"
          },
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/EditEquipmentDocumentationRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Equipment documentation edited successfully"
          },
          "400": {
            "description": "Invalid request body"
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to edit equipment documentation"
          }
        }
      }
    },
    "/equipment/documentation/{stockItemId}/{documentationId}": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "equipment"
        ],
        "summary": "Get equipment documentation",
        "operationId": "equipmentGetEquipmentDocumentation",
        "parameters": [
          {
            "description": "You can create a new api key in your user profile",
            "name": "X-Api-Key",
            "in": "header"
          },
          {
            "type": "string",
            "description": "Stock item id",
            "name": "stockItemId",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "Documentation id",
            "name": "documentationId",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Equipment documentation",
            "schema": {
              "$ref": "#/definitions/EquipmentDocumentation"
            }
          },
          "400": {
            "description": "Invalid request body"
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to get equipment documentation"
          }
        }
      }
    },
    "/equipment/documentations/{stockItemId}": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "equipment"
        ],
        "summary": "Get equipment documentations",
        "operationId": "equipmentGetEquipmentDocumentations",
        "parameters": [
          {
            "description": "You can create a new api key in your user profile",
            "name": "X-Api-Key",
            "in": "header"
          },
          {
            "type": "string",
            "description": "Stock item id",
            "name": "stockItemId",
            "in": "path",
            "required": true
          },
          {
            "description": "Page number",
            "name": "page",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Equipment documentations. Status 200 if equipment documentations found, status 404 if stock item not found on invex, status 401 if backend has no permissions to access invex",
            "schema": {
              "$ref": "#/definitions/EquipmentDocumentationResponse"
            }
          },
          "400": {
            "description": "Invalid request body"
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to get equipment documentations"
          }
        }
      }
    },
    "/equipment/thumbnail/{stockItemId}": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "equipment"
        ],
        "summary": "Get equipment thumbnail",
        "operationId": "equipmentGetEquipmentThumbnail",
        "parameters": [
          {
            "type": "string",
            "description": "Stock item id",
            "name": "stockItemId",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Equipment thumbnail picture. Backend server is just proxying the request to invex server and returning the response"
          },
          "400": {
            "description": "Invalid request body"
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to get equipment thumbnail"
          }
        }
      }
    },
    "/grouptasks/start": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "grouptasks"
        ],
        "summary": "Start a new group task",
        "operationId": "grouptaskStartGroupTask",
        "parameters": [
          {
            "description": "You can create a new api key in your user profile",
            "name": "X-Api-Key",
            "in": "header"
          },
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/ApiGroupTaskRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "New group task started successfully"
          },
          "400": {
            "description": "Invalid request body"
          },
          "401": {
            "description": "No permissions"
          },
          "422": {
            "description": "Global inputs are not complete or no group tasks in this category"
          },
          "500": {
            "description": "Failed to start group task"
          }
        }
      }
    },
    "/grouptasks/{category}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "grouptasks"
        ],
        "summary": "Get group tasks",
        "operationId": "grouptaskGetGroupTasks",
        "parameters": [
          {
            "description": "Category of the group tasks",
            "name": "category",
            "in": "query",
            "required": true
          },
          {
            "description": "Page number",
            "name": "page",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Group tasks",
            "schema": {
              "$ref": "#/definitions/GroupTasksResponse"
            }
          },
          "400": {
            "description": "Invalid request query"
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to get group tasks"
          }
        }
      }
    },
    "/grouptasks/{category}/steps/{groupTaskId}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "tags": [
          "grouptasks"
        ],
        "summary": "Get group task steps",
        "operationId": "grouptaskGetGroupTaskSteps",
        "parameters": [
          {
            "description": "Category of the group tasks",
            "name": "category",
            "in": "query",
            "required": true
          },
          {
            "description": "Id of the group task",
            "name": "groupTaskId",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Group task steps",
            "schema": {
              "$ref": "#/definitions/GroupTaskSteps"
            }
          },
          "400": {
            "description": "Invalid request query"
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to get group task steps"
          }
        }
      }
    },
    "/notifications": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "notifications"
        ],
        "summary": "Get notifications",
        "operationId": "notificationsGetNotifications",
        "parameters": [
          {
            "description": "You can create a new api key in your user profile",
            "name": "X-Api-Key",
            "in": "header"
          },
          {
            "description": "Page number",
            "name": "page",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Notifications",
            "schema": {
              "$ref": "#/definitions/NotificationsResponse"
            }
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to get notifications"
          }
        }
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "notifications"
        ],
        "summary": "Add a new notification",
        "operationId": "notificationsAddNotification",
        "parameters": [
          {
            "description": "You can create a new api key in your user profile",
            "name": "X-Api-Key",
            "in": "header"
          },
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/AddNotificationRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "New notification added successfully"
          },
          "400": {
            "description": "Invalid request body"
          },
          "401": {
            "description": "No permissions"
          },
          "422": {
            "description": "No users found"
          },
          "500": {
            "description": "Failed to add notification"
          }
        }
      }
    },
    "/user/auth/login": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "Login user",
        "operationId": "userLogin",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/UserLoginRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "User logged in successfully",
            "schema": {
              "$ref": "#/definitions/UserLoginResponse"
            }
          },
          "400": {
            "description": "Invalid request body"
          },
          "401": {
            "description": "Incorrect password or user deactivated"
          },
          "500": {
            "description": "Failed to login user"
          }
        }
      }
    },
    "/user/auth/logout": {
      "delete": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "Logout user",
        "operationId": "userLogout",
        "parameters": [
          {
            "description": "User session id",
            "name": "X-Authorization",
            "in": "header"
          }
        ],
        "responses": {
          "201": {
            "description": "User logged out successfully"
          },
          "500": {
            "description": "Failed to logout user"
          }
        }
      }
    },
    "/user/avatar": {
      "post": {
        "consumes": [
          "multipart/form-data"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "Update user avatar",
        "operationId": "userAvatar",
        "parameters": [
          {
            "description": "You can create a new api key in your user profile",
            "name": "X-Api-Key",
            "in": "header"
          },
          {
            "type": "file",
            "description": "Avatar file",
            "name": "file",
            "in": "formData"
          }
        ],
        "responses": {
          "200": {
            "description": "User avatar updated successfully"
          },
          "400": {
            "description": "Invalid request body"
          },
          "401": {
            "description": "No permissions"
          },
          "413": {
            "description": "File too large"
          },
          "422": {
            "description": "Invalid file type"
          },
          "500": {
            "description": "Failed to update user avatar"
          }
        }
      }
    },
    "/user/info": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "Get user info",
        "operationId": "userInfo",
        "parameters": [
          {
            "description": "You can create a new api key in your user profile",
            "name": "X-Api-Key",
            "in": "header"
          }
        ],
        "responses": {
          "200": {
            "description": "User info",
            "schema": {
              "$ref": "#/definitions/UserShortInfoResponse"
            }
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to get user info"
          }
        }
      }
    },
    "/user/profile": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "Get user profile",
        "operationId": "userProfile",
        "parameters": [
          {
            "description": "You can create a new api key in your user profile",
            "name": "X-Api-Key",
            "in": "header"
          }
        ],
        "responses": {
          "200": {
            "description": "User profile",
            "schema": {
              "$ref": "#/definitions/UserProfileResponse"
            }
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to get user profile"
          }
        }
      }
    },
    "/user/session/{idForDeletion}": {
      "delete": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "user"
        ],
        "summary": "Sign out user session",
        "operationId": "userSignOutSession",
        "parameters": [
          {
            "description": "You can create a new api key in your user profile",
            "name": "X-Api-Key",
            "in": "header"
          },
          {
            "description": "Id for deletion",
            "name": "idForDeletion",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "User session signed out successfully"
          },
          "400": {
            "description": "Invalid request body"
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to sign out user session"
          }
        }
      }
    },
    "/users": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "users"
        ],
        "summary": "Get all users",
        "operationId": "usersGetUsers",
        "parameters": [
          {
            "description": "You can create a new api key in your user profile",
            "name": "X-Api-Key",
            "in": "header"
          }
        ],
        "responses": {
          "200": {
            "description": "All users",
            "schema": {
              "$ref": "#/definitions/UsersResponse"
            }
          },
          "401": {
            "description": "No permissions"
          },
          "500": {
            "description": "Failed to get users"
          }
        }
      }
    }
  },
  "definitions": {
    "AddNotificationRequest": {
      "type": "object",
      "properties": {
        "NeededPermission": {
          "description": "send notification to users with specific permission",
          "type": "string"
        },
        "RoleIds": {
          "description": "send notification to users with specific role",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "Title": {
          "type": "string"
        },
        "Type": {
          "type": "integer",
          "format": "uint8"
        },
        "UserIds": {
          "description": "send notification to specific users",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "AdminAreaRolesResponse": {
      "type": "object",
      "properties": {
        "Roles": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Role"
          }
        },
        "RolesPermissions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/RolePermissions"
          }
        },
        "Users": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AdminAreaUserInfo"
          }
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "AdminAreaUserInfo": {
      "type": "object",
      "properties": {
        "Id": {
          "type": "string"
        },
        "RoleId": {
          "type": "string"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "AllUsers": {
      "type": "object",
      "properties": {
        "Avatar": {
          "type": "string"
        },
        "ConnectionStatus": {
          "type": "integer",
          "format": "uint8"
        },
        "Deactivated": {
          "type": "boolean"
        },
        "Id": {
          "type": "string"
        },
        "LastOnline": {
          "type": "string",
          "format": "date-time"
        },
        "RoleId": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "ApiGroupTaskRequest": {
      "type": "object",
      "properties": {
        "Category": {
          "type": "string"
        },
        "Description": {
          "type": "string"
        },
        "GlobalInputs": {
          "description": "this format is needed [{\"description\": \"bla\"}]",
          "type": "object"
        },
        "GroupId": {
          "type": "string"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "CategoryGroup": {
      "type": "object",
      "properties": {
        "category": {
          "type": "string",
          "x-go-name": "Category"
        },
        "groups": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Group"
          },
          "x-go-name": "Groups"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "CreateEquipmentDocumentationRequest": {
      "type": "object",
      "properties": {
        "notes": {
          "type": "object",
          "x-go-name": "Notes"
        },
        "stockItemId": {
          "type": "string",
          "x-go-name": "StockItemId"
        },
        "title": {
          "type": "string",
          "x-go-name": "Title"
        },
        "type": {
          "type": "integer",
          "format": "uint8",
          "x-go-name": "Type"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "CrmCallProtocol": {
      "type": "object",
      "properties": {
        "CallType": {
          "type": "integer",
          "format": "uint8"
        },
        "CalledAt": {
          "type": "string",
          "format": "date-time"
        },
        "CreatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "CreatedBy": {
          "type": "string"
        },
        "CustomerId": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "Notes": {
          "type": "string"
        },
        "ResultExpressedInterest": {
          "type": "integer",
          "format": "uint8"
        },
        "ResultReached": {
          "type": "integer",
          "format": "uint8"
        },
        "ResultScheduled": {
          "type": "integer",
          "format": "uint8"
        },
        "ResultWhoPickedUp": {
          "type": "integer",
          "format": "uint8"
        },
        "Telephone": {
          "type": "string"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "CrmCallProtocolRequest": {
      "type": "object",
      "properties": {
        "CallType": {
          "type": "integer",
          "format": "uint8"
        },
        "CalledAt": {
          "type": "string",
          "format": "date-time"
        },
        "CustomerId": {
          "type": "string"
        },
        "Notes": {
          "type": "string"
        },
        "ResultExpressedInterest": {
          "type": "integer",
          "format": "uint8"
        },
        "ResultReached": {
          "type": "integer",
          "format": "uint8"
        },
        "ResultScheduled": {
          "type": "integer",
          "format": "uint8"
        },
        "ResultWhoPickedUp": {
          "type": "integer",
          "format": "uint8"
        },
        "Telephone": {
          "type": "string"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "CrmCustomer": {
      "type": "object",
      "properties": {
        "Address": {
          "type": "string"
        },
        "AmountsOfTheInstallments": {
          "type": "string"
        },
        "AssignedEmployee": {
          "type": "string"
        },
        "BookedPackages": {
          "type": "string"
        },
        "City": {
          "type": "string"
        },
        "Company": {
          "type": "string"
        },
        "Country": {
          "type": "string"
        },
        "CreatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "CreatedBy": {
          "type": "string"
        },
        "DateOfCompletion": {
          "type": "string"
        },
        "DealPhase": {
          "type": "integer",
          "format": "uint8"
        },
        "Email": {
          "type": "string"
        },
        "FederalState": {
          "type": "string"
        },
        "FirstName": {
          "type": "string"
        },
        "HowLongHadHeBeenSearching": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "JobTitle": {
          "type": "string"
        },
        "LastContact": {
          "type": "string",
          "format": "date-time"
        },
        "LastName": {
          "type": "string"
        },
        "LeadOrigin": {
          "type": "string"
        },
        "Notes": {
          "type": "string"
        },
        "NumberOfEmployees": {
          "type": "string"
        },
        "NumberOfEmployeesRequired": {
          "type": "string"
        },
        "NumberOfInstallments": {
          "type": "string"
        },
        "NumberOfJobsSearchedFor": {
          "type": "string"
        },
        "OrderVolume": {
          "type": "string"
        },
        "Pipeline": {
          "type": "integer",
          "format": "uint8"
        },
        "Telephone": {
          "type": "string"
        },
        "Turnover": {
          "type": "string"
        },
        "UpdatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "Website": {
          "type": "string"
        },
        "ZipCode": {
          "type": "string"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "CrmGetCustomerResponse": {
      "type": "object",
      "properties": {
        "CallProtocols": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CrmCallProtocol"
          }
        },
        "Customer": {
          "$ref": "#/definitions/CrmCustomer"
        },
        "LinkHistory": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CrmLinkHistory"
          }
        },
        "Links": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CrmLink"
          }
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "CrmLink": {
      "type": "object",
      "properties": {
        "CreatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "CreatedBy": {
          "type": "string"
        },
        "CustomerId": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "Url": {
          "type": "string"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "CrmLinkHistory": {
      "type": "object",
      "properties": {
        "LinkId": {
          "type": "string"
        },
        "UsedAt": {
          "type": "string",
          "format": "date-time"
        },
        "UserAgent": {
          "type": "string"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "CrmTableCustomer": {
      "type": "object",
      "properties": {
        "AssignedEmployee": {
          "type": "string"
        },
        "Company": {
          "type": "string"
        },
        "CreatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "CreatedBy": {
          "type": "string"
        },
        "DealPhase": {
          "type": "integer",
          "format": "uint8"
        },
        "Email": {
          "type": "string"
        },
        "FirstName": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "LastContact": {
          "type": "string",
          "format": "date-time"
        },
        "LastName": {
          "type": "string"
        },
        "Pipeline": {
          "type": "integer",
          "format": "uint8"
        },
        "Telephone": {
          "type": "string"
        },
        "UpdatedAt": {
          "type": "string",
          "format": "date-time"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "CrmTableCustomerResponse": {
      "type": "object",
      "properties": {
        "Customers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CrmTableCustomer"
          }
        },
        "TotalPages": {
          "type": "integer",
          "format": "int64"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "CustomerFeedback": {
      "type": "object",
      "properties": {
        "CreatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "Data": {
          "type": "object",
          "additionalProperties": {}
        },
        "Id": {
          "type": "string"
        },
        "Origin": {
          "type": "string"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "CustomerFeedbackRequest": {
      "type": "object",
      "properties": {
        "Data": {
          "type": "object",
          "additionalProperties": {}
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "EditEquipmentDocumentationRequest": {
      "type": "object",
      "properties": {
        "documentationId": {
          "type": "string",
          "x-go-name": "DocumentationId"
        },
        "notes": {
          "type": "object",
          "x-go-name": "Notes"
        },
        "title": {
          "type": "string",
          "x-go-name": "Title"
        },
        "type": {
          "type": "integer",
          "format": "uint8",
          "x-go-name": "Type"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "EquipmentDocumentation": {
      "type": "object",
      "properties": {
        "CreatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "CreatedByUserId": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "Notes": {
          "type": "string"
        },
        "StockItemId": {
          "type": "string"
        },
        "Title": {
          "type": "string"
        },
        "Type": {
          "type": "integer",
          "format": "uint8"
        },
        "UpdatedAt": {
          "type": "string",
          "format": "date-time"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "EquipmentDocumentationResponse": {
      "type": "object",
      "properties": {
        "Documentations": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/EquipmentDocumentation"
          }
        },
        "Status": {
          "type": "integer",
          "format": "int64"
        },
        "TotalPages": {
          "type": "integer",
          "format": "int64"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "GetGroupTaskStepsResponse": {
      "type": "object",
      "properties": {
        "GroupTask": {
          "$ref": "#/definitions/GroupTasks"
        },
        "GroupTaskSteps": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/GroupTaskSteps"
          }
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "GlobalInputs": {
      "type": "object",
      "properties": {
        "displayName": {
          "type": "string",
          "x-go-name": "DisplayName"
        },
        "options": {
          "x-go-name": "Options"
        },
        "parameterName": {
          "type": "string",
          "x-go-name": "ParameterName"
        },
        "type": {
          "type": "string",
          "x-go-name": "Type"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "Group": {
      "type": "object",
      "properties": {
        "category": {
          "type": "string",
          "x-go-name": "Category"
        },
        "globalInputs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/GlobalInputs"
          },
          "x-go-name": "GlobalInputs"
        },
        "id": {
          "type": "string",
          "x-go-name": "Id"
        },
        "name": {
          "type": "string",
          "x-go-name": "Name"
        },
        "tasks": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Task"
          },
          "x-go-name": "Tasks"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "GroupTaskSteps": {
      "type": "object",
      "properties": {
        "CreatorUserId": {
          "type": "string"
        },
        "EndedAt": {
          "type": "string",
          "format": "date-time"
        },
        "Files": {
          "type": "string"
        },
        "GroupTasksId": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "Inputs": {
          "type": "string"
        },
        "LockedByUserId": {
          "type": "string"
        },
        "Log": {
          "type": "string"
        },
        "StartedAt": {
          "type": "string",
          "format": "date-time"
        },
        "Status": {
          "type": "integer",
          "format": "uint8"
        },
        "Step": {
          "type": "integer",
          "format": "uint8"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "GroupTasks": {
      "type": "object",
      "properties": {
        "Category": {
          "type": "string"
        },
        "CreatorUserId": {
          "type": "string"
        },
        "CurrentTasksStep": {
          "type": "integer",
          "format": "uint8"
        },
        "Description": {
          "type": "string"
        },
        "EndedAt": {
          "type": "string",
          "format": "date-time"
        },
        "GlobalInputs": {
          "type": "string"
        },
        "GroupId": {
          "type": "string"
        },
        "GroupName": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "NumberOfSteps": {
          "type": "integer",
          "format": "uint8"
        },
        "RememberId": {
          "type": "string"
        },
        "StartedAt": {
          "type": "string",
          "format": "date-time"
        },
        "Status": {
          "type": "integer",
          "format": "uint8"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "GroupTasksResponse": {
      "type": "object",
      "properties": {
        "CategoryGroup": {
          "$ref": "#/definitions/CategoryGroup"
        },
        "GroupTasks": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/GroupTasks"
          }
        },
        "TotalPages": {
          "type": "integer",
          "format": "int64"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "GroupTasksStepsRequest": {
      "type": "object",
      "properties": {
        "Category": {
          "type": "string"
        },
        "GroupTaskId": {
          "type": "string"
        }
      },
      "x-go-name": "GroupTaskStepsRequest",
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "Notification": {
      "type": "object",
      "properties": {
        "CreatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "Id": {
          "type": "string"
        },
        "Title": {
          "type": "string"
        },
        "Type": {
          "description": "success = 1, info = 2, warning = 3, error = 4",
          "type": "integer",
          "format": "uint8"
        },
        "UserId": {
          "type": "string"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "NotificationsResponse": {
      "type": "object",
      "properties": {
        "Notifications": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Notification"
          }
        },
        "TotalPages": {
          "type": "integer",
          "format": "int64"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "Role": {
      "type": "object",
      "properties": {
        "CreatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "Description": {
          "type": "string"
        },
        "DisplayName": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "Master": {
          "type": "boolean"
        },
        "SortingOrder": {
          "type": "integer",
          "format": "int64"
        },
        "UpdatedAt": {
          "type": "string",
          "format": "date-time"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "RolePermissions": {
      "type": "object",
      "properties": {
        "Permissions": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "RoleId": {
          "type": "string"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "Task": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-go-name": "Name"
        },
        "onFinish": {
          "type": "string",
          "x-go-name": "OnFinish"
        },
        "parameters": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TaskParameter"
          },
          "x-go-name": "Parameters"
        },
        "repeatPossible": {
          "type": "boolean",
          "x-go-name": "RepeatPossible"
        },
        "scriptPath": {
          "type": "string",
          "x-go-name": "ScriptPath"
        },
        "undoPossible": {
          "type": "boolean",
          "x-go-name": "UndoPossible"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "TaskParameter": {
      "type": "object",
      "properties": {
        "displayName": {
          "type": "string",
          "x-go-name": "DisplayName"
        },
        "global": {
          "type": "boolean",
          "x-go-name": "Global"
        },
        "options": {
          "x-go-name": "Options"
        },
        "parameterName": {
          "type": "string",
          "x-go-name": "ParameterName"
        },
        "type": {
          "type": "string",
          "x-go-name": "Type"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "UserApiKey": {
      "type": "object",
      "properties": {
        "CreatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "Id": {
          "type": "string"
        },
        "LastUsed": {
          "type": "string",
          "format": "date-time"
        },
        "Name": {
          "type": "string"
        },
        "Token": {
          "type": "string"
        },
        "UsageCount": {
          "type": "integer",
          "format": "uint64"
        },
        "UserId": {
          "type": "string"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "UserInfoResponse": {
      "type": "object",
      "properties": {
        "AvailableCategories": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "Avatar": {
          "type": "string"
        },
        "Permissions": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "TotalNotifications": {
          "type": "integer",
          "format": "int64"
        },
        "UserId": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        },
        "Users": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/UserShortInfoResponse"
          }
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "UserLoginRequest": {
      "type": "object",
      "properties": {
        "Password": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "UserLoginResponse": {
      "type": "object",
      "properties": {
        "Session": {
          "type": "string"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "UserProfileResponse": {
      "type": "object",
      "properties": {
        "ApiKeys": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/UserApiKey"
          }
        },
        "Email": {
          "type": "string"
        },
        "Sessions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/UserSessionSocket"
          }
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "UserRoleShortInfo": {
      "type": "object",
      "properties": {
        "DisplayName": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "Master": {
          "type": "boolean"
        },
        "SortingOrder": {
          "type": "integer",
          "format": "int64"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "UserSessionSocket": {
      "type": "object",
      "properties": {
        "ConnectionStatus": {
          "type": "integer",
          "format": "uint8"
        },
        "ExpiresAt": {
          "type": "string",
          "format": "date-time"
        },
        "IdForDeletion": {
          "type": "string"
        },
        "LastUsed": {
          "type": "string",
          "format": "date-time"
        },
        "UserAgent": {
          "type": "string"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "UserShortInfoResponse": {
      "type": "object",
      "properties": {
        "Avatar": {
          "type": "string"
        },
        "Id": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    },
    "UsersResponse": {
      "type": "object",
      "properties": {
        "RoleId": {
          "type": "string"
        },
        "Roles": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/UserRoleShortInfo"
          }
        },
        "Users": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AllUsers"
          }
        }
      },
      "x-go-package": "jannex/admin-dashboard-backend/modules/structs"
    }
  }
}