{
  "openapi": "3.0.0",
  "info": {
    "title": "Omni Status API",
    "version": "1.0.1",
    "contact": {
      "name": "Modica Group API Support",
      "email": "support@modicagroup.com",
      "url": "http://support.modicagroup.com"
    }
  },
  "servers": [
    {
      "url": "https://api.modicagroup.com/rest/services/v1"
    }
  ],
  "paths": {
    "/status": {
      "get": {
        "parameters": [
          {
            "name": "service",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Service Statuses",
            "headers": {
              "Content-Security-Policy": {
                "description": "Content Security Policy to prevent certain types of attacks.",
                "schema": {
                  "type": "string"
                }
              },
              "Strict-Transport-Security": {
                "description": "HSTS header to enforce HTTPS",
                "schema": {
                  "type": "string",
                  "example": "max-age=31536000; includeSubDomains; preload",
                  "pattern": "^max-age=[0-9]+(; includeSubDomains)?(; preload)?$"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "services": {
                      "type": "object",
                      "example": {
                        "rest": {
                          "status": "available"
                        },
                        "smpp": {
                          "status": "unavailable"
                        }
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string",
                            "enum": [
                              "unavailable",
                              "available",
                              "unknown"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Health check service temporarily unavailable",
            "headers": {
              "Content-Security-Policy": {
                "description": "Content Security Policy to prevent certain types of attacks.",
                "schema": {
                  "type": "string"
                }
              },
              "Strict-Transport-Security": {
                "description": "HSTS header to enforce HTTPS",
                "schema": {
                  "type": "string",
                  "example": "max-age=31536000; includeSubDomains; preload",
                  "pattern": "^max-age=[0-9]+(; includeSubDomains)?(; preload)?$"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Health check service temporarily unavailable"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Default Error Response",
            "headers": {
              "Content-Security-Policy": {
                "description": "Content Security Policy to prevent certain types of attacks.",
                "schema": {
                  "type": "string"
                }
              },
              "Strict-Transport-Security": {
                "description": "HSTS header to enforce HTTPS",
                "schema": {
                  "type": "string",
                  "example": "max-age=31536000; includeSubDomains; preload",
                  "pattern": "^max-age=[0-9]+(; includeSubDomains)?(; preload)?$"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/services": {
      "get": {
        "responses": {
          "200": {
            "description": "List of Services",
            "headers": {
              "Content-Security-Policy": {
                "description": "Content Security Policy to prevent certain types of attacks.",
                "schema": {
                  "type": "string"
                }
              },
              "Strict-Transport-Security": {
                "description": "HSTS header to enforce HTTPS",
                "schema": {
                  "type": "string",
                  "example": "max-age=31536000; includeSubDomains; preload",
                  "pattern": "^max-age=[0-9]+(; includeSubDomains)?(; preload)?$"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "services": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "example": [
                        "rest",
                        "smpp",
                        "soap",
                        "http"
                      ]
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Health check service temporarily unavailable",
            "headers": {
              "Content-Security-Policy": {
                "description": "Content Security Policy to prevent certain types of attacks.",
                "schema": {
                  "type": "string"
                }
              },
              "Strict-Transport-Security": {
                "description": "HSTS header to enforce HTTPS",
                "schema": {
                  "type": "string",
                  "example": "max-age=31536000; includeSubDomains; preload",
                  "pattern": "^max-age=[0-9]+(; includeSubDomains)?(; preload)?$"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Health check service temporarily unavailable"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Default Error Response",
            "headers": {
              "Content-Security-Policy": {
                "description": "Content Security Policy to prevent certain types of attacks.",
                "schema": {
                  "type": "string"
                }
              },
              "Strict-Transport-Security": {
                "description": "HSTS header to enforce HTTPS",
                "schema": {
                  "type": "string",
                  "example": "max-age=31536000; includeSubDomains; preload",
                  "pattern": "^max-age=[0-9]+(; includeSubDomains)?(; preload)?$"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
