{ "openapi": "3.1.1", "info": { "title": "Template API", "version": "v1" }, "paths": { "/api/v1/system/status": { "get": { "tags": [ "Template.Api" ], "summary": "Returns API status and echoes a validated optional value.", "operationId": "GetSystemStatus", "parameters": [ { "name": "echo", "in": "query", "schema": { "maxLength": 64, "minLength": 1, "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseOfSystemStatusResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/HttpValidationProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "405": { "description": "Method Not Allowed", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/api/v1/system/authenticated": { "get": { "tags": [ "Template.Api" ], "summary": "Confirms that cookie authentication and authorization succeeded.", "operationId": "GetAuthenticatedStatus", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseOfAuthenticatedResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "405": { "description": "Method Not Allowed", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "security": [ { "cookieAuth": [ ] } ] } }, "/api/health": { "get": { "tags": [ "Template.Api" ], "summary": "Reports whether the API is ready to receive traffic.", "operationId": "GetHealth", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseOfHealthResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseOfHealthResponse" } } } }, "404": { "description": "Not Found", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "405": { "description": "Method Not Allowed", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/api/health/live": { "get": { "tags": [ "Template.Api" ], "summary": "Reports whether the API process can answer requests.", "operationId": "GetLiveness", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseOfHealthResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseOfHealthResponse" } } } }, "404": { "description": "Not Found", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "405": { "description": "Method Not Allowed", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/api/health/ready": { "get": { "tags": [ "Template.Api" ], "summary": "Reports whether the API is ready to receive traffic.", "operationId": "GetReadiness", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseOfHealthResponse" } } } }, "503": { "description": "Service Unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiResponseOfHealthResponse" } } } }, "404": { "description": "Not Found", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "405": { "description": "Method Not Allowed", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "500": { "description": "Internal Server Error", "content": { "application/problem+json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } } }, "components": { "schemas": { "ApiResponseOfAuthenticatedResponse": { "required": [ "data" ], "type": "object", "properties": { "data": { "$ref": "#/components/schemas/AuthenticatedResponse" } } }, "ApiResponseOfHealthResponse": { "required": [ "data" ], "type": "object", "properties": { "data": { "$ref": "#/components/schemas/HealthResponse" } } }, "ApiResponseOfSystemStatusResponse": { "required": [ "data" ], "type": "object", "properties": { "data": { "$ref": "#/components/schemas/SystemStatusResponse" } } }, "AuthenticatedResponse": { "required": [ "status" ], "type": "object", "properties": { "status": { "type": "string" } } }, "HealthResponse": { "required": [ "status", "timestamp" ], "type": "object", "properties": { "status": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "HttpValidationProblemDetails": { "required": [ "type", "title", "status", "detail", "instance", "code", "traceId", "errors" ], "type": "object", "properties": { "type": { "type": "string" }, "title": { "type": "string" }, "status": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32" }, "detail": { "type": "string" }, "instance": { "type": "string" }, "errors": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } } }, "code": { "type": "string" }, "traceId": { "type": "string" } } }, "ProblemDetails": { "required": [ "type", "title", "status", "detail", "instance", "code", "traceId" ], "type": "object", "properties": { "type": { "type": "string" }, "title": { "type": "string" }, "status": { "pattern": "^-?(?:0|[1-9]\\d*)$", "type": [ "integer", "string" ], "format": "int32" }, "detail": { "type": "string" }, "instance": { "type": "string" }, "code": { "type": "string" }, "traceId": { "type": "string" } } }, "SystemStatusResponse": { "required": [ "status", "apiVersion", "timestamp", "echo" ], "type": "object", "properties": { "status": { "type": "string" }, "apiVersion": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" }, "echo": { "type": [ "null", "string" ] } } } }, "securitySchemes": { "cookieAuth": { "type": "apiKey", "description": "Secure HttpOnly same-origin session cookie.", "name": "__Host-template.session", "in": "cookie" } } }, "tags": [ { "name": "Template.Api" } ] }