{ "x-generator": "NSwag v14.0.3.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0))", "openapi": "3.0.0", "info": { "title": "Hutopy API", "version": "1.0.0" }, "paths": { "/api/JoinUs": { "post": { "tags": [ "JoinUs" ], "operationId": "CreateFutureCreator", "requestBody": { "x-name": "command", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateFutureCreatorCommand" } } }, "required": true, "x-position": 1 }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "integer", "format": "int32" } } } } } } }, "/api/TodoItems": { "get": { "tags": [ "TodoItems" ], "operationId": "GetTodoItemsWithPagination", "parameters": [ { "name": "ListId", "in": "query", "required": true, "schema": { "type": "integer", "format": "int32" }, "x-position": 1 }, { "name": "PageNumber", "in": "query", "required": true, "schema": { "type": "integer", "format": "int32" }, "x-position": 2 }, { "name": "PageSize", "in": "query", "required": true, "schema": { "type": "integer", "format": "int32" }, "x-position": 3 } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaginatedListOfTodoItemBriefDto" } } } } }, "security": [ { "JWT": [] } ] }, "post": { "tags": [ "TodoItems" ], "operationId": "CreateTodoItem", "requestBody": { "x-name": "command", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTodoItemCommand" } } }, "required": true, "x-position": 1 }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "integer", "format": "int32" } } } } }, "security": [ { "JWT": [] } ] } }, "/api/TodoItems/{id}": { "put": { "tags": [ "TodoItems" ], "operationId": "UpdateTodoItem", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" }, "x-position": 1 } ], "requestBody": { "x-name": "command", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTodoItemCommand" } } }, "required": true, "x-position": 2 }, "responses": { "200": { "description": "" } }, "security": [ { "JWT": [] } ] }, "delete": { "tags": [ "TodoItems" ], "operationId": "DeleteTodoItem", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" }, "x-position": 1 } ], "responses": { "200": { "description": "" } }, "security": [ { "JWT": [] } ] } }, "/api/TodoItems/UpdateDetail/{id}": { "put": { "tags": [ "TodoItems" ], "operationId": "UpdateTodoItemDetail", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" }, "x-position": 1 } ], "requestBody": { "x-name": "command", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTodoItemDetailCommand" } } }, "required": true, "x-position": 2 }, "responses": { "200": { "description": "" } }, "security": [ { "JWT": [] } ] } }, "/api/TodoLists": { "get": { "tags": [ "TodoLists" ], "operationId": "GetTodoLists", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TodosVm" } } } } }, "security": [ { "JWT": [] } ] }, "post": { "tags": [ "TodoLists" ], "operationId": "CreateTodoList", "requestBody": { "x-name": "command", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTodoListCommand" } } }, "required": true, "x-position": 1 }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "integer", "format": "int32" } } } } }, "security": [ { "JWT": [] } ] } }, "/api/TodoLists/{id}": { "put": { "tags": [ "TodoLists" ], "operationId": "UpdateTodoList", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" }, "x-position": 1 } ], "requestBody": { "x-name": "command", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTodoListCommand" } } }, "required": true, "x-position": 2 }, "responses": { "200": { "description": "" } }, "security": [ { "JWT": [] } ] }, "delete": { "tags": [ "TodoLists" ], "operationId": "DeleteTodoList", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" }, "x-position": 1 } ], "responses": { "200": { "description": "" } }, "security": [ { "JWT": [] } ] } }, "/api/Users/register": { "post": { "tags": [ "Users" ], "operationId": "PostApiUsersRegister", "requestBody": { "x-name": "registration", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegisterRequest" } } }, "x-position": 1 }, "responses": { "200": { "description": "" }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HttpValidationProblemDetails" } } } } } } }, "/api/Users/login": { "post": { "tags": [ "Users" ], "operationId": "PostApiUsersLogin", "parameters": [ { "name": "useCookies", "in": "query", "schema": { "type": "boolean", "nullable": true }, "x-position": 2 }, { "name": "useSessionCookies", "in": "query", "schema": { "type": "boolean", "nullable": true }, "x-position": 3 } ], "requestBody": { "x-name": "login", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginRequest" } } }, "x-position": 1 }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessTokenResponse" } } } } } } }, "/api/Users/refresh": { "post": { "tags": [ "Users" ], "operationId": "PostApiUsersRefresh", "requestBody": { "x-name": "refreshRequest", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RefreshRequest" } } }, "x-position": 1 }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessTokenResponse" } } } } } } }, "/api/Users/confirmEmail": { "get": { "tags": [ "Users" ], "operationId": "GetApiUsersConfirmEmail", "parameters": [ { "name": "userId", "in": "query", "schema": { "type": "string", "nullable": true }, "x-position": 1 }, { "name": "code", "in": "query", "schema": { "type": "string", "nullable": true }, "x-position": 2 }, { "name": "changedEmail", "in": "query", "schema": { "type": "string", "nullable": true }, "x-position": 3 } ], "responses": { "200": { "description": "" } } } }, "/api/Users/resendConfirmationEmail": { "post": { "tags": [ "Users" ], "operationId": "PostApiUsersResendConfirmationEmail", "requestBody": { "x-name": "resendRequest", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResendConfirmationEmailRequest" } } }, "x-position": 1 }, "responses": { "200": { "description": "" } } } }, "/api/Users/forgotPassword": { "post": { "tags": [ "Users" ], "operationId": "PostApiUsersForgotPassword", "requestBody": { "x-name": "resetRequest", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ForgotPasswordRequest" } } }, "x-position": 1 }, "responses": { "200": { "description": "" }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HttpValidationProblemDetails" } } } } } } }, "/api/Users/resetPassword": { "post": { "tags": [ "Users" ], "operationId": "PostApiUsersResetPassword", "requestBody": { "x-name": "resetRequest", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResetPasswordRequest" } } }, "x-position": 1 }, "responses": { "200": { "description": "" }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HttpValidationProblemDetails" } } } } } } }, "/api/Users/manage/2fa": { "post": { "tags": [ "Users" ], "operationId": "PostApiUsersManage2fa", "requestBody": { "x-name": "tfaRequest", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TwoFactorRequest" } } }, "x-position": 1 }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TwoFactorResponse" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HttpValidationProblemDetails" } } } }, "404": { "description": "" } }, "security": [ { "JWT": [] } ] } }, "/api/Users/manage/info": { "get": { "tags": [ "Users" ], "operationId": "GetApiUsersManageInfo", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InfoResponse" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HttpValidationProblemDetails" } } } }, "404": { "description": "" } }, "security": [ { "JWT": [] } ] }, "post": { "tags": [ "Users" ], "operationId": "PostApiUsersManageInfo", "requestBody": { "x-name": "infoRequest", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InfoRequest" } } }, "x-position": 1 }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InfoResponse" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HttpValidationProblemDetails" } } } }, "404": { "description": "" } }, "security": [ { "JWT": [] } ] } }, "/api/WeatherForecasts": { "get": { "tags": [ "WeatherForecasts" ], "operationId": "GetWeatherForecasts", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/WeatherForecast" } } } } } }, "security": [ { "JWT": [] } ] } } }, "components": { "schemas": { "CreateFutureCreatorCommand": { "type": "object", "additionalProperties": false, "properties": { "firstName": { "type": "string" }, "lastName": { "type": "string" }, "emailAddress": { "type": "string" }, "phoneNumber": { "type": "string" }, "socialNetworkAccount": { "type": "string" }, "reasonToJoin": { "type": "string" } } }, "PaginatedListOfTodoItemBriefDto": { "type": "object", "additionalProperties": false, "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/TodoItemBriefDto" } }, "pageNumber": { "type": "integer", "format": "int32" }, "totalPages": { "type": "integer", "format": "int32" }, "totalCount": { "type": "integer", "format": "int32" }, "hasPreviousPage": { "type": "boolean" }, "hasNextPage": { "type": "boolean" } } }, "TodoItemBriefDto": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "integer", "format": "int32" }, "listId": { "type": "integer", "format": "int32" }, "title": { "type": "string", "nullable": true }, "done": { "type": "boolean" } } }, "CreateTodoItemCommand": { "type": "object", "additionalProperties": false, "properties": { "listId": { "type": "integer", "format": "int32" }, "title": { "type": "string", "nullable": true } } }, "UpdateTodoItemCommand": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "integer", "format": "int32" }, "title": { "type": "string", "nullable": true }, "done": { "type": "boolean" } } }, "UpdateTodoItemDetailCommand": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "integer", "format": "int32" }, "listId": { "type": "integer", "format": "int32" }, "priority": { "$ref": "#/components/schemas/PriorityLevel" }, "note": { "type": "string", "nullable": true } } }, "PriorityLevel": { "type": "integer", "description": "", "x-enumNames": [ "None", "Low", "Medium", "High" ], "enum": [ 0, 1, 2, 3 ] }, "TodosVm": { "type": "object", "additionalProperties": false, "properties": { "priorityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/LookupDto" } }, "lists": { "type": "array", "items": { "$ref": "#/components/schemas/TodoListDto" } } } }, "LookupDto": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "integer", "format": "int32" }, "title": { "type": "string", "nullable": true } } }, "TodoListDto": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "integer", "format": "int32" }, "title": { "type": "string", "nullable": true }, "colour": { "type": "string", "nullable": true }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/TodoItemDto" } } } }, "TodoItemDto": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "integer", "format": "int32" }, "listId": { "type": "integer", "format": "int32" }, "title": { "type": "string", "nullable": true }, "done": { "type": "boolean" }, "priority": { "type": "integer", "format": "int32" }, "note": { "type": "string", "nullable": true } } }, "CreateTodoListCommand": { "type": "object", "additionalProperties": false, "properties": { "title": { "type": "string", "nullable": true } } }, "UpdateTodoListCommand": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "integer", "format": "int32" }, "title": { "type": "string", "nullable": true } } }, "HttpValidationProblemDetails": { "allOf": [ { "$ref": "#/components/schemas/ProblemDetails" }, { "type": "object", "additionalProperties": { "nullable": true }, "properties": { "errors": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } } } } } ] }, "ProblemDetails": { "type": "object", "additionalProperties": { "nullable": true }, "properties": { "type": { "type": "string", "nullable": true }, "title": { "type": "string", "nullable": true }, "status": { "type": "integer", "format": "int32", "nullable": true }, "detail": { "type": "string", "nullable": true }, "instance": { "type": "string", "nullable": true } } }, "RegisterRequest": { "type": "object", "additionalProperties": false, "properties": { "email": { "type": "string" }, "password": { "type": "string" } } }, "AccessTokenResponse": { "type": "object", "additionalProperties": false, "properties": { "tokenType": { "type": "string" }, "accessToken": { "type": "string" }, "expiresIn": { "type": "integer", "format": "int64" }, "refreshToken": { "type": "string" } } }, "LoginRequest": { "type": "object", "additionalProperties": false, "properties": { "email": { "type": "string" }, "password": { "type": "string" }, "twoFactorCode": { "type": "string", "nullable": true }, "twoFactorRecoveryCode": { "type": "string", "nullable": true } } }, "RefreshRequest": { "type": "object", "additionalProperties": false, "properties": { "refreshToken": { "type": "string" } } }, "ResendConfirmationEmailRequest": { "type": "object", "additionalProperties": false, "properties": { "email": { "type": "string" } } }, "ForgotPasswordRequest": { "type": "object", "additionalProperties": false, "properties": { "email": { "type": "string" } } }, "ResetPasswordRequest": { "type": "object", "additionalProperties": false, "properties": { "email": { "type": "string" }, "resetCode": { "type": "string" }, "newPassword": { "type": "string" } } }, "TwoFactorResponse": { "type": "object", "additionalProperties": false, "properties": { "sharedKey": { "type": "string" }, "recoveryCodesLeft": { "type": "integer", "format": "int32" }, "recoveryCodes": { "type": "array", "nullable": true, "items": { "type": "string" } }, "isTwoFactorEnabled": { "type": "boolean" }, "isMachineRemembered": { "type": "boolean" } } }, "TwoFactorRequest": { "type": "object", "additionalProperties": false, "properties": { "enable": { "type": "boolean", "nullable": true }, "twoFactorCode": { "type": "string", "nullable": true }, "resetSharedKey": { "type": "boolean" }, "resetRecoveryCodes": { "type": "boolean" }, "forgetMachine": { "type": "boolean" } } }, "InfoResponse": { "type": "object", "additionalProperties": false, "properties": { "email": { "type": "string" }, "isEmailConfirmed": { "type": "boolean" } } }, "InfoRequest": { "type": "object", "additionalProperties": false, "properties": { "newEmail": { "type": "string", "nullable": true }, "newPassword": { "type": "string", "nullable": true }, "oldPassword": { "type": "string", "nullable": true } } }, "WeatherForecast": { "type": "object", "additionalProperties": false, "properties": { "date": { "type": "string", "format": "date-time" }, "temperatureC": { "type": "integer", "format": "int32" }, "temperatureF": { "type": "integer", "format": "int32" }, "summary": { "type": "string", "nullable": true } } } }, "securitySchemes": { "JWT": { "type": "apiKey", "description": "Type into the textbox: Bearer {your JWT token}.", "name": "Authorization", "in": "header" } } }, "security": [ { "JWT": [] } ] }