{
  "openapi": "3.0.0",
  "paths": {
    "/health": {
      "get": {
        "operationId": "HealthController_check",
        "parameters": [],
        "responses": {
          "200": {
            "description": "The Health Check is successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": { "type": "string", "example": "ok" },
                    "info": {
                      "type": "object",
                      "example": { "database": { "status": "up" } },
                      "additionalProperties": {
                        "type": "object",
                        "properties": { "status": { "type": "string" } },
                        "additionalProperties": { "type": "string" }
                      },
                      "nullable": true
                    },
                    "error": {
                      "type": "object",
                      "example": {},
                      "additionalProperties": {
                        "type": "object",
                        "properties": { "status": { "type": "string" } },
                        "additionalProperties": { "type": "string" }
                      },
                      "nullable": true
                    },
                    "details": {
                      "type": "object",
                      "example": { "database": { "status": "up" } },
                      "additionalProperties": {
                        "type": "object",
                        "properties": { "status": { "type": "string" } },
                        "additionalProperties": { "type": "string" }
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "The Health Check is not successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": { "type": "string", "example": "error" },
                    "info": {
                      "type": "object",
                      "example": { "database": { "status": "up" } },
                      "additionalProperties": {
                        "type": "object",
                        "properties": { "status": { "type": "string" } },
                        "additionalProperties": { "type": "string" }
                      },
                      "nullable": true
                    },
                    "error": {
                      "type": "object",
                      "example": {
                        "redis": {
                          "status": "down",
                          "message": "Could not connect"
                        }
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": { "status": { "type": "string" } },
                        "additionalProperties": { "type": "string" }
                      },
                      "nullable": true
                    },
                    "details": {
                      "type": "object",
                      "example": {
                        "database": { "status": "up" },
                        "redis": {
                          "status": "down",
                          "message": "Could not connect"
                        }
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": { "status": { "type": "string" } },
                        "additionalProperties": { "type": "string" }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/email-message/user-account-created": {
      "post": {
        "operationId": "EmailMessageController_convert",
        "parameters": [
          {
            "name": "action",
            "required": true,
            "in": "query",
            "schema": {
              "enum": [
                "VIEW_TEXT",
                "VIEW_HTML",
                "VIEW_TEMPLATE",
                "SEND",
                "QUEUE"
              ],
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": { "$ref": "#/components/schemas/UserAccountCreatedDto" }
            }
          }
        },
        "responses": { "201": { "description": "" } }
      }
    },
    "/email-message/user-forgotten-password-reset": {
      "post": {
        "operationId": "EmailMessageController_convertUserForgottenPasswordReset",
        "parameters": [
          {
            "name": "action",
            "required": true,
            "in": "query",
            "schema": {
              "enum": [
                "VIEW_TEXT",
                "VIEW_HTML",
                "VIEW_TEMPLATE",
                "SEND",
                "QUEUE"
              ],
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserForgottenPasswordResetDto"
              }
            }
          }
        },
        "responses": { "201": { "description": "" } }
      }
    },
    "/email-message/stats": {
      "get": {
        "operationId": "EmailMessageController_stats",
        "parameters": [],
        "responses": { "200": { "description": "" } }
      }
    }
  },
  "info": {
    "title": "@cats-cradle/email-service",
    "description": "A service for sending emails",
    "version": "0.0.20",
    "contact": {}
  },
  "tags": [],
  "servers": [
    { "url": "http://localhost:3000", "description": "Local" },
    {
      "url": "https://nx7uv2rfy4.execute-api.us-east-2.amazonaws.com/default/v1/email-message/",
      "description": "Sandbox"
    }
  ],
  "components": {
    "schemas": {
      "UserAccountCreatedDto": {
        "type": "object",
        "properties": {
          "recipient": {
            "type": "string",
            "description": "The email recipient",
            "default": "jane.doe@example.com"
          },
          "firstName": {
            "type": "string",
            "description": "The first name of the recipient",
            "default": "Jane"
          }
        },
        "required": ["recipient", "firstName"]
      },
      "UserForgottenPasswordResetDto": {
        "type": "object",
        "properties": {
          "recipient": {
            "type": "string",
            "description": "The email recipient",
            "default": "jane.doe@example.com"
          },
          "username": {
            "type": "string",
            "description": "The username of the recipient",
            "default": "jane.doe"
          },
          "link": {
            "type": "string",
            "description": "The link for the reset password",
            "default": "https://example.com/forgot-password-reset?token=abc123"
          }
        },
        "required": ["recipient", "username", "link"]
      }
    }
  }
}
