{ "schemes": [ "https", "http" ], "swagger": "2.0", "info": { "description": "Track, Manage, and Organize your Things.", "title": "Homebox API", "contact": { "name": "Homebox Team", "url": "https://discord.homebox.software" }, "version": "1.0" }, "host": "demo.homebox.software", "basePath": "/api", "paths": { "/v1/actions/create-missing-thumbnails": { "post": { "security": [ { "Bearer": [] } ], "description": "Creates thumbnails for items that are missing them", "produces": [ "application/json" ], "tags": [ "Actions" ], "summary": "Create Missing Thumbnails", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/v1.ActionAmountResult" } } } } }, "/v1/actions/ensure-asset-ids": { "post": { "security": [ { "Bearer": [] } ], "description": "Ensures all items in the database have an asset ID", "produces": [ "application/json" ], "tags": [ "Actions" ], "summary": "Ensure Asset IDs", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/v1.ActionAmountResult" } } } } }, "/v1/actions/ensure-import-refs": { "post": { "security": [ { "Bearer": [] } ], "description": "Ensures all items in the database have an import ref", "produces": [ "application/json" ], "tags": [ "Actions" ], "summary": "Ensures Import Refs", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/v1.ActionAmountResult" } } } } }, "/v1/actions/set-primary-photos": { "post": { "security": [ { "Bearer": [] } ], "description": "Sets the first photo of each item as the primary photo", "produces": [ "application/json" ], "tags": [ "Actions" ], "summary": "Set Primary Photos", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/v1.ActionAmountResult" } } } } }, "/v1/actions/zero-item-time-fields": { "post": { "security": [ { "Bearer": [] } ], "description": "Resets all item date fields to the beginning of the day", "produces": [ "application/json" ], "tags": [ "Actions" ], "summary": "Zero Out Time Fields", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/v1.ActionAmountResult" } } } } }, "/v1/assets/{id}": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Items" ], "summary": "Get Item by Asset ID", "parameters": [ { "type": "string", "description": "Asset ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.PaginationResult-repo_ItemSummary" } } } } }, "/v1/currency": { "get": { "produces": [ "application/json" ], "tags": [ "Base" ], "summary": "Currency", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/currencies.Currency" } } } } }, "/v1/groups": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Group" ], "summary": "Get Group", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.Group" } } } }, "put": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Group" ], "summary": "Update Group", "parameters": [ { "description": "User Data", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/repo.GroupUpdate" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.Group" } } } } }, "/v1/groups/invitations": { "post": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Group" ], "summary": "Create Group Invitation", "parameters": [ { "description": "User Data", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1.GroupInvitationCreate" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/v1.GroupInvitation" } } } } }, "/v1/groups/statistics": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Statistics" ], "summary": "Get Group Statistics", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.GroupStatistics" } } } } }, "/v1/groups/statistics/labels": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Statistics" ], "summary": "Get Label Statistics", "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/repo.TotalsByOrganizer" } } } } } }, "/v1/groups/statistics/locations": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Statistics" ], "summary": "Get Location Statistics", "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/repo.TotalsByOrganizer" } } } } } }, "/v1/groups/statistics/purchase-price": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Statistics" ], "summary": "Get Purchase Price Statistics", "parameters": [ { "type": "string", "description": "start date", "name": "start", "in": "query" }, { "type": "string", "description": "end date", "name": "end", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.ValueOverTime" } } } } }, "/v1/items": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Items" ], "summary": "Query All Items", "parameters": [ { "type": "string", "description": "search string", "name": "q", "in": "query" }, { "type": "integer", "description": "page number", "name": "page", "in": "query" }, { "type": "integer", "description": "items per page", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "label Ids", "name": "labels", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "location Ids", "name": "locations", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "parent Ids", "name": "parentIds", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.PaginationResult-repo_ItemSummary" } } } }, "post": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Items" ], "summary": "Create Item", "parameters": [ { "description": "Item Data", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/repo.ItemCreate" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/repo.ItemSummary" } } } } }, "/v1/items/export": { "get": { "security": [ { "Bearer": [] } ], "tags": [ "Items" ], "summary": "Export Items", "responses": { "200": { "description": "text/csv", "schema": { "type": "string" } } } } }, "/v1/items/fields": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Items" ], "summary": "Get All Custom Field Names", "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "type": "string" } } } } } }, "/v1/items/fields/values": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Items" ], "summary": "Get All Custom Field Values", "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "type": "string" } } } } } }, "/v1/items/import": { "post": { "security": [ { "Bearer": [] } ], "consumes": [ "multipart/form-data" ], "produces": [ "application/json" ], "tags": [ "Items" ], "summary": "Import Items", "parameters": [ { "type": "file", "description": "Image to upload", "name": "csv", "in": "formData", "required": true } ], "responses": { "204": { "description": "No Content" } } } }, "/v1/items/{id}": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Items" ], "summary": "Get Item", "parameters": [ { "type": "string", "description": "Item ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.ItemOut" } } } }, "put": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Items" ], "summary": "Update Item", "parameters": [ { "type": "string", "description": "Item ID", "name": "id", "in": "path", "required": true }, { "description": "Item Data", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/repo.ItemUpdate" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.ItemOut" } } } }, "delete": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Items" ], "summary": "Delete Item", "parameters": [ { "type": "string", "description": "Item ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "description": "No Content" } } }, "patch": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Items" ], "summary": "Update Item", "parameters": [ { "type": "string", "description": "Item ID", "name": "id", "in": "path", "required": true }, { "description": "Item Data", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/repo.ItemPatch" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.ItemOut" } } } } }, "/v1/items/{id}/attachments": { "post": { "security": [ { "Bearer": [] } ], "consumes": [ "multipart/form-data" ], "produces": [ "application/json" ], "tags": [ "Items Attachments" ], "summary": "Create Item Attachment", "parameters": [ { "type": "string", "description": "Item ID", "name": "id", "in": "path", "required": true }, { "type": "file", "description": "File attachment", "name": "file", "in": "formData", "required": true }, { "type": "string", "description": "Type of file", "name": "type", "in": "formData" }, { "type": "boolean", "description": "Is this the primary attachment", "name": "primary", "in": "formData" }, { "type": "string", "description": "name of the file including extension", "name": "name", "in": "formData", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.ItemOut" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/validate.ErrorResponse" } } } } }, "/v1/items/{id}/attachments/{attachment_id}": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/octet-stream" ], "tags": [ "Items Attachments" ], "summary": "Get Item Attachment", "parameters": [ { "type": "string", "description": "Item ID", "name": "id", "in": "path", "required": true }, { "type": "string", "description": "Attachment ID", "name": "attachment_id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/v1.ItemAttachmentToken" } } } }, "put": { "security": [ { "Bearer": [] } ], "tags": [ "Items Attachments" ], "summary": "Update Item Attachment", "parameters": [ { "type": "string", "description": "Item ID", "name": "id", "in": "path", "required": true }, { "type": "string", "description": "Attachment ID", "name": "attachment_id", "in": "path", "required": true }, { "description": "Attachment Update", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/repo.ItemAttachmentUpdate" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.ItemOut" } } } }, "delete": { "security": [ { "Bearer": [] } ], "tags": [ "Items Attachments" ], "summary": "Delete Item Attachment", "parameters": [ { "type": "string", "description": "Item ID", "name": "id", "in": "path", "required": true }, { "type": "string", "description": "Attachment ID", "name": "attachment_id", "in": "path", "required": true } ], "responses": { "204": { "description": "No Content" } } } }, "/v1/items/{id}/duplicate": { "post": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Items" ], "summary": "Duplicate Item", "parameters": [ { "type": "string", "description": "Item ID", "name": "id", "in": "path", "required": true }, { "description": "Duplicate Options", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/repo.DuplicateOptions" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/repo.ItemOut" } } } } }, "/v1/items/{id}/maintenance": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Item Maintenance" ], "summary": "Get Maintenance Log", "parameters": [ { "type": "string", "description": "Item ID", "name": "id", "in": "path", "required": true }, { "enum": [ "scheduled", "completed", "both" ], "type": "string", "x-enum-varnames": [ "MaintenanceFilterStatusScheduled", "MaintenanceFilterStatusCompleted", "MaintenanceFilterStatusBoth" ], "name": "status", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/repo.MaintenanceEntryWithDetails" } } } } }, "post": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Item Maintenance" ], "summary": "Create Maintenance Entry", "parameters": [ { "type": "string", "description": "Item ID", "name": "id", "in": "path", "required": true }, { "description": "Entry Data", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/repo.MaintenanceEntryCreate" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/repo.MaintenanceEntry" } } } } }, "/v1/items/{id}/path": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Items" ], "summary": "Get the full path of an item", "parameters": [ { "type": "string", "description": "Item ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/repo.ItemPath" } } } } } }, "/v1/labelmaker/assets/{id}": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Items" ], "summary": "Get Asset label", "parameters": [ { "type": "string", "description": "Asset ID", "name": "id", "in": "path", "required": true }, { "type": "boolean", "description": "Print this label, defaults to false", "name": "print", "in": "query" } ], "responses": { "200": { "description": "image/png", "schema": { "type": "string" } } } } }, "/v1/labelmaker/item/{id}": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Items" ], "summary": "Get Item label", "parameters": [ { "type": "string", "description": "Item ID", "name": "id", "in": "path", "required": true }, { "type": "boolean", "description": "Print this label, defaults to false", "name": "print", "in": "query" } ], "responses": { "200": { "description": "image/png", "schema": { "type": "string" } } } } }, "/v1/labelmaker/location/{id}": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Locations" ], "summary": "Get Location label", "parameters": [ { "type": "string", "description": "Location ID", "name": "id", "in": "path", "required": true }, { "type": "boolean", "description": "Print this label, defaults to false", "name": "print", "in": "query" } ], "responses": { "200": { "description": "image/png", "schema": { "type": "string" } } } } }, "/v1/labels": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Labels" ], "summary": "Get All Labels", "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/repo.LabelOut" } } } } }, "post": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Labels" ], "summary": "Create Label", "parameters": [ { "description": "Label Data", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/repo.LabelCreate" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.LabelSummary" } } } } }, "/v1/labels/{id}": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Labels" ], "summary": "Get Label", "parameters": [ { "type": "string", "description": "Label ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.LabelOut" } } } }, "put": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Labels" ], "summary": "Update Label", "parameters": [ { "type": "string", "description": "Label ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.LabelOut" } } } }, "delete": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Labels" ], "summary": "Delete Label", "parameters": [ { "type": "string", "description": "Label ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "description": "No Content" } } } }, "/v1/locations": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Locations" ], "summary": "Get All Locations", "parameters": [ { "type": "boolean", "description": "Filter locations with parents", "name": "filterChildren", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/repo.LocationOutCount" } } } } }, "post": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Locations" ], "summary": "Create Location", "parameters": [ { "description": "Location Data", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/repo.LocationCreate" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.LocationSummary" } } } } }, "/v1/locations/tree": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Locations" ], "summary": "Get Locations Tree", "parameters": [ { "type": "boolean", "description": "include items in response tree", "name": "withItems", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/repo.TreeItem" } } } } } }, "/v1/locations/{id}": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Locations" ], "summary": "Get Location", "parameters": [ { "type": "string", "description": "Location ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.LocationOut" } } } }, "put": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Locations" ], "summary": "Update Location", "parameters": [ { "type": "string", "description": "Location ID", "name": "id", "in": "path", "required": true }, { "description": "Location Data", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/repo.LocationUpdate" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.LocationOut" } } } }, "delete": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Locations" ], "summary": "Delete Location", "parameters": [ { "type": "string", "description": "Location ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "description": "No Content" } } } }, "/v1/maintenance": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Maintenance" ], "summary": "Query All Maintenance", "parameters": [ { "enum": [ "scheduled", "completed", "both" ], "type": "string", "x-enum-varnames": [ "MaintenanceFilterStatusScheduled", "MaintenanceFilterStatusCompleted", "MaintenanceFilterStatusBoth" ], "name": "status", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/repo.MaintenanceEntryWithDetails" } } } } } }, "/v1/maintenance/{id}": { "put": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Maintenance" ], "summary": "Update Maintenance Entry", "parameters": [ { "type": "string", "description": "Maintenance ID", "name": "id", "in": "path", "required": true }, { "description": "Entry Data", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/repo.MaintenanceEntryUpdate" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.MaintenanceEntry" } } } }, "delete": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Maintenance" ], "summary": "Delete Maintenance Entry", "parameters": [ { "type": "string", "description": "Maintenance ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "description": "No Content" } } } }, "/v1/notifiers": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Notifiers" ], "summary": "Get Notifiers", "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/repo.NotifierOut" } } } } }, "post": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Notifiers" ], "summary": "Create Notifier", "parameters": [ { "description": "Notifier Data", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/repo.NotifierCreate" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.NotifierOut" } } } } }, "/v1/notifiers/test": { "post": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Notifiers" ], "summary": "Test Notifier", "parameters": [ { "type": "string", "description": "URL", "name": "url", "in": "query", "required": true } ], "responses": { "204": { "description": "No Content" } } } }, "/v1/notifiers/{id}": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "Notifiers" ], "summary": "Update Notifier", "parameters": [ { "type": "string", "description": "Notifier ID", "name": "id", "in": "path", "required": true }, { "description": "Notifier Data", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/repo.NotifierUpdate" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/repo.NotifierOut" } } } }, "delete": { "security": [ { "Bearer": [] } ], "tags": [ "Notifiers" ], "summary": "Delete a Notifier", "parameters": [ { "type": "string", "description": "Notifier ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "description": "No Content" } } } }, "/v1/products/search-from-barcode": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Items" ], "summary": "Search EAN from Barcode", "parameters": [ { "type": "string", "description": "barcode to be searched", "name": "data", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/repo.BarcodeProduct" } } } } } }, "/v1/qrcode": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Items" ], "summary": "Create QR Code", "parameters": [ { "type": "string", "description": "data to be encoded into qrcode", "name": "data", "in": "query" } ], "responses": { "200": { "description": "image/jpeg", "schema": { "type": "string" } } } } }, "/v1/reporting/bill-of-materials": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "Reporting" ], "summary": "Export Bill of Materials", "responses": { "200": { "description": "text/csv", "schema": { "type": "string" } } } } }, "/v1/status": { "get": { "produces": [ "application/json" ], "tags": [ "Base" ], "summary": "Application Info", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/v1.APISummary" } } } } }, "/v1/users/change-password": { "put": { "security": [ { "Bearer": [] } ], "tags": [ "User" ], "summary": "Change Password", "parameters": [ { "description": "Password Payload", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1.ChangePassword" } } ], "responses": { "204": { "description": "No Content" } } } }, "/v1/users/login": { "post": { "consumes": [ "application/x-www-form-urlencoded", "application/json" ], "produces": [ "application/json" ], "tags": [ "Authentication" ], "summary": "User Login", "parameters": [ { "description": "Login Data", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1.LoginForm" } }, { "type": "string", "description": "auth provider", "name": "provider", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/v1.TokenResponse" } } } } }, "/v1/users/logout": { "post": { "security": [ { "Bearer": [] } ], "tags": [ "Authentication" ], "summary": "User Logout", "responses": { "204": { "description": "No Content" } } } }, "/v1/users/refresh": { "get": { "security": [ { "Bearer": [] } ], "description": "handleAuthRefresh returns a handler that will issue a new token from an existing token.\nThis does not validate that the user still exists within the database.", "tags": [ "Authentication" ], "summary": "User Token Refresh", "responses": { "200": { "description": "OK" } } } }, "/v1/users/register": { "post": { "produces": [ "application/json" ], "tags": [ "User" ], "summary": "Register New User", "parameters": [ { "description": "User Data", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/services.UserRegistration" } } ], "responses": { "204": { "description": "No Content" } } } }, "/v1/users/self": { "get": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "User" ], "summary": "Get User Self", "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/v1.Wrapped" }, { "type": "object", "properties": { "item": { "$ref": "#/definitions/repo.UserOut" } } } ] } } } }, "put": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "User" ], "summary": "Update Account", "parameters": [ { "description": "User Data", "name": "payload", "in": "body", "required": true, "schema": { "$ref": "#/definitions/repo.UserUpdate" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/v1.Wrapped" }, { "type": "object", "properties": { "item": { "$ref": "#/definitions/repo.UserUpdate" } } } ] } } } }, "delete": { "security": [ { "Bearer": [] } ], "produces": [ "application/json" ], "tags": [ "User" ], "summary": "Delete Account", "responses": { "204": { "description": "No Content" } } } } }, "definitions": { "attachment.Type": { "type": "string", "enum": [ "attachment", "photo", "manual", "warranty", "attachment", "receipt", "thumbnail" ], "x-enum-varnames": [ "DefaultType", "TypePhoto", "TypeManual", "TypeWarranty", "TypeAttachment", "TypeReceipt", "TypeThumbnail" ] }, "authroles.Role": { "type": "string", "enum": [ "user", "admin", "user", "attachments" ], "x-enum-varnames": [ "DefaultRole", "RoleAdmin", "RoleUser", "RoleAttachments" ] }, "currencies.Currency": { "type": "object", "properties": { "code": { "type": "string" }, "decimals": { "type": "integer" }, "local": { "type": "string" }, "name": { "type": "string" }, "symbol": { "type": "string" } } }, "ent.Attachment": { "type": "object", "properties": { "created_at": { "description": "CreatedAt holds the value of the \"created_at\" field.", "type": "string" }, "edges": { "description": "Edges holds the relations/edges for other nodes in the graph.\nThe values are being populated by the AttachmentQuery when eager-loading is set.", "allOf": [ { "$ref": "#/definitions/ent.AttachmentEdges" } ] }, "id": { "description": "ID of the ent.", "type": "string" }, "mime_type": { "description": "MimeType holds the value of the \"mime_type\" field.", "type": "string" }, "path": { "description": "Path holds the value of the \"path\" field.", "type": "string" }, "primary": { "description": "Primary holds the value of the \"primary\" field.", "type": "boolean" }, "title": { "description": "Title holds the value of the \"title\" field.", "type": "string" }, "type": { "description": "Type holds the value of the \"type\" field.", "allOf": [ { "$ref": "#/definitions/attachment.Type" } ] }, "updated_at": { "description": "UpdatedAt holds the value of the \"updated_at\" field.", "type": "string" } } }, "ent.AttachmentEdges": { "type": "object", "properties": { "item": { "description": "Item holds the value of the item edge.", "allOf": [ { "$ref": "#/definitions/ent.Item" } ] }, "thumbnail": { "description": "Thumbnail holds the value of the thumbnail edge.", "allOf": [ { "$ref": "#/definitions/ent.Attachment" } ] } } }, "ent.AuthRoles": { "type": "object", "properties": { "edges": { "description": "Edges holds the relations/edges for other nodes in the graph.\nThe values are being populated by the AuthRolesQuery when eager-loading is set.", "allOf": [ { "$ref": "#/definitions/ent.AuthRolesEdges" } ] }, "id": { "description": "ID of the ent.", "type": "integer" }, "role": { "description": "Role holds the value of the \"role\" field.", "allOf": [ { "$ref": "#/definitions/authroles.Role" } ] } } }, "ent.AuthRolesEdges": { "type": "object", "properties": { "token": { "description": "Token holds the value of the token edge.", "allOf": [ { "$ref": "#/definitions/ent.AuthTokens" } ] } } }, "ent.AuthTokens": { "type": "object", "properties": { "created_at": { "description": "CreatedAt holds the value of the \"created_at\" field.", "type": "string" }, "edges": { "description": "Edges holds the relations/edges for other nodes in the graph.\nThe values are being populated by the AuthTokensQuery when eager-loading is set.", "allOf": [ { "$ref": "#/definitions/ent.AuthTokensEdges" } ] }, "expires_at": { "description": "ExpiresAt holds the value of the \"expires_at\" field.", "type": "string" }, "id": { "description": "ID of the ent.", "type": "string" }, "token": { "description": "Token holds the value of the \"token\" field.", "type": "array", "items": { "type": "integer" } }, "updated_at": { "description": "UpdatedAt holds the value of the \"updated_at\" field.", "type": "string" } } }, "ent.AuthTokensEdges": { "type": "object", "properties": { "roles": { "description": "Roles holds the value of the roles edge.", "allOf": [ { "$ref": "#/definitions/ent.AuthRoles" } ] }, "user": { "description": "User holds the value of the user edge.", "allOf": [ { "$ref": "#/definitions/ent.User" } ] } } }, "ent.Group": { "type": "object", "properties": { "created_at": { "description": "CreatedAt holds the value of the \"created_at\" field.", "type": "string" }, "currency": { "description": "Currency holds the value of the \"currency\" field.", "type": "string" }, "edges": { "description": "Edges holds the relations/edges for other nodes in the graph.\nThe values are being populated by the GroupQuery when eager-loading is set.", "allOf": [ { "$ref": "#/definitions/ent.GroupEdges" } ] }, "id": { "description": "ID of the ent.", "type": "string" }, "name": { "description": "Name holds the value of the \"name\" field.", "type": "string" }, "updated_at": { "description": "UpdatedAt holds the value of the \"updated_at\" field.", "type": "string" } } }, "ent.GroupEdges": { "type": "object", "properties": { "invitation_tokens": { "description": "InvitationTokens holds the value of the invitation_tokens edge.", "type": "array", "items": { "$ref": "#/definitions/ent.GroupInvitationToken" } }, "items": { "description": "Items holds the value of the items edge.", "type": "array", "items": { "$ref": "#/definitions/ent.Item" } }, "labels": { "description": "Labels holds the value of the labels edge.", "type": "array", "items": { "$ref": "#/definitions/ent.Label" } }, "locations": { "description": "Locations holds the value of the locations edge.", "type": "array", "items": { "$ref": "#/definitions/ent.Location" } }, "notifiers": { "description": "Notifiers holds the value of the notifiers edge.", "type": "array", "items": { "$ref": "#/definitions/ent.Notifier" } }, "users": { "description": "Users holds the value of the users edge.", "type": "array", "items": { "$ref": "#/definitions/ent.User" } } } }, "ent.GroupInvitationToken": { "type": "object", "properties": { "created_at": { "description": "CreatedAt holds the value of the \"created_at\" field.", "type": "string" }, "edges": { "description": "Edges holds the relations/edges for other nodes in the graph.\nThe values are being populated by the GroupInvitationTokenQuery when eager-loading is set.", "allOf": [ { "$ref": "#/definitions/ent.GroupInvitationTokenEdges" } ] }, "expires_at": { "description": "ExpiresAt holds the value of the \"expires_at\" field.", "type": "string" }, "id": { "description": "ID of the ent.", "type": "string" }, "token": { "description": "Token holds the value of the \"token\" field.", "type": "array", "items": { "type": "integer" } }, "updated_at": { "description": "UpdatedAt holds the value of the \"updated_at\" field.", "type": "string" }, "uses": { "description": "Uses holds the value of the \"uses\" field.", "type": "integer" } } }, "ent.GroupInvitationTokenEdges": { "type": "object", "properties": { "group": { "description": "Group holds the value of the group edge.", "allOf": [ { "$ref": "#/definitions/ent.Group" } ] } } }, "ent.Item": { "type": "object", "properties": { "archived": { "description": "Archived holds the value of the \"archived\" field.", "type": "boolean" }, "asset_id": { "description": "AssetID holds the value of the \"asset_id\" field.", "type": "integer" }, "created_at": { "description": "CreatedAt holds the value of the \"created_at\" field.", "type": "string" }, "description": { "description": "Description holds the value of the \"description\" field.", "type": "string" }, "edges": { "description": "Edges holds the relations/edges for other nodes in the graph.\nThe values are being populated by the ItemQuery when eager-loading is set.", "allOf": [ { "$ref": "#/definitions/ent.ItemEdges" } ] }, "id": { "description": "ID of the ent.", "type": "string" }, "import_ref": { "description": "ImportRef holds the value of the \"import_ref\" field.", "type": "string" }, "insured": { "description": "Insured holds the value of the \"insured\" field.", "type": "boolean" }, "lifetime_warranty": { "description": "LifetimeWarranty holds the value of the \"lifetime_warranty\" field.", "type": "boolean" }, "manufacturer": { "description": "Manufacturer holds the value of the \"manufacturer\" field.", "type": "string" }, "model_number": { "description": "ModelNumber holds the value of the \"model_number\" field.", "type": "string" }, "name": { "description": "Name holds the value of the \"name\" field.", "type": "string" }, "notes": { "description": "Notes holds the value of the \"notes\" field.", "type": "string" }, "purchase_from": { "description": "PurchaseFrom holds the value of the \"purchase_from\" field.", "type": "string" }, "purchase_price": { "description": "PurchasePrice holds the value of the \"purchase_price\" field.", "type": "number" }, "purchase_time": { "description": "PurchaseTime holds the value of the \"purchase_time\" field.", "type": "string" }, "quantity": { "description": "Quantity holds the value of the \"quantity\" field.", "type": "integer" }, "serial_number": { "description": "SerialNumber holds the value of the \"serial_number\" field.", "type": "string" }, "sold_notes": { "description": "SoldNotes holds the value of the \"sold_notes\" field.", "type": "string" }, "sold_price": { "description": "SoldPrice holds the value of the \"sold_price\" field.", "type": "number" }, "sold_time": { "description": "SoldTime holds the value of the \"sold_time\" field.", "type": "string" }, "sold_to": { "description": "SoldTo holds the value of the \"sold_to\" field.", "type": "string" }, "sync_child_items_locations": { "description": "SyncChildItemsLocations holds the value of the \"sync_child_items_locations\" field.", "type": "boolean" }, "updated_at": { "description": "UpdatedAt holds the value of the \"updated_at\" field.", "type": "string" }, "warranty_details": { "description": "WarrantyDetails holds the value of the \"warranty_details\" field.", "type": "string" }, "warranty_expires": { "description": "WarrantyExpires holds the value of the \"warranty_expires\" field.", "type": "string" } } }, "ent.ItemEdges": { "type": "object", "properties": { "attachments": { "description": "Attachments holds the value of the attachments edge.", "type": "array", "items": { "$ref": "#/definitions/ent.Attachment" } }, "children": { "description": "Children holds the value of the children edge.", "type": "array", "items": { "$ref": "#/definitions/ent.Item" } }, "fields": { "description": "Fields holds the value of the fields edge.", "type": "array", "items": { "$ref": "#/definitions/ent.ItemField" } }, "group": { "description": "Group holds the value of the group edge.", "allOf": [ { "$ref": "#/definitions/ent.Group" } ] }, "label": { "description": "Label holds the value of the label edge.", "type": "array", "items": { "$ref": "#/definitions/ent.Label" } }, "location": { "description": "Location holds the value of the location edge.", "allOf": [ { "$ref": "#/definitions/ent.Location" } ] }, "maintenance_entries": { "description": "MaintenanceEntries holds the value of the maintenance_entries edge.", "type": "array", "items": { "$ref": "#/definitions/ent.MaintenanceEntry" } }, "parent": { "description": "Parent holds the value of the parent edge.", "allOf": [ { "$ref": "#/definitions/ent.Item" } ] } } }, "ent.ItemField": { "type": "object", "properties": { "boolean_value": { "description": "BooleanValue holds the value of the \"boolean_value\" field.", "type": "boolean" }, "created_at": { "description": "CreatedAt holds the value of the \"created_at\" field.", "type": "string" }, "description": { "description": "Description holds the value of the \"description\" field.", "type": "string" }, "edges": { "description": "Edges holds the relations/edges for other nodes in the graph.\nThe values are being populated by the ItemFieldQuery when eager-loading is set.", "allOf": [ { "$ref": "#/definitions/ent.ItemFieldEdges" } ] }, "id": { "description": "ID of the ent.", "type": "string" }, "name": { "description": "Name holds the value of the \"name\" field.", "type": "string" }, "number_value": { "description": "NumberValue holds the value of the \"number_value\" field.", "type": "integer" }, "text_value": { "description": "TextValue holds the value of the \"text_value\" field.", "type": "string" }, "time_value": { "description": "TimeValue holds the value of the \"time_value\" field.", "type": "string" }, "type": { "description": "Type holds the value of the \"type\" field.", "allOf": [ { "$ref": "#/definitions/itemfield.Type" } ] }, "updated_at": { "description": "UpdatedAt holds the value of the \"updated_at\" field.", "type": "string" } } }, "ent.ItemFieldEdges": { "type": "object", "properties": { "item": { "description": "Item holds the value of the item edge.", "allOf": [ { "$ref": "#/definitions/ent.Item" } ] } } }, "ent.Label": { "type": "object", "properties": { "color": { "description": "Color holds the value of the \"color\" field.", "type": "string" }, "created_at": { "description": "CreatedAt holds the value of the \"created_at\" field.", "type": "string" }, "description": { "description": "Description holds the value of the \"description\" field.", "type": "string" }, "edges": { "description": "Edges holds the relations/edges for other nodes in the graph.\nThe values are being populated by the LabelQuery when eager-loading is set.", "allOf": [ { "$ref": "#/definitions/ent.LabelEdges" } ] }, "id": { "description": "ID of the ent.", "type": "string" }, "name": { "description": "Name holds the value of the \"name\" field.", "type": "string" }, "updated_at": { "description": "UpdatedAt holds the value of the \"updated_at\" field.", "type": "string" } } }, "ent.LabelEdges": { "type": "object", "properties": { "group": { "description": "Group holds the value of the group edge.", "allOf": [ { "$ref": "#/definitions/ent.Group" } ] }, "items": { "description": "Items holds the value of the items edge.", "type": "array", "items": { "$ref": "#/definitions/ent.Item" } } } }, "ent.Location": { "type": "object", "properties": { "created_at": { "description": "CreatedAt holds the value of the \"created_at\" field.", "type": "string" }, "description": { "description": "Description holds the value of the \"description\" field.", "type": "string" }, "edges": { "description": "Edges holds the relations/edges for other nodes in the graph.\nThe values are being populated by the LocationQuery when eager-loading is set.", "allOf": [ { "$ref": "#/definitions/ent.LocationEdges" } ] }, "id": { "description": "ID of the ent.", "type": "string" }, "name": { "description": "Name holds the value of the \"name\" field.", "type": "string" }, "updated_at": { "description": "UpdatedAt holds the value of the \"updated_at\" field.", "type": "string" } } }, "ent.LocationEdges": { "type": "object", "properties": { "children": { "description": "Children holds the value of the children edge.", "type": "array", "items": { "$ref": "#/definitions/ent.Location" } }, "group": { "description": "Group holds the value of the group edge.", "allOf": [ { "$ref": "#/definitions/ent.Group" } ] }, "items": { "description": "Items holds the value of the items edge.", "type": "array", "items": { "$ref": "#/definitions/ent.Item" } }, "parent": { "description": "Parent holds the value of the parent edge.", "allOf": [ { "$ref": "#/definitions/ent.Location" } ] } } }, "ent.MaintenanceEntry": { "type": "object", "properties": { "cost": { "description": "Cost holds the value of the \"cost\" field.", "type": "number" }, "created_at": { "description": "CreatedAt holds the value of the \"created_at\" field.", "type": "string" }, "date": { "description": "Date holds the value of the \"date\" field.", "type": "string" }, "description": { "description": "Description holds the value of the \"description\" field.", "type": "string" }, "edges": { "description": "Edges holds the relations/edges for other nodes in the graph.\nThe values are being populated by the MaintenanceEntryQuery when eager-loading is set.", "allOf": [ { "$ref": "#/definitions/ent.MaintenanceEntryEdges" } ] }, "id": { "description": "ID of the ent.", "type": "string" }, "item_id": { "description": "ItemID holds the value of the \"item_id\" field.", "type": "string" }, "name": { "description": "Name holds the value of the \"name\" field.", "type": "string" }, "scheduled_date": { "description": "ScheduledDate holds the value of the \"scheduled_date\" field.", "type": "string" }, "updated_at": { "description": "UpdatedAt holds the value of the \"updated_at\" field.", "type": "string" } } }, "ent.MaintenanceEntryEdges": { "type": "object", "properties": { "item": { "description": "Item holds the value of the item edge.", "allOf": [ { "$ref": "#/definitions/ent.Item" } ] } } }, "ent.Notifier": { "type": "object", "properties": { "created_at": { "description": "CreatedAt holds the value of the \"created_at\" field.", "type": "string" }, "edges": { "description": "Edges holds the relations/edges for other nodes in the graph.\nThe values are being populated by the NotifierQuery when eager-loading is set.", "allOf": [ { "$ref": "#/definitions/ent.NotifierEdges" } ] }, "group_id": { "description": "GroupID holds the value of the \"group_id\" field.", "type": "string" }, "id": { "description": "ID of the ent.", "type": "string" }, "is_active": { "description": "IsActive holds the value of the \"is_active\" field.", "type": "boolean" }, "name": { "description": "Name holds the value of the \"name\" field.", "type": "string" }, "updated_at": { "description": "UpdatedAt holds the value of the \"updated_at\" field.", "type": "string" }, "user_id": { "description": "UserID holds the value of the \"user_id\" field.", "type": "string" } } }, "ent.NotifierEdges": { "type": "object", "properties": { "group": { "description": "Group holds the value of the group edge.", "allOf": [ { "$ref": "#/definitions/ent.Group" } ] }, "user": { "description": "User holds the value of the user edge.", "allOf": [ { "$ref": "#/definitions/ent.User" } ] } } }, "ent.User": { "type": "object", "properties": { "activated_on": { "description": "ActivatedOn holds the value of the \"activated_on\" field.", "type": "string" }, "created_at": { "description": "CreatedAt holds the value of the \"created_at\" field.", "type": "string" }, "edges": { "description": "Edges holds the relations/edges for other nodes in the graph.\nThe values are being populated by the UserQuery when eager-loading is set.", "allOf": [ { "$ref": "#/definitions/ent.UserEdges" } ] }, "email": { "description": "Email holds the value of the \"email\" field.", "type": "string" }, "id": { "description": "ID of the ent.", "type": "string" }, "is_superuser": { "description": "IsSuperuser holds the value of the \"is_superuser\" field.", "type": "boolean" }, "name": { "description": "Name holds the value of the \"name\" field.", "type": "string" }, "role": { "description": "Role holds the value of the \"role\" field.", "allOf": [ { "$ref": "#/definitions/user.Role" } ] }, "superuser": { "description": "Superuser holds the value of the \"superuser\" field.", "type": "boolean" }, "updated_at": { "description": "UpdatedAt holds the value of the \"updated_at\" field.", "type": "string" } } }, "ent.UserEdges": { "type": "object", "properties": { "auth_tokens": { "description": "AuthTokens holds the value of the auth_tokens edge.", "type": "array", "items": { "$ref": "#/definitions/ent.AuthTokens" } }, "group": { "description": "Group holds the value of the group edge.", "allOf": [ { "$ref": "#/definitions/ent.Group" } ] }, "notifiers": { "description": "Notifiers holds the value of the notifiers edge.", "type": "array", "items": { "$ref": "#/definitions/ent.Notifier" } } } }, "itemfield.Type": { "type": "string", "enum": [ "text", "number", "boolean", "time" ], "x-enum-varnames": [ "TypeText", "TypeNumber", "TypeBoolean", "TypeTime" ] }, "repo.BarcodeProduct": { "type": "object", "properties": { "barcode": { "type": "string" }, "imageBase64": { "type": "string" }, "imageURL": { "type": "string" }, "item": { "$ref": "#/definitions/repo.ItemCreate" }, "manufacturer": { "type": "string" }, "modelNumber": { "description": "Identifications", "type": "string" }, "notes": { "description": "Extras", "type": "string" }, "search_engine_name": { "type": "string" } } }, "repo.DuplicateOptions": { "type": "object", "properties": { "copyAttachments": { "type": "boolean" }, "copyCustomFields": { "type": "boolean" }, "copyMaintenance": { "type": "boolean" }, "copyPrefix": { "type": "string" } } }, "repo.Group": { "type": "object", "properties": { "createdAt": { "type": "string" }, "currency": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "updatedAt": { "type": "string" } } }, "repo.GroupStatistics": { "type": "object", "properties": { "totalItemPrice": { "type": "number" }, "totalItems": { "type": "integer" }, "totalLabels": { "type": "integer" }, "totalLocations": { "type": "integer" }, "totalUsers": { "type": "integer" }, "totalWithWarranty": { "type": "integer" } } }, "repo.GroupUpdate": { "type": "object", "properties": { "currency": { "type": "string" }, "name": { "type": "string" } } }, "repo.ItemAttachment": { "type": "object", "properties": { "createdAt": { "type": "string" }, "id": { "type": "string" }, "mimeType": { "type": "string" }, "path": { "type": "string" }, "primary": { "type": "boolean" }, "thumbnail": { "$ref": "#/definitions/ent.Attachment" }, "title": { "type": "string" }, "type": { "type": "string" }, "updatedAt": { "type": "string" } } }, "repo.ItemAttachmentUpdate": { "type": "object", "properties": { "primary": { "type": "boolean" }, "title": { "type": "string" }, "type": { "type": "string" } } }, "repo.ItemCreate": { "type": "object", "required": [ "name" ], "properties": { "description": { "type": "string", "maxLength": 1000 }, "labelIds": { "type": "array", "items": { "type": "string" } }, "locationId": { "description": "Edges", "type": "string" }, "name": { "type": "string", "maxLength": 255, "minLength": 1 }, "parentId": { "type": "string", "x-nullable": true }, "quantity": { "type": "integer" } } }, "repo.ItemField": { "type": "object", "properties": { "booleanValue": { "type": "boolean" }, "id": { "type": "string" }, "name": { "type": "string" }, "numberValue": { "type": "integer" }, "textValue": { "type": "string" }, "type": { "type": "string" } } }, "repo.ItemOut": { "type": "object", "properties": { "archived": { "type": "boolean" }, "assetId": { "type": "string", "example": "0" }, "attachments": { "type": "array", "items": { "$ref": "#/definitions/repo.ItemAttachment" } }, "createdAt": { "type": "string" }, "description": { "type": "string" }, "fields": { "type": "array", "items": { "$ref": "#/definitions/repo.ItemField" } }, "id": { "type": "string" }, "imageId": { "type": "string", "x-nullable": true, "x-omitempty": true }, "insured": { "type": "boolean" }, "labels": { "type": "array", "items": { "$ref": "#/definitions/repo.LabelSummary" } }, "lifetimeWarranty": { "description": "Warranty", "type": "boolean" }, "location": { "description": "Edges", "allOf": [ { "$ref": "#/definitions/repo.LocationSummary" } ], "x-nullable": true, "x-omitempty": true }, "manufacturer": { "type": "string" }, "modelNumber": { "type": "string" }, "name": { "type": "string" }, "notes": { "description": "Extras", "type": "string" }, "parent": { "allOf": [ { "$ref": "#/definitions/repo.ItemSummary" } ], "x-nullable": true, "x-omitempty": true }, "purchaseFrom": { "type": "string" }, "purchasePrice": { "type": "number" }, "purchaseTime": { "description": "Purchase", "type": "string" }, "quantity": { "type": "integer" }, "serialNumber": { "type": "string" }, "soldNotes": { "type": "string" }, "soldPrice": { "type": "number" }, "soldTime": { "description": "Sold", "type": "string" }, "soldTo": { "type": "string" }, "syncChildItemsLocations": { "type": "boolean" }, "thumbnailId": { "type": "string", "x-nullable": true, "x-omitempty": true }, "updatedAt": { "type": "string" }, "warrantyDetails": { "type": "string" }, "warrantyExpires": { "type": "string" } } }, "repo.ItemPatch": { "type": "object", "properties": { "id": { "type": "string" }, "labelIds": { "type": "array", "items": { "type": "string" }, "x-nullable": true, "x-omitempty": true }, "locationId": { "type": "string", "x-nullable": true, "x-omitempty": true }, "quantity": { "type": "integer", "x-nullable": true, "x-omitempty": true } } }, "repo.ItemPath": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "type": { "$ref": "#/definitions/repo.ItemType" } } }, "repo.ItemSummary": { "type": "object", "properties": { "archived": { "type": "boolean" }, "assetId": { "type": "string", "example": "0" }, "createdAt": { "type": "string" }, "description": { "type": "string" }, "id": { "type": "string" }, "imageId": { "type": "string", "x-nullable": true, "x-omitempty": true }, "insured": { "type": "boolean" }, "labels": { "type": "array", "items": { "$ref": "#/definitions/repo.LabelSummary" } }, "location": { "description": "Edges", "allOf": [ { "$ref": "#/definitions/repo.LocationSummary" } ], "x-nullable": true, "x-omitempty": true }, "name": { "type": "string" }, "purchasePrice": { "type": "number" }, "quantity": { "type": "integer" }, "soldTime": { "description": "Sale details", "type": "string" }, "thumbnailId": { "type": "string", "x-nullable": true, "x-omitempty": true }, "updatedAt": { "type": "string" } } }, "repo.ItemType": { "type": "string", "enum": [ "location", "item" ], "x-enum-varnames": [ "ItemTypeLocation", "ItemTypeItem" ] }, "repo.ItemUpdate": { "type": "object", "required": [ "name" ], "properties": { "archived": { "type": "boolean" }, "assetId": { "type": "string" }, "description": { "type": "string", "maxLength": 1000 }, "fields": { "type": "array", "items": { "$ref": "#/definitions/repo.ItemField" } }, "id": { "type": "string" }, "insured": { "type": "boolean" }, "labelIds": { "type": "array", "items": { "type": "string" } }, "lifetimeWarranty": { "description": "Warranty", "type": "boolean" }, "locationId": { "description": "Edges", "type": "string" }, "manufacturer": { "type": "string" }, "modelNumber": { "type": "string" }, "name": { "type": "string", "maxLength": 255, "minLength": 1 }, "notes": { "description": "Extras", "type": "string" }, "parentId": { "type": "string", "x-nullable": true, "x-omitempty": true }, "purchaseFrom": { "type": "string", "maxLength": 255 }, "purchasePrice": { "type": "number", "x-nullable": true, "x-omitempty": true }, "purchaseTime": { "description": "Purchase", "type": "string" }, "quantity": { "type": "integer" }, "serialNumber": { "description": "Identifications", "type": "string" }, "soldNotes": { "type": "string" }, "soldPrice": { "type": "number", "x-nullable": true, "x-omitempty": true }, "soldTime": { "description": "Sold", "type": "string" }, "soldTo": { "type": "string", "maxLength": 255 }, "syncChildItemsLocations": { "type": "boolean" }, "warrantyDetails": { "type": "string" }, "warrantyExpires": { "type": "string" } } }, "repo.LabelCreate": { "type": "object", "required": [ "name" ], "properties": { "color": { "type": "string" }, "description": { "type": "string", "maxLength": 1000 }, "name": { "type": "string", "maxLength": 255, "minLength": 1 } } }, "repo.LabelOut": { "type": "object", "properties": { "color": { "type": "string" }, "createdAt": { "type": "string" }, "description": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "updatedAt": { "type": "string" } } }, "repo.LabelSummary": { "type": "object", "properties": { "color": { "type": "string" }, "createdAt": { "type": "string" }, "description": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "updatedAt": { "type": "string" } } }, "repo.LocationCreate": { "type": "object", "properties": { "description": { "type": "string" }, "name": { "type": "string" }, "parentId": { "type": "string", "x-nullable": true } } }, "repo.LocationOut": { "type": "object", "properties": { "children": { "type": "array", "items": { "$ref": "#/definitions/repo.LocationSummary" } }, "createdAt": { "type": "string" }, "description": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "parent": { "$ref": "#/definitions/repo.LocationSummary" }, "totalPrice": { "type": "number" }, "updatedAt": { "type": "string" } } }, "repo.LocationOutCount": { "type": "object", "properties": { "createdAt": { "type": "string" }, "description": { "type": "string" }, "id": { "type": "string" }, "itemCount": { "type": "integer" }, "name": { "type": "string" }, "updatedAt": { "type": "string" } } }, "repo.LocationSummary": { "type": "object", "properties": { "createdAt": { "type": "string" }, "description": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "updatedAt": { "type": "string" } } }, "repo.LocationUpdate": { "type": "object", "properties": { "description": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "parentId": { "type": "string", "x-nullable": true } } }, "repo.MaintenanceEntry": { "type": "object", "properties": { "completedDate": { "type": "string" }, "cost": { "type": "string", "example": "0" }, "description": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "scheduledDate": { "type": "string" } } }, "repo.MaintenanceEntryCreate": { "type": "object", "required": [ "name" ], "properties": { "completedDate": { "type": "string" }, "cost": { "type": "string", "example": "0" }, "description": { "type": "string" }, "name": { "type": "string" }, "scheduledDate": { "type": "string" } } }, "repo.MaintenanceEntryUpdate": { "type": "object", "properties": { "completedDate": { "type": "string" }, "cost": { "type": "string", "example": "0" }, "description": { "type": "string" }, "name": { "type": "string" }, "scheduledDate": { "type": "string" } } }, "repo.MaintenanceEntryWithDetails": { "type": "object", "properties": { "completedDate": { "type": "string" }, "cost": { "type": "string", "example": "0" }, "description": { "type": "string" }, "id": { "type": "string" }, "itemID": { "type": "string" }, "itemName": { "type": "string" }, "name": { "type": "string" }, "scheduledDate": { "type": "string" } } }, "repo.MaintenanceFilterStatus": { "type": "string", "enum": [ "scheduled", "completed", "both" ], "x-enum-varnames": [ "MaintenanceFilterStatusScheduled", "MaintenanceFilterStatusCompleted", "MaintenanceFilterStatusBoth" ] }, "repo.NotifierCreate": { "type": "object", "required": [ "name", "url" ], "properties": { "isActive": { "type": "boolean" }, "name": { "type": "string", "maxLength": 255, "minLength": 1 }, "url": { "type": "string" } } }, "repo.NotifierOut": { "type": "object", "properties": { "createdAt": { "type": "string" }, "groupId": { "type": "string" }, "id": { "type": "string" }, "isActive": { "type": "boolean" }, "name": { "type": "string" }, "updatedAt": { "type": "string" }, "url": { "type": "string" }, "userId": { "type": "string" } } }, "repo.NotifierUpdate": { "type": "object", "required": [ "name" ], "properties": { "isActive": { "type": "boolean" }, "name": { "type": "string", "maxLength": 255, "minLength": 1 }, "url": { "type": "string", "x-nullable": true } } }, "repo.PaginationResult-repo_ItemSummary": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/repo.ItemSummary" } }, "page": { "type": "integer" }, "pageSize": { "type": "integer" }, "total": { "type": "integer" } } }, "repo.TotalsByOrganizer": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "total": { "type": "number" } } }, "repo.TreeItem": { "type": "object", "properties": { "children": { "type": "array", "items": { "$ref": "#/definitions/repo.TreeItem" } }, "id": { "type": "string" }, "name": { "type": "string" }, "type": { "type": "string" } } }, "repo.UserOut": { "type": "object", "properties": { "email": { "type": "string" }, "groupId": { "type": "string" }, "groupName": { "type": "string" }, "id": { "type": "string" }, "isOwner": { "type": "boolean" }, "isSuperuser": { "type": "boolean" }, "name": { "type": "string" } } }, "repo.UserUpdate": { "type": "object", "properties": { "email": { "type": "string" }, "name": { "type": "string" } } }, "repo.ValueOverTime": { "type": "object", "properties": { "end": { "type": "string" }, "entries": { "type": "array", "items": { "$ref": "#/definitions/repo.ValueOverTimeEntry" } }, "start": { "type": "string" }, "valueAtEnd": { "type": "number" }, "valueAtStart": { "type": "number" } } }, "repo.ValueOverTimeEntry": { "type": "object", "properties": { "date": { "type": "string" }, "name": { "type": "string" }, "value": { "type": "number" } } }, "services.Latest": { "type": "object", "properties": { "date": { "type": "string" }, "version": { "type": "string" } } }, "services.UserRegistration": { "type": "object", "properties": { "email": { "type": "string" }, "name": { "type": "string" }, "password": { "type": "string" }, "token": { "type": "string" } } }, "user.Role": { "type": "string", "enum": [ "user", "user", "owner" ], "x-enum-varnames": [ "DefaultRole", "RoleUser", "RoleOwner" ] }, "v1.APISummary": { "type": "object", "properties": { "allowRegistration": { "type": "boolean" }, "build": { "$ref": "#/definitions/v1.Build" }, "demo": { "type": "boolean" }, "health": { "type": "boolean" }, "labelPrinting": { "type": "boolean" }, "latest": { "$ref": "#/definitions/services.Latest" }, "message": { "type": "string" }, "title": { "type": "string" }, "versions": { "type": "array", "items": { "type": "string" } } } }, "v1.ActionAmountResult": { "type": "object", "properties": { "completed": { "type": "integer" } } }, "v1.Build": { "type": "object", "properties": { "buildTime": { "type": "string" }, "commit": { "type": "string" }, "version": { "type": "string" } } }, "v1.ChangePassword": { "type": "object", "properties": { "current": { "type": "string" }, "new": { "type": "string" } } }, "v1.GroupInvitation": { "type": "object", "properties": { "expiresAt": { "type": "string" }, "token": { "type": "string" }, "uses": { "type": "integer" } } }, "v1.GroupInvitationCreate": { "type": "object", "required": [ "uses" ], "properties": { "expiresAt": { "type": "string" }, "uses": { "type": "integer", "maximum": 100, "minimum": 1 } } }, "v1.ItemAttachmentToken": { "type": "object", "properties": { "token": { "type": "string" } } }, "v1.LoginForm": { "type": "object", "properties": { "password": { "type": "string", "example": "admin" }, "stayLoggedIn": { "type": "boolean" }, "username": { "type": "string", "example": "admin@admin.com" } } }, "v1.TokenResponse": { "type": "object", "properties": { "attachmentToken": { "type": "string" }, "expiresAt": { "type": "string" }, "token": { "type": "string" } } }, "v1.Wrapped": { "type": "object", "properties": { "item": {} } }, "validate.ErrorResponse": { "type": "object", "properties": { "error": { "type": "string" }, "fields": { "type": "string" } } } }, "securityDefinitions": { "Bearer": { "description": "\"Type 'Bearer TOKEN' to correctly set the API Key\"", "type": "apiKey", "name": "Authorization", "in": "header" } } }