personal-site/ent/openapi.json
2025-04-01 10:20:14 -04:00

1068 lines
No EOL
26 KiB
JSON

{
"openapi": "3.0.3",
"info": {
"title": "Ent Schema API",
"description": "This is an auto generated API description made out of an Ent schema definition",
"version": "0.1.0"
},
"paths": {
"/password-tokens": {
"get": {
"tags": [
"PasswordToken"
],
"summary": "List PasswordTokens",
"description": "List PasswordTokens.",
"operationId": "listPasswordToken",
"parameters": [
{
"name": "page",
"in": "query",
"description": "what page to render",
"schema": {
"type": "integer",
"minimum": 1
}
},
{
"name": "itemsPerPage",
"in": "query",
"description": "item count to render per page",
"schema": {
"type": "integer",
"maximum": 255,
"minimum": 1
}
}
],
"responses": {
"200": {
"description": "result PasswordToken list",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PasswordTokenList"
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"404": {
"$ref": "#/components/responses/404"
},
"409": {
"$ref": "#/components/responses/409"
},
"500": {
"$ref": "#/components/responses/500"
}
}
},
"post": {
"tags": [
"PasswordToken"
],
"summary": "Create a new PasswordToken",
"description": "Creates a new PasswordToken and persists it to storage.",
"operationId": "createPasswordToken",
"requestBody": {
"description": "PasswordToken to create",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"hash": {
"type": "string"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"user": {
"type": "integer"
}
},
"required": [
"hash",
"created_at",
"user"
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "PasswordToken created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PasswordTokenCreate"
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"409": {
"$ref": "#/components/responses/409"
},
"500": {
"$ref": "#/components/responses/500"
}
}
}
},
"/password-tokens/{id}": {
"get": {
"tags": [
"PasswordToken"
],
"summary": "Find a PasswordToken by ID",
"description": "Finds the PasswordToken with the requested ID and returns it.",
"operationId": "readPasswordToken",
"parameters": [
{
"name": "id",
"in": "path",
"description": "ID of the PasswordToken",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "PasswordToken with requested ID was found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PasswordTokenRead"
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"404": {
"$ref": "#/components/responses/404"
},
"409": {
"$ref": "#/components/responses/409"
},
"500": {
"$ref": "#/components/responses/500"
}
}
},
"delete": {
"tags": [
"PasswordToken"
],
"summary": "Deletes a PasswordToken by ID",
"description": "Deletes the PasswordToken with the requested ID.",
"operationId": "deletePasswordToken",
"parameters": [
{
"name": "id",
"in": "path",
"description": "ID of the PasswordToken",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"204": {
"description": "PasswordToken with requested ID was deleted"
},
"400": {
"$ref": "#/components/responses/400"
},
"404": {
"$ref": "#/components/responses/404"
},
"409": {
"$ref": "#/components/responses/409"
},
"500": {
"$ref": "#/components/responses/500"
}
}
},
"patch": {
"tags": [
"PasswordToken"
],
"summary": "Updates a PasswordToken",
"description": "Updates a PasswordToken and persists changes to storage.",
"operationId": "updatePasswordToken",
"parameters": [
{
"name": "id",
"in": "path",
"description": "ID of the PasswordToken",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"description": "PasswordToken properties to update",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"hash": {
"type": "string"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"user": {
"type": "integer"
}
}
}
}
},
"required": true
},
"responses": {
"200": {
"description": "PasswordToken updated",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PasswordTokenUpdate"
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"404": {
"$ref": "#/components/responses/404"
},
"409": {
"$ref": "#/components/responses/409"
},
"500": {
"$ref": "#/components/responses/500"
}
}
}
},
"/password-tokens/{id}/user": {
"get": {
"tags": [
"PasswordToken"
],
"summary": "Find the attached User",
"description": "Find the attached User of the PasswordToken with the given ID",
"operationId": "readPasswordTokenUser",
"parameters": [
{
"name": "id",
"in": "path",
"description": "ID of the PasswordToken",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "User attached to PasswordToken with requested ID was found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PasswordToken_UserRead"
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"404": {
"$ref": "#/components/responses/404"
},
"409": {
"$ref": "#/components/responses/409"
},
"500": {
"$ref": "#/components/responses/500"
}
}
}
},
"/users": {
"get": {
"tags": [
"User"
],
"summary": "List Users",
"description": "List Users.",
"operationId": "listUser",
"parameters": [
{
"name": "page",
"in": "query",
"description": "what page to render",
"schema": {
"type": "integer",
"minimum": 1
}
},
{
"name": "itemsPerPage",
"in": "query",
"description": "item count to render per page",
"schema": {
"type": "integer",
"maximum": 255,
"minimum": 1
}
}
],
"responses": {
"200": {
"description": "result User list",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/UserList"
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"404": {
"$ref": "#/components/responses/404"
},
"409": {
"$ref": "#/components/responses/409"
},
"500": {
"$ref": "#/components/responses/500"
}
}
},
"post": {
"tags": [
"User"
],
"summary": "Create a new User",
"description": "Creates a new User and persists it to storage.",
"operationId": "createUser",
"requestBody": {
"description": "User to create",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"password": {
"type": "string"
},
"verified": {
"type": "boolean"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"owner": {
"type": "array",
"items": {
"type": "integer"
}
}
},
"required": [
"name",
"email",
"password",
"verified",
"created_at"
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "User created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserCreate"
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"409": {
"$ref": "#/components/responses/409"
},
"500": {
"$ref": "#/components/responses/500"
}
}
}
},
"/users/{id}": {
"get": {
"tags": [
"User"
],
"summary": "Find a User by ID",
"description": "Finds the User with the requested ID and returns it.",
"operationId": "readUser",
"parameters": [
{
"name": "id",
"in": "path",
"description": "ID of the User",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "User with requested ID was found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserRead"
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"404": {
"$ref": "#/components/responses/404"
},
"409": {
"$ref": "#/components/responses/409"
},
"500": {
"$ref": "#/components/responses/500"
}
}
},
"delete": {
"tags": [
"User"
],
"summary": "Deletes a User by ID",
"description": "Deletes the User with the requested ID.",
"operationId": "deleteUser",
"parameters": [
{
"name": "id",
"in": "path",
"description": "ID of the User",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"204": {
"description": "User with requested ID was deleted"
},
"400": {
"$ref": "#/components/responses/400"
},
"404": {
"$ref": "#/components/responses/404"
},
"409": {
"$ref": "#/components/responses/409"
},
"500": {
"$ref": "#/components/responses/500"
}
}
},
"patch": {
"tags": [
"User"
],
"summary": "Updates a User",
"description": "Updates a User and persists changes to storage.",
"operationId": "updateUser",
"parameters": [
{
"name": "id",
"in": "path",
"description": "ID of the User",
"required": true,
"schema": {
"type": "integer"
}
}
],
"requestBody": {
"description": "User properties to update",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"password": {
"type": "string"
},
"verified": {
"type": "boolean"
},
"owner": {
"type": "array",
"items": {
"type": "integer"
}
}
}
}
}
},
"required": true
},
"responses": {
"200": {
"description": "User updated",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserUpdate"
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"404": {
"$ref": "#/components/responses/404"
},
"409": {
"$ref": "#/components/responses/409"
},
"500": {
"$ref": "#/components/responses/500"
}
}
}
},
"/users/{id}/owner": {
"get": {
"tags": [
"User"
],
"summary": "List attached Owners",
"description": "List attached Owners.",
"operationId": "listUserOwner",
"parameters": [
{
"name": "id",
"in": "path",
"description": "ID of the User",
"required": true,
"schema": {
"type": "integer"
}
},
{
"name": "page",
"in": "query",
"description": "what page to render",
"schema": {
"type": "integer"
}
},
{
"name": "itemsPerPage",
"in": "query",
"description": "item count to render per page",
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "result Users list",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/User_OwnerList"
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"404": {
"$ref": "#/components/responses/404"
},
"409": {
"$ref": "#/components/responses/409"
},
"500": {
"$ref": "#/components/responses/500"
}
}
}
}
},
"components": {
"schemas": {
"PasswordToken": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"hash": {
"type": "string"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"user": {
"$ref": "#/components/schemas/User"
}
},
"required": [
"id",
"hash",
"created_at",
"user"
]
},
"PasswordTokenCreate": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"created_at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"id",
"created_at"
]
},
"PasswordTokenList": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"created_at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"id",
"created_at"
]
},
"PasswordTokenRead": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"created_at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"id",
"created_at"
]
},
"PasswordTokenUpdate": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"created_at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"id",
"created_at"
]
},
"PasswordToken_UserRead": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"verified": {
"type": "boolean"
},
"created_at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"id",
"name",
"email",
"verified",
"created_at"
]
},
"User": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"password": {
"type": "string"
},
"verified": {
"type": "boolean"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"owner": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PasswordToken"
}
}
},
"required": [
"id",
"name",
"email",
"password",
"verified",
"created_at"
]
},
"UserCreate": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"verified": {
"type": "boolean"
},
"created_at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"id",
"name",
"email",
"verified",
"created_at"
]
},
"UserList": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"verified": {
"type": "boolean"
},
"created_at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"id",
"name",
"email",
"verified",
"created_at"
]
},
"UserRead": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"verified": {
"type": "boolean"
},
"created_at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"id",
"name",
"email",
"verified",
"created_at"
]
},
"UserUpdate": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"verified": {
"type": "boolean"
},
"created_at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"id",
"name",
"email",
"verified",
"created_at"
]
},
"User_OwnerList": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"created_at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"id",
"created_at"
]
}
},
"responses": {
"400": {
"description": "invalid input, data invalid",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"code": {
"type": "integer"
},
"status": {
"type": "string"
},
"errors": {}
},
"required": [
"code",
"status"
]
}
}
}
},
"403": {
"description": "insufficient permissions",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"code": {
"type": "integer"
},
"status": {
"type": "string"
},
"errors": {}
},
"required": [
"code",
"status"
]
}
}
}
},
"404": {
"description": "resource not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"code": {
"type": "integer"
},
"status": {
"type": "string"
},
"errors": {}
},
"required": [
"code",
"status"
]
}
}
}
},
"409": {
"description": "conflicting resources",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"code": {
"type": "integer"
},
"status": {
"type": "string"
},
"errors": {}
},
"required": [
"code",
"status"
]
}
}
}
},
"500": {
"description": "unexpected error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"code": {
"type": "integer"
},
"status": {
"type": "string"
},
"errors": {}
},
"required": [
"code",
"status"
]
}
}
}
}
}
}
}