forked from mirrors/homebox
721 lines
19 KiB
YAML
721 lines
19 KiB
YAML
basePath: /api
|
|
definitions:
|
|
ent.AuthTokens:
|
|
properties:
|
|
created_at:
|
|
description: CreatedAt holds the value of the "created_at" field.
|
|
type: string
|
|
edges:
|
|
$ref: '#/definitions/ent.AuthTokensEdges'
|
|
description: |-
|
|
Edges holds the relations/edges for other nodes in the graph.
|
|
The values are being populated by the AuthTokensQuery when eager-loading is set.
|
|
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.
|
|
items:
|
|
type: integer
|
|
type: array
|
|
updated_at:
|
|
description: UpdatedAt holds the value of the "updated_at" field.
|
|
type: string
|
|
type: object
|
|
ent.AuthTokensEdges:
|
|
properties:
|
|
user:
|
|
$ref: '#/definitions/ent.User'
|
|
description: User holds the value of the user edge.
|
|
type: object
|
|
ent.Group:
|
|
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:
|
|
$ref: '#/definitions/ent.GroupEdges'
|
|
description: |-
|
|
Edges holds the relations/edges for other nodes in the graph.
|
|
The values are being populated by the GroupQuery when eager-loading is set.
|
|
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
|
|
type: object
|
|
ent.GroupEdges:
|
|
properties:
|
|
items:
|
|
description: Items holds the value of the items edge.
|
|
items:
|
|
$ref: '#/definitions/ent.Item'
|
|
type: array
|
|
labels:
|
|
description: Labels holds the value of the labels edge.
|
|
items:
|
|
$ref: '#/definitions/ent.Label'
|
|
type: array
|
|
locations:
|
|
description: Locations holds the value of the locations edge.
|
|
items:
|
|
$ref: '#/definitions/ent.Location'
|
|
type: array
|
|
users:
|
|
description: Users holds the value of the users edge.
|
|
items:
|
|
$ref: '#/definitions/ent.User'
|
|
type: array
|
|
type: object
|
|
ent.Item:
|
|
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:
|
|
$ref: '#/definitions/ent.ItemEdges'
|
|
description: |-
|
|
Edges holds the relations/edges for other nodes in the graph.
|
|
The values are being populated by the ItemQuery when eager-loading is set.
|
|
id:
|
|
description: ID of the ent.
|
|
type: string
|
|
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_receipt_id:
|
|
description: PurchaseReceiptID holds the value of the "purchase_receipt_id"
|
|
field.
|
|
type: string
|
|
purchase_time:
|
|
description: PurchaseTime holds the value of the "purchase_time" field.
|
|
type: string
|
|
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_receipt_id:
|
|
description: SoldReceiptID holds the value of the "sold_receipt_id" field.
|
|
type: string
|
|
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
|
|
updated_at:
|
|
description: UpdatedAt holds the value of the "updated_at" field.
|
|
type: string
|
|
type: object
|
|
ent.ItemEdges:
|
|
properties:
|
|
fields:
|
|
description: Fields holds the value of the fields edge.
|
|
items:
|
|
$ref: '#/definitions/ent.ItemField'
|
|
type: array
|
|
group:
|
|
$ref: '#/definitions/ent.Group'
|
|
description: Group holds the value of the group edge.
|
|
label:
|
|
description: Label holds the value of the label edge.
|
|
items:
|
|
$ref: '#/definitions/ent.Label'
|
|
type: array
|
|
location:
|
|
$ref: '#/definitions/ent.Location'
|
|
description: Location holds the value of the location edge.
|
|
type: object
|
|
ent.ItemField:
|
|
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:
|
|
$ref: '#/definitions/ent.ItemFieldEdges'
|
|
description: |-
|
|
Edges holds the relations/edges for other nodes in the graph.
|
|
The values are being populated by the ItemFieldQuery when eager-loading is set.
|
|
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.
|
|
type: string
|
|
updated_at:
|
|
description: UpdatedAt holds the value of the "updated_at" field.
|
|
type: string
|
|
type: object
|
|
ent.ItemFieldEdges:
|
|
properties:
|
|
item:
|
|
$ref: '#/definitions/ent.Item'
|
|
description: Item holds the value of the item edge.
|
|
type: object
|
|
ent.Label:
|
|
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:
|
|
$ref: '#/definitions/ent.LabelEdges'
|
|
description: |-
|
|
Edges holds the relations/edges for other nodes in the graph.
|
|
The values are being populated by the LabelQuery when eager-loading is set.
|
|
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
|
|
type: object
|
|
ent.LabelEdges:
|
|
properties:
|
|
group:
|
|
$ref: '#/definitions/ent.Group'
|
|
description: Group holds the value of the group edge.
|
|
items:
|
|
description: Items holds the value of the items edge.
|
|
items:
|
|
$ref: '#/definitions/ent.Item'
|
|
type: array
|
|
type: object
|
|
ent.Location:
|
|
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:
|
|
$ref: '#/definitions/ent.LocationEdges'
|
|
description: |-
|
|
Edges holds the relations/edges for other nodes in the graph.
|
|
The values are being populated by the LocationQuery when eager-loading is set.
|
|
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
|
|
type: object
|
|
ent.LocationEdges:
|
|
properties:
|
|
group:
|
|
$ref: '#/definitions/ent.Group'
|
|
description: Group holds the value of the group edge.
|
|
items:
|
|
description: Items holds the value of the items edge.
|
|
items:
|
|
$ref: '#/definitions/ent.Item'
|
|
type: array
|
|
type: object
|
|
ent.User:
|
|
properties:
|
|
created_at:
|
|
description: CreatedAt holds the value of the "created_at" field.
|
|
type: string
|
|
edges:
|
|
$ref: '#/definitions/ent.UserEdges'
|
|
description: |-
|
|
Edges holds the relations/edges for other nodes in the graph.
|
|
The values are being populated by the UserQuery when eager-loading is set.
|
|
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
|
|
updated_at:
|
|
description: UpdatedAt holds the value of the "updated_at" field.
|
|
type: string
|
|
type: object
|
|
ent.UserEdges:
|
|
properties:
|
|
auth_tokens:
|
|
description: AuthTokens holds the value of the auth_tokens edge.
|
|
items:
|
|
$ref: '#/definitions/ent.AuthTokens'
|
|
type: array
|
|
group:
|
|
$ref: '#/definitions/ent.Group'
|
|
description: Group holds the value of the group edge.
|
|
type: object
|
|
server.Result:
|
|
properties:
|
|
details: {}
|
|
error:
|
|
type: boolean
|
|
item: {}
|
|
message:
|
|
type: string
|
|
type: object
|
|
server.Results:
|
|
properties:
|
|
items:
|
|
type: any
|
|
type: object
|
|
types.ApiSummary:
|
|
properties:
|
|
health:
|
|
type: boolean
|
|
message:
|
|
type: string
|
|
title:
|
|
type: string
|
|
versions:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
types.LocationCreate:
|
|
properties:
|
|
description:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
types.LocationOut:
|
|
properties:
|
|
createdAt:
|
|
type: string
|
|
description:
|
|
type: string
|
|
groupId:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
updatedAt:
|
|
type: string
|
|
type: object
|
|
types.TokenResponse:
|
|
properties:
|
|
expiresAt:
|
|
type: string
|
|
token:
|
|
type: string
|
|
type: object
|
|
types.UserCreate:
|
|
properties:
|
|
email:
|
|
type: string
|
|
groupID:
|
|
type: string
|
|
isSuperuser:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
password:
|
|
type: string
|
|
type: object
|
|
types.UserIn:
|
|
properties:
|
|
email:
|
|
type: string
|
|
name:
|
|
type: string
|
|
password:
|
|
type: string
|
|
type: object
|
|
types.UserRegistration:
|
|
properties:
|
|
groupName:
|
|
type: string
|
|
user:
|
|
$ref: '#/definitions/types.UserIn'
|
|
type: object
|
|
types.UserUpdate:
|
|
properties:
|
|
email:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
info:
|
|
contact:
|
|
name: Don't
|
|
description: This is a simple Rest API Server Template that implements some basic
|
|
User and Authentication patterns to help you get started and bootstrap your next
|
|
project!.
|
|
license:
|
|
name: MIT
|
|
title: Go API Templates
|
|
version: "1.0"
|
|
paths:
|
|
/status:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/server.Result'
|
|
- properties:
|
|
item:
|
|
$ref: '#/definitions/types.ApiSummary'
|
|
type: object
|
|
summary: Retrieves the basic information about the API
|
|
tags:
|
|
- Base
|
|
/v1/admin/users:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/server.Result'
|
|
- properties:
|
|
item:
|
|
items:
|
|
$ref: '#/definitions/ent.User'
|
|
type: array
|
|
type: object
|
|
security:
|
|
- Bearer: []
|
|
summary: Gets all users from the database
|
|
tags:
|
|
- 'Admin: Users'
|
|
post:
|
|
parameters:
|
|
- description: User Data
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/types.UserCreate'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/server.Result'
|
|
- properties:
|
|
item:
|
|
$ref: '#/definitions/ent.User'
|
|
type: object
|
|
security:
|
|
- Bearer: []
|
|
summary: Create a new user
|
|
tags:
|
|
- 'Admin: Users'
|
|
/v1/admin/users/{id}:
|
|
delete:
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"204":
|
|
description: ""
|
|
security:
|
|
- Bearer: []
|
|
summary: Delete a User
|
|
tags:
|
|
- 'Admin: Users'
|
|
get:
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/server.Result'
|
|
- properties:
|
|
item:
|
|
$ref: '#/definitions/ent.User'
|
|
type: object
|
|
security:
|
|
- Bearer: []
|
|
summary: Get a user from the database
|
|
tags:
|
|
- 'Admin: Users'
|
|
put:
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: User Data
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/types.UserUpdate'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/server.Result'
|
|
- properties:
|
|
item:
|
|
$ref: '#/definitions/ent.User'
|
|
type: object
|
|
security:
|
|
- Bearer: []
|
|
summary: Update a User
|
|
tags:
|
|
- 'Admin: Users'
|
|
/v1/locations:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/server.Results'
|
|
- properties:
|
|
items:
|
|
items:
|
|
$ref: '#/definitions/types.LocationOut'
|
|
type: array
|
|
type: object
|
|
security:
|
|
- Bearer: []
|
|
summary: Get All Locations
|
|
tags:
|
|
- Locations
|
|
post:
|
|
parameters:
|
|
- description: Location Data
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/types.LocationCreate'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/types.LocationOut'
|
|
security:
|
|
- Bearer: []
|
|
summary: Create a new location
|
|
tags:
|
|
- Locations
|
|
/v1/users/login:
|
|
post:
|
|
consumes:
|
|
- application/x-www-form-urlencoded
|
|
- application/json
|
|
parameters:
|
|
- description: string
|
|
example: admin@admin.com
|
|
in: formData
|
|
name: username
|
|
type: string
|
|
- description: string
|
|
example: admin
|
|
in: formData
|
|
name: password
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/types.TokenResponse'
|
|
summary: User Login
|
|
tags:
|
|
- Authentication
|
|
/v1/users/logout:
|
|
post:
|
|
responses:
|
|
"204":
|
|
description: ""
|
|
security:
|
|
- Bearer: []
|
|
summary: User Logout
|
|
tags:
|
|
- Authentication
|
|
/v1/users/refresh:
|
|
get:
|
|
description: |-
|
|
handleAuthRefresh returns a handler that will issue a new token from an existing token.
|
|
This does not validate that the user still exists within the database.
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
security:
|
|
- Bearer: []
|
|
summary: User Token Refresh
|
|
tags:
|
|
- Authentication
|
|
/v1/users/register:
|
|
post:
|
|
parameters:
|
|
- description: User Data
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/types.UserRegistration'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"204":
|
|
description: ""
|
|
summary: Get the current user
|
|
tags:
|
|
- User
|
|
/v1/users/self:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/server.Result'
|
|
- properties:
|
|
item:
|
|
$ref: '#/definitions/ent.User'
|
|
type: object
|
|
security:
|
|
- Bearer: []
|
|
summary: Get the current user
|
|
tags:
|
|
- User
|
|
put:
|
|
parameters:
|
|
- description: User Data
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/types.UserUpdate'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/server.Result'
|
|
- properties:
|
|
item:
|
|
$ref: '#/definitions/types.UserUpdate'
|
|
type: object
|
|
security:
|
|
- Bearer: []
|
|
summary: Update the current user
|
|
tags:
|
|
- User
|
|
/v1/users/self/password:
|
|
put:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"204":
|
|
description: ""
|
|
security:
|
|
- Bearer: []
|
|
summary: 'Update the current user''s password // TODO:'
|
|
tags:
|
|
- User
|
|
securityDefinitions:
|
|
Bearer:
|
|
description: '"Type ''Bearer TOKEN'' to correctly set the API Key"'
|
|
in: header
|
|
name: Authorization
|
|
type: apiKey
|
|
swagger: "2.0"
|