{ "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" ] } } } } } } }