{
    "openapi": "3.1.0",
    "info": {
        "title": "Phare",
        "description": "Learn how to use the phare.io API. Most of the things that can be done on the web platform can also be achieved with the API documented on this page.",
        "termsOfService": "https://phare.io/legal/terms-of-service",
        "contact": {
            "name": "Phare",
            "email": "support@phare.io"
        },
        "version": "1.0"
    },
    "servers": [
        {
            "url": "https://api.phare.io"
        }
    ],
    "paths": {
        "/": {
            "get": {
                "tags": [
                    "Platform"
                ],
                "summary": "Get API info",
                "description": "Get basic API information",
                "operationId": "getInfo",
                "responses": {
                    "200": {
                        "description": "Success, information retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "title": {
                                            "description": "API title",
                                            "type": "string",
                                            "example": "Phare"
                                        },
                                        "version": {
                                            "description": "API version",
                                            "type": "string",
                                            "example": "1.0"
                                        },
                                        "support": {
                                            "description": "Support email address",
                                            "type": "string",
                                            "example": "support@phare.io"
                                        },
                                        "website": {
                                            "description": "Platform website url",
                                            "type": "string",
                                            "example": "https://phare.io"
                                        },
                                        "documentation": {
                                            "description": "API documentation url",
                                            "type": "string",
                                            "example": "https://docs.phare.io/"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    }
                }
            }
        },
        "/alert-rules": {
            "get": {
                "tags": [
                    "Alert Rules"
                ],
                "summary": "List alert rules",
                "description": "Get a paginated list of alert rules. Organization-scoped alert rules are listed alongside the alert rules of the current project.",
                "operationId": "getAlertRules",
                "responses": {
                    "200": {
                        "description": "Success, alert rules retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "project_id": {
                                                        "description": "The ID of a project to use as a scope",
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ],
                                                        "example": 1
                                                    },
                                                    "event": {
                                                        "$ref": "#/components/schemas/Uptime.ProductEvents",
                                                        "description": "Name of the event that will trigger the execution of the alert rule"
                                                    },
                                                    "integration_id": {
                                                        "description": "The ID of the integration used to send a notification when the alert rule is executed",
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "rate_limit": {
                                                        "description": "Minimum time in minutes between two executions of the alert rule, used to minimize the number of alerts received.",
                                                        "type": "integer",
                                                        "example": 5,
                                                        "enum": [
                                                            0,
                                                            5,
                                                            10,
                                                            30,
                                                            60,
                                                            180,
                                                            720,
                                                            1440
                                                        ]
                                                    },
                                                    "event_settings": {
                                                        "description": "Additional settings for the event",
                                                        "anyOf": [
                                                            {
                                                                "title": "Empty",
                                                                "type": [
                                                                    "object",
                                                                    "null"
                                                                ]
                                                            },
                                                            {
                                                                "$ref": "#/components/schemas/Platform.Event.UptimeIncident.AlertRuleSettings"
                                                            },
                                                            {
                                                                "$ref": "#/components/schemas/Platform.Event.UptimeMonitorCertificateExpiring.AlertRuleSettings"
                                                            }
                                                        ]
                                                    },
                                                    "integration_settings": {
                                                        "description": "Additional settings for the integration",
                                                        "anyOf": [
                                                            {
                                                                "title": "Empty",
                                                                "type": [
                                                                    "object",
                                                                    "null"
                                                                ]
                                                            },
                                                            {
                                                                "$ref": "#/components/schemas/Platform.App.Ntfy.AlertRuleSettings"
                                                            },
                                                            {
                                                                "$ref": "#/components/schemas/Platform.App.OutgoingWebhook.AlertRuleSettings"
                                                            },
                                                            {
                                                                "$ref": "#/components/schemas/Platform.App.Pushover.AlertRuleSettings"
                                                            }
                                                        ]
                                                    },
                                                    "created_at": {
                                                        "description": "Date of creation for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "updated_at": {
                                                        "description": "Date of last update for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    }
                                                },
                                                "required": [
                                                    "event",
                                                    "integration_id",
                                                    "rate_limit"
                                                ]
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/meta"
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/links"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ]
            },
            "post": {
                "tags": [
                    "Alert Rules"
                ],
                "summary": "Create an alert rule",
                "description": "Create an alert rule",
                "operationId": "createUptimeAlertRule",
                "requestBody": {
                    "description": "Alert rule request",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "scope": {
                                        "description": "Scope of the alert rule, `organization` to execute it for the events of every project or `project` to only execute it for the events of the current project",
                                        "type": "string",
                                        "example": "organization",
                                        "enum": [
                                            "organization",
                                            "project"
                                        ]
                                    },
                                    "event": {
                                        "$ref": "#/components/schemas/Uptime.ProductEvents",
                                        "description": "Name of the event that will trigger the execution of the alert rule"
                                    },
                                    "integration_id": {
                                        "description": "The ID of the integration used to send a notification when the alert rule is executed",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "rate_limit": {
                                        "description": "Minimum time in minutes between two executions of the alert rule, used to minimize the number of alerts received.",
                                        "type": "integer",
                                        "example": 5,
                                        "enum": [
                                            0,
                                            5,
                                            10,
                                            30,
                                            60,
                                            180,
                                            720,
                                            1440
                                        ]
                                    },
                                    "event_settings": {
                                        "description": "Additional settings for the event",
                                        "anyOf": [
                                            {
                                                "title": "Empty",
                                                "type": [
                                                    "object",
                                                    "null"
                                                ]
                                            },
                                            {
                                                "$ref": "#/components/schemas/Platform.Event.UptimeIncident.AlertRuleSettings"
                                            },
                                            {
                                                "$ref": "#/components/schemas/Platform.Event.UptimeMonitorCertificateExpiring.AlertRuleSettings"
                                            }
                                        ]
                                    },
                                    "integration_settings": {
                                        "description": "Additional settings for the integration",
                                        "anyOf": [
                                            {
                                                "title": "Empty",
                                                "type": [
                                                    "object",
                                                    "null"
                                                ]
                                            },
                                            {
                                                "$ref": "#/components/schemas/Platform.App.Ntfy.AlertRuleSettings"
                                            },
                                            {
                                                "$ref": "#/components/schemas/Platform.App.OutgoingWebhook.AlertRuleSettings"
                                            },
                                            {
                                                "$ref": "#/components/schemas/Platform.App.Pushover.AlertRuleSettings"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "scope",
                                    "event",
                                    "integration_id",
                                    "rate_limit"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success, alert rule created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "project_id": {
                                            "description": "The ID of a project to use as a scope",
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "example": 1
                                        },
                                        "event": {
                                            "$ref": "#/components/schemas/Uptime.ProductEvents",
                                            "description": "Name of the event that will trigger the execution of the alert rule"
                                        },
                                        "integration_id": {
                                            "description": "The ID of the integration used to send a notification when the alert rule is executed",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "rate_limit": {
                                            "description": "Minimum time in minutes between two executions of the alert rule, used to minimize the number of alerts received.",
                                            "type": "integer",
                                            "example": 5,
                                            "enum": [
                                                0,
                                                5,
                                                10,
                                                30,
                                                60,
                                                180,
                                                720,
                                                1440
                                            ]
                                        },
                                        "event_settings": {
                                            "description": "Additional settings for the event",
                                            "anyOf": [
                                                {
                                                    "title": "Empty",
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.Event.UptimeIncident.AlertRuleSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.Event.UptimeMonitorCertificateExpiring.AlertRuleSettings"
                                                }
                                            ]
                                        },
                                        "integration_settings": {
                                            "description": "Additional settings for the integration",
                                            "anyOf": [
                                                {
                                                    "title": "Empty",
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Ntfy.AlertRuleSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.OutgoingWebhook.AlertRuleSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Pushover.AlertRuleSettings"
                                                }
                                            ]
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "event",
                                        "integration_id",
                                        "rate_limit"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ]
            }
        },
        "/alert-rules/{alertRuleId}": {
            "get": {
                "tags": [
                    "Alert Rules"
                ],
                "summary": "Get an alert rule",
                "description": "Get an alert rule by ID",
                "operationId": "getAlertRule",
                "parameters": [
                    {
                        "name": "alertRuleId",
                        "in": "path",
                        "description": "ID of the alert rule to show",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, alert rule retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "project_id": {
                                            "description": "The ID of a project to use as a scope",
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "example": 1
                                        },
                                        "event": {
                                            "$ref": "#/components/schemas/Uptime.ProductEvents",
                                            "description": "Name of the event that will trigger the execution of the alert rule"
                                        },
                                        "integration_id": {
                                            "description": "The ID of the integration used to send a notification when the alert rule is executed",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "rate_limit": {
                                            "description": "Minimum time in minutes between two executions of the alert rule, used to minimize the number of alerts received.",
                                            "type": "integer",
                                            "example": 5,
                                            "enum": [
                                                0,
                                                5,
                                                10,
                                                30,
                                                60,
                                                180,
                                                720,
                                                1440
                                            ]
                                        },
                                        "event_settings": {
                                            "description": "Additional settings for the event",
                                            "anyOf": [
                                                {
                                                    "title": "Empty",
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.Event.UptimeIncident.AlertRuleSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.Event.UptimeMonitorCertificateExpiring.AlertRuleSettings"
                                                }
                                            ]
                                        },
                                        "integration_settings": {
                                            "description": "Additional settings for the integration",
                                            "anyOf": [
                                                {
                                                    "title": "Empty",
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Ntfy.AlertRuleSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.OutgoingWebhook.AlertRuleSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Pushover.AlertRuleSettings"
                                                }
                                            ]
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "event",
                                        "integration_id",
                                        "rate_limit"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            },
            "post": {
                "tags": [
                    "Alert Rules"
                ],
                "summary": "Update an alert rule",
                "description": "Update an alert rule by ID",
                "operationId": "updateUptimeAlertRule",
                "parameters": [
                    {
                        "name": "alertRuleId",
                        "in": "path",
                        "description": "ID of the alert rule to update",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "requestBody": {
                    "description": "Alert rule request",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "scope": {
                                        "description": "Scope of the alert rule, `organization` to execute it for the events of every project or `project` to only execute it for the events of the current project",
                                        "type": "string",
                                        "example": "organization",
                                        "enum": [
                                            "organization",
                                            "project"
                                        ]
                                    },
                                    "event": {
                                        "$ref": "#/components/schemas/Uptime.ProductEvents",
                                        "description": "Name of the event that will trigger the execution of the alert rule"
                                    },
                                    "integration_id": {
                                        "description": "The ID of the integration used to send a notification when the alert rule is executed",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "rate_limit": {
                                        "description": "Minimum time in minutes between two executions of the alert rule, used to minimize the number of alerts received.",
                                        "type": "integer",
                                        "example": 5,
                                        "enum": [
                                            0,
                                            5,
                                            10,
                                            30,
                                            60,
                                            180,
                                            720,
                                            1440
                                        ]
                                    },
                                    "event_settings": {
                                        "description": "Additional settings for the event",
                                        "anyOf": [
                                            {
                                                "title": "Empty",
                                                "type": [
                                                    "object",
                                                    "null"
                                                ]
                                            },
                                            {
                                                "$ref": "#/components/schemas/Platform.Event.UptimeIncident.AlertRuleSettings"
                                            },
                                            {
                                                "$ref": "#/components/schemas/Platform.Event.UptimeMonitorCertificateExpiring.AlertRuleSettings"
                                            }
                                        ]
                                    },
                                    "integration_settings": {
                                        "description": "Additional settings for the integration",
                                        "anyOf": [
                                            {
                                                "title": "Empty",
                                                "type": [
                                                    "object",
                                                    "null"
                                                ]
                                            },
                                            {
                                                "$ref": "#/components/schemas/Platform.App.Ntfy.AlertRuleSettings"
                                            },
                                            {
                                                "$ref": "#/components/schemas/Platform.App.OutgoingWebhook.AlertRuleSettings"
                                            },
                                            {
                                                "$ref": "#/components/schemas/Platform.App.Pushover.AlertRuleSettings"
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success, alert rule updated",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "project_id": {
                                            "description": "The ID of a project to use as a scope",
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "example": 1
                                        },
                                        "event": {
                                            "$ref": "#/components/schemas/Uptime.ProductEvents",
                                            "description": "Name of the event that will trigger the execution of the alert rule"
                                        },
                                        "integration_id": {
                                            "description": "The ID of the integration used to send a notification when the alert rule is executed",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "rate_limit": {
                                            "description": "Minimum time in minutes between two executions of the alert rule, used to minimize the number of alerts received.",
                                            "type": "integer",
                                            "example": 5,
                                            "enum": [
                                                0,
                                                5,
                                                10,
                                                30,
                                                60,
                                                180,
                                                720,
                                                1440
                                            ]
                                        },
                                        "event_settings": {
                                            "description": "Additional settings for the event",
                                            "anyOf": [
                                                {
                                                    "title": "Empty",
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.Event.UptimeIncident.AlertRuleSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.Event.UptimeMonitorCertificateExpiring.AlertRuleSettings"
                                                }
                                            ]
                                        },
                                        "integration_settings": {
                                            "description": "Additional settings for the integration",
                                            "anyOf": [
                                                {
                                                    "title": "Empty",
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ]
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Ntfy.AlertRuleSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.OutgoingWebhook.AlertRuleSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Pushover.AlertRuleSettings"
                                                }
                                            ]
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "event",
                                        "integration_id",
                                        "rate_limit"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Alert Rules"
                ],
                "summary": "Delete an alert rule",
                "description": "Delete an alert rule by ID",
                "operationId": "deleteUptimeAlertRule",
                "parameters": [
                    {
                        "name": "alertRuleId",
                        "in": "path",
                        "description": "ID of the alert rule to delete",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success, alert rule deleted",
                        "content": {}
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            }
        },
        "/apps/{app}/integrations": {
            "get": {
                "tags": [
                    "Integrations"
                ],
                "summary": "List integrations",
                "description": "Get a paginated list of integrations for a specific app.",
                "operationId": "getIntegrations",
                "parameters": [
                    {
                        "name": "app",
                        "in": "path",
                        "description": "The app key to filter integrations",
                        "required": true,
                        "schema": {
                            "$ref": "#/components/schemas/Platform.App.AppEnum"
                        }
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "description": "Filter integrations by name. Can be specified multiple times to filter by multiple names.",
                        "required": false,
                        "style": "form",
                        "explode": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, integrations retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "description": "Integration ID",
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "app": {
                                                        "$ref": "#/components/schemas/Platform.App.AppEnum",
                                                        "description": "Integration app key"
                                                    },
                                                    "name": {
                                                        "description": "Integration name",
                                                        "type": "string",
                                                        "example": "DevOps Team",
                                                        "maxLength": 50,
                                                        "minLength": 2
                                                    },
                                                    "settings": {
                                                        "description": "Settings specific to the integration app",
                                                        "anyOf": [
                                                            {
                                                                "title": "Empty",
                                                                "maxProperties": 0,
                                                                "type": "object"
                                                            },
                                                            {
                                                                "$ref": "#/components/schemas/Platform.App.Email.IntegrationSettings"
                                                            },
                                                            {
                                                                "$ref": "#/components/schemas/Platform.App.Ilert.IntegrationSettings"
                                                            },
                                                            {
                                                                "$ref": "#/components/schemas/Platform.App.Ntfy.IntegrationSettings"
                                                            },
                                                            {
                                                                "$ref": "#/components/schemas/Platform.App.OutgoingWebhook.IntegrationSettings"
                                                            },
                                                            {
                                                                "$ref": "#/components/schemas/Platform.App.Pushover.IntegrationSettings"
                                                            },
                                                            {
                                                                "$ref": "#/components/schemas/Platform.App.Sms.IntegrationSettings"
                                                            }
                                                        ]
                                                    },
                                                    "paused": {
                                                        "description": "Integration paused status",
                                                        "type": "boolean",
                                                        "example": false
                                                    },
                                                    "created_at": {
                                                        "description": "Date of creation for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "updated_at": {
                                                        "description": "Date of last update for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    }
                                                },
                                                "required": [
                                                    "name"
                                                ]
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/meta"
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/links"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            },
            "post": {
                "tags": [
                    "Integrations"
                ],
                "summary": "Create an integration",
                "description": "Create an integration for a specific app.",
                "operationId": "createIntegration",
                "parameters": [
                    {
                        "name": "app",
                        "in": "path",
                        "description": "The app key",
                        "required": true,
                        "schema": {
                            "$ref": "#/components/schemas/Platform.App.ManageableAppEnum"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Integration request",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "description": "Integration name",
                                        "type": "string",
                                        "example": "DevOps Team",
                                        "maxLength": 50,
                                        "minLength": 2
                                    },
                                    "settings": {
                                        "description": "Settings specific to the integration app",
                                        "anyOf": [
                                            {
                                                "title": "Empty",
                                                "maxProperties": 0,
                                                "type": "object"
                                            },
                                            {
                                                "$ref": "#/components/schemas/Platform.App.Email.IntegrationSettings"
                                            },
                                            {
                                                "$ref": "#/components/schemas/Platform.App.Ilert.IntegrationSettings"
                                            },
                                            {
                                                "$ref": "#/components/schemas/Platform.App.Ntfy.IntegrationSettings"
                                            },
                                            {
                                                "$ref": "#/components/schemas/Platform.App.OutgoingWebhook.IntegrationSettings"
                                            },
                                            {
                                                "$ref": "#/components/schemas/Platform.App.Pushover.IntegrationSettings"
                                            },
                                            {
                                                "$ref": "#/components/schemas/Platform.App.Sms.IntegrationSettings"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "name"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success, integration created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "description": "Integration ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "app": {
                                            "$ref": "#/components/schemas/Platform.App.AppEnum",
                                            "description": "Integration app key"
                                        },
                                        "name": {
                                            "description": "Integration name",
                                            "type": "string",
                                            "example": "DevOps Team",
                                            "maxLength": 50,
                                            "minLength": 2
                                        },
                                        "settings": {
                                            "description": "Settings specific to the integration app",
                                            "anyOf": [
                                                {
                                                    "title": "Empty",
                                                    "maxProperties": 0,
                                                    "type": "object"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Email.IntegrationSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Ilert.IntegrationSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Ntfy.IntegrationSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.OutgoingWebhook.IntegrationSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Pushover.IntegrationSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Sms.IntegrationSettings"
                                                }
                                            ]
                                        },
                                        "paused": {
                                            "description": "Integration paused status",
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "name"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                }
            }
        },
        "/apps/{app}/integrations/{integrationId}": {
            "get": {
                "tags": [
                    "Integrations"
                ],
                "summary": "Get an integration",
                "description": "Get an integration by ID",
                "operationId": "getIntegration",
                "parameters": [
                    {
                        "name": "app",
                        "in": "path",
                        "description": "The app key",
                        "required": true,
                        "schema": {
                            "$ref": "#/components/schemas/Platform.App.AppEnum"
                        }
                    },
                    {
                        "name": "integrationId",
                        "in": "path",
                        "description": "ID of the integration to show",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, integration retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "description": "Integration ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "app": {
                                            "$ref": "#/components/schemas/Platform.App.AppEnum",
                                            "description": "Integration app key"
                                        },
                                        "name": {
                                            "description": "Integration name",
                                            "type": "string",
                                            "example": "DevOps Team",
                                            "maxLength": 50,
                                            "minLength": 2
                                        },
                                        "settings": {
                                            "description": "Settings specific to the integration app",
                                            "anyOf": [
                                                {
                                                    "title": "Empty",
                                                    "maxProperties": 0,
                                                    "type": "object"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Email.IntegrationSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Ilert.IntegrationSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Ntfy.IntegrationSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.OutgoingWebhook.IntegrationSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Pushover.IntegrationSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Sms.IntegrationSettings"
                                                }
                                            ]
                                        },
                                        "paused": {
                                            "description": "Integration paused status",
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "name"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            },
            "post": {
                "tags": [
                    "Integrations"
                ],
                "summary": "Update an integration",
                "description": "Update an integration by ID.",
                "operationId": "updateIntegration",
                "parameters": [
                    {
                        "name": "app",
                        "in": "path",
                        "description": "The app key",
                        "required": true,
                        "schema": {
                            "$ref": "#/components/schemas/Platform.App.ManageableAppEnum"
                        }
                    },
                    {
                        "name": "integrationId",
                        "in": "path",
                        "description": "ID of the integration to update",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Integration request",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "description": "Integration name",
                                        "type": "string",
                                        "example": "DevOps Team",
                                        "maxLength": 50,
                                        "minLength": 2
                                    },
                                    "settings": {
                                        "description": "Settings specific to the integration app",
                                        "anyOf": [
                                            {
                                                "title": "Empty",
                                                "maxProperties": 0,
                                                "type": "object"
                                            },
                                            {
                                                "title": "Email",
                                                "properties": {
                                                    "members": {
                                                        "description": "IDs of the organization members receiving the alerts",
                                                        "type": "array",
                                                        "items": {
                                                            "type": "integer"
                                                        },
                                                        "example": [
                                                            1,
                                                            2
                                                        ],
                                                        "maxItems": 100,
                                                        "minItems": 1
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            {
                                                "title": "ilert",
                                                "properties": {
                                                    "integration_key": {
                                                        "description": "ilert alert source integration key",
                                                        "type": "string",
                                                        "writeOnly": true,
                                                        "example": "il1api00000000000000000000000000000000000000",
                                                        "maxLength": 70,
                                                        "minLength": 40
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            {
                                                "title": "Ntfy",
                                                "properties": {
                                                    "hostname": {
                                                        "description": "Hostname of the Ntfy server",
                                                        "type": "string",
                                                        "example": "ntfy.sh",
                                                        "maxLength": 100,
                                                        "minLength": 4
                                                    },
                                                    "topic": {
                                                        "description": "Ntfy topic receiving the alerts",
                                                        "type": "string",
                                                        "example": "phare-alerts",
                                                        "maxLength": 255,
                                                        "minLength": 1
                                                    },
                                                    "access_token": {
                                                        "description": "Ntfy access token used for authenticated topics, must start with `tk_`",
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "writeOnly": true,
                                                        "example": "tk_00000000000000000000000000000",
                                                        "maxLength": 32,
                                                        "minLength": 32
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            {
                                                "title": "Outgoing Webhooks",
                                                "properties": {
                                                    "url": {
                                                        "description": "URL receiving the webhook requests",
                                                        "type": "string",
                                                        "format": "uri",
                                                        "example": "https://example.com/webhooks/phare",
                                                        "maxLength": 250
                                                    },
                                                    "secret": {
                                                        "description": "Secret used to sign the webhook requests",
                                                        "type": "string",
                                                        "writeOnly": true,
                                                        "example": "a-very-secure-secret",
                                                        "maxLength": 250,
                                                        "minLength": 10
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            {
                                                "title": "Pushover",
                                                "properties": {
                                                    "user_key": {
                                                        "description": "Pushover user or group key",
                                                        "type": "string",
                                                        "writeOnly": true,
                                                        "example": "u00000000000000000000000000000",
                                                        "maxLength": 30,
                                                        "minLength": 30
                                                    },
                                                    "api_key": {
                                                        "description": "Pushover application API token",
                                                        "type": "string",
                                                        "writeOnly": true,
                                                        "example": "a00000000000000000000000000000",
                                                        "maxLength": 30,
                                                        "minLength": 30
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            {
                                                "title": "SMS",
                                                "properties": {
                                                    "members": {
                                                        "description": "IDs of the organization members receiving the alerts",
                                                        "type": "array",
                                                        "items": {
                                                            "type": "integer"
                                                        },
                                                        "example": [
                                                            1,
                                                            2
                                                        ],
                                                        "maxItems": 100,
                                                        "minItems": 1
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success, integration updated",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "description": "Integration ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "app": {
                                            "$ref": "#/components/schemas/Platform.App.AppEnum",
                                            "description": "Integration app key"
                                        },
                                        "name": {
                                            "description": "Integration name",
                                            "type": "string",
                                            "example": "DevOps Team",
                                            "maxLength": 50,
                                            "minLength": 2
                                        },
                                        "settings": {
                                            "description": "Settings specific to the integration app",
                                            "anyOf": [
                                                {
                                                    "title": "Empty",
                                                    "maxProperties": 0,
                                                    "type": "object"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Email.IntegrationSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Ilert.IntegrationSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Ntfy.IntegrationSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.OutgoingWebhook.IntegrationSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Pushover.IntegrationSettings"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/Platform.App.Sms.IntegrationSettings"
                                                }
                                            ]
                                        },
                                        "paused": {
                                            "description": "Integration paused status",
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "name"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Integrations"
                ],
                "summary": "Delete an integration",
                "description": "Delete an integration by ID. Integrations used by alert rules can not be deleted.",
                "operationId": "deleteIntegration",
                "parameters": [
                    {
                        "name": "app",
                        "in": "path",
                        "description": "The app key",
                        "required": true,
                        "schema": {
                            "$ref": "#/components/schemas/Platform.App.AppEnum"
                        }
                    },
                    {
                        "name": "integrationId",
                        "in": "path",
                        "description": "ID of the integration to delete",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success, integration deleted",
                        "content": {}
                    },
                    "409": {
                        "description": "Error, integration cannot be deleted",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Conflict error schema",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "This integration is used by at least one alert rule and cannot be deleted."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            }
        },
        "/projects": {
            "get": {
                "tags": [
                    "Projects"
                ],
                "summary": "List projects",
                "description": "Get a paginated list of projects. Requires an organization-scoped API key.",
                "operationId": "getProjects",
                "responses": {
                    "200": {
                        "description": "Success, projects retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "description": "Project ID",
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "slug": {
                                                        "description": "Project slug",
                                                        "type": "string",
                                                        "example": "luminous-guiding-tower"
                                                    },
                                                    "name": {
                                                        "description": "Project name",
                                                        "type": "string",
                                                        "example": "Luminous Guiding Tower",
                                                        "maxLength": 25,
                                                        "minLength": 1
                                                    },
                                                    "members": {
                                                        "description": "List of team members that are part of this project",
                                                        "type": "array",
                                                        "items": {
                                                            "type": "integer"
                                                        },
                                                        "example": [
                                                            1,
                                                            2,
                                                            3
                                                        ],
                                                        "maxItems": 100,
                                                        "minItems": 1
                                                    },
                                                    "settings": {
                                                        "description": "Project settings",
                                                        "properties": {
                                                            "use_incident_ai": {
                                                                "description": "Whether to generate AI summaries for incidents",
                                                                "type": "boolean",
                                                                "default": true
                                                            },
                                                            "use_incident_merging": {
                                                                "description": "Whether to use incident merging",
                                                                "type": "boolean",
                                                                "default": true
                                                            },
                                                            "incident_merging_time_window": {
                                                                "description": "Time window for incident merging in minutes",
                                                                "type": "integer",
                                                                "default": 60,
                                                                "enum": [
                                                                    5,
                                                                    10,
                                                                    30,
                                                                    60,
                                                                    120,
                                                                    180
                                                                ]
                                                            }
                                                        },
                                                        "type": "object"
                                                    },
                                                    "created_at": {
                                                        "description": "Date of creation for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "updated_at": {
                                                        "description": "Date of last update for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    }
                                                },
                                                "required": [
                                                    "name",
                                                    "members"
                                                ]
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/meta"
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/links"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    }
                ]
            },
            "post": {
                "tags": [
                    "Projects"
                ],
                "summary": "Create a project",
                "description": "Create a project. Requires an organization-scoped API key.",
                "operationId": "createProject",
                "requestBody": {
                    "description": "Project request",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "description": "Project name",
                                        "type": "string",
                                        "example": "Luminous Guiding Tower",
                                        "maxLength": 25,
                                        "minLength": 1
                                    },
                                    "members": {
                                        "description": "List of team members that are part of this project",
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2,
                                            3
                                        ],
                                        "maxItems": 100,
                                        "minItems": 1
                                    },
                                    "settings": {
                                        "description": "Project settings",
                                        "properties": {
                                            "use_incident_ai": {
                                                "description": "Whether to generate AI summaries for incidents",
                                                "type": "boolean",
                                                "default": true
                                            },
                                            "use_incident_merging": {
                                                "description": "Whether to use incident merging",
                                                "type": "boolean",
                                                "default": true
                                            },
                                            "incident_merging_time_window": {
                                                "description": "Time window for incident merging in minutes",
                                                "type": "integer",
                                                "default": 60,
                                                "enum": [
                                                    5,
                                                    10,
                                                    30,
                                                    60,
                                                    120,
                                                    180
                                                ]
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "required": [
                                    "name",
                                    "members"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success, project created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "description": "Project ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "slug": {
                                            "description": "Project slug",
                                            "type": "string",
                                            "example": "luminous-guiding-tower"
                                        },
                                        "name": {
                                            "description": "Project name",
                                            "type": "string",
                                            "example": "Luminous Guiding Tower",
                                            "maxLength": 25,
                                            "minLength": 1
                                        },
                                        "members": {
                                            "description": "List of team members that are part of this project",
                                            "type": "array",
                                            "items": {
                                                "type": "integer"
                                            },
                                            "example": [
                                                1,
                                                2,
                                                3
                                            ],
                                            "maxItems": 100,
                                            "minItems": 1
                                        },
                                        "settings": {
                                            "description": "Project settings",
                                            "properties": {
                                                "use_incident_ai": {
                                                    "description": "Whether to generate AI summaries for incidents",
                                                    "type": "boolean",
                                                    "default": true
                                                },
                                                "use_incident_merging": {
                                                    "description": "Whether to use incident merging",
                                                    "type": "boolean",
                                                    "default": true
                                                },
                                                "incident_merging_time_window": {
                                                    "description": "Time window for incident merging in minutes",
                                                    "type": "integer",
                                                    "default": 60,
                                                    "enum": [
                                                        5,
                                                        10,
                                                        30,
                                                        60,
                                                        120,
                                                        180
                                                    ]
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "name",
                                        "members"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                }
            }
        },
        "/projects/{projectId}": {
            "get": {
                "tags": [
                    "Projects"
                ],
                "summary": "Get a project",
                "description": "Get a project by ID",
                "operationId": "getProject",
                "parameters": [
                    {
                        "name": "projectId",
                        "in": "path",
                        "description": "ID of the project to show",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, project retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "description": "Project ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "slug": {
                                            "description": "Project slug",
                                            "type": "string",
                                            "example": "luminous-guiding-tower"
                                        },
                                        "name": {
                                            "description": "Project name",
                                            "type": "string",
                                            "example": "Luminous Guiding Tower",
                                            "maxLength": 25,
                                            "minLength": 1
                                        },
                                        "members": {
                                            "description": "List of team members that are part of this project",
                                            "type": "array",
                                            "items": {
                                                "type": "integer"
                                            },
                                            "example": [
                                                1,
                                                2,
                                                3
                                            ],
                                            "maxItems": 100,
                                            "minItems": 1
                                        },
                                        "settings": {
                                            "description": "Project settings",
                                            "properties": {
                                                "use_incident_ai": {
                                                    "description": "Whether to generate AI summaries for incidents",
                                                    "type": "boolean",
                                                    "default": true
                                                },
                                                "use_incident_merging": {
                                                    "description": "Whether to use incident merging",
                                                    "type": "boolean",
                                                    "default": true
                                                },
                                                "incident_merging_time_window": {
                                                    "description": "Time window for incident merging in minutes",
                                                    "type": "integer",
                                                    "default": 60,
                                                    "enum": [
                                                        5,
                                                        10,
                                                        30,
                                                        60,
                                                        120,
                                                        180
                                                    ]
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "name",
                                        "members"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            },
            "post": {
                "tags": [
                    "Projects"
                ],
                "summary": "Update a project",
                "description": "Update a project by ID",
                "operationId": "updateProject",
                "parameters": [
                    {
                        "name": "projectId",
                        "in": "path",
                        "description": "ID of the project to update",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Project request",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "description": "Project name",
                                        "type": "string",
                                        "example": "Luminous Guiding Tower",
                                        "maxLength": 25,
                                        "minLength": 1
                                    },
                                    "members": {
                                        "description": "List of team members that are part of this project",
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2,
                                            3
                                        ],
                                        "maxItems": 100,
                                        "minItems": 1
                                    },
                                    "settings": {
                                        "description": "Project settings",
                                        "properties": {
                                            "use_incident_ai": {
                                                "description": "Whether to generate AI summaries for incidents",
                                                "type": "boolean",
                                                "default": true
                                            },
                                            "use_incident_merging": {
                                                "description": "Whether to use incident merging",
                                                "type": "boolean",
                                                "default": true
                                            },
                                            "incident_merging_time_window": {
                                                "description": "Time window for incident merging in minutes",
                                                "type": "integer",
                                                "default": 60,
                                                "enum": [
                                                    5,
                                                    10,
                                                    30,
                                                    60,
                                                    120,
                                                    180
                                                ]
                                            }
                                        },
                                        "type": "object"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success, project updated",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "description": "Project ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "slug": {
                                            "description": "Project slug",
                                            "type": "string",
                                            "example": "luminous-guiding-tower"
                                        },
                                        "name": {
                                            "description": "Project name",
                                            "type": "string",
                                            "example": "Luminous Guiding Tower",
                                            "maxLength": 25,
                                            "minLength": 1
                                        },
                                        "members": {
                                            "description": "List of team members that are part of this project",
                                            "type": "array",
                                            "items": {
                                                "type": "integer"
                                            },
                                            "example": [
                                                1,
                                                2,
                                                3
                                            ],
                                            "maxItems": 100,
                                            "minItems": 1
                                        },
                                        "settings": {
                                            "description": "Project settings",
                                            "properties": {
                                                "use_incident_ai": {
                                                    "description": "Whether to generate AI summaries for incidents",
                                                    "type": "boolean",
                                                    "default": true
                                                },
                                                "use_incident_merging": {
                                                    "description": "Whether to use incident merging",
                                                    "type": "boolean",
                                                    "default": true
                                                },
                                                "incident_merging_time_window": {
                                                    "description": "Time window for incident merging in minutes",
                                                    "type": "integer",
                                                    "default": 60,
                                                    "enum": [
                                                        5,
                                                        10,
                                                        30,
                                                        60,
                                                        120,
                                                        180
                                                    ]
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "name",
                                        "members"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Projects"
                ],
                "summary": "Delete a project",
                "description": "Delete a project by ID. Requires an organization-scoped API key, and the last project of an organization can not be deleted.",
                "operationId": "deleteProject",
                "parameters": [
                    {
                        "name": "projectId",
                        "in": "path",
                        "description": "ID of the project to delete",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success, project deleted",
                        "content": {}
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            }
        },
        "/users": {
            "get": {
                "tags": [
                    "Users"
                ],
                "summary": "List users",
                "description": "Get a paginated list of users.",
                "operationId": "getUsers",
                "parameters": [
                    {
                        "name": "email",
                        "in": "query",
                        "description": "Filter users by email. Can be specified multiple times to filter by multiple email addresses.",
                        "required": false,
                        "style": "form",
                        "explode": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, users retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "description": "User ID",
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "role": {
                                                        "$ref": "#/components/schemas/Phare.User.UserRoleEnum",
                                                        "description": "User current role"
                                                    },
                                                    "email": {
                                                        "description": "User email",
                                                        "type": "string",
                                                        "example": "nicolas@phare.io"
                                                    },
                                                    "created_at": {
                                                        "description": "Date of creation for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "updated_at": {
                                                        "description": "Date of last update for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/meta"
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/links"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                }
            }
        },
        "/users/{userId}": {
            "get": {
                "tags": [
                    "Users"
                ],
                "summary": "Get a user",
                "description": "Get a user by ID",
                "operationId": "getUser",
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "description": "ID of the user to show",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, user retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "id": {
                                            "description": "User ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "role": {
                                            "$ref": "#/components/schemas/Phare.User.UserRoleEnum",
                                            "description": "User current role"
                                        },
                                        "email": {
                                            "description": "User email",
                                            "type": "string",
                                            "example": "nicolas@phare.io"
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            }
        },
        "/uptime/incidents": {
            "get": {
                "tags": [
                    "Incidents"
                ],
                "summary": "List incidents",
                "description": "Get a paginated list of incidents",
                "operationId": "getUptimeIncidents",
                "parameters": [
                    {
                        "name": "monitor_id",
                        "in": "query",
                        "description": "Filter incidents by monitor ID. Can be specified multiple times to filter by multiple monitor IDs.",
                        "required": false,
                        "style": "form",
                        "explode": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "tag",
                        "in": "query",
                        "description": "Filter incidents by tag. Can be specified multiple times to only return incidents having all the given tags.",
                        "required": false,
                        "style": "form",
                        "explode": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, incidents retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "project_id": {
                                                        "description": "Parent project ID",
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "type": {
                                                        "$ref": "#/components/schemas/Uptime.Incident.TypeEnum",
                                                        "description": "Incident type"
                                                    },
                                                    "slug": {
                                                        "description": "Incident unique slug name",
                                                        "type": "string",
                                                        "example": "APP-123"
                                                    },
                                                    "impact": {
                                                        "$ref": "#/components/schemas/Uptime.Incident.ImpactEnum",
                                                        "description": "Incident impact"
                                                    },
                                                    "state": {
                                                        "$ref": "#/components/schemas/Uptime.Incident.StateEnum",
                                                        "description": "Incident state"
                                                    },
                                                    "status": {
                                                        "$ref": "#/components/schemas/Uptime.Incident.StatusEnum",
                                                        "description": "Incident status"
                                                    },
                                                    "title": {
                                                        "description": "Incident title",
                                                        "type": "string",
                                                        "example": "Service is not working as expected",
                                                        "maxLength": 250,
                                                        "minLength": 1
                                                    },
                                                    "description": {
                                                        "description": "Description of the error that caused the incident",
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "example": "The server answered with an unexpected status code: 503.",
                                                        "maxLength": 2000,
                                                        "minLength": 1
                                                    },
                                                    "exclude_from_downtime": {
                                                        "description": "Flag to exclude the incident from downtime calculations",
                                                        "type": "boolean",
                                                        "example": false
                                                    },
                                                    "incident_at": {
                                                        "description": "Date of incident confirmation, defaults to the current date on creation. Must be within the last year and no more than 10 minutes in the future.",
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "date-time"
                                                    },
                                                    "recovery_at": {
                                                        "description": "Date of incident recovery. Must be after `incident_at`, within the last year and no more than 10 minutes in the future. Cannot be removed once the incident is recovered.",
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "date-time"
                                                    },
                                                    "monitors": {
                                                        "description": "List of monitors linked to the incident",
                                                        "type": "array",
                                                        "items": {
                                                            "type": "integer"
                                                        },
                                                        "example": [
                                                            1,
                                                            2,
                                                            3
                                                        ],
                                                        "maxItems": 100,
                                                        "minItems": 1
                                                    },
                                                    "tags": {
                                                        "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                                        "type": [
                                                            "array",
                                                            "null"
                                                        ],
                                                        "items": {
                                                            "type": "string",
                                                            "example": "environment:production",
                                                            "maxLength": 100,
                                                            "minLength": 1
                                                        },
                                                        "maxItems": 20
                                                    },
                                                    "created_at": {
                                                        "description": "Date of creation for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "updated_at": {
                                                        "description": "Date of last update for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    }
                                                },
                                                "required": [
                                                    "impact",
                                                    "title",
                                                    "exclude_from_downtime",
                                                    "monitors"
                                                ]
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/meta"
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/links"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                }
            },
            "post": {
                "tags": [
                    "Incidents"
                ],
                "summary": "Create an incident",
                "description": "Create an incident",
                "operationId": "createUptimeIncident",
                "requestBody": {
                    "description": "Incident request",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "description": "Incident title",
                                        "type": "string",
                                        "example": "Service is not working as expected",
                                        "maxLength": 250,
                                        "minLength": 1
                                    },
                                    "description": {
                                        "description": "Description of the error that caused the incident",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "example": "The server answered with an unexpected status code: 503.",
                                        "maxLength": 2000,
                                        "minLength": 1
                                    },
                                    "exclude_from_downtime": {
                                        "description": "Flag to exclude the incident from downtime calculations",
                                        "type": "boolean",
                                        "example": false
                                    },
                                    "incident_at": {
                                        "description": "Date of incident confirmation, defaults to the current date on creation. Must be within the last year and no more than 10 minutes in the future.",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "recovery_at": {
                                        "description": "Date of incident recovery. Must be after `incident_at`, within the last year and no more than 10 minutes in the future. Cannot be removed once the incident is recovered.",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "monitors": {
                                        "description": "List of monitors linked to the incident",
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2,
                                            3
                                        ],
                                        "maxItems": 100,
                                        "minItems": 1
                                    },
                                    "tags": {
                                        "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "example": "environment:production",
                                            "maxLength": 100,
                                            "minLength": 1
                                        },
                                        "maxItems": 20
                                    },
                                    "impact": {
                                        "description": "Incident impact",
                                        "type": "string",
                                        "enum": [
                                            "unknown",
                                            "maintenance",
                                            "degraded_performance",
                                            "partial_outage",
                                            "major_outage"
                                        ]
                                    }
                                },
                                "required": [
                                    "impact",
                                    "title",
                                    "exclude_from_downtime",
                                    "monitors"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success, incident created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "project_id": {
                                            "description": "Parent project ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "type": {
                                            "$ref": "#/components/schemas/Uptime.Incident.TypeEnum",
                                            "description": "Incident type"
                                        },
                                        "slug": {
                                            "description": "Incident unique slug name",
                                            "type": "string",
                                            "example": "APP-123"
                                        },
                                        "impact": {
                                            "$ref": "#/components/schemas/Uptime.Incident.ImpactEnum",
                                            "description": "Incident impact"
                                        },
                                        "state": {
                                            "$ref": "#/components/schemas/Uptime.Incident.StateEnum",
                                            "description": "Incident state"
                                        },
                                        "status": {
                                            "$ref": "#/components/schemas/Uptime.Incident.StatusEnum",
                                            "description": "Incident status"
                                        },
                                        "title": {
                                            "description": "Incident title",
                                            "type": "string",
                                            "example": "Service is not working as expected",
                                            "maxLength": 250,
                                            "minLength": 1
                                        },
                                        "description": {
                                            "description": "Description of the error that caused the incident",
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "example": "The server answered with an unexpected status code: 503.",
                                            "maxLength": 2000,
                                            "minLength": 1
                                        },
                                        "exclude_from_downtime": {
                                            "description": "Flag to exclude the incident from downtime calculations",
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "incident_at": {
                                            "description": "Date of incident confirmation, defaults to the current date on creation. Must be within the last year and no more than 10 minutes in the future.",
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "date-time"
                                        },
                                        "recovery_at": {
                                            "description": "Date of incident recovery. Must be after `incident_at`, within the last year and no more than 10 minutes in the future. Cannot be removed once the incident is recovered.",
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "date-time"
                                        },
                                        "monitors": {
                                            "description": "List of monitors linked to the incident",
                                            "type": "array",
                                            "items": {
                                                "type": "integer"
                                            },
                                            "example": [
                                                1,
                                                2,
                                                3
                                            ],
                                            "maxItems": 100,
                                            "minItems": 1
                                        },
                                        "tags": {
                                            "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "string",
                                                "example": "environment:production",
                                                "maxLength": 100,
                                                "minLength": 1
                                            },
                                            "maxItems": 20
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "impact",
                                        "title",
                                        "exclude_from_downtime",
                                        "monitors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ]
            }
        },
        "/uptime/incidents/{incidentId}": {
            "get": {
                "tags": [
                    "Incidents"
                ],
                "summary": "Get an incident",
                "description": "Get an incident by ID",
                "operationId": "getUptimeIncident",
                "parameters": [
                    {
                        "name": "incidentId",
                        "in": "path",
                        "description": "ID of the incident to show",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, incident retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "project_id": {
                                            "description": "Parent project ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "type": {
                                            "$ref": "#/components/schemas/Uptime.Incident.TypeEnum",
                                            "description": "Incident type"
                                        },
                                        "slug": {
                                            "description": "Incident unique slug name",
                                            "type": "string",
                                            "example": "APP-123"
                                        },
                                        "impact": {
                                            "$ref": "#/components/schemas/Uptime.Incident.ImpactEnum",
                                            "description": "Incident impact"
                                        },
                                        "state": {
                                            "$ref": "#/components/schemas/Uptime.Incident.StateEnum",
                                            "description": "Incident state"
                                        },
                                        "status": {
                                            "$ref": "#/components/schemas/Uptime.Incident.StatusEnum",
                                            "description": "Incident status"
                                        },
                                        "title": {
                                            "description": "Incident title",
                                            "type": "string",
                                            "example": "Service is not working as expected",
                                            "maxLength": 250,
                                            "minLength": 1
                                        },
                                        "description": {
                                            "description": "Description of the error that caused the incident",
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "example": "The server answered with an unexpected status code: 503.",
                                            "maxLength": 2000,
                                            "minLength": 1
                                        },
                                        "exclude_from_downtime": {
                                            "description": "Flag to exclude the incident from downtime calculations",
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "incident_at": {
                                            "description": "Date of incident confirmation, defaults to the current date on creation. Must be within the last year and no more than 10 minutes in the future.",
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "date-time"
                                        },
                                        "recovery_at": {
                                            "description": "Date of incident recovery. Must be after `incident_at`, within the last year and no more than 10 minutes in the future. Cannot be removed once the incident is recovered.",
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "date-time"
                                        },
                                        "monitors": {
                                            "description": "List of monitors linked to the incident",
                                            "type": "array",
                                            "items": {
                                                "type": "integer"
                                            },
                                            "example": [
                                                1,
                                                2,
                                                3
                                            ],
                                            "maxItems": 100,
                                            "minItems": 1
                                        },
                                        "tags": {
                                            "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "string",
                                                "example": "environment:production",
                                                "maxLength": 100,
                                                "minLength": 1
                                            },
                                            "maxItems": 20
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "impact",
                                        "title",
                                        "exclude_from_downtime",
                                        "monitors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            },
            "post": {
                "tags": [
                    "Incidents"
                ],
                "summary": "Update an incident",
                "description": "Update an incident by ID.",
                "operationId": "updateUptimeIncident",
                "parameters": [
                    {
                        "name": "incidentId",
                        "in": "path",
                        "description": "ID of the incident to update",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "requestBody": {
                    "description": "Incident request",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "description": "Incident title",
                                        "type": "string",
                                        "example": "Service is not working as expected",
                                        "maxLength": 250,
                                        "minLength": 1
                                    },
                                    "description": {
                                        "description": "Description of the error that caused the incident",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "example": "The server answered with an unexpected status code: 503.",
                                        "maxLength": 2000,
                                        "minLength": 1
                                    },
                                    "exclude_from_downtime": {
                                        "description": "Flag to exclude the incident from downtime calculations",
                                        "type": "boolean",
                                        "example": false
                                    },
                                    "incident_at": {
                                        "description": "Date of incident confirmation, defaults to the current date on creation. Must be within the last year and no more than 10 minutes in the future.",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "recovery_at": {
                                        "description": "Date of incident recovery. Must be after `incident_at`, within the last year and no more than 10 minutes in the future. Cannot be removed once the incident is recovered.",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "monitors": {
                                        "description": "List of monitors linked to the incident",
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2,
                                            3
                                        ],
                                        "maxItems": 100,
                                        "minItems": 1
                                    },
                                    "tags": {
                                        "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "example": "environment:production",
                                            "maxLength": 100,
                                            "minLength": 1
                                        },
                                        "maxItems": 20
                                    },
                                    "impact": {
                                        "description": "Incident impact",
                                        "type": "string",
                                        "enum": [
                                            "unknown",
                                            "maintenance",
                                            "degraded_performance",
                                            "partial_outage",
                                            "major_outage"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success, incident updated",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "project_id": {
                                            "description": "Parent project ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "type": {
                                            "$ref": "#/components/schemas/Uptime.Incident.TypeEnum",
                                            "description": "Incident type"
                                        },
                                        "slug": {
                                            "description": "Incident unique slug name",
                                            "type": "string",
                                            "example": "APP-123"
                                        },
                                        "impact": {
                                            "$ref": "#/components/schemas/Uptime.Incident.ImpactEnum",
                                            "description": "Incident impact"
                                        },
                                        "state": {
                                            "$ref": "#/components/schemas/Uptime.Incident.StateEnum",
                                            "description": "Incident state"
                                        },
                                        "status": {
                                            "$ref": "#/components/schemas/Uptime.Incident.StatusEnum",
                                            "description": "Incident status"
                                        },
                                        "title": {
                                            "description": "Incident title",
                                            "type": "string",
                                            "example": "Service is not working as expected",
                                            "maxLength": 250,
                                            "minLength": 1
                                        },
                                        "description": {
                                            "description": "Description of the error that caused the incident",
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "example": "The server answered with an unexpected status code: 503.",
                                            "maxLength": 2000,
                                            "minLength": 1
                                        },
                                        "exclude_from_downtime": {
                                            "description": "Flag to exclude the incident from downtime calculations",
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "incident_at": {
                                            "description": "Date of incident confirmation, defaults to the current date on creation. Must be within the last year and no more than 10 minutes in the future.",
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "date-time"
                                        },
                                        "recovery_at": {
                                            "description": "Date of incident recovery. Must be after `incident_at`, within the last year and no more than 10 minutes in the future. Cannot be removed once the incident is recovered.",
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "date-time"
                                        },
                                        "monitors": {
                                            "description": "List of monitors linked to the incident",
                                            "type": "array",
                                            "items": {
                                                "type": "integer"
                                            },
                                            "example": [
                                                1,
                                                2,
                                                3
                                            ],
                                            "maxItems": 100,
                                            "minItems": 1
                                        },
                                        "tags": {
                                            "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "string",
                                                "example": "environment:production",
                                                "maxLength": 100,
                                                "minLength": 1
                                            },
                                            "maxItems": 20
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "impact",
                                        "title",
                                        "exclude_from_downtime",
                                        "monitors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Incidents"
                ],
                "summary": "Delete an incident",
                "description": "Delete an incident by ID",
                "operationId": "deleteUptimeIncident",
                "parameters": [
                    {
                        "name": "incidentId",
                        "in": "path",
                        "description": "ID of the incident to delete",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success, incident deleted",
                        "content": {}
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            }
        },
        "/uptime/incidents/{incidentId}/recover": {
            "post": {
                "tags": [
                    "Incidents"
                ],
                "summary": "Recover an incident",
                "description": "Recover an incident by ID, setting its recovery date to the current date.",
                "operationId": "recoverUptimeIncident",
                "parameters": [
                    {
                        "name": "incidentId",
                        "in": "path",
                        "description": "ID of the incident to recover",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success, incident recovered",
                        "content": {}
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            }
        },
        "/uptime/incidents/{incidentId}/updates": {
            "get": {
                "tags": [
                    "Incidents"
                ],
                "summary": "List incident updates",
                "description": "Get a paginated list of incident updates",
                "operationId": "getUptimeIncidentUpdates",
                "parameters": [
                    {
                        "name": "incidentId",
                        "in": "path",
                        "description": "ID of the incident",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, incident updates retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "description": "Incident update ID",
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "state": {
                                                        "$ref": "#/components/schemas/Uptime.Incident.StateEnum",
                                                        "description": "State of the incident update"
                                                    },
                                                    "content": {
                                                        "description": "Content of the incident update",
                                                        "type": "string",
                                                        "example": "We are investigating the issue.",
                                                        "maxLength": 10000,
                                                        "minLength": 1
                                                    },
                                                    "published_at": {
                                                        "description": "Date of publication of the incident update, defaults to the current date on creation. Must be within the last year and no more than 10 minutes in the future.",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "creator": {
                                                        "description": "Creator of the incident update",
                                                        "properties": {
                                                            "id": {
                                                                "description": "Creator ID",
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "type": {
                                                                "description": "Creator type",
                                                                "type": "string",
                                                                "example": "user",
                                                                "enum": [
                                                                    "user",
                                                                    "api_key"
                                                                ]
                                                            },
                                                            "label": {
                                                                "description": "Creator label",
                                                                "type": "string",
                                                                "example": "nicolas@phare.io"
                                                            }
                                                        },
                                                        "type": "object"
                                                    },
                                                    "created_at": {
                                                        "description": "Date of creation for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "updated_at": {
                                                        "description": "Date of last update for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    }
                                                },
                                                "required": [
                                                    "state",
                                                    "content"
                                                ]
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/meta"
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/links"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            },
            "post": {
                "tags": [
                    "Incidents"
                ],
                "summary": "Create an incident update",
                "description": "Create an incident update. Publishing an update with the `resolved` state recovers the incident.",
                "operationId": "createUptimeIncidentUpdate",
                "parameters": [
                    {
                        "name": "incidentId",
                        "in": "path",
                        "description": "ID of the incident",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "requestBody": {
                    "description": "Incident update request",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "state": {
                                        "$ref": "#/components/schemas/Uptime.Incident.StateEnum",
                                        "description": "State of the incident update"
                                    },
                                    "content": {
                                        "description": "Content of the incident update",
                                        "type": "string",
                                        "example": "We are investigating the issue.",
                                        "maxLength": 10000,
                                        "minLength": 1
                                    },
                                    "published_at": {
                                        "description": "Date of publication of the incident update, defaults to the current date on creation. Must be within the last year and no more than 10 minutes in the future.",
                                        "type": "string",
                                        "format": "date-time"
                                    }
                                },
                                "required": [
                                    "state",
                                    "content"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success, incident update created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "description": "Incident update ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "state": {
                                            "$ref": "#/components/schemas/Uptime.Incident.StateEnum",
                                            "description": "State of the incident update"
                                        },
                                        "content": {
                                            "description": "Content of the incident update",
                                            "type": "string",
                                            "example": "We are investigating the issue.",
                                            "maxLength": 10000,
                                            "minLength": 1
                                        },
                                        "published_at": {
                                            "description": "Date of publication of the incident update, defaults to the current date on creation. Must be within the last year and no more than 10 minutes in the future.",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "creator": {
                                            "description": "Creator of the incident update",
                                            "properties": {
                                                "id": {
                                                    "description": "Creator ID",
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "type": {
                                                    "description": "Creator type",
                                                    "type": "string",
                                                    "example": "user",
                                                    "enum": [
                                                        "user",
                                                        "api_key"
                                                    ]
                                                },
                                                "label": {
                                                    "description": "Creator label",
                                                    "type": "string",
                                                    "example": "nicolas@phare.io"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "state",
                                        "content"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                }
            }
        },
        "/uptime/incidents/{incidentId}/updates/{incidentUpdateId}": {
            "get": {
                "tags": [
                    "Incidents"
                ],
                "summary": "Get an incident update",
                "description": "Get an incident update by ID",
                "operationId": "getUptimeIncidentUpdate",
                "parameters": [
                    {
                        "name": "incidentId",
                        "in": "path",
                        "description": "ID of the incident",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "incidentUpdateId",
                        "in": "path",
                        "description": "ID of the incident update to show",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, incident update retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "description": "Incident update ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "state": {
                                            "$ref": "#/components/schemas/Uptime.Incident.StateEnum",
                                            "description": "State of the incident update"
                                        },
                                        "content": {
                                            "description": "Content of the incident update",
                                            "type": "string",
                                            "example": "We are investigating the issue.",
                                            "maxLength": 10000,
                                            "minLength": 1
                                        },
                                        "published_at": {
                                            "description": "Date of publication of the incident update, defaults to the current date on creation. Must be within the last year and no more than 10 minutes in the future.",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "creator": {
                                            "description": "Creator of the incident update",
                                            "properties": {
                                                "id": {
                                                    "description": "Creator ID",
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "type": {
                                                    "description": "Creator type",
                                                    "type": "string",
                                                    "example": "user",
                                                    "enum": [
                                                        "user",
                                                        "api_key"
                                                    ]
                                                },
                                                "label": {
                                                    "description": "Creator label",
                                                    "type": "string",
                                                    "example": "nicolas@phare.io"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "state",
                                        "content"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            },
            "post": {
                "tags": [
                    "Incidents"
                ],
                "summary": "Update an incident update",
                "description": "Update an incident update by ID.",
                "operationId": "updateUptimeIncidentUpdate",
                "parameters": [
                    {
                        "name": "incidentId",
                        "in": "path",
                        "description": "ID of the incident",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "incidentUpdateId",
                        "in": "path",
                        "description": "ID of the incident update to update",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "requestBody": {
                    "description": "Incident update request",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "state": {
                                        "$ref": "#/components/schemas/Uptime.Incident.StateEnum",
                                        "description": "State of the incident update"
                                    },
                                    "content": {
                                        "description": "Content of the incident update",
                                        "type": "string",
                                        "example": "We are investigating the issue.",
                                        "maxLength": 10000,
                                        "minLength": 1
                                    },
                                    "published_at": {
                                        "description": "Date of publication of the incident update, defaults to the current date on creation. Must be within the last year and no more than 10 minutes in the future.",
                                        "type": "string",
                                        "format": "date-time"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success, incident update updated",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "description": "Incident update ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "state": {
                                            "$ref": "#/components/schemas/Uptime.Incident.StateEnum",
                                            "description": "State of the incident update"
                                        },
                                        "content": {
                                            "description": "Content of the incident update",
                                            "type": "string",
                                            "example": "We are investigating the issue.",
                                            "maxLength": 10000,
                                            "minLength": 1
                                        },
                                        "published_at": {
                                            "description": "Date of publication of the incident update, defaults to the current date on creation. Must be within the last year and no more than 10 minutes in the future.",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "creator": {
                                            "description": "Creator of the incident update",
                                            "properties": {
                                                "id": {
                                                    "description": "Creator ID",
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "type": {
                                                    "description": "Creator type",
                                                    "type": "string",
                                                    "example": "user",
                                                    "enum": [
                                                        "user",
                                                        "api_key"
                                                    ]
                                                },
                                                "label": {
                                                    "description": "Creator label",
                                                    "type": "string",
                                                    "example": "nicolas@phare.io"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "state",
                                        "content"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Incidents"
                ],
                "summary": "Delete an incident update",
                "description": "Delete an incident update by ID.",
                "operationId": "deleteUptimeIncidentUpdate",
                "parameters": [
                    {
                        "name": "incidentId",
                        "in": "path",
                        "description": "ID of the incident",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "incidentUpdateId",
                        "in": "path",
                        "description": "ID of the incident update to delete",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success, incident update deleted",
                        "content": {}
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            }
        },
        "/uptime/maintenance-windows": {
            "get": {
                "tags": [
                    "Maintenance Windows"
                ],
                "summary": "List maintenance windows",
                "description": "Get a paginated list of maintenance windows",
                "operationId": "getUptimeMaintenanceWindows",
                "parameters": [
                    {
                        "name": "monitor_id",
                        "in": "query",
                        "description": "Filter maintenance windows by monitor ID. Can be specified multiple times to filter by multiple monitor IDs.",
                        "required": false,
                        "style": "form",
                        "explode": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "status_page_id",
                        "in": "query",
                        "description": "Filter maintenance windows by status page ID. Can be specified multiple times to filter by multiple status page IDs.",
                        "required": false,
                        "style": "form",
                        "explode": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "state",
                        "in": "query",
                        "description": "Filter maintenance windows by state.",
                        "required": false,
                        "schema": {
                            "$ref": "#/components/schemas/Uptime.MaintenanceWindow.StateEnum"
                        }
                    },
                    {
                        "name": "tag",
                        "in": "query",
                        "description": "Filter maintenance windows by tag. Can be specified multiple times to only return maintenance windows having all the given tags.",
                        "required": false,
                        "style": "form",
                        "explode": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, maintenance windows retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "description": "Maintenance window ID",
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "project_id": {
                                                        "description": "Parent project ID",
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "state": {
                                                        "$ref": "#/components/schemas/Uptime.MaintenanceWindow.StateEnum",
                                                        "description": "Maintenance window state"
                                                    },
                                                    "monitoring_mode": {
                                                        "$ref": "#/components/schemas/Uptime.MaintenanceWindow.MonitoringModeEnum",
                                                        "description": "Monitoring mode during maintenance"
                                                    },
                                                    "title": {
                                                        "description": "Maintenance window title",
                                                        "type": "string",
                                                        "example": "Database upgrade",
                                                        "maxLength": 250,
                                                        "minLength": 1
                                                    },
                                                    "description": {
                                                        "description": "Description of the maintenance window",
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "example": "Planned database upgrade and maintenance",
                                                        "maxLength": 2000,
                                                        "minLength": 1
                                                    },
                                                    "starts_at": {
                                                        "description": "Date and time when the maintenance window starts, with minute precision (seconds must be `00`). Must be within the next year.",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "ends_at": {
                                                        "description": "Date and time when the maintenance window ends, with minute precision (seconds must be `00`). Must be after `starts_at` and within the next year.",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "monitors": {
                                                        "description": "List of monitor IDs linked to the maintenance window",
                                                        "type": "array",
                                                        "items": {
                                                            "type": "integer"
                                                        },
                                                        "example": [
                                                            1,
                                                            2,
                                                            3
                                                        ],
                                                        "maxItems": 100,
                                                        "minItems": 1
                                                    },
                                                    "status_pages": {
                                                        "description": "List of status page IDs linked to the maintenance window",
                                                        "type": [
                                                            "array",
                                                            "null"
                                                        ],
                                                        "items": {
                                                            "type": "integer"
                                                        },
                                                        "example": [
                                                            1,
                                                            2
                                                        ],
                                                        "maxItems": 100
                                                    },
                                                    "tags": {
                                                        "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                                        "type": [
                                                            "array",
                                                            "null"
                                                        ],
                                                        "items": {
                                                            "type": "string",
                                                            "example": "environment:production",
                                                            "maxLength": 100,
                                                            "minLength": 1
                                                        },
                                                        "maxItems": 20
                                                    },
                                                    "created_at": {
                                                        "description": "Date of creation for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "updated_at": {
                                                        "description": "Date of last update for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    }
                                                },
                                                "required": [
                                                    "title",
                                                    "monitoring_mode",
                                                    "starts_at",
                                                    "ends_at",
                                                    "monitors"
                                                ]
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/meta"
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/links"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                }
            },
            "post": {
                "tags": [
                    "Maintenance Windows"
                ],
                "summary": "Create a maintenance window",
                "description": "Create a maintenance window",
                "operationId": "createUptimeMaintenanceWindow",
                "requestBody": {
                    "description": "Maintenance window request",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "description": "Maintenance window title",
                                        "type": "string",
                                        "example": "Database upgrade",
                                        "maxLength": 250,
                                        "minLength": 1
                                    },
                                    "description": {
                                        "description": "Description of the maintenance window",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "example": "Planned database upgrade and maintenance",
                                        "maxLength": 2000,
                                        "minLength": 1
                                    },
                                    "monitoring_mode": {
                                        "$ref": "#/components/schemas/Uptime.MaintenanceWindow.MonitoringModeEnum",
                                        "description": "Monitoring mode during maintenance"
                                    },
                                    "starts_at": {
                                        "description": "Date and time when the maintenance window starts, with minute precision (seconds must be `00`). Must be within the next year.",
                                        "type": "string",
                                        "format": "date-time"
                                    },
                                    "ends_at": {
                                        "description": "Date and time when the maintenance window ends, with minute precision (seconds must be `00`). Must be after `starts_at` and within the next year.",
                                        "type": "string",
                                        "format": "date-time"
                                    },
                                    "monitors": {
                                        "description": "List of monitor IDs linked to the maintenance window",
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2,
                                            3
                                        ],
                                        "maxItems": 100,
                                        "minItems": 1
                                    },
                                    "status_pages": {
                                        "description": "List of status page IDs linked to the maintenance window",
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2
                                        ],
                                        "maxItems": 100
                                    },
                                    "tags": {
                                        "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "example": "environment:production",
                                            "maxLength": 100,
                                            "minLength": 1
                                        },
                                        "maxItems": 20
                                    }
                                },
                                "required": [
                                    "title",
                                    "monitoring_mode",
                                    "starts_at",
                                    "ends_at",
                                    "monitors"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success, maintenance window created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "description": "Maintenance window ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "project_id": {
                                            "description": "Parent project ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "state": {
                                            "$ref": "#/components/schemas/Uptime.MaintenanceWindow.StateEnum",
                                            "description": "Maintenance window state"
                                        },
                                        "monitoring_mode": {
                                            "$ref": "#/components/schemas/Uptime.MaintenanceWindow.MonitoringModeEnum",
                                            "description": "Monitoring mode during maintenance"
                                        },
                                        "title": {
                                            "description": "Maintenance window title",
                                            "type": "string",
                                            "example": "Database upgrade",
                                            "maxLength": 250,
                                            "minLength": 1
                                        },
                                        "description": {
                                            "description": "Description of the maintenance window",
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "example": "Planned database upgrade and maintenance",
                                            "maxLength": 2000,
                                            "minLength": 1
                                        },
                                        "starts_at": {
                                            "description": "Date and time when the maintenance window starts, with minute precision (seconds must be `00`). Must be within the next year.",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "ends_at": {
                                            "description": "Date and time when the maintenance window ends, with minute precision (seconds must be `00`). Must be after `starts_at` and within the next year.",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "monitors": {
                                            "description": "List of monitor IDs linked to the maintenance window",
                                            "type": "array",
                                            "items": {
                                                "type": "integer"
                                            },
                                            "example": [
                                                1,
                                                2,
                                                3
                                            ],
                                            "maxItems": 100,
                                            "minItems": 1
                                        },
                                        "status_pages": {
                                            "description": "List of status page IDs linked to the maintenance window",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "integer"
                                            },
                                            "example": [
                                                1,
                                                2
                                            ],
                                            "maxItems": 100
                                        },
                                        "tags": {
                                            "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "string",
                                                "example": "environment:production",
                                                "maxLength": 100,
                                                "minLength": 1
                                            },
                                            "maxItems": 20
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "title",
                                        "monitoring_mode",
                                        "starts_at",
                                        "ends_at",
                                        "monitors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ]
            }
        },
        "/uptime/maintenance-windows/{maintenanceWindowId}": {
            "get": {
                "tags": [
                    "Maintenance Windows"
                ],
                "summary": "Get a maintenance window",
                "description": "Get a maintenance window by ID",
                "operationId": "getUptimeMaintenanceWindow",
                "parameters": [
                    {
                        "name": "maintenanceWindowId",
                        "in": "path",
                        "description": "ID of the maintenance window to show",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, maintenance window retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "description": "Maintenance window ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "project_id": {
                                            "description": "Parent project ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "state": {
                                            "$ref": "#/components/schemas/Uptime.MaintenanceWindow.StateEnum",
                                            "description": "Maintenance window state"
                                        },
                                        "monitoring_mode": {
                                            "$ref": "#/components/schemas/Uptime.MaintenanceWindow.MonitoringModeEnum",
                                            "description": "Monitoring mode during maintenance"
                                        },
                                        "title": {
                                            "description": "Maintenance window title",
                                            "type": "string",
                                            "example": "Database upgrade",
                                            "maxLength": 250,
                                            "minLength": 1
                                        },
                                        "description": {
                                            "description": "Description of the maintenance window",
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "example": "Planned database upgrade and maintenance",
                                            "maxLength": 2000,
                                            "minLength": 1
                                        },
                                        "starts_at": {
                                            "description": "Date and time when the maintenance window starts, with minute precision (seconds must be `00`). Must be within the next year.",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "ends_at": {
                                            "description": "Date and time when the maintenance window ends, with minute precision (seconds must be `00`). Must be after `starts_at` and within the next year.",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "monitors": {
                                            "description": "List of monitor IDs linked to the maintenance window",
                                            "type": "array",
                                            "items": {
                                                "type": "integer"
                                            },
                                            "example": [
                                                1,
                                                2,
                                                3
                                            ],
                                            "maxItems": 100,
                                            "minItems": 1
                                        },
                                        "status_pages": {
                                            "description": "List of status page IDs linked to the maintenance window",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "integer"
                                            },
                                            "example": [
                                                1,
                                                2
                                            ],
                                            "maxItems": 100
                                        },
                                        "tags": {
                                            "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "string",
                                                "example": "environment:production",
                                                "maxLength": 100,
                                                "minLength": 1
                                            },
                                            "maxItems": 20
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "title",
                                        "monitoring_mode",
                                        "starts_at",
                                        "ends_at",
                                        "monitors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            },
            "post": {
                "tags": [
                    "Maintenance Windows"
                ],
                "summary": "Update a maintenance window",
                "description": "Update a maintenance window by ID. The `monitoring_mode`, `starts_at`, `ends_at`, `monitors` and `status_pages` fields can only be modified while the maintenance window is scheduled, except for `ends_at` which can be extended while the maintenance window is in progress.",
                "operationId": "updateUptimeMaintenanceWindow",
                "parameters": [
                    {
                        "name": "maintenanceWindowId",
                        "in": "path",
                        "description": "ID of the maintenance window to update",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "requestBody": {
                    "description": "Maintenance window request",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "description": "Maintenance window title",
                                        "type": "string",
                                        "example": "Database upgrade",
                                        "maxLength": 250,
                                        "minLength": 1
                                    },
                                    "description": {
                                        "description": "Description of the maintenance window",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "example": "Planned database upgrade and maintenance",
                                        "maxLength": 2000,
                                        "minLength": 1
                                    },
                                    "monitoring_mode": {
                                        "$ref": "#/components/schemas/Uptime.MaintenanceWindow.MonitoringModeEnum",
                                        "description": "Monitoring mode during maintenance"
                                    },
                                    "starts_at": {
                                        "description": "Date and time when the maintenance window starts, with minute precision (seconds must be `00`). Must be within the next year.",
                                        "type": "string",
                                        "format": "date-time"
                                    },
                                    "ends_at": {
                                        "description": "Date and time when the maintenance window ends, with minute precision (seconds must be `00`). Must be after `starts_at` and within the next year.",
                                        "type": "string",
                                        "format": "date-time"
                                    },
                                    "monitors": {
                                        "description": "List of monitor IDs linked to the maintenance window",
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2,
                                            3
                                        ],
                                        "maxItems": 100,
                                        "minItems": 1
                                    },
                                    "status_pages": {
                                        "description": "List of status page IDs linked to the maintenance window",
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2
                                        ],
                                        "maxItems": 100
                                    },
                                    "tags": {
                                        "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "example": "environment:production",
                                            "maxLength": 100,
                                            "minLength": 1
                                        },
                                        "maxItems": 20
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success, maintenance window updated",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "description": "Maintenance window ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "project_id": {
                                            "description": "Parent project ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "state": {
                                            "$ref": "#/components/schemas/Uptime.MaintenanceWindow.StateEnum",
                                            "description": "Maintenance window state"
                                        },
                                        "monitoring_mode": {
                                            "$ref": "#/components/schemas/Uptime.MaintenanceWindow.MonitoringModeEnum",
                                            "description": "Monitoring mode during maintenance"
                                        },
                                        "title": {
                                            "description": "Maintenance window title",
                                            "type": "string",
                                            "example": "Database upgrade",
                                            "maxLength": 250,
                                            "minLength": 1
                                        },
                                        "description": {
                                            "description": "Description of the maintenance window",
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "example": "Planned database upgrade and maintenance",
                                            "maxLength": 2000,
                                            "minLength": 1
                                        },
                                        "starts_at": {
                                            "description": "Date and time when the maintenance window starts, with minute precision (seconds must be `00`). Must be within the next year.",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "ends_at": {
                                            "description": "Date and time when the maintenance window ends, with minute precision (seconds must be `00`). Must be after `starts_at` and within the next year.",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "monitors": {
                                            "description": "List of monitor IDs linked to the maintenance window",
                                            "type": "array",
                                            "items": {
                                                "type": "integer"
                                            },
                                            "example": [
                                                1,
                                                2,
                                                3
                                            ],
                                            "maxItems": 100,
                                            "minItems": 1
                                        },
                                        "status_pages": {
                                            "description": "List of status page IDs linked to the maintenance window",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "integer"
                                            },
                                            "example": [
                                                1,
                                                2
                                            ],
                                            "maxItems": 100
                                        },
                                        "tags": {
                                            "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "string",
                                                "example": "environment:production",
                                                "maxLength": 100,
                                                "minLength": 1
                                            },
                                            "maxItems": 20
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "title",
                                        "monitoring_mode",
                                        "starts_at",
                                        "ends_at",
                                        "monitors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Maintenance Windows"
                ],
                "summary": "Delete a maintenance window",
                "description": "Delete a maintenance window by ID",
                "operationId": "deleteUptimeMaintenanceWindow",
                "parameters": [
                    {
                        "name": "maintenanceWindowId",
                        "in": "path",
                        "description": "ID of the maintenance window to delete",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success, maintenance window deleted",
                        "content": {}
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            }
        },
        "/uptime/maintenance-windows/{maintenanceWindowId}/cancel": {
            "post": {
                "tags": [
                    "Maintenance Windows"
                ],
                "summary": "Cancel a maintenance window",
                "description": "Cancel a maintenance window by ID. Completed or already cancelled maintenance windows cannot be cancelled.",
                "operationId": "cancelUptimeMaintenanceWindow",
                "parameters": [
                    {
                        "name": "maintenanceWindowId",
                        "in": "path",
                        "description": "ID of the maintenance window to cancel",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success, maintenance window cancelled",
                        "content": {}
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            }
        },
        "/uptime/maintenance-windows/{maintenanceWindowId}/complete": {
            "post": {
                "tags": [
                    "Maintenance Windows"
                ],
                "summary": "Complete a maintenance window",
                "description": "Complete a maintenance window by ID. Only in-progress maintenance windows can be completed, and `ends_at` is set to the current time if it is in the future.",
                "operationId": "completeUptimeMaintenanceWindow",
                "parameters": [
                    {
                        "name": "maintenanceWindowId",
                        "in": "path",
                        "description": "ID of the maintenance window to complete",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, maintenance window completed",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "description": "Maintenance window ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "project_id": {
                                            "description": "Parent project ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "state": {
                                            "$ref": "#/components/schemas/Uptime.MaintenanceWindow.StateEnum",
                                            "description": "Maintenance window state"
                                        },
                                        "monitoring_mode": {
                                            "$ref": "#/components/schemas/Uptime.MaintenanceWindow.MonitoringModeEnum",
                                            "description": "Monitoring mode during maintenance"
                                        },
                                        "title": {
                                            "description": "Maintenance window title",
                                            "type": "string",
                                            "example": "Database upgrade",
                                            "maxLength": 250,
                                            "minLength": 1
                                        },
                                        "description": {
                                            "description": "Description of the maintenance window",
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "example": "Planned database upgrade and maintenance",
                                            "maxLength": 2000,
                                            "minLength": 1
                                        },
                                        "starts_at": {
                                            "description": "Date and time when the maintenance window starts, with minute precision (seconds must be `00`). Must be within the next year.",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "ends_at": {
                                            "description": "Date and time when the maintenance window ends, with minute precision (seconds must be `00`). Must be after `starts_at` and within the next year.",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "monitors": {
                                            "description": "List of monitor IDs linked to the maintenance window",
                                            "type": "array",
                                            "items": {
                                                "type": "integer"
                                            },
                                            "example": [
                                                1,
                                                2,
                                                3
                                            ],
                                            "maxItems": 100,
                                            "minItems": 1
                                        },
                                        "status_pages": {
                                            "description": "List of status page IDs linked to the maintenance window",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "integer"
                                            },
                                            "example": [
                                                1,
                                                2
                                            ],
                                            "maxItems": 100
                                        },
                                        "tags": {
                                            "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "string",
                                                "example": "environment:production",
                                                "maxLength": 100,
                                                "minLength": 1
                                            },
                                            "maxItems": 20
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "title",
                                        "monitoring_mode",
                                        "starts_at",
                                        "ends_at",
                                        "monitors"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            }
        },
        "/uptime/monitors": {
            "get": {
                "tags": [
                    "Monitors"
                ],
                "summary": "List monitors",
                "description": "Get a paginated list of monitors",
                "operationId": "getUptimeMonitors",
                "parameters": [
                    {
                        "name": "tag",
                        "in": "query",
                        "description": "Filter monitors by tag. Can be specified multiple times to only return monitors having all the given tags.",
                        "required": false,
                        "style": "form",
                        "explode": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, monitors retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "description": "Monitor ID",
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "project_id": {
                                                        "description": "Parent project ID",
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "status": {
                                                        "$ref": "#/components/schemas/Uptime.Monitor.StatusEnum",
                                                        "description": "Monitor current status"
                                                    },
                                                    "paused": {
                                                        "description": "Whether the monitor is currently paused",
                                                        "type": "boolean",
                                                        "example": true
                                                    },
                                                    "response_time": {
                                                        "description": "75th percentile (P75) response time of successful checks over the last 7 days, in milliseconds",
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ],
                                                        "example": 123
                                                    },
                                                    "name": {
                                                        "description": "Monitor name",
                                                        "type": "string",
                                                        "example": "Website",
                                                        "maxLength": 45,
                                                        "minLength": 2
                                                    },
                                                    "protocol": {
                                                        "$ref": "#/components/schemas/Uptime.Monitor.ProtocolEnum",
                                                        "description": "Monitoring protocol"
                                                    },
                                                    "request": {
                                                        "description": "Monitoring request, depends of the chosen protocol",
                                                        "type": "object",
                                                        "oneOf": [
                                                            {
                                                                "title": "HTTP protocol",
                                                                "required": [
                                                                    "method",
                                                                    "url"
                                                                ],
                                                                "properties": {
                                                                    "method": {
                                                                        "description": "HTTP request method",
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "HEAD",
                                                                            "GET",
                                                                            "POST",
                                                                            "PUT",
                                                                            "PATCH",
                                                                            "OPTIONS"
                                                                        ]
                                                                    },
                                                                    "url": {
                                                                        "description": "HTTP request url",
                                                                        "type": "string",
                                                                        "example": "https://docs.phare.io/introduction",
                                                                        "maxLength": 255
                                                                    },
                                                                    "tls_skip_verify": {
                                                                        "description": "Skip SSL verification",
                                                                        "type": [
                                                                            "boolean",
                                                                            "null"
                                                                        ],
                                                                        "example": false,
                                                                        "default": false
                                                                    },
                                                                    "body": {
                                                                        "description": "HTTP request body for POST, PUT and PATCH requests",
                                                                        "type": [
                                                                            "string",
                                                                            "null"
                                                                        ],
                                                                        "example": "Hello, World!",
                                                                        "maxLength": 500
                                                                    },
                                                                    "follow_redirects": {
                                                                        "description": "Follow redirects",
                                                                        "type": [
                                                                            "boolean",
                                                                            "null"
                                                                        ],
                                                                        "example": true,
                                                                        "default": true
                                                                    },
                                                                    "user_agent_secret": {
                                                                        "description": "A secret value to be used in the User-Agent header for authenticating the request",
                                                                        "type": [
                                                                            "string",
                                                                            "null"
                                                                        ],
                                                                        "example": "definitely-not-a-bot",
                                                                        "maxLength": 50,
                                                                        "minLength": 1
                                                                    },
                                                                    "headers": {
                                                                        "description": "Additional HTTP headers to add to the request",
                                                                        "type": [
                                                                            "array",
                                                                            "null"
                                                                        ],
                                                                        "items": {
                                                                            "required": [
                                                                                "name",
                                                                                "value"
                                                                            ],
                                                                            "properties": {
                                                                                "name": {
                                                                                    "description": "Header name, the User-Agent, Signature, Signature-Input and Signature-Agent headers are not allowed",
                                                                                    "type": "string",
                                                                                    "example": "X-Phare-Says",
                                                                                    "maxLength": 50
                                                                                },
                                                                                "value": {
                                                                                    "description": "Header value",
                                                                                    "type": "string",
                                                                                    "example": "Hello world!",
                                                                                    "maxLength": 1024
                                                                                }
                                                                            },
                                                                            "type": "object"
                                                                        },
                                                                        "maxItems": 10
                                                                    }
                                                                },
                                                                "type": "object"
                                                            },
                                                            {
                                                                "title": "TCP protocol",
                                                                "required": [
                                                                    "host",
                                                                    "port",
                                                                    "connection"
                                                                ],
                                                                "properties": {
                                                                    "host": {
                                                                        "description": "TCP request hostname or IP address",
                                                                        "type": "string",
                                                                        "example": "8.8.8.8"
                                                                    },
                                                                    "port": {
                                                                        "description": "TCP request port, between 1 and 65535",
                                                                        "type": "string",
                                                                        "example": "80"
                                                                    },
                                                                    "connection": {
                                                                        "$ref": "#/components/schemas/Uptime.Monitor.ConnectionEnum",
                                                                        "description": "Connection type for TCP protocol"
                                                                    },
                                                                    "tls_skip_verify": {
                                                                        "description": "Skip TLS verification",
                                                                        "type": [
                                                                            "boolean",
                                                                            "null"
                                                                        ],
                                                                        "example": false,
                                                                        "default": false
                                                                    }
                                                                },
                                                                "type": "object"
                                                            },
                                                            {
                                                                "title": "ICMP protocol",
                                                                "required": [
                                                                    "host"
                                                                ],
                                                                "properties": {
                                                                    "host": {
                                                                        "description": "ICMP request hostname or IP address",
                                                                        "type": "string",
                                                                        "example": "8.8.8.8"
                                                                    }
                                                                },
                                                                "type": "object",
                                                                "additionalProperties": false
                                                            }
                                                        ]
                                                    },
                                                    "interval": {
                                                        "description": "Monitoring interval in seconds",
                                                        "type": "integer",
                                                        "example": 60,
                                                        "default": 60,
                                                        "enum": [
                                                            30,
                                                            60,
                                                            120,
                                                            180,
                                                            300,
                                                            600,
                                                            900,
                                                            1800,
                                                            3600
                                                        ]
                                                    },
                                                    "timeout": {
                                                        "description": "Monitoring timeout in milliseconds",
                                                        "type": "integer",
                                                        "example": 20000,
                                                        "default": 20000,
                                                        "enum": [
                                                            1000,
                                                            2000,
                                                            3000,
                                                            4000,
                                                            5000,
                                                            6000,
                                                            7000,
                                                            8000,
                                                            9000,
                                                            10000,
                                                            15000,
                                                            20000,
                                                            25000,
                                                            30000
                                                        ]
                                                    },
                                                    "success_assertions": {
                                                        "description": "List of assertions that must be true for the check to be considered successful. At least one assertion is required for the HTTP protocol, assertions are ignored for the TCP and ICMP protocols.",
                                                        "type": "array",
                                                        "items": {
                                                            "oneOf": [
                                                                {
                                                                    "title": "Status code assertion",
                                                                    "required": [
                                                                        "type",
                                                                        "operator",
                                                                        "value"
                                                                    ],
                                                                    "properties": {
                                                                        "type": {
                                                                            "description": "Type of assertion, only one status code assertion is allowed",
                                                                            "type": "string",
                                                                            "enum": [
                                                                                "status_code"
                                                                            ]
                                                                        },
                                                                        "operator": {
                                                                            "description": "Operator to use for the assertion",
                                                                            "type": "string",
                                                                            "example": "in",
                                                                            "enum": [
                                                                                "in",
                                                                                "not_in"
                                                                            ]
                                                                        },
                                                                        "value": {
                                                                            "description": "A comma-separated list of status code values, you can use x as a wildcard for any digit.",
                                                                            "type": "string",
                                                                            "example": "2xx,30x,418",
                                                                            "maxLength": 150,
                                                                            "minLength": 3
                                                                        }
                                                                    },
                                                                    "type": "object"
                                                                },
                                                                {
                                                                    "title": "Response header assertion",
                                                                    "required": [
                                                                        "type",
                                                                        "selector",
                                                                        "operator",
                                                                        "value"
                                                                    ],
                                                                    "properties": {
                                                                        "type": {
                                                                            "description": "Type of assertion",
                                                                            "type": "string",
                                                                            "enum": [
                                                                                "response_header"
                                                                            ]
                                                                        },
                                                                        "selector": {
                                                                            "description": "The name of the header to assert",
                                                                            "type": "string",
                                                                            "example": "Content-Type",
                                                                            "maxLength": 100
                                                                        },
                                                                        "operator": {
                                                                            "description": "Operator to use for the assertion",
                                                                            "type": "string",
                                                                            "example": "equals",
                                                                            "enum": [
                                                                                "equals",
                                                                                "not_equals"
                                                                            ]
                                                                        },
                                                                        "value": {
                                                                            "description": "The value of the header to assert",
                                                                            "type": "string",
                                                                            "example": "application/json",
                                                                            "maxLength": 150,
                                                                            "minLength": 1
                                                                        }
                                                                    },
                                                                    "type": "object"
                                                                },
                                                                {
                                                                    "title": "Response body assertion",
                                                                    "required": [
                                                                        "type",
                                                                        "operator",
                                                                        "value"
                                                                    ],
                                                                    "properties": {
                                                                        "type": {
                                                                            "description": "Type of assertion, not available for HEAD and OPTIONS requests",
                                                                            "type": "string",
                                                                            "enum": [
                                                                                "response_body"
                                                                            ]
                                                                        },
                                                                        "operator": {
                                                                            "description": "Operator to use for the assertion",
                                                                            "type": "string",
                                                                            "example": "contains",
                                                                            "enum": [
                                                                                "contains",
                                                                                "not_contains"
                                                                            ]
                                                                        },
                                                                        "value": {
                                                                            "description": "A word or sentence to check in the response body",
                                                                            "type": "string",
                                                                            "example": "Hello, World!",
                                                                            "maxLength": 150,
                                                                            "minLength": 1
                                                                        }
                                                                    },
                                                                    "type": "object"
                                                                }
                                                            ]
                                                        }
                                                    },
                                                    "incident_confirmations": {
                                                        "description": "Number of uninterrupted failed checks required to create an incident",
                                                        "type": "integer",
                                                        "example": 1,
                                                        "default": 3,
                                                        "enum": [
                                                            1,
                                                            2,
                                                            3,
                                                            4,
                                                            5
                                                        ]
                                                    },
                                                    "recovery_confirmations": {
                                                        "description": "Number of uninterrupted successful checks required to resolve an incident",
                                                        "type": "integer",
                                                        "example": 1,
                                                        "default": 3,
                                                        "enum": [
                                                            1,
                                                            2,
                                                            3,
                                                            4,
                                                            5
                                                        ]
                                                    },
                                                    "region_threshold": {
                                                        "description": "Number of regions that must fail before an incident is confirmed, cannot exceed the number of selected regions",
                                                        "type": "integer",
                                                        "example": 1,
                                                        "default": 1,
                                                        "maximum": 10,
                                                        "minimum": 1
                                                    },
                                                    "regions": {
                                                        "description": "List of regions where monitoring checks are performed",
                                                        "type": "array",
                                                        "items": {
                                                            "$ref": "#/components/schemas/Uptime.Monitor.RegionEnum"
                                                        },
                                                        "maxItems": 10,
                                                        "minItems": 1
                                                    },
                                                    "tags": {
                                                        "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                                        "type": [
                                                            "array",
                                                            "null"
                                                        ],
                                                        "items": {
                                                            "type": "string",
                                                            "example": "environment:production",
                                                            "maxLength": 100,
                                                            "minLength": 1
                                                        },
                                                        "maxItems": 20
                                                    },
                                                    "last_checked_at": {
                                                        "description": "Date of the last performed check with a 30s accuracy",
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "date-time"
                                                    },
                                                    "created_at": {
                                                        "description": "Date of creation for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "updated_at": {
                                                        "description": "Date of last update for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    }
                                                },
                                                "required": [
                                                    "name",
                                                    "protocol",
                                                    "request",
                                                    "regions"
                                                ]
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/meta"
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/links"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                }
            },
            "post": {
                "tags": [
                    "Monitors"
                ],
                "summary": "Create a monitor",
                "description": "Create a monitor",
                "operationId": "createUptimeMonitor",
                "requestBody": {
                    "description": "Monitor request",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "description": "Monitor name",
                                        "type": "string",
                                        "example": "Website",
                                        "maxLength": 45,
                                        "minLength": 2
                                    },
                                    "protocol": {
                                        "$ref": "#/components/schemas/Uptime.Monitor.ProtocolEnum",
                                        "description": "Monitoring protocol"
                                    },
                                    "request": {
                                        "description": "Monitoring request, depends of the chosen protocol",
                                        "type": "object",
                                        "oneOf": [
                                            {
                                                "title": "HTTP protocol",
                                                "required": [
                                                    "method",
                                                    "url"
                                                ],
                                                "properties": {
                                                    "method": {
                                                        "description": "HTTP request method",
                                                        "type": "string",
                                                        "enum": [
                                                            "HEAD",
                                                            "GET",
                                                            "POST",
                                                            "PUT",
                                                            "PATCH",
                                                            "OPTIONS"
                                                        ]
                                                    },
                                                    "url": {
                                                        "description": "HTTP request url",
                                                        "type": "string",
                                                        "example": "https://docs.phare.io/introduction",
                                                        "maxLength": 255
                                                    },
                                                    "tls_skip_verify": {
                                                        "description": "Skip SSL verification",
                                                        "type": [
                                                            "boolean",
                                                            "null"
                                                        ],
                                                        "example": false,
                                                        "default": false
                                                    },
                                                    "body": {
                                                        "description": "HTTP request body for POST, PUT and PATCH requests",
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "example": "Hello, World!",
                                                        "maxLength": 500
                                                    },
                                                    "follow_redirects": {
                                                        "description": "Follow redirects",
                                                        "type": [
                                                            "boolean",
                                                            "null"
                                                        ],
                                                        "example": true,
                                                        "default": true
                                                    },
                                                    "user_agent_secret": {
                                                        "description": "A secret value to be used in the User-Agent header for authenticating the request",
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "example": "definitely-not-a-bot",
                                                        "maxLength": 50,
                                                        "minLength": 1
                                                    },
                                                    "headers": {
                                                        "description": "Additional HTTP headers to add to the request",
                                                        "type": [
                                                            "array",
                                                            "null"
                                                        ],
                                                        "items": {
                                                            "required": [
                                                                "name",
                                                                "value"
                                                            ],
                                                            "properties": {
                                                                "name": {
                                                                    "description": "Header name, the User-Agent, Signature, Signature-Input and Signature-Agent headers are not allowed",
                                                                    "type": "string",
                                                                    "example": "X-Phare-Says",
                                                                    "maxLength": 50
                                                                },
                                                                "value": {
                                                                    "description": "Header value",
                                                                    "type": "string",
                                                                    "example": "Hello world!",
                                                                    "maxLength": 1024
                                                                }
                                                            },
                                                            "type": "object"
                                                        },
                                                        "maxItems": 10
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            {
                                                "title": "TCP protocol",
                                                "required": [
                                                    "host",
                                                    "port",
                                                    "connection"
                                                ],
                                                "properties": {
                                                    "host": {
                                                        "description": "TCP request hostname or IP address",
                                                        "type": "string",
                                                        "example": "8.8.8.8"
                                                    },
                                                    "port": {
                                                        "description": "TCP request port, between 1 and 65535",
                                                        "type": "string",
                                                        "example": "80"
                                                    },
                                                    "connection": {
                                                        "$ref": "#/components/schemas/Uptime.Monitor.ConnectionEnum",
                                                        "description": "Connection type for TCP protocol"
                                                    },
                                                    "tls_skip_verify": {
                                                        "description": "Skip TLS verification",
                                                        "type": [
                                                            "boolean",
                                                            "null"
                                                        ],
                                                        "example": false,
                                                        "default": false
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            {
                                                "title": "ICMP protocol",
                                                "required": [
                                                    "host"
                                                ],
                                                "properties": {
                                                    "host": {
                                                        "description": "ICMP request hostname or IP address",
                                                        "type": "string",
                                                        "example": "8.8.8.8"
                                                    }
                                                },
                                                "type": "object",
                                                "additionalProperties": false
                                            }
                                        ]
                                    },
                                    "interval": {
                                        "description": "Monitoring interval in seconds",
                                        "type": "integer",
                                        "example": 60,
                                        "default": 60,
                                        "enum": [
                                            30,
                                            60,
                                            120,
                                            180,
                                            300,
                                            600,
                                            900,
                                            1800,
                                            3600
                                        ]
                                    },
                                    "timeout": {
                                        "description": "Monitoring timeout in milliseconds",
                                        "type": "integer",
                                        "example": 20000,
                                        "default": 20000,
                                        "enum": [
                                            1000,
                                            2000,
                                            3000,
                                            4000,
                                            5000,
                                            6000,
                                            7000,
                                            8000,
                                            9000,
                                            10000,
                                            15000,
                                            20000,
                                            25000,
                                            30000
                                        ]
                                    },
                                    "success_assertions": {
                                        "description": "List of assertions that must be true for the check to be considered successful. At least one assertion is required for the HTTP protocol, assertions are ignored for the TCP and ICMP protocols.",
                                        "type": "array",
                                        "items": {
                                            "oneOf": [
                                                {
                                                    "title": "Status code assertion",
                                                    "required": [
                                                        "type",
                                                        "operator",
                                                        "value"
                                                    ],
                                                    "properties": {
                                                        "type": {
                                                            "description": "Type of assertion, only one status code assertion is allowed",
                                                            "type": "string",
                                                            "enum": [
                                                                "status_code"
                                                            ]
                                                        },
                                                        "operator": {
                                                            "description": "Operator to use for the assertion",
                                                            "type": "string",
                                                            "example": "in",
                                                            "enum": [
                                                                "in",
                                                                "not_in"
                                                            ]
                                                        },
                                                        "value": {
                                                            "description": "A comma-separated list of status code values, you can use x as a wildcard for any digit.",
                                                            "type": "string",
                                                            "example": "2xx,30x,418",
                                                            "maxLength": 150,
                                                            "minLength": 3
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                {
                                                    "title": "Response header assertion",
                                                    "required": [
                                                        "type",
                                                        "selector",
                                                        "operator",
                                                        "value"
                                                    ],
                                                    "properties": {
                                                        "type": {
                                                            "description": "Type of assertion",
                                                            "type": "string",
                                                            "enum": [
                                                                "response_header"
                                                            ]
                                                        },
                                                        "selector": {
                                                            "description": "The name of the header to assert",
                                                            "type": "string",
                                                            "example": "Content-Type",
                                                            "maxLength": 100
                                                        },
                                                        "operator": {
                                                            "description": "Operator to use for the assertion",
                                                            "type": "string",
                                                            "example": "equals",
                                                            "enum": [
                                                                "equals",
                                                                "not_equals"
                                                            ]
                                                        },
                                                        "value": {
                                                            "description": "The value of the header to assert",
                                                            "type": "string",
                                                            "example": "application/json",
                                                            "maxLength": 150,
                                                            "minLength": 1
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                {
                                                    "title": "Response body assertion",
                                                    "required": [
                                                        "type",
                                                        "operator",
                                                        "value"
                                                    ],
                                                    "properties": {
                                                        "type": {
                                                            "description": "Type of assertion, not available for HEAD and OPTIONS requests",
                                                            "type": "string",
                                                            "enum": [
                                                                "response_body"
                                                            ]
                                                        },
                                                        "operator": {
                                                            "description": "Operator to use for the assertion",
                                                            "type": "string",
                                                            "example": "contains",
                                                            "enum": [
                                                                "contains",
                                                                "not_contains"
                                                            ]
                                                        },
                                                        "value": {
                                                            "description": "A word or sentence to check in the response body",
                                                            "type": "string",
                                                            "example": "Hello, World!",
                                                            "maxLength": 150,
                                                            "minLength": 1
                                                        }
                                                    },
                                                    "type": "object"
                                                }
                                            ]
                                        }
                                    },
                                    "incident_confirmations": {
                                        "description": "Number of uninterrupted failed checks required to create an incident",
                                        "type": "integer",
                                        "example": 1,
                                        "default": 3,
                                        "enum": [
                                            1,
                                            2,
                                            3,
                                            4,
                                            5
                                        ]
                                    },
                                    "recovery_confirmations": {
                                        "description": "Number of uninterrupted successful checks required to resolve an incident",
                                        "type": "integer",
                                        "example": 1,
                                        "default": 3,
                                        "enum": [
                                            1,
                                            2,
                                            3,
                                            4,
                                            5
                                        ]
                                    },
                                    "region_threshold": {
                                        "description": "Number of regions that must fail before an incident is confirmed, cannot exceed the number of selected regions",
                                        "type": "integer",
                                        "example": 1,
                                        "default": 1,
                                        "maximum": 10,
                                        "minimum": 1
                                    },
                                    "regions": {
                                        "description": "List of regions where monitoring checks are performed",
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/Uptime.Monitor.RegionEnum"
                                        },
                                        "maxItems": 10,
                                        "minItems": 1
                                    },
                                    "tags": {
                                        "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "example": "environment:production",
                                            "maxLength": 100,
                                            "minLength": 1
                                        },
                                        "maxItems": 20
                                    }
                                },
                                "required": [
                                    "name",
                                    "protocol",
                                    "request",
                                    "regions"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success, monitor created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "description": "Monitor ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "project_id": {
                                            "description": "Parent project ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "status": {
                                            "$ref": "#/components/schemas/Uptime.Monitor.StatusEnum",
                                            "description": "Monitor current status"
                                        },
                                        "paused": {
                                            "description": "Whether the monitor is currently paused",
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "response_time": {
                                            "description": "75th percentile (P75) response time of successful checks over the last 7 days, in milliseconds",
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "example": 123
                                        },
                                        "name": {
                                            "description": "Monitor name",
                                            "type": "string",
                                            "example": "Website",
                                            "maxLength": 45,
                                            "minLength": 2
                                        },
                                        "protocol": {
                                            "$ref": "#/components/schemas/Uptime.Monitor.ProtocolEnum",
                                            "description": "Monitoring protocol"
                                        },
                                        "request": {
                                            "description": "Monitoring request, depends of the chosen protocol",
                                            "type": "object",
                                            "oneOf": [
                                                {
                                                    "title": "HTTP protocol",
                                                    "required": [
                                                        "method",
                                                        "url"
                                                    ],
                                                    "properties": {
                                                        "method": {
                                                            "description": "HTTP request method",
                                                            "type": "string",
                                                            "enum": [
                                                                "HEAD",
                                                                "GET",
                                                                "POST",
                                                                "PUT",
                                                                "PATCH",
                                                                "OPTIONS"
                                                            ]
                                                        },
                                                        "url": {
                                                            "description": "HTTP request url",
                                                            "type": "string",
                                                            "example": "https://docs.phare.io/introduction",
                                                            "maxLength": 255
                                                        },
                                                        "tls_skip_verify": {
                                                            "description": "Skip SSL verification",
                                                            "type": [
                                                                "boolean",
                                                                "null"
                                                            ],
                                                            "example": false,
                                                            "default": false
                                                        },
                                                        "body": {
                                                            "description": "HTTP request body for POST, PUT and PATCH requests",
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "example": "Hello, World!",
                                                            "maxLength": 500
                                                        },
                                                        "follow_redirects": {
                                                            "description": "Follow redirects",
                                                            "type": [
                                                                "boolean",
                                                                "null"
                                                            ],
                                                            "example": true,
                                                            "default": true
                                                        },
                                                        "user_agent_secret": {
                                                            "description": "A secret value to be used in the User-Agent header for authenticating the request",
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "example": "definitely-not-a-bot",
                                                            "maxLength": 50,
                                                            "minLength": 1
                                                        },
                                                        "headers": {
                                                            "description": "Additional HTTP headers to add to the request",
                                                            "type": [
                                                                "array",
                                                                "null"
                                                            ],
                                                            "items": {
                                                                "required": [
                                                                    "name",
                                                                    "value"
                                                                ],
                                                                "properties": {
                                                                    "name": {
                                                                        "description": "Header name, the User-Agent, Signature, Signature-Input and Signature-Agent headers are not allowed",
                                                                        "type": "string",
                                                                        "example": "X-Phare-Says",
                                                                        "maxLength": 50
                                                                    },
                                                                    "value": {
                                                                        "description": "Header value",
                                                                        "type": "string",
                                                                        "example": "Hello world!",
                                                                        "maxLength": 1024
                                                                    }
                                                                },
                                                                "type": "object"
                                                            },
                                                            "maxItems": 10
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                {
                                                    "title": "TCP protocol",
                                                    "required": [
                                                        "host",
                                                        "port",
                                                        "connection"
                                                    ],
                                                    "properties": {
                                                        "host": {
                                                            "description": "TCP request hostname or IP address",
                                                            "type": "string",
                                                            "example": "8.8.8.8"
                                                        },
                                                        "port": {
                                                            "description": "TCP request port, between 1 and 65535",
                                                            "type": "string",
                                                            "example": "80"
                                                        },
                                                        "connection": {
                                                            "$ref": "#/components/schemas/Uptime.Monitor.ConnectionEnum",
                                                            "description": "Connection type for TCP protocol"
                                                        },
                                                        "tls_skip_verify": {
                                                            "description": "Skip TLS verification",
                                                            "type": [
                                                                "boolean",
                                                                "null"
                                                            ],
                                                            "example": false,
                                                            "default": false
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                {
                                                    "title": "ICMP protocol",
                                                    "required": [
                                                        "host"
                                                    ],
                                                    "properties": {
                                                        "host": {
                                                            "description": "ICMP request hostname or IP address",
                                                            "type": "string",
                                                            "example": "8.8.8.8"
                                                        }
                                                    },
                                                    "type": "object",
                                                    "additionalProperties": false
                                                }
                                            ]
                                        },
                                        "interval": {
                                            "description": "Monitoring interval in seconds",
                                            "type": "integer",
                                            "example": 60,
                                            "default": 60,
                                            "enum": [
                                                30,
                                                60,
                                                120,
                                                180,
                                                300,
                                                600,
                                                900,
                                                1800,
                                                3600
                                            ]
                                        },
                                        "timeout": {
                                            "description": "Monitoring timeout in milliseconds",
                                            "type": "integer",
                                            "example": 20000,
                                            "default": 20000,
                                            "enum": [
                                                1000,
                                                2000,
                                                3000,
                                                4000,
                                                5000,
                                                6000,
                                                7000,
                                                8000,
                                                9000,
                                                10000,
                                                15000,
                                                20000,
                                                25000,
                                                30000
                                            ]
                                        },
                                        "success_assertions": {
                                            "description": "List of assertions that must be true for the check to be considered successful. At least one assertion is required for the HTTP protocol, assertions are ignored for the TCP and ICMP protocols.",
                                            "type": "array",
                                            "items": {
                                                "oneOf": [
                                                    {
                                                        "title": "Status code assertion",
                                                        "required": [
                                                            "type",
                                                            "operator",
                                                            "value"
                                                        ],
                                                        "properties": {
                                                            "type": {
                                                                "description": "Type of assertion, only one status code assertion is allowed",
                                                                "type": "string",
                                                                "enum": [
                                                                    "status_code"
                                                                ]
                                                            },
                                                            "operator": {
                                                                "description": "Operator to use for the assertion",
                                                                "type": "string",
                                                                "example": "in",
                                                                "enum": [
                                                                    "in",
                                                                    "not_in"
                                                                ]
                                                            },
                                                            "value": {
                                                                "description": "A comma-separated list of status code values, you can use x as a wildcard for any digit.",
                                                                "type": "string",
                                                                "example": "2xx,30x,418",
                                                                "maxLength": 150,
                                                                "minLength": 3
                                                            }
                                                        },
                                                        "type": "object"
                                                    },
                                                    {
                                                        "title": "Response header assertion",
                                                        "required": [
                                                            "type",
                                                            "selector",
                                                            "operator",
                                                            "value"
                                                        ],
                                                        "properties": {
                                                            "type": {
                                                                "description": "Type of assertion",
                                                                "type": "string",
                                                                "enum": [
                                                                    "response_header"
                                                                ]
                                                            },
                                                            "selector": {
                                                                "description": "The name of the header to assert",
                                                                "type": "string",
                                                                "example": "Content-Type",
                                                                "maxLength": 100
                                                            },
                                                            "operator": {
                                                                "description": "Operator to use for the assertion",
                                                                "type": "string",
                                                                "example": "equals",
                                                                "enum": [
                                                                    "equals",
                                                                    "not_equals"
                                                                ]
                                                            },
                                                            "value": {
                                                                "description": "The value of the header to assert",
                                                                "type": "string",
                                                                "example": "application/json",
                                                                "maxLength": 150,
                                                                "minLength": 1
                                                            }
                                                        },
                                                        "type": "object"
                                                    },
                                                    {
                                                        "title": "Response body assertion",
                                                        "required": [
                                                            "type",
                                                            "operator",
                                                            "value"
                                                        ],
                                                        "properties": {
                                                            "type": {
                                                                "description": "Type of assertion, not available for HEAD and OPTIONS requests",
                                                                "type": "string",
                                                                "enum": [
                                                                    "response_body"
                                                                ]
                                                            },
                                                            "operator": {
                                                                "description": "Operator to use for the assertion",
                                                                "type": "string",
                                                                "example": "contains",
                                                                "enum": [
                                                                    "contains",
                                                                    "not_contains"
                                                                ]
                                                            },
                                                            "value": {
                                                                "description": "A word or sentence to check in the response body",
                                                                "type": "string",
                                                                "example": "Hello, World!",
                                                                "maxLength": 150,
                                                                "minLength": 1
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                ]
                                            }
                                        },
                                        "incident_confirmations": {
                                            "description": "Number of uninterrupted failed checks required to create an incident",
                                            "type": "integer",
                                            "example": 1,
                                            "default": 3,
                                            "enum": [
                                                1,
                                                2,
                                                3,
                                                4,
                                                5
                                            ]
                                        },
                                        "recovery_confirmations": {
                                            "description": "Number of uninterrupted successful checks required to resolve an incident",
                                            "type": "integer",
                                            "example": 1,
                                            "default": 3,
                                            "enum": [
                                                1,
                                                2,
                                                3,
                                                4,
                                                5
                                            ]
                                        },
                                        "region_threshold": {
                                            "description": "Number of regions that must fail before an incident is confirmed, cannot exceed the number of selected regions",
                                            "type": "integer",
                                            "example": 1,
                                            "default": 1,
                                            "maximum": 10,
                                            "minimum": 1
                                        },
                                        "regions": {
                                            "description": "List of regions where monitoring checks are performed",
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Uptime.Monitor.RegionEnum"
                                            },
                                            "maxItems": 10,
                                            "minItems": 1
                                        },
                                        "tags": {
                                            "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "string",
                                                "example": "environment:production",
                                                "maxLength": 100,
                                                "minLength": 1
                                            },
                                            "maxItems": 20
                                        },
                                        "last_checked_at": {
                                            "description": "Date of the last performed check with a 30s accuracy",
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "date-time"
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "name",
                                        "protocol",
                                        "request",
                                        "regions"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ]
            }
        },
        "/uptime/monitors/{monitorId}": {
            "get": {
                "tags": [
                    "Monitors"
                ],
                "summary": "Get a monitor",
                "description": "Get a monitor by ID",
                "operationId": "getUptimeMonitor",
                "parameters": [
                    {
                        "name": "monitorId",
                        "in": "path",
                        "description": "ID of the monitor to show",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, monitor retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "description": "Monitor ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "project_id": {
                                            "description": "Parent project ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "status": {
                                            "$ref": "#/components/schemas/Uptime.Monitor.StatusEnum",
                                            "description": "Monitor current status"
                                        },
                                        "paused": {
                                            "description": "Whether the monitor is currently paused",
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "response_time": {
                                            "description": "75th percentile (P75) response time of successful checks over the last 7 days, in milliseconds",
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "example": 123
                                        },
                                        "name": {
                                            "description": "Monitor name",
                                            "type": "string",
                                            "example": "Website",
                                            "maxLength": 45,
                                            "minLength": 2
                                        },
                                        "protocol": {
                                            "$ref": "#/components/schemas/Uptime.Monitor.ProtocolEnum",
                                            "description": "Monitoring protocol"
                                        },
                                        "request": {
                                            "description": "Monitoring request, depends of the chosen protocol",
                                            "type": "object",
                                            "oneOf": [
                                                {
                                                    "title": "HTTP protocol",
                                                    "required": [
                                                        "method",
                                                        "url"
                                                    ],
                                                    "properties": {
                                                        "method": {
                                                            "description": "HTTP request method",
                                                            "type": "string",
                                                            "enum": [
                                                                "HEAD",
                                                                "GET",
                                                                "POST",
                                                                "PUT",
                                                                "PATCH",
                                                                "OPTIONS"
                                                            ]
                                                        },
                                                        "url": {
                                                            "description": "HTTP request url",
                                                            "type": "string",
                                                            "example": "https://docs.phare.io/introduction",
                                                            "maxLength": 255
                                                        },
                                                        "tls_skip_verify": {
                                                            "description": "Skip SSL verification",
                                                            "type": [
                                                                "boolean",
                                                                "null"
                                                            ],
                                                            "example": false,
                                                            "default": false
                                                        },
                                                        "body": {
                                                            "description": "HTTP request body for POST, PUT and PATCH requests",
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "example": "Hello, World!",
                                                            "maxLength": 500
                                                        },
                                                        "follow_redirects": {
                                                            "description": "Follow redirects",
                                                            "type": [
                                                                "boolean",
                                                                "null"
                                                            ],
                                                            "example": true,
                                                            "default": true
                                                        },
                                                        "user_agent_secret": {
                                                            "description": "A secret value to be used in the User-Agent header for authenticating the request",
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "example": "definitely-not-a-bot",
                                                            "maxLength": 50,
                                                            "minLength": 1
                                                        },
                                                        "headers": {
                                                            "description": "Additional HTTP headers to add to the request",
                                                            "type": [
                                                                "array",
                                                                "null"
                                                            ],
                                                            "items": {
                                                                "required": [
                                                                    "name",
                                                                    "value"
                                                                ],
                                                                "properties": {
                                                                    "name": {
                                                                        "description": "Header name, the User-Agent, Signature, Signature-Input and Signature-Agent headers are not allowed",
                                                                        "type": "string",
                                                                        "example": "X-Phare-Says",
                                                                        "maxLength": 50
                                                                    },
                                                                    "value": {
                                                                        "description": "Header value",
                                                                        "type": "string",
                                                                        "example": "Hello world!",
                                                                        "maxLength": 1024
                                                                    }
                                                                },
                                                                "type": "object"
                                                            },
                                                            "maxItems": 10
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                {
                                                    "title": "TCP protocol",
                                                    "required": [
                                                        "host",
                                                        "port",
                                                        "connection"
                                                    ],
                                                    "properties": {
                                                        "host": {
                                                            "description": "TCP request hostname or IP address",
                                                            "type": "string",
                                                            "example": "8.8.8.8"
                                                        },
                                                        "port": {
                                                            "description": "TCP request port, between 1 and 65535",
                                                            "type": "string",
                                                            "example": "80"
                                                        },
                                                        "connection": {
                                                            "$ref": "#/components/schemas/Uptime.Monitor.ConnectionEnum",
                                                            "description": "Connection type for TCP protocol"
                                                        },
                                                        "tls_skip_verify": {
                                                            "description": "Skip TLS verification",
                                                            "type": [
                                                                "boolean",
                                                                "null"
                                                            ],
                                                            "example": false,
                                                            "default": false
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                {
                                                    "title": "ICMP protocol",
                                                    "required": [
                                                        "host"
                                                    ],
                                                    "properties": {
                                                        "host": {
                                                            "description": "ICMP request hostname or IP address",
                                                            "type": "string",
                                                            "example": "8.8.8.8"
                                                        }
                                                    },
                                                    "type": "object",
                                                    "additionalProperties": false
                                                }
                                            ]
                                        },
                                        "interval": {
                                            "description": "Monitoring interval in seconds",
                                            "type": "integer",
                                            "example": 60,
                                            "default": 60,
                                            "enum": [
                                                30,
                                                60,
                                                120,
                                                180,
                                                300,
                                                600,
                                                900,
                                                1800,
                                                3600
                                            ]
                                        },
                                        "timeout": {
                                            "description": "Monitoring timeout in milliseconds",
                                            "type": "integer",
                                            "example": 20000,
                                            "default": 20000,
                                            "enum": [
                                                1000,
                                                2000,
                                                3000,
                                                4000,
                                                5000,
                                                6000,
                                                7000,
                                                8000,
                                                9000,
                                                10000,
                                                15000,
                                                20000,
                                                25000,
                                                30000
                                            ]
                                        },
                                        "success_assertions": {
                                            "description": "List of assertions that must be true for the check to be considered successful. At least one assertion is required for the HTTP protocol, assertions are ignored for the TCP and ICMP protocols.",
                                            "type": "array",
                                            "items": {
                                                "oneOf": [
                                                    {
                                                        "title": "Status code assertion",
                                                        "required": [
                                                            "type",
                                                            "operator",
                                                            "value"
                                                        ],
                                                        "properties": {
                                                            "type": {
                                                                "description": "Type of assertion, only one status code assertion is allowed",
                                                                "type": "string",
                                                                "enum": [
                                                                    "status_code"
                                                                ]
                                                            },
                                                            "operator": {
                                                                "description": "Operator to use for the assertion",
                                                                "type": "string",
                                                                "example": "in",
                                                                "enum": [
                                                                    "in",
                                                                    "not_in"
                                                                ]
                                                            },
                                                            "value": {
                                                                "description": "A comma-separated list of status code values, you can use x as a wildcard for any digit.",
                                                                "type": "string",
                                                                "example": "2xx,30x,418",
                                                                "maxLength": 150,
                                                                "minLength": 3
                                                            }
                                                        },
                                                        "type": "object"
                                                    },
                                                    {
                                                        "title": "Response header assertion",
                                                        "required": [
                                                            "type",
                                                            "selector",
                                                            "operator",
                                                            "value"
                                                        ],
                                                        "properties": {
                                                            "type": {
                                                                "description": "Type of assertion",
                                                                "type": "string",
                                                                "enum": [
                                                                    "response_header"
                                                                ]
                                                            },
                                                            "selector": {
                                                                "description": "The name of the header to assert",
                                                                "type": "string",
                                                                "example": "Content-Type",
                                                                "maxLength": 100
                                                            },
                                                            "operator": {
                                                                "description": "Operator to use for the assertion",
                                                                "type": "string",
                                                                "example": "equals",
                                                                "enum": [
                                                                    "equals",
                                                                    "not_equals"
                                                                ]
                                                            },
                                                            "value": {
                                                                "description": "The value of the header to assert",
                                                                "type": "string",
                                                                "example": "application/json",
                                                                "maxLength": 150,
                                                                "minLength": 1
                                                            }
                                                        },
                                                        "type": "object"
                                                    },
                                                    {
                                                        "title": "Response body assertion",
                                                        "required": [
                                                            "type",
                                                            "operator",
                                                            "value"
                                                        ],
                                                        "properties": {
                                                            "type": {
                                                                "description": "Type of assertion, not available for HEAD and OPTIONS requests",
                                                                "type": "string",
                                                                "enum": [
                                                                    "response_body"
                                                                ]
                                                            },
                                                            "operator": {
                                                                "description": "Operator to use for the assertion",
                                                                "type": "string",
                                                                "example": "contains",
                                                                "enum": [
                                                                    "contains",
                                                                    "not_contains"
                                                                ]
                                                            },
                                                            "value": {
                                                                "description": "A word or sentence to check in the response body",
                                                                "type": "string",
                                                                "example": "Hello, World!",
                                                                "maxLength": 150,
                                                                "minLength": 1
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                ]
                                            }
                                        },
                                        "incident_confirmations": {
                                            "description": "Number of uninterrupted failed checks required to create an incident",
                                            "type": "integer",
                                            "example": 1,
                                            "default": 3,
                                            "enum": [
                                                1,
                                                2,
                                                3,
                                                4,
                                                5
                                            ]
                                        },
                                        "recovery_confirmations": {
                                            "description": "Number of uninterrupted successful checks required to resolve an incident",
                                            "type": "integer",
                                            "example": 1,
                                            "default": 3,
                                            "enum": [
                                                1,
                                                2,
                                                3,
                                                4,
                                                5
                                            ]
                                        },
                                        "region_threshold": {
                                            "description": "Number of regions that must fail before an incident is confirmed, cannot exceed the number of selected regions",
                                            "type": "integer",
                                            "example": 1,
                                            "default": 1,
                                            "maximum": 10,
                                            "minimum": 1
                                        },
                                        "regions": {
                                            "description": "List of regions where monitoring checks are performed",
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Uptime.Monitor.RegionEnum"
                                            },
                                            "maxItems": 10,
                                            "minItems": 1
                                        },
                                        "tags": {
                                            "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "string",
                                                "example": "environment:production",
                                                "maxLength": 100,
                                                "minLength": 1
                                            },
                                            "maxItems": 20
                                        },
                                        "last_checked_at": {
                                            "description": "Date of the last performed check with a 30s accuracy",
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "date-time"
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "name",
                                        "protocol",
                                        "request",
                                        "regions"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            },
            "post": {
                "tags": [
                    "Monitors"
                ],
                "summary": "Update a monitor",
                "description": "Update a monitor by ID",
                "operationId": "updateUptimeMonitor",
                "parameters": [
                    {
                        "name": "monitorId",
                        "in": "path",
                        "description": "ID of the monitor to update",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "requestBody": {
                    "description": "Monitor request",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "description": "Monitor name",
                                        "type": "string",
                                        "example": "Website",
                                        "maxLength": 45,
                                        "minLength": 2
                                    },
                                    "protocol": {
                                        "$ref": "#/components/schemas/Uptime.Monitor.ProtocolEnum",
                                        "description": "Monitoring protocol"
                                    },
                                    "request": {
                                        "description": "Monitoring request, depends of the chosen protocol",
                                        "type": "object",
                                        "oneOf": [
                                            {
                                                "title": "HTTP protocol",
                                                "required": [
                                                    "method",
                                                    "url"
                                                ],
                                                "properties": {
                                                    "method": {
                                                        "description": "HTTP request method",
                                                        "type": "string",
                                                        "enum": [
                                                            "HEAD",
                                                            "GET",
                                                            "POST",
                                                            "PUT",
                                                            "PATCH",
                                                            "OPTIONS"
                                                        ]
                                                    },
                                                    "url": {
                                                        "description": "HTTP request url",
                                                        "type": "string",
                                                        "example": "https://docs.phare.io/introduction",
                                                        "maxLength": 255
                                                    },
                                                    "tls_skip_verify": {
                                                        "description": "Skip SSL verification",
                                                        "type": [
                                                            "boolean",
                                                            "null"
                                                        ],
                                                        "example": false,
                                                        "default": false
                                                    },
                                                    "body": {
                                                        "description": "HTTP request body for POST, PUT and PATCH requests",
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "example": "Hello, World!",
                                                        "maxLength": 500
                                                    },
                                                    "follow_redirects": {
                                                        "description": "Follow redirects",
                                                        "type": [
                                                            "boolean",
                                                            "null"
                                                        ],
                                                        "example": true,
                                                        "default": true
                                                    },
                                                    "user_agent_secret": {
                                                        "description": "A secret value to be used in the User-Agent header for authenticating the request",
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "example": "definitely-not-a-bot",
                                                        "maxLength": 50,
                                                        "minLength": 1
                                                    },
                                                    "headers": {
                                                        "description": "Additional HTTP headers to add to the request",
                                                        "type": [
                                                            "array",
                                                            "null"
                                                        ],
                                                        "items": {
                                                            "required": [
                                                                "name",
                                                                "value"
                                                            ],
                                                            "properties": {
                                                                "name": {
                                                                    "description": "Header name, the User-Agent, Signature, Signature-Input and Signature-Agent headers are not allowed",
                                                                    "type": "string",
                                                                    "example": "X-Phare-Says",
                                                                    "maxLength": 50
                                                                },
                                                                "value": {
                                                                    "description": "Header value",
                                                                    "type": "string",
                                                                    "example": "Hello world!",
                                                                    "maxLength": 1024
                                                                }
                                                            },
                                                            "type": "object"
                                                        },
                                                        "maxItems": 10
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            {
                                                "title": "TCP protocol",
                                                "required": [
                                                    "host",
                                                    "port",
                                                    "connection"
                                                ],
                                                "properties": {
                                                    "host": {
                                                        "description": "TCP request hostname or IP address",
                                                        "type": "string",
                                                        "example": "8.8.8.8"
                                                    },
                                                    "port": {
                                                        "description": "TCP request port, between 1 and 65535",
                                                        "type": "string",
                                                        "example": "80"
                                                    },
                                                    "connection": {
                                                        "$ref": "#/components/schemas/Uptime.Monitor.ConnectionEnum",
                                                        "description": "Connection type for TCP protocol"
                                                    },
                                                    "tls_skip_verify": {
                                                        "description": "Skip TLS verification",
                                                        "type": [
                                                            "boolean",
                                                            "null"
                                                        ],
                                                        "example": false,
                                                        "default": false
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            {
                                                "title": "ICMP protocol",
                                                "required": [
                                                    "host"
                                                ],
                                                "properties": {
                                                    "host": {
                                                        "description": "ICMP request hostname or IP address",
                                                        "type": "string",
                                                        "example": "8.8.8.8"
                                                    }
                                                },
                                                "type": "object",
                                                "additionalProperties": false
                                            }
                                        ]
                                    },
                                    "interval": {
                                        "description": "Monitoring interval in seconds",
                                        "type": "integer",
                                        "example": 60,
                                        "default": 60,
                                        "enum": [
                                            30,
                                            60,
                                            120,
                                            180,
                                            300,
                                            600,
                                            900,
                                            1800,
                                            3600
                                        ]
                                    },
                                    "timeout": {
                                        "description": "Monitoring timeout in milliseconds",
                                        "type": "integer",
                                        "example": 20000,
                                        "default": 20000,
                                        "enum": [
                                            1000,
                                            2000,
                                            3000,
                                            4000,
                                            5000,
                                            6000,
                                            7000,
                                            8000,
                                            9000,
                                            10000,
                                            15000,
                                            20000,
                                            25000,
                                            30000
                                        ]
                                    },
                                    "success_assertions": {
                                        "description": "List of assertions that must be true for the check to be considered successful. At least one assertion is required for the HTTP protocol, assertions are ignored for the TCP and ICMP protocols.",
                                        "type": "array",
                                        "items": {
                                            "oneOf": [
                                                {
                                                    "title": "Status code assertion",
                                                    "required": [
                                                        "type",
                                                        "operator",
                                                        "value"
                                                    ],
                                                    "properties": {
                                                        "type": {
                                                            "description": "Type of assertion, only one status code assertion is allowed",
                                                            "type": "string",
                                                            "enum": [
                                                                "status_code"
                                                            ]
                                                        },
                                                        "operator": {
                                                            "description": "Operator to use for the assertion",
                                                            "type": "string",
                                                            "example": "in",
                                                            "enum": [
                                                                "in",
                                                                "not_in"
                                                            ]
                                                        },
                                                        "value": {
                                                            "description": "A comma-separated list of status code values, you can use x as a wildcard for any digit.",
                                                            "type": "string",
                                                            "example": "2xx,30x,418",
                                                            "maxLength": 150,
                                                            "minLength": 3
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                {
                                                    "title": "Response header assertion",
                                                    "required": [
                                                        "type",
                                                        "selector",
                                                        "operator",
                                                        "value"
                                                    ],
                                                    "properties": {
                                                        "type": {
                                                            "description": "Type of assertion",
                                                            "type": "string",
                                                            "enum": [
                                                                "response_header"
                                                            ]
                                                        },
                                                        "selector": {
                                                            "description": "The name of the header to assert",
                                                            "type": "string",
                                                            "example": "Content-Type",
                                                            "maxLength": 100
                                                        },
                                                        "operator": {
                                                            "description": "Operator to use for the assertion",
                                                            "type": "string",
                                                            "example": "equals",
                                                            "enum": [
                                                                "equals",
                                                                "not_equals"
                                                            ]
                                                        },
                                                        "value": {
                                                            "description": "The value of the header to assert",
                                                            "type": "string",
                                                            "example": "application/json",
                                                            "maxLength": 150,
                                                            "minLength": 1
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                {
                                                    "title": "Response body assertion",
                                                    "required": [
                                                        "type",
                                                        "operator",
                                                        "value"
                                                    ],
                                                    "properties": {
                                                        "type": {
                                                            "description": "Type of assertion, not available for HEAD and OPTIONS requests",
                                                            "type": "string",
                                                            "enum": [
                                                                "response_body"
                                                            ]
                                                        },
                                                        "operator": {
                                                            "description": "Operator to use for the assertion",
                                                            "type": "string",
                                                            "example": "contains",
                                                            "enum": [
                                                                "contains",
                                                                "not_contains"
                                                            ]
                                                        },
                                                        "value": {
                                                            "description": "A word or sentence to check in the response body",
                                                            "type": "string",
                                                            "example": "Hello, World!",
                                                            "maxLength": 150,
                                                            "minLength": 1
                                                        }
                                                    },
                                                    "type": "object"
                                                }
                                            ]
                                        }
                                    },
                                    "incident_confirmations": {
                                        "description": "Number of uninterrupted failed checks required to create an incident",
                                        "type": "integer",
                                        "example": 1,
                                        "default": 3,
                                        "enum": [
                                            1,
                                            2,
                                            3,
                                            4,
                                            5
                                        ]
                                    },
                                    "recovery_confirmations": {
                                        "description": "Number of uninterrupted successful checks required to resolve an incident",
                                        "type": "integer",
                                        "example": 1,
                                        "default": 3,
                                        "enum": [
                                            1,
                                            2,
                                            3,
                                            4,
                                            5
                                        ]
                                    },
                                    "region_threshold": {
                                        "description": "Number of regions that must fail before an incident is confirmed, cannot exceed the number of selected regions",
                                        "type": "integer",
                                        "example": 1,
                                        "default": 1,
                                        "maximum": 10,
                                        "minimum": 1
                                    },
                                    "regions": {
                                        "description": "List of regions where monitoring checks are performed",
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/Uptime.Monitor.RegionEnum"
                                        },
                                        "maxItems": 10,
                                        "minItems": 1
                                    },
                                    "tags": {
                                        "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "example": "environment:production",
                                            "maxLength": 100,
                                            "minLength": 1
                                        },
                                        "maxItems": 20
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success, monitor updated",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "description": "Monitor ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "project_id": {
                                            "description": "Parent project ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "status": {
                                            "$ref": "#/components/schemas/Uptime.Monitor.StatusEnum",
                                            "description": "Monitor current status"
                                        },
                                        "paused": {
                                            "description": "Whether the monitor is currently paused",
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "response_time": {
                                            "description": "75th percentile (P75) response time of successful checks over the last 7 days, in milliseconds",
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "example": 123
                                        },
                                        "name": {
                                            "description": "Monitor name",
                                            "type": "string",
                                            "example": "Website",
                                            "maxLength": 45,
                                            "minLength": 2
                                        },
                                        "protocol": {
                                            "$ref": "#/components/schemas/Uptime.Monitor.ProtocolEnum",
                                            "description": "Monitoring protocol"
                                        },
                                        "request": {
                                            "description": "Monitoring request, depends of the chosen protocol",
                                            "type": "object",
                                            "oneOf": [
                                                {
                                                    "title": "HTTP protocol",
                                                    "required": [
                                                        "method",
                                                        "url"
                                                    ],
                                                    "properties": {
                                                        "method": {
                                                            "description": "HTTP request method",
                                                            "type": "string",
                                                            "enum": [
                                                                "HEAD",
                                                                "GET",
                                                                "POST",
                                                                "PUT",
                                                                "PATCH",
                                                                "OPTIONS"
                                                            ]
                                                        },
                                                        "url": {
                                                            "description": "HTTP request url",
                                                            "type": "string",
                                                            "example": "https://docs.phare.io/introduction",
                                                            "maxLength": 255
                                                        },
                                                        "tls_skip_verify": {
                                                            "description": "Skip SSL verification",
                                                            "type": [
                                                                "boolean",
                                                                "null"
                                                            ],
                                                            "example": false,
                                                            "default": false
                                                        },
                                                        "body": {
                                                            "description": "HTTP request body for POST, PUT and PATCH requests",
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "example": "Hello, World!",
                                                            "maxLength": 500
                                                        },
                                                        "follow_redirects": {
                                                            "description": "Follow redirects",
                                                            "type": [
                                                                "boolean",
                                                                "null"
                                                            ],
                                                            "example": true,
                                                            "default": true
                                                        },
                                                        "user_agent_secret": {
                                                            "description": "A secret value to be used in the User-Agent header for authenticating the request",
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "example": "definitely-not-a-bot",
                                                            "maxLength": 50,
                                                            "minLength": 1
                                                        },
                                                        "headers": {
                                                            "description": "Additional HTTP headers to add to the request",
                                                            "type": [
                                                                "array",
                                                                "null"
                                                            ],
                                                            "items": {
                                                                "required": [
                                                                    "name",
                                                                    "value"
                                                                ],
                                                                "properties": {
                                                                    "name": {
                                                                        "description": "Header name, the User-Agent, Signature, Signature-Input and Signature-Agent headers are not allowed",
                                                                        "type": "string",
                                                                        "example": "X-Phare-Says",
                                                                        "maxLength": 50
                                                                    },
                                                                    "value": {
                                                                        "description": "Header value",
                                                                        "type": "string",
                                                                        "example": "Hello world!",
                                                                        "maxLength": 1024
                                                                    }
                                                                },
                                                                "type": "object"
                                                            },
                                                            "maxItems": 10
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                {
                                                    "title": "TCP protocol",
                                                    "required": [
                                                        "host",
                                                        "port",
                                                        "connection"
                                                    ],
                                                    "properties": {
                                                        "host": {
                                                            "description": "TCP request hostname or IP address",
                                                            "type": "string",
                                                            "example": "8.8.8.8"
                                                        },
                                                        "port": {
                                                            "description": "TCP request port, between 1 and 65535",
                                                            "type": "string",
                                                            "example": "80"
                                                        },
                                                        "connection": {
                                                            "$ref": "#/components/schemas/Uptime.Monitor.ConnectionEnum",
                                                            "description": "Connection type for TCP protocol"
                                                        },
                                                        "tls_skip_verify": {
                                                            "description": "Skip TLS verification",
                                                            "type": [
                                                                "boolean",
                                                                "null"
                                                            ],
                                                            "example": false,
                                                            "default": false
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                {
                                                    "title": "ICMP protocol",
                                                    "required": [
                                                        "host"
                                                    ],
                                                    "properties": {
                                                        "host": {
                                                            "description": "ICMP request hostname or IP address",
                                                            "type": "string",
                                                            "example": "8.8.8.8"
                                                        }
                                                    },
                                                    "type": "object",
                                                    "additionalProperties": false
                                                }
                                            ]
                                        },
                                        "interval": {
                                            "description": "Monitoring interval in seconds",
                                            "type": "integer",
                                            "example": 60,
                                            "default": 60,
                                            "enum": [
                                                30,
                                                60,
                                                120,
                                                180,
                                                300,
                                                600,
                                                900,
                                                1800,
                                                3600
                                            ]
                                        },
                                        "timeout": {
                                            "description": "Monitoring timeout in milliseconds",
                                            "type": "integer",
                                            "example": 20000,
                                            "default": 20000,
                                            "enum": [
                                                1000,
                                                2000,
                                                3000,
                                                4000,
                                                5000,
                                                6000,
                                                7000,
                                                8000,
                                                9000,
                                                10000,
                                                15000,
                                                20000,
                                                25000,
                                                30000
                                            ]
                                        },
                                        "success_assertions": {
                                            "description": "List of assertions that must be true for the check to be considered successful. At least one assertion is required for the HTTP protocol, assertions are ignored for the TCP and ICMP protocols.",
                                            "type": "array",
                                            "items": {
                                                "oneOf": [
                                                    {
                                                        "title": "Status code assertion",
                                                        "required": [
                                                            "type",
                                                            "operator",
                                                            "value"
                                                        ],
                                                        "properties": {
                                                            "type": {
                                                                "description": "Type of assertion, only one status code assertion is allowed",
                                                                "type": "string",
                                                                "enum": [
                                                                    "status_code"
                                                                ]
                                                            },
                                                            "operator": {
                                                                "description": "Operator to use for the assertion",
                                                                "type": "string",
                                                                "example": "in",
                                                                "enum": [
                                                                    "in",
                                                                    "not_in"
                                                                ]
                                                            },
                                                            "value": {
                                                                "description": "A comma-separated list of status code values, you can use x as a wildcard for any digit.",
                                                                "type": "string",
                                                                "example": "2xx,30x,418",
                                                                "maxLength": 150,
                                                                "minLength": 3
                                                            }
                                                        },
                                                        "type": "object"
                                                    },
                                                    {
                                                        "title": "Response header assertion",
                                                        "required": [
                                                            "type",
                                                            "selector",
                                                            "operator",
                                                            "value"
                                                        ],
                                                        "properties": {
                                                            "type": {
                                                                "description": "Type of assertion",
                                                                "type": "string",
                                                                "enum": [
                                                                    "response_header"
                                                                ]
                                                            },
                                                            "selector": {
                                                                "description": "The name of the header to assert",
                                                                "type": "string",
                                                                "example": "Content-Type",
                                                                "maxLength": 100
                                                            },
                                                            "operator": {
                                                                "description": "Operator to use for the assertion",
                                                                "type": "string",
                                                                "example": "equals",
                                                                "enum": [
                                                                    "equals",
                                                                    "not_equals"
                                                                ]
                                                            },
                                                            "value": {
                                                                "description": "The value of the header to assert",
                                                                "type": "string",
                                                                "example": "application/json",
                                                                "maxLength": 150,
                                                                "minLength": 1
                                                            }
                                                        },
                                                        "type": "object"
                                                    },
                                                    {
                                                        "title": "Response body assertion",
                                                        "required": [
                                                            "type",
                                                            "operator",
                                                            "value"
                                                        ],
                                                        "properties": {
                                                            "type": {
                                                                "description": "Type of assertion, not available for HEAD and OPTIONS requests",
                                                                "type": "string",
                                                                "enum": [
                                                                    "response_body"
                                                                ]
                                                            },
                                                            "operator": {
                                                                "description": "Operator to use for the assertion",
                                                                "type": "string",
                                                                "example": "contains",
                                                                "enum": [
                                                                    "contains",
                                                                    "not_contains"
                                                                ]
                                                            },
                                                            "value": {
                                                                "description": "A word or sentence to check in the response body",
                                                                "type": "string",
                                                                "example": "Hello, World!",
                                                                "maxLength": 150,
                                                                "minLength": 1
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                ]
                                            }
                                        },
                                        "incident_confirmations": {
                                            "description": "Number of uninterrupted failed checks required to create an incident",
                                            "type": "integer",
                                            "example": 1,
                                            "default": 3,
                                            "enum": [
                                                1,
                                                2,
                                                3,
                                                4,
                                                5
                                            ]
                                        },
                                        "recovery_confirmations": {
                                            "description": "Number of uninterrupted successful checks required to resolve an incident",
                                            "type": "integer",
                                            "example": 1,
                                            "default": 3,
                                            "enum": [
                                                1,
                                                2,
                                                3,
                                                4,
                                                5
                                            ]
                                        },
                                        "region_threshold": {
                                            "description": "Number of regions that must fail before an incident is confirmed, cannot exceed the number of selected regions",
                                            "type": "integer",
                                            "example": 1,
                                            "default": 1,
                                            "maximum": 10,
                                            "minimum": 1
                                        },
                                        "regions": {
                                            "description": "List of regions where monitoring checks are performed",
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Uptime.Monitor.RegionEnum"
                                            },
                                            "maxItems": 10,
                                            "minItems": 1
                                        },
                                        "tags": {
                                            "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "string",
                                                "example": "environment:production",
                                                "maxLength": 100,
                                                "minLength": 1
                                            },
                                            "maxItems": 20
                                        },
                                        "last_checked_at": {
                                            "description": "Date of the last performed check with a 30s accuracy",
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "date-time"
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "name",
                                        "protocol",
                                        "request",
                                        "regions"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Monitors"
                ],
                "summary": "Delete a monitor",
                "description": "Delete a monitor by ID",
                "operationId": "deleteUptimeMonitor",
                "parameters": [
                    {
                        "name": "monitorId",
                        "in": "path",
                        "description": "ID of the monitor to delete",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success, monitor deleted",
                        "content": {}
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            }
        },
        "/uptime/monitors/{monitorId}/pause": {
            "post": {
                "tags": [
                    "Monitors"
                ],
                "summary": "Pause a monitor",
                "description": "Pause a monitor by ID",
                "operationId": "pauseUptimeMonitor",
                "parameters": [
                    {
                        "name": "monitorId",
                        "in": "path",
                        "description": "ID of the monitor to pause",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success, monitor paused",
                        "content": {}
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            }
        },
        "/uptime/monitors/{monitorId}/resume": {
            "post": {
                "tags": [
                    "Monitors"
                ],
                "summary": "Resume a monitor",
                "description": "Resume a monitor by ID",
                "operationId": "resumeUptimeMonitor",
                "parameters": [
                    {
                        "name": "monitorId",
                        "in": "path",
                        "description": "ID of the monitor to resume",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success, monitor resumed",
                        "content": {}
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            }
        },
        "/uptime/monitors/{monitorId}/report": {
            "get": {
                "tags": [
                    "Monitors"
                ],
                "summary": "Get a monitor report",
                "description": "Get uptime statistics for a single monitor by ID in the selected time window of up to 1 year",
                "operationId": "getUptimeMonitorReport",
                "parameters": [
                    {
                        "name": "monitorId",
                        "in": "path",
                        "description": "ID of the monitor to report on",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "from",
                        "in": "query",
                        "description": "Start of the reporting window, defaults to 30 days ago. Must be in the past, required when `to` is provided.",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date-time",
                            "example": "2026-04-01T00:00:00Z"
                        }
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "description": "End of the reporting window, defaults to now. Must be after `from` and not in the future, required when `from` is provided.",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date-time",
                            "example": "2026-04-30T23:59:59Z"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, monitor report retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "id": {
                                            "description": "Monitor ID",
                                            "type": "integer",
                                            "example": 12
                                        },
                                        "name": {
                                            "description": "Monitor name",
                                            "type": "string",
                                            "example": "Website"
                                        },
                                        "incident_count": {
                                            "description": "Number of incidents affecting this monitor in the selected range",
                                            "type": "integer",
                                            "example": 2
                                        },
                                        "downtime": {
                                            "description": "Total downtime for this monitor in seconds",
                                            "type": "integer",
                                            "example": 1500
                                        },
                                        "availability": {
                                            "description": "Availability for this monitor in the selected range, as a percentage",
                                            "type": "number",
                                            "format": "float",
                                            "example": 99.944
                                        },
                                        "mttr": {
                                            "description": "Mean time to recovery (MTTR) for this monitor, in seconds",
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "example": 750
                                        },
                                        "mtbf": {
                                            "description": "Mean time between failures (MTBF) for this monitor, in seconds",
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "example": 43200
                                        },
                                        "highest_incident_impact": {
                                            "$ref": "#/components/schemas/Uptime.Incident.ImpactEnum",
                                            "description": "Highest impact level observed for this monitor in the selected range"
                                        },
                                        "incidents": {
                                            "description": "Incidents that affected this monitor in the selected range",
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "project_id": {
                                                        "description": "Parent project ID",
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "type": {
                                                        "$ref": "#/components/schemas/Uptime.Incident.TypeEnum",
                                                        "description": "Incident type"
                                                    },
                                                    "slug": {
                                                        "description": "Incident unique slug name",
                                                        "type": "string",
                                                        "example": "APP-123"
                                                    },
                                                    "impact": {
                                                        "$ref": "#/components/schemas/Uptime.Incident.ImpactEnum",
                                                        "description": "Incident impact"
                                                    },
                                                    "state": {
                                                        "$ref": "#/components/schemas/Uptime.Incident.StateEnum",
                                                        "description": "Incident state"
                                                    },
                                                    "status": {
                                                        "$ref": "#/components/schemas/Uptime.Incident.StatusEnum",
                                                        "description": "Incident status"
                                                    },
                                                    "title": {
                                                        "description": "Incident title",
                                                        "type": "string",
                                                        "example": "Service is not working as expected",
                                                        "maxLength": 250,
                                                        "minLength": 1
                                                    },
                                                    "description": {
                                                        "description": "Description of the error that caused the incident",
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "example": "The server answered with an unexpected status code: 503.",
                                                        "maxLength": 2000,
                                                        "minLength": 1
                                                    },
                                                    "exclude_from_downtime": {
                                                        "description": "Flag to exclude the incident from downtime calculations",
                                                        "type": "boolean",
                                                        "example": false
                                                    },
                                                    "incident_at": {
                                                        "description": "Date of incident confirmation, defaults to the current date on creation. Must be within the last year and no more than 10 minutes in the future.",
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "date-time"
                                                    },
                                                    "recovery_at": {
                                                        "description": "Date of incident recovery. Must be after `incident_at`, within the last year and no more than 10 minutes in the future. Cannot be removed once the incident is recovered.",
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "date-time"
                                                    },
                                                    "monitors": {
                                                        "description": "List of monitors linked to the incident",
                                                        "type": "array",
                                                        "items": {
                                                            "type": "integer"
                                                        },
                                                        "example": [
                                                            1,
                                                            2,
                                                            3
                                                        ],
                                                        "maxItems": 100,
                                                        "minItems": 1
                                                    },
                                                    "tags": {
                                                        "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                                        "type": [
                                                            "array",
                                                            "null"
                                                        ],
                                                        "items": {
                                                            "type": "string",
                                                            "example": "environment:production",
                                                            "maxLength": 100,
                                                            "minLength": 1
                                                        },
                                                        "maxItems": 20
                                                    },
                                                    "created_at": {
                                                        "description": "Date of creation for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "updated_at": {
                                                        "description": "Date of last update for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    }
                                                },
                                                "required": [
                                                    "impact",
                                                    "title",
                                                    "exclude_from_downtime",
                                                    "monitors"
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            }
        },
        "/uptime/reports": {
            "get": {
                "tags": [
                    "Reports"
                ],
                "summary": "Get report",
                "description": "Get aggregated uptime statistics for all monitors of the project in the selected time window of up to 1 year",
                "operationId": "getUptimeReport",
                "parameters": [
                    {
                        "name": "from",
                        "in": "query",
                        "description": "Start of the reporting window, defaults to 30 days ago. Must be in the past, required when `to` is provided.",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date-time",
                            "example": "2026-04-01T00:00:00Z"
                        }
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "description": "End of the reporting window, defaults to now. Must be after `from` and not in the future, required when `from` is provided.",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date-time",
                            "example": "2026-04-30T23:59:59Z"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, report retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "downtime": {
                                            "description": "Total downtime across all monitors in seconds",
                                            "type": "integer",
                                            "example": 2940
                                        },
                                        "availability": {
                                            "description": "Mean monitor availability across the selected range, as a percentage",
                                            "type": "number",
                                            "format": "float",
                                            "example": 99.9634
                                        },
                                        "min_availability": {
                                            "description": "Lowest monitor availability in the selected range, as a percentage",
                                            "type": "number",
                                            "format": "float",
                                            "example": 99.9125
                                        },
                                        "max_availability": {
                                            "description": "Highest monitor availability in the selected range, as a percentage",
                                            "type": "number",
                                            "format": "float",
                                            "example": 100
                                        },
                                        "mttr": {
                                            "description": "Mean time to recovery (MTTR) average for monitors with downtime, in seconds",
                                            "type": [
                                                "number",
                                                "null"
                                            ],
                                            "format": "float",
                                            "example": 735
                                        },
                                        "mtbf": {
                                            "description": "Mean time between failures (MTBF) average for monitors with downtime, in seconds",
                                            "type": [
                                                "number",
                                                "null"
                                            ],
                                            "format": "float",
                                            "example": 43200
                                        },
                                        "highest_incident_impact": {
                                            "$ref": "#/components/schemas/Uptime.Incident.ImpactEnum",
                                            "description": "Highest impact level observed among incidents in the selected range"
                                        },
                                        "report_start_at": {
                                            "description": "Effective start of the generated report window",
                                            "type": "string",
                                            "format": "date-time",
                                            "example": "2026-04-01T00:00:00Z"
                                        },
                                        "report_end_at": {
                                            "description": "Effective end of the generated report window",
                                            "type": "string",
                                            "format": "date-time",
                                            "example": "2026-04-30T23:59:59Z"
                                        },
                                        "monitors": {
                                            "description": "Per-monitor statistics for all monitors included in the report",
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "description": "Monitor ID",
                                                        "type": "integer",
                                                        "example": 12
                                                    },
                                                    "name": {
                                                        "description": "Monitor name",
                                                        "type": "string",
                                                        "example": "Website"
                                                    },
                                                    "incident_count": {
                                                        "description": "Number of incidents affecting this monitor in the selected range",
                                                        "type": "integer",
                                                        "example": 2
                                                    },
                                                    "downtime": {
                                                        "description": "Total downtime for this monitor in seconds",
                                                        "type": "integer",
                                                        "example": 1500
                                                    },
                                                    "availability": {
                                                        "description": "Availability for this monitor in the selected range, as a percentage",
                                                        "type": "number",
                                                        "format": "float",
                                                        "example": 99.944
                                                    },
                                                    "mttr": {
                                                        "description": "Mean time to recovery (MTTR) for this monitor, in seconds",
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ],
                                                        "example": 750
                                                    },
                                                    "mtbf": {
                                                        "description": "Mean time between failures (MTBF) for this monitor, in seconds",
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ],
                                                        "example": 43200
                                                    },
                                                    "highest_incident_impact": {
                                                        "$ref": "#/components/schemas/Uptime.Incident.ImpactEnum",
                                                        "description": "Highest impact level observed for this monitor in the selected range"
                                                    },
                                                    "incidents": {
                                                        "description": "Incidents that affected this monitor in the selected range",
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer",
                                                                    "example": 1
                                                                },
                                                                "project_id": {
                                                                    "description": "Parent project ID",
                                                                    "type": "integer",
                                                                    "example": 1
                                                                },
                                                                "type": {
                                                                    "$ref": "#/components/schemas/Uptime.Incident.TypeEnum",
                                                                    "description": "Incident type"
                                                                },
                                                                "slug": {
                                                                    "description": "Incident unique slug name",
                                                                    "type": "string",
                                                                    "example": "APP-123"
                                                                },
                                                                "impact": {
                                                                    "$ref": "#/components/schemas/Uptime.Incident.ImpactEnum",
                                                                    "description": "Incident impact"
                                                                },
                                                                "state": {
                                                                    "$ref": "#/components/schemas/Uptime.Incident.StateEnum",
                                                                    "description": "Incident state"
                                                                },
                                                                "status": {
                                                                    "$ref": "#/components/schemas/Uptime.Incident.StatusEnum",
                                                                    "description": "Incident status"
                                                                },
                                                                "title": {
                                                                    "description": "Incident title",
                                                                    "type": "string",
                                                                    "example": "Service is not working as expected",
                                                                    "maxLength": 250,
                                                                    "minLength": 1
                                                                },
                                                                "description": {
                                                                    "description": "Description of the error that caused the incident",
                                                                    "type": [
                                                                        "string",
                                                                        "null"
                                                                    ],
                                                                    "example": "The server answered with an unexpected status code: 503.",
                                                                    "maxLength": 2000,
                                                                    "minLength": 1
                                                                },
                                                                "exclude_from_downtime": {
                                                                    "description": "Flag to exclude the incident from downtime calculations",
                                                                    "type": "boolean",
                                                                    "example": false
                                                                },
                                                                "incident_at": {
                                                                    "description": "Date of incident confirmation, defaults to the current date on creation. Must be within the last year and no more than 10 minutes in the future.",
                                                                    "type": [
                                                                        "string",
                                                                        "null"
                                                                    ],
                                                                    "format": "date-time"
                                                                },
                                                                "recovery_at": {
                                                                    "description": "Date of incident recovery. Must be after `incident_at`, within the last year and no more than 10 minutes in the future. Cannot be removed once the incident is recovered.",
                                                                    "type": [
                                                                        "string",
                                                                        "null"
                                                                    ],
                                                                    "format": "date-time"
                                                                },
                                                                "monitors": {
                                                                    "description": "List of monitors linked to the incident",
                                                                    "type": "array",
                                                                    "items": {
                                                                        "type": "integer"
                                                                    },
                                                                    "example": [
                                                                        1,
                                                                        2,
                                                                        3
                                                                    ],
                                                                    "maxItems": 100,
                                                                    "minItems": 1
                                                                },
                                                                "tags": {
                                                                    "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                                                    "type": [
                                                                        "array",
                                                                        "null"
                                                                    ],
                                                                    "items": {
                                                                        "type": "string",
                                                                        "example": "environment:production",
                                                                        "maxLength": 100,
                                                                        "minLength": 1
                                                                    },
                                                                    "maxItems": 20
                                                                },
                                                                "created_at": {
                                                                    "description": "Date of creation for the entity",
                                                                    "type": "string",
                                                                    "format": "date-time"
                                                                },
                                                                "updated_at": {
                                                                    "description": "Date of last update for the entity",
                                                                    "type": "string",
                                                                    "format": "date-time"
                                                                }
                                                            },
                                                            "required": [
                                                                "impact",
                                                                "title",
                                                                "exclude_from_downtime",
                                                                "monitors"
                                                            ]
                                                        }
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    }
                }
            }
        },
        "/uptime/status-pages": {
            "get": {
                "tags": [
                    "Status Pages"
                ],
                "summary": "List status pages",
                "description": "Get a paginated list of status pages",
                "operationId": "getUptimeStatusPages",
                "parameters": [
                    {
                        "name": "tag",
                        "in": "query",
                        "description": "Filter status pages by tag. Can be specified multiple times to only return status pages having all the given tags.",
                        "required": false,
                        "style": "form",
                        "explode": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, status pages retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "description": "Status page ID",
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "project_id": {
                                                        "description": "Parent project ID",
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "is_private": {
                                                        "description": "Whether access to the status page is restricted by a password, a secret token or an IP allowlist",
                                                        "type": "boolean",
                                                        "example": false
                                                    },
                                                    "access_password_enabled": {
                                                        "description": "Whether the status page is protected by a password. Requires an active Scale plan subscription.",
                                                        "type": "boolean",
                                                        "example": false
                                                    },
                                                    "access_token_enabled": {
                                                        "description": "Whether the status page is protected by a secret token. Requires an active Scale plan subscription.",
                                                        "type": "boolean",
                                                        "example": false
                                                    },
                                                    "name": {
                                                        "description": "Status page name",
                                                        "type": "string",
                                                        "example": "Phare status",
                                                        "maxLength": 30,
                                                        "minLength": 2
                                                    },
                                                    "subdomain": {
                                                        "description": "Subdomain name for the status page, hosted on a phare.io domain: {subdomain}.status.phare.io",
                                                        "type": "string",
                                                        "example": "example",
                                                        "maxLength": 30,
                                                        "minLength": 2
                                                    },
                                                    "domain": {
                                                        "description": "Custom domain name for the status page",
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "example": "status.example.com",
                                                        "maxLength": 60,
                                                        "minLength": 4
                                                    },
                                                    "title": {
                                                        "description": "Status page HTML title",
                                                        "type": "string",
                                                        "example": "Phare status",
                                                        "maxLength": 150,
                                                        "minLength": 2
                                                    },
                                                    "description": {
                                                        "description": "Status page HTML description",
                                                        "type": "string",
                                                        "example": "Status page of phare.io",
                                                        "maxLength": 250,
                                                        "minLength": 2
                                                    },
                                                    "search_engine_indexed": {
                                                        "description": "Whether search engines are allowed to index the page",
                                                        "type": "boolean",
                                                        "example": true
                                                    },
                                                    "website_url": {
                                                        "description": "URL to redirect users clicking the status page logo",
                                                        "type": "string",
                                                        "example": "https://phare.io",
                                                        "maxLength": 250
                                                    },
                                                    "color_scheme": {
                                                        "description": "Choose the available color schemes for the status page",
                                                        "type": "string",
                                                        "example": "all",
                                                        "default": "all",
                                                        "enum": [
                                                            "all",
                                                            "dark",
                                                            "light"
                                                        ]
                                                    },
                                                    "theme": {
                                                        "description": "Theme settings to customize the status page",
                                                        "properties": {
                                                            "light": {
                                                                "description": "Light theme colors, as lowercase 6-digit hexadecimal codes",
                                                                "properties": {
                                                                    "operational": {
                                                                        "type": "string",
                                                                        "example": "#16a34a"
                                                                    },
                                                                    "degraded_performance": {
                                                                        "type": "string",
                                                                        "example": "#fbbf24"
                                                                    },
                                                                    "partial_outage": {
                                                                        "type": "string",
                                                                        "example": "#f59e0b"
                                                                    },
                                                                    "major_outage": {
                                                                        "type": "string",
                                                                        "example": "#ef4444"
                                                                    },
                                                                    "maintenance": {
                                                                        "type": "string",
                                                                        "example": "#6366f1"
                                                                    },
                                                                    "empty": {
                                                                        "type": "string",
                                                                        "example": "#d3d3d3"
                                                                    },
                                                                    "background": {
                                                                        "type": "string",
                                                                        "example": "#ffffff"
                                                                    },
                                                                    "border": {
                                                                        "type": "string",
                                                                        "example": "#e5e5e5"
                                                                    },
                                                                    "foreground": {
                                                                        "type": "string",
                                                                        "example": "#000000"
                                                                    },
                                                                    "foreground_muted": {
                                                                        "type": "string",
                                                                        "example": "#737373"
                                                                    },
                                                                    "background_card": {
                                                                        "type": "string",
                                                                        "example": "#fafafa"
                                                                    }
                                                                },
                                                                "type": "object"
                                                            },
                                                            "dark": {
                                                                "description": "Dark theme colors, as lowercase 6-digit hexadecimal codes",
                                                                "properties": {
                                                                    "operational": {
                                                                        "type": "string",
                                                                        "example": "#16a34a"
                                                                    },
                                                                    "degraded_performance": {
                                                                        "type": "string",
                                                                        "example": "#fbbf24"
                                                                    },
                                                                    "partial_outage": {
                                                                        "type": "string",
                                                                        "example": "#f59e0b"
                                                                    },
                                                                    "major_outage": {
                                                                        "type": "string",
                                                                        "example": "#ef4444"
                                                                    },
                                                                    "maintenance": {
                                                                        "type": "string",
                                                                        "example": "#6366f1"
                                                                    },
                                                                    "empty": {
                                                                        "type": "string",
                                                                        "example": "#d3d3d3"
                                                                    },
                                                                    "background": {
                                                                        "type": "string",
                                                                        "example": "#111111"
                                                                    },
                                                                    "border": {
                                                                        "type": "string",
                                                                        "example": "#3f3f46"
                                                                    },
                                                                    "foreground": {
                                                                        "type": "string",
                                                                        "example": "#ffffff"
                                                                    },
                                                                    "foreground_muted": {
                                                                        "type": "string",
                                                                        "example": "#959595"
                                                                    },
                                                                    "background_card": {
                                                                        "type": "string",
                                                                        "example": "#1a1a1a"
                                                                    }
                                                                },
                                                                "type": "object"
                                                            },
                                                            "rounded": {
                                                                "type": "boolean",
                                                                "example": true,
                                                                "default": true
                                                            },
                                                            "border_width": {
                                                                "type": "integer",
                                                                "example": 2,
                                                                "default": 1,
                                                                "maximum": 3,
                                                                "minimum": 0
                                                            }
                                                        },
                                                        "type": "object"
                                                    },
                                                    "components": {
                                                        "description": "List of components to show on the status page. A monitor can only be shown once on a status page.",
                                                        "type": "array",
                                                        "items": {
                                                            "oneOf": [
                                                                {
                                                                    "title": "Monitor component",
                                                                    "required": [
                                                                        "componentable_type",
                                                                        "componentable_id"
                                                                    ],
                                                                    "properties": {
                                                                        "componentable_type": {
                                                                            "type": "string",
                                                                            "enum": [
                                                                                "uptime/monitor"
                                                                            ]
                                                                        },
                                                                        "componentable_id": {
                                                                            "description": "ID of the monitor to show",
                                                                            "type": "integer"
                                                                        },
                                                                        "display_name": {
                                                                            "description": "Custom display name of the monitor on the status page",
                                                                            "type": [
                                                                                "string",
                                                                                "null"
                                                                            ],
                                                                            "example": "Main Website",
                                                                            "default": null,
                                                                            "maxLength": 45,
                                                                            "minLength": 1
                                                                        }
                                                                    },
                                                                    "type": "object"
                                                                },
                                                                {
                                                                    "title": "Group component",
                                                                    "required": [
                                                                        "componentable_type",
                                                                        "name",
                                                                        "components"
                                                                    ],
                                                                    "properties": {
                                                                        "componentable_type": {
                                                                            "type": "string",
                                                                            "enum": [
                                                                                "uptime/group"
                                                                            ]
                                                                        },
                                                                        "name": {
                                                                            "description": "Name of the group shown on the status page. Must be unique within the status page (case-insensitive).",
                                                                            "type": "string",
                                                                            "maxLength": 100,
                                                                            "minLength": 1
                                                                        },
                                                                        "is_expanded": {
                                                                            "description": "Whether the group components are expanded by default",
                                                                            "type": "boolean",
                                                                            "example": false,
                                                                            "default": false
                                                                        },
                                                                        "components": {
                                                                            "description": "List of monitor components shown inside the group",
                                                                            "type": "array",
                                                                            "items": {
                                                                                "required": [
                                                                                    "componentable_type",
                                                                                    "componentable_id"
                                                                                ],
                                                                                "properties": {
                                                                                    "componentable_type": {
                                                                                        "type": "string",
                                                                                        "enum": [
                                                                                            "uptime/monitor"
                                                                                        ]
                                                                                    },
                                                                                    "componentable_id": {
                                                                                        "description": "ID of the monitor to show",
                                                                                        "type": "integer"
                                                                                    },
                                                                                    "display_name": {
                                                                                        "description": "Custom display name of the monitor on the status page",
                                                                                        "type": [
                                                                                            "string",
                                                                                            "null"
                                                                                        ],
                                                                                        "example": "Main Website",
                                                                                        "default": null,
                                                                                        "maxLength": 45,
                                                                                        "minLength": 1
                                                                                    }
                                                                                },
                                                                                "type": "object"
                                                                            },
                                                                            "maxItems": 100,
                                                                            "minItems": 1
                                                                        }
                                                                    },
                                                                    "type": "object"
                                                                }
                                                            ]
                                                        },
                                                        "maxItems": 100,
                                                        "minItems": 1
                                                    },
                                                    "timeframe": {
                                                        "description": "Number of days of status and incident history to display.",
                                                        "type": "integer",
                                                        "example": 90,
                                                        "enum": [
                                                            30,
                                                            60,
                                                            90
                                                        ]
                                                    },
                                                    "show_response_times": {
                                                        "description": "Whether to display response times for monitors on the status page",
                                                        "type": "boolean",
                                                        "example": true,
                                                        "default": true
                                                    },
                                                    "timezone": {
                                                        "description": "Timezone used to split the status page timeline into days and to display all dates on the status page and in feeds. Must be a canonical IANA timezone identifier (case-sensitive, e.g. `Europe/Paris`, `America/New_York` or `UTC`).",
                                                        "type": "string",
                                                        "example": "Europe/Paris",
                                                        "default": "UTC"
                                                    },
                                                    "subscription_channels": {
                                                        "description": "List of active subscription channels",
                                                        "type": "array",
                                                        "items": {
                                                            "$ref": "#/components/schemas/Uptime.StatusPage.SubscriptionChannelEnum"
                                                        },
                                                        "maxItems": 3,
                                                        "minItems": 0
                                                    },
                                                    "access_ips": {
                                                        "description": "List of IP addresses or CIDR ranges allowed to access the status page. Requires an active Scale plan subscription.",
                                                        "type": [
                                                            "array",
                                                            "null"
                                                        ],
                                                        "items": {
                                                            "type": "string",
                                                            "example": "45.129.56.0/24"
                                                        },
                                                        "maxItems": 50,
                                                        "minItems": 1
                                                    },
                                                    "tags": {
                                                        "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                                        "type": [
                                                            "array",
                                                            "null"
                                                        ],
                                                        "items": {
                                                            "type": "string",
                                                            "example": "environment:production",
                                                            "maxLength": 100,
                                                            "minLength": 1
                                                        },
                                                        "maxItems": 20
                                                    },
                                                    "created_at": {
                                                        "description": "Date of creation for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "updated_at": {
                                                        "description": "Date of last update for the entity",
                                                        "type": "string",
                                                        "format": "date-time"
                                                    }
                                                },
                                                "required": [
                                                    "name",
                                                    "subdomain",
                                                    "title",
                                                    "description",
                                                    "search_engine_indexed",
                                                    "website_url",
                                                    "components",
                                                    "timeframe"
                                                ]
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/meta"
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/links"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                }
            },
            "post": {
                "tags": [
                    "Status Pages"
                ],
                "summary": "Create a status page",
                "description": "Create a status page",
                "operationId": "createUptimeStatusPage",
                "requestBody": {
                    "description": "Status page request, sent as JSON or as `multipart/form-data` to upload logos and favicons. With `multipart/form-data`, booleans must be sent as `1` or `0` and nested fields with the bracket notation, e.g. `components[0][componentable_id]`.",
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "description": "Status page name",
                                        "type": "string",
                                        "example": "Phare status",
                                        "maxLength": 30,
                                        "minLength": 2
                                    },
                                    "subdomain": {
                                        "description": "Subdomain name for the status page, hosted on a phare.io domain: {subdomain}.status.phare.io",
                                        "type": "string",
                                        "example": "example",
                                        "maxLength": 30,
                                        "minLength": 2
                                    },
                                    "domain": {
                                        "description": "Custom domain name for the status page",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "example": "status.example.com",
                                        "maxLength": 60,
                                        "minLength": 4
                                    },
                                    "title": {
                                        "description": "Status page HTML title",
                                        "type": "string",
                                        "example": "Phare status",
                                        "maxLength": 150,
                                        "minLength": 2
                                    },
                                    "description": {
                                        "description": "Status page HTML description",
                                        "type": "string",
                                        "example": "Status page of phare.io",
                                        "maxLength": 250,
                                        "minLength": 2
                                    },
                                    "search_engine_indexed": {
                                        "description": "Whether search engines are allowed to index the page",
                                        "type": "boolean",
                                        "example": true
                                    },
                                    "website_url": {
                                        "description": "URL to redirect users clicking the status page logo",
                                        "type": "string",
                                        "example": "https://phare.io",
                                        "maxLength": 250
                                    },
                                    "color_scheme": {
                                        "description": "Choose the available color schemes for the status page",
                                        "type": "string",
                                        "example": "all",
                                        "default": "all",
                                        "enum": [
                                            "all",
                                            "dark",
                                            "light"
                                        ]
                                    },
                                    "theme": {
                                        "description": "Theme settings to customize the status page",
                                        "properties": {
                                            "light": {
                                                "description": "Light theme colors, as lowercase 6-digit hexadecimal codes",
                                                "properties": {
                                                    "operational": {
                                                        "type": "string",
                                                        "example": "#16a34a"
                                                    },
                                                    "degraded_performance": {
                                                        "type": "string",
                                                        "example": "#fbbf24"
                                                    },
                                                    "partial_outage": {
                                                        "type": "string",
                                                        "example": "#f59e0b"
                                                    },
                                                    "major_outage": {
                                                        "type": "string",
                                                        "example": "#ef4444"
                                                    },
                                                    "maintenance": {
                                                        "type": "string",
                                                        "example": "#6366f1"
                                                    },
                                                    "empty": {
                                                        "type": "string",
                                                        "example": "#d3d3d3"
                                                    },
                                                    "background": {
                                                        "type": "string",
                                                        "example": "#ffffff"
                                                    },
                                                    "border": {
                                                        "type": "string",
                                                        "example": "#e5e5e5"
                                                    },
                                                    "foreground": {
                                                        "type": "string",
                                                        "example": "#000000"
                                                    },
                                                    "foreground_muted": {
                                                        "type": "string",
                                                        "example": "#737373"
                                                    },
                                                    "background_card": {
                                                        "type": "string",
                                                        "example": "#fafafa"
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            "dark": {
                                                "description": "Dark theme colors, as lowercase 6-digit hexadecimal codes",
                                                "properties": {
                                                    "operational": {
                                                        "type": "string",
                                                        "example": "#16a34a"
                                                    },
                                                    "degraded_performance": {
                                                        "type": "string",
                                                        "example": "#fbbf24"
                                                    },
                                                    "partial_outage": {
                                                        "type": "string",
                                                        "example": "#f59e0b"
                                                    },
                                                    "major_outage": {
                                                        "type": "string",
                                                        "example": "#ef4444"
                                                    },
                                                    "maintenance": {
                                                        "type": "string",
                                                        "example": "#6366f1"
                                                    },
                                                    "empty": {
                                                        "type": "string",
                                                        "example": "#d3d3d3"
                                                    },
                                                    "background": {
                                                        "type": "string",
                                                        "example": "#111111"
                                                    },
                                                    "border": {
                                                        "type": "string",
                                                        "example": "#3f3f46"
                                                    },
                                                    "foreground": {
                                                        "type": "string",
                                                        "example": "#ffffff"
                                                    },
                                                    "foreground_muted": {
                                                        "type": "string",
                                                        "example": "#959595"
                                                    },
                                                    "background_card": {
                                                        "type": "string",
                                                        "example": "#1a1a1a"
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            "rounded": {
                                                "type": "boolean",
                                                "example": true,
                                                "default": true
                                            },
                                            "border_width": {
                                                "type": "integer",
                                                "example": 2,
                                                "default": 1,
                                                "maximum": 3,
                                                "minimum": 0
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "components": {
                                        "description": "List of components to show on the status page. A monitor can only be shown once on a status page.",
                                        "type": "array",
                                        "items": {
                                            "oneOf": [
                                                {
                                                    "title": "Monitor component",
                                                    "required": [
                                                        "componentable_type",
                                                        "componentable_id"
                                                    ],
                                                    "properties": {
                                                        "componentable_type": {
                                                            "type": "string",
                                                            "enum": [
                                                                "uptime/monitor"
                                                            ]
                                                        },
                                                        "componentable_id": {
                                                            "description": "ID of the monitor to show",
                                                            "type": "integer"
                                                        },
                                                        "display_name": {
                                                            "description": "Custom display name of the monitor on the status page",
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "example": "Main Website",
                                                            "default": null,
                                                            "maxLength": 45,
                                                            "minLength": 1
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                {
                                                    "title": "Group component",
                                                    "required": [
                                                        "componentable_type",
                                                        "name",
                                                        "components"
                                                    ],
                                                    "properties": {
                                                        "componentable_type": {
                                                            "type": "string",
                                                            "enum": [
                                                                "uptime/group"
                                                            ]
                                                        },
                                                        "name": {
                                                            "description": "Name of the group shown on the status page. Must be unique within the status page (case-insensitive).",
                                                            "type": "string",
                                                            "maxLength": 100,
                                                            "minLength": 1
                                                        },
                                                        "is_expanded": {
                                                            "description": "Whether the group components are expanded by default",
                                                            "type": "boolean",
                                                            "example": false,
                                                            "default": false
                                                        },
                                                        "components": {
                                                            "description": "List of monitor components shown inside the group",
                                                            "type": "array",
                                                            "items": {
                                                                "required": [
                                                                    "componentable_type",
                                                                    "componentable_id"
                                                                ],
                                                                "properties": {
                                                                    "componentable_type": {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "uptime/monitor"
                                                                        ]
                                                                    },
                                                                    "componentable_id": {
                                                                        "description": "ID of the monitor to show",
                                                                        "type": "integer"
                                                                    },
                                                                    "display_name": {
                                                                        "description": "Custom display name of the monitor on the status page",
                                                                        "type": [
                                                                            "string",
                                                                            "null"
                                                                        ],
                                                                        "example": "Main Website",
                                                                        "default": null,
                                                                        "maxLength": 45,
                                                                        "minLength": 1
                                                                    }
                                                                },
                                                                "type": "object"
                                                            },
                                                            "maxItems": 100,
                                                            "minItems": 1
                                                        }
                                                    },
                                                    "type": "object"
                                                }
                                            ]
                                        },
                                        "maxItems": 100,
                                        "minItems": 1
                                    },
                                    "timeframe": {
                                        "description": "Number of days of status and incident history to display.",
                                        "type": "integer",
                                        "example": 90,
                                        "enum": [
                                            30,
                                            60,
                                            90
                                        ]
                                    },
                                    "show_response_times": {
                                        "description": "Whether to display response times for monitors on the status page",
                                        "type": "boolean",
                                        "example": true,
                                        "default": true
                                    },
                                    "timezone": {
                                        "description": "Timezone used to split the status page timeline into days and to display all dates on the status page and in feeds. Must be a canonical IANA timezone identifier (case-sensitive, e.g. `Europe/Paris`, `America/New_York` or `UTC`).",
                                        "type": "string",
                                        "example": "Europe/Paris",
                                        "default": "UTC"
                                    },
                                    "subscription_channels": {
                                        "description": "List of active subscription channels",
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/Uptime.StatusPage.SubscriptionChannelEnum"
                                        },
                                        "maxItems": 3,
                                        "minItems": 0
                                    },
                                    "access_ips": {
                                        "description": "List of IP addresses or CIDR ranges allowed to access the status page. Requires an active Scale plan subscription.",
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "example": "45.129.56.0/24"
                                        },
                                        "maxItems": 50,
                                        "minItems": 1
                                    },
                                    "tags": {
                                        "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "example": "environment:production",
                                            "maxLength": 100,
                                            "minLength": 1
                                        },
                                        "maxItems": 20
                                    },
                                    "logo_light": {
                                        "description": "Light theme logo of the status page (accepted formats: jpeg / png / svg, max size: 1MB). Files can only be uploaded with a `multipart/form-data` request, send `false` to remove the logo.",
                                        "anyOf": [
                                            {
                                                "description": "Image file to upload",
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "binary"
                                            },
                                            {
                                                "description": "Remove the logo",
                                                "type": "boolean",
                                                "enum": [
                                                    false
                                                ]
                                            }
                                        ]
                                    },
                                    "logo_dark": {
                                        "description": "Dark theme logo of the status page (accepted formats: jpeg / png / svg, max size: 1MB). Files can only be uploaded with a `multipart/form-data` request, send `false` to remove the logo.",
                                        "anyOf": [
                                            {
                                                "description": "Image file to upload",
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "binary"
                                            },
                                            {
                                                "description": "Remove the logo",
                                                "type": "boolean",
                                                "enum": [
                                                    false
                                                ]
                                            }
                                        ]
                                    },
                                    "favicon_light": {
                                        "description": "Light theme favicon of the status page (accepted formats: jpeg / png / svg, max size: 1MB, square image). Files can only be uploaded with a `multipart/form-data` request, send `false` to remove the favicon.",
                                        "anyOf": [
                                            {
                                                "description": "Image file to upload",
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "binary"
                                            },
                                            {
                                                "description": "Remove the favicon",
                                                "type": "boolean",
                                                "enum": [
                                                    false
                                                ]
                                            }
                                        ]
                                    },
                                    "favicon_dark": {
                                        "description": "Dark theme favicon of the status page (accepted formats: jpeg / png / svg, max size: 1MB, square image). Files can only be uploaded with a `multipart/form-data` request, send `false` to remove the favicon.",
                                        "anyOf": [
                                            {
                                                "description": "Image file to upload",
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "binary"
                                            },
                                            {
                                                "description": "Remove the favicon",
                                                "type": "boolean",
                                                "enum": [
                                                    false
                                                ]
                                            }
                                        ]
                                    },
                                    "access_token": {
                                        "description": "Token to restrict access to the status page. Requires an active Scale plan subscription.",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "example": "secret",
                                        "maxLength": 500,
                                        "minLength": 8
                                    },
                                    "access_password": {
                                        "description": "Password to restrict access to the status page. Requires an active Scale plan subscription.",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "example": "secret",
                                        "maxLength": 500,
                                        "minLength": 8
                                    }
                                },
                                "required": [
                                    "name",
                                    "subdomain",
                                    "title",
                                    "description",
                                    "search_engine_indexed",
                                    "website_url",
                                    "components",
                                    "timeframe"
                                ]
                            },
                            "encoding": {
                                "theme": {
                                    "style": "deepObject",
                                    "explode": true
                                },
                                "components": {
                                    "style": "deepObject",
                                    "explode": true
                                },
                                "subscription_channels": {
                                    "style": "deepObject",
                                    "explode": true
                                },
                                "access_ips": {
                                    "style": "deepObject",
                                    "explode": true
                                },
                                "tags": {
                                    "style": "deepObject",
                                    "explode": true
                                }
                            }
                        },
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "description": "Status page name",
                                        "type": "string",
                                        "example": "Phare status",
                                        "maxLength": 30,
                                        "minLength": 2
                                    },
                                    "subdomain": {
                                        "description": "Subdomain name for the status page, hosted on a phare.io domain: {subdomain}.status.phare.io",
                                        "type": "string",
                                        "example": "example",
                                        "maxLength": 30,
                                        "minLength": 2
                                    },
                                    "domain": {
                                        "description": "Custom domain name for the status page",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "example": "status.example.com",
                                        "maxLength": 60,
                                        "minLength": 4
                                    },
                                    "title": {
                                        "description": "Status page HTML title",
                                        "type": "string",
                                        "example": "Phare status",
                                        "maxLength": 150,
                                        "minLength": 2
                                    },
                                    "description": {
                                        "description": "Status page HTML description",
                                        "type": "string",
                                        "example": "Status page of phare.io",
                                        "maxLength": 250,
                                        "minLength": 2
                                    },
                                    "search_engine_indexed": {
                                        "description": "Whether search engines are allowed to index the page",
                                        "type": "boolean",
                                        "example": true
                                    },
                                    "website_url": {
                                        "description": "URL to redirect users clicking the status page logo",
                                        "type": "string",
                                        "example": "https://phare.io",
                                        "maxLength": 250
                                    },
                                    "color_scheme": {
                                        "description": "Choose the available color schemes for the status page",
                                        "type": "string",
                                        "example": "all",
                                        "default": "all",
                                        "enum": [
                                            "all",
                                            "dark",
                                            "light"
                                        ]
                                    },
                                    "theme": {
                                        "description": "Theme settings to customize the status page",
                                        "properties": {
                                            "light": {
                                                "description": "Light theme colors, as lowercase 6-digit hexadecimal codes",
                                                "properties": {
                                                    "operational": {
                                                        "type": "string",
                                                        "example": "#16a34a"
                                                    },
                                                    "degraded_performance": {
                                                        "type": "string",
                                                        "example": "#fbbf24"
                                                    },
                                                    "partial_outage": {
                                                        "type": "string",
                                                        "example": "#f59e0b"
                                                    },
                                                    "major_outage": {
                                                        "type": "string",
                                                        "example": "#ef4444"
                                                    },
                                                    "maintenance": {
                                                        "type": "string",
                                                        "example": "#6366f1"
                                                    },
                                                    "empty": {
                                                        "type": "string",
                                                        "example": "#d3d3d3"
                                                    },
                                                    "background": {
                                                        "type": "string",
                                                        "example": "#ffffff"
                                                    },
                                                    "border": {
                                                        "type": "string",
                                                        "example": "#e5e5e5"
                                                    },
                                                    "foreground": {
                                                        "type": "string",
                                                        "example": "#000000"
                                                    },
                                                    "foreground_muted": {
                                                        "type": "string",
                                                        "example": "#737373"
                                                    },
                                                    "background_card": {
                                                        "type": "string",
                                                        "example": "#fafafa"
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            "dark": {
                                                "description": "Dark theme colors, as lowercase 6-digit hexadecimal codes",
                                                "properties": {
                                                    "operational": {
                                                        "type": "string",
                                                        "example": "#16a34a"
                                                    },
                                                    "degraded_performance": {
                                                        "type": "string",
                                                        "example": "#fbbf24"
                                                    },
                                                    "partial_outage": {
                                                        "type": "string",
                                                        "example": "#f59e0b"
                                                    },
                                                    "major_outage": {
                                                        "type": "string",
                                                        "example": "#ef4444"
                                                    },
                                                    "maintenance": {
                                                        "type": "string",
                                                        "example": "#6366f1"
                                                    },
                                                    "empty": {
                                                        "type": "string",
                                                        "example": "#d3d3d3"
                                                    },
                                                    "background": {
                                                        "type": "string",
                                                        "example": "#111111"
                                                    },
                                                    "border": {
                                                        "type": "string",
                                                        "example": "#3f3f46"
                                                    },
                                                    "foreground": {
                                                        "type": "string",
                                                        "example": "#ffffff"
                                                    },
                                                    "foreground_muted": {
                                                        "type": "string",
                                                        "example": "#959595"
                                                    },
                                                    "background_card": {
                                                        "type": "string",
                                                        "example": "#1a1a1a"
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            "rounded": {
                                                "type": "boolean",
                                                "example": true,
                                                "default": true
                                            },
                                            "border_width": {
                                                "type": "integer",
                                                "example": 2,
                                                "default": 1,
                                                "maximum": 3,
                                                "minimum": 0
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "components": {
                                        "description": "List of components to show on the status page. A monitor can only be shown once on a status page.",
                                        "type": "array",
                                        "items": {
                                            "oneOf": [
                                                {
                                                    "title": "Monitor component",
                                                    "required": [
                                                        "componentable_type",
                                                        "componentable_id"
                                                    ],
                                                    "properties": {
                                                        "componentable_type": {
                                                            "type": "string",
                                                            "enum": [
                                                                "uptime/monitor"
                                                            ]
                                                        },
                                                        "componentable_id": {
                                                            "description": "ID of the monitor to show",
                                                            "type": "integer"
                                                        },
                                                        "display_name": {
                                                            "description": "Custom display name of the monitor on the status page",
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "example": "Main Website",
                                                            "default": null,
                                                            "maxLength": 45,
                                                            "minLength": 1
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                {
                                                    "title": "Group component",
                                                    "required": [
                                                        "componentable_type",
                                                        "name",
                                                        "components"
                                                    ],
                                                    "properties": {
                                                        "componentable_type": {
                                                            "type": "string",
                                                            "enum": [
                                                                "uptime/group"
                                                            ]
                                                        },
                                                        "name": {
                                                            "description": "Name of the group shown on the status page. Must be unique within the status page (case-insensitive).",
                                                            "type": "string",
                                                            "maxLength": 100,
                                                            "minLength": 1
                                                        },
                                                        "is_expanded": {
                                                            "description": "Whether the group components are expanded by default",
                                                            "type": "boolean",
                                                            "example": false,
                                                            "default": false
                                                        },
                                                        "components": {
                                                            "description": "List of monitor components shown inside the group",
                                                            "type": "array",
                                                            "items": {
                                                                "required": [
                                                                    "componentable_type",
                                                                    "componentable_id"
                                                                ],
                                                                "properties": {
                                                                    "componentable_type": {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "uptime/monitor"
                                                                        ]
                                                                    },
                                                                    "componentable_id": {
                                                                        "description": "ID of the monitor to show",
                                                                        "type": "integer"
                                                                    },
                                                                    "display_name": {
                                                                        "description": "Custom display name of the monitor on the status page",
                                                                        "type": [
                                                                            "string",
                                                                            "null"
                                                                        ],
                                                                        "example": "Main Website",
                                                                        "default": null,
                                                                        "maxLength": 45,
                                                                        "minLength": 1
                                                                    }
                                                                },
                                                                "type": "object"
                                                            },
                                                            "maxItems": 100,
                                                            "minItems": 1
                                                        }
                                                    },
                                                    "type": "object"
                                                }
                                            ]
                                        },
                                        "maxItems": 100,
                                        "minItems": 1
                                    },
                                    "timeframe": {
                                        "description": "Number of days of status and incident history to display.",
                                        "type": "integer",
                                        "example": 90,
                                        "enum": [
                                            30,
                                            60,
                                            90
                                        ]
                                    },
                                    "show_response_times": {
                                        "description": "Whether to display response times for monitors on the status page",
                                        "type": "boolean",
                                        "example": true,
                                        "default": true
                                    },
                                    "timezone": {
                                        "description": "Timezone used to split the status page timeline into days and to display all dates on the status page and in feeds. Must be a canonical IANA timezone identifier (case-sensitive, e.g. `Europe/Paris`, `America/New_York` or `UTC`).",
                                        "type": "string",
                                        "example": "Europe/Paris",
                                        "default": "UTC"
                                    },
                                    "subscription_channels": {
                                        "description": "List of active subscription channels",
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/Uptime.StatusPage.SubscriptionChannelEnum"
                                        },
                                        "maxItems": 3,
                                        "minItems": 0
                                    },
                                    "access_ips": {
                                        "description": "List of IP addresses or CIDR ranges allowed to access the status page. Requires an active Scale plan subscription.",
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "example": "45.129.56.0/24"
                                        },
                                        "maxItems": 50,
                                        "minItems": 1
                                    },
                                    "tags": {
                                        "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "example": "environment:production",
                                            "maxLength": 100,
                                            "minLength": 1
                                        },
                                        "maxItems": 20
                                    },
                                    "logo_light": {
                                        "description": "Light theme logo of the status page (accepted formats: jpeg / png / svg, max size: 1MB). Files can only be uploaded with a `multipart/form-data` request, send `false` to remove the logo.",
                                        "anyOf": [
                                            {
                                                "description": "Image file to upload",
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "binary"
                                            },
                                            {
                                                "description": "Remove the logo",
                                                "type": "boolean",
                                                "enum": [
                                                    false
                                                ]
                                            }
                                        ]
                                    },
                                    "logo_dark": {
                                        "description": "Dark theme logo of the status page (accepted formats: jpeg / png / svg, max size: 1MB). Files can only be uploaded with a `multipart/form-data` request, send `false` to remove the logo.",
                                        "anyOf": [
                                            {
                                                "description": "Image file to upload",
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "binary"
                                            },
                                            {
                                                "description": "Remove the logo",
                                                "type": "boolean",
                                                "enum": [
                                                    false
                                                ]
                                            }
                                        ]
                                    },
                                    "favicon_light": {
                                        "description": "Light theme favicon of the status page (accepted formats: jpeg / png / svg, max size: 1MB, square image). Files can only be uploaded with a `multipart/form-data` request, send `false` to remove the favicon.",
                                        "anyOf": [
                                            {
                                                "description": "Image file to upload",
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "binary"
                                            },
                                            {
                                                "description": "Remove the favicon",
                                                "type": "boolean",
                                                "enum": [
                                                    false
                                                ]
                                            }
                                        ]
                                    },
                                    "favicon_dark": {
                                        "description": "Dark theme favicon of the status page (accepted formats: jpeg / png / svg, max size: 1MB, square image). Files can only be uploaded with a `multipart/form-data` request, send `false` to remove the favicon.",
                                        "anyOf": [
                                            {
                                                "description": "Image file to upload",
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "binary"
                                            },
                                            {
                                                "description": "Remove the favicon",
                                                "type": "boolean",
                                                "enum": [
                                                    false
                                                ]
                                            }
                                        ]
                                    },
                                    "access_token": {
                                        "description": "Token to restrict access to the status page. Requires an active Scale plan subscription.",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "example": "secret",
                                        "maxLength": 500,
                                        "minLength": 8
                                    },
                                    "access_password": {
                                        "description": "Password to restrict access to the status page. Requires an active Scale plan subscription.",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "example": "secret",
                                        "maxLength": 500,
                                        "minLength": 8
                                    }
                                },
                                "required": [
                                    "name",
                                    "subdomain",
                                    "title",
                                    "description",
                                    "search_engine_indexed",
                                    "website_url",
                                    "components",
                                    "timeframe"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Success, status page created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "description": "Status page ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "project_id": {
                                            "description": "Parent project ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "is_private": {
                                            "description": "Whether access to the status page is restricted by a password, a secret token or an IP allowlist",
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "access_password_enabled": {
                                            "description": "Whether the status page is protected by a password. Requires an active Scale plan subscription.",
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "access_token_enabled": {
                                            "description": "Whether the status page is protected by a secret token. Requires an active Scale plan subscription.",
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "name": {
                                            "description": "Status page name",
                                            "type": "string",
                                            "example": "Phare status",
                                            "maxLength": 30,
                                            "minLength": 2
                                        },
                                        "subdomain": {
                                            "description": "Subdomain name for the status page, hosted on a phare.io domain: {subdomain}.status.phare.io",
                                            "type": "string",
                                            "example": "example",
                                            "maxLength": 30,
                                            "minLength": 2
                                        },
                                        "domain": {
                                            "description": "Custom domain name for the status page",
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "example": "status.example.com",
                                            "maxLength": 60,
                                            "minLength": 4
                                        },
                                        "title": {
                                            "description": "Status page HTML title",
                                            "type": "string",
                                            "example": "Phare status",
                                            "maxLength": 150,
                                            "minLength": 2
                                        },
                                        "description": {
                                            "description": "Status page HTML description",
                                            "type": "string",
                                            "example": "Status page of phare.io",
                                            "maxLength": 250,
                                            "minLength": 2
                                        },
                                        "search_engine_indexed": {
                                            "description": "Whether search engines are allowed to index the page",
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "website_url": {
                                            "description": "URL to redirect users clicking the status page logo",
                                            "type": "string",
                                            "example": "https://phare.io",
                                            "maxLength": 250
                                        },
                                        "color_scheme": {
                                            "description": "Choose the available color schemes for the status page",
                                            "type": "string",
                                            "example": "all",
                                            "default": "all",
                                            "enum": [
                                                "all",
                                                "dark",
                                                "light"
                                            ]
                                        },
                                        "theme": {
                                            "description": "Theme settings to customize the status page",
                                            "properties": {
                                                "light": {
                                                    "description": "Light theme colors, as lowercase 6-digit hexadecimal codes",
                                                    "properties": {
                                                        "operational": {
                                                            "type": "string",
                                                            "example": "#16a34a"
                                                        },
                                                        "degraded_performance": {
                                                            "type": "string",
                                                            "example": "#fbbf24"
                                                        },
                                                        "partial_outage": {
                                                            "type": "string",
                                                            "example": "#f59e0b"
                                                        },
                                                        "major_outage": {
                                                            "type": "string",
                                                            "example": "#ef4444"
                                                        },
                                                        "maintenance": {
                                                            "type": "string",
                                                            "example": "#6366f1"
                                                        },
                                                        "empty": {
                                                            "type": "string",
                                                            "example": "#d3d3d3"
                                                        },
                                                        "background": {
                                                            "type": "string",
                                                            "example": "#ffffff"
                                                        },
                                                        "border": {
                                                            "type": "string",
                                                            "example": "#e5e5e5"
                                                        },
                                                        "foreground": {
                                                            "type": "string",
                                                            "example": "#000000"
                                                        },
                                                        "foreground_muted": {
                                                            "type": "string",
                                                            "example": "#737373"
                                                        },
                                                        "background_card": {
                                                            "type": "string",
                                                            "example": "#fafafa"
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                "dark": {
                                                    "description": "Dark theme colors, as lowercase 6-digit hexadecimal codes",
                                                    "properties": {
                                                        "operational": {
                                                            "type": "string",
                                                            "example": "#16a34a"
                                                        },
                                                        "degraded_performance": {
                                                            "type": "string",
                                                            "example": "#fbbf24"
                                                        },
                                                        "partial_outage": {
                                                            "type": "string",
                                                            "example": "#f59e0b"
                                                        },
                                                        "major_outage": {
                                                            "type": "string",
                                                            "example": "#ef4444"
                                                        },
                                                        "maintenance": {
                                                            "type": "string",
                                                            "example": "#6366f1"
                                                        },
                                                        "empty": {
                                                            "type": "string",
                                                            "example": "#d3d3d3"
                                                        },
                                                        "background": {
                                                            "type": "string",
                                                            "example": "#111111"
                                                        },
                                                        "border": {
                                                            "type": "string",
                                                            "example": "#3f3f46"
                                                        },
                                                        "foreground": {
                                                            "type": "string",
                                                            "example": "#ffffff"
                                                        },
                                                        "foreground_muted": {
                                                            "type": "string",
                                                            "example": "#959595"
                                                        },
                                                        "background_card": {
                                                            "type": "string",
                                                            "example": "#1a1a1a"
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                "rounded": {
                                                    "type": "boolean",
                                                    "example": true,
                                                    "default": true
                                                },
                                                "border_width": {
                                                    "type": "integer",
                                                    "example": 2,
                                                    "default": 1,
                                                    "maximum": 3,
                                                    "minimum": 0
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "components": {
                                            "description": "List of components to show on the status page. A monitor can only be shown once on a status page.",
                                            "type": "array",
                                            "items": {
                                                "oneOf": [
                                                    {
                                                        "title": "Monitor component",
                                                        "required": [
                                                            "componentable_type",
                                                            "componentable_id"
                                                        ],
                                                        "properties": {
                                                            "componentable_type": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "uptime/monitor"
                                                                ]
                                                            },
                                                            "componentable_id": {
                                                                "description": "ID of the monitor to show",
                                                                "type": "integer"
                                                            },
                                                            "display_name": {
                                                                "description": "Custom display name of the monitor on the status page",
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ],
                                                                "example": "Main Website",
                                                                "default": null,
                                                                "maxLength": 45,
                                                                "minLength": 1
                                                            }
                                                        },
                                                        "type": "object"
                                                    },
                                                    {
                                                        "title": "Group component",
                                                        "required": [
                                                            "componentable_type",
                                                            "name",
                                                            "components"
                                                        ],
                                                        "properties": {
                                                            "componentable_type": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "uptime/group"
                                                                ]
                                                            },
                                                            "name": {
                                                                "description": "Name of the group shown on the status page. Must be unique within the status page (case-insensitive).",
                                                                "type": "string",
                                                                "maxLength": 100,
                                                                "minLength": 1
                                                            },
                                                            "is_expanded": {
                                                                "description": "Whether the group components are expanded by default",
                                                                "type": "boolean",
                                                                "example": false,
                                                                "default": false
                                                            },
                                                            "components": {
                                                                "description": "List of monitor components shown inside the group",
                                                                "type": "array",
                                                                "items": {
                                                                    "required": [
                                                                        "componentable_type",
                                                                        "componentable_id"
                                                                    ],
                                                                    "properties": {
                                                                        "componentable_type": {
                                                                            "type": "string",
                                                                            "enum": [
                                                                                "uptime/monitor"
                                                                            ]
                                                                        },
                                                                        "componentable_id": {
                                                                            "description": "ID of the monitor to show",
                                                                            "type": "integer"
                                                                        },
                                                                        "display_name": {
                                                                            "description": "Custom display name of the monitor on the status page",
                                                                            "type": [
                                                                                "string",
                                                                                "null"
                                                                            ],
                                                                            "example": "Main Website",
                                                                            "default": null,
                                                                            "maxLength": 45,
                                                                            "minLength": 1
                                                                        }
                                                                    },
                                                                    "type": "object"
                                                                },
                                                                "maxItems": 100,
                                                                "minItems": 1
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                ]
                                            },
                                            "maxItems": 100,
                                            "minItems": 1
                                        },
                                        "timeframe": {
                                            "description": "Number of days of status and incident history to display.",
                                            "type": "integer",
                                            "example": 90,
                                            "enum": [
                                                30,
                                                60,
                                                90
                                            ]
                                        },
                                        "show_response_times": {
                                            "description": "Whether to display response times for monitors on the status page",
                                            "type": "boolean",
                                            "example": true,
                                            "default": true
                                        },
                                        "timezone": {
                                            "description": "Timezone used to split the status page timeline into days and to display all dates on the status page and in feeds. Must be a canonical IANA timezone identifier (case-sensitive, e.g. `Europe/Paris`, `America/New_York` or `UTC`).",
                                            "type": "string",
                                            "example": "Europe/Paris",
                                            "default": "UTC"
                                        },
                                        "subscription_channels": {
                                            "description": "List of active subscription channels",
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Uptime.StatusPage.SubscriptionChannelEnum"
                                            },
                                            "maxItems": 3,
                                            "minItems": 0
                                        },
                                        "access_ips": {
                                            "description": "List of IP addresses or CIDR ranges allowed to access the status page. Requires an active Scale plan subscription.",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "string",
                                                "example": "45.129.56.0/24"
                                            },
                                            "maxItems": 50,
                                            "minItems": 1
                                        },
                                        "tags": {
                                            "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "string",
                                                "example": "environment:production",
                                                "maxLength": 100,
                                                "minLength": 1
                                            },
                                            "maxItems": 20
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "name",
                                        "subdomain",
                                        "title",
                                        "description",
                                        "search_engine_indexed",
                                        "website_url",
                                        "components",
                                        "timeframe"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ]
            }
        },
        "/uptime/status-pages/{statusPageId}": {
            "get": {
                "tags": [
                    "Status Pages"
                ],
                "summary": "Get a status page",
                "description": "Get a status page by ID",
                "operationId": "getUptimeStatusPage",
                "parameters": [
                    {
                        "name": "statusPageId",
                        "in": "path",
                        "description": "ID of the status page to show",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, status page retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "description": "Status page ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "project_id": {
                                            "description": "Parent project ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "is_private": {
                                            "description": "Whether access to the status page is restricted by a password, a secret token or an IP allowlist",
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "access_password_enabled": {
                                            "description": "Whether the status page is protected by a password. Requires an active Scale plan subscription.",
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "access_token_enabled": {
                                            "description": "Whether the status page is protected by a secret token. Requires an active Scale plan subscription.",
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "name": {
                                            "description": "Status page name",
                                            "type": "string",
                                            "example": "Phare status",
                                            "maxLength": 30,
                                            "minLength": 2
                                        },
                                        "subdomain": {
                                            "description": "Subdomain name for the status page, hosted on a phare.io domain: {subdomain}.status.phare.io",
                                            "type": "string",
                                            "example": "example",
                                            "maxLength": 30,
                                            "minLength": 2
                                        },
                                        "domain": {
                                            "description": "Custom domain name for the status page",
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "example": "status.example.com",
                                            "maxLength": 60,
                                            "minLength": 4
                                        },
                                        "title": {
                                            "description": "Status page HTML title",
                                            "type": "string",
                                            "example": "Phare status",
                                            "maxLength": 150,
                                            "minLength": 2
                                        },
                                        "description": {
                                            "description": "Status page HTML description",
                                            "type": "string",
                                            "example": "Status page of phare.io",
                                            "maxLength": 250,
                                            "minLength": 2
                                        },
                                        "search_engine_indexed": {
                                            "description": "Whether search engines are allowed to index the page",
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "website_url": {
                                            "description": "URL to redirect users clicking the status page logo",
                                            "type": "string",
                                            "example": "https://phare.io",
                                            "maxLength": 250
                                        },
                                        "color_scheme": {
                                            "description": "Choose the available color schemes for the status page",
                                            "type": "string",
                                            "example": "all",
                                            "default": "all",
                                            "enum": [
                                                "all",
                                                "dark",
                                                "light"
                                            ]
                                        },
                                        "theme": {
                                            "description": "Theme settings to customize the status page",
                                            "properties": {
                                                "light": {
                                                    "description": "Light theme colors, as lowercase 6-digit hexadecimal codes",
                                                    "properties": {
                                                        "operational": {
                                                            "type": "string",
                                                            "example": "#16a34a"
                                                        },
                                                        "degraded_performance": {
                                                            "type": "string",
                                                            "example": "#fbbf24"
                                                        },
                                                        "partial_outage": {
                                                            "type": "string",
                                                            "example": "#f59e0b"
                                                        },
                                                        "major_outage": {
                                                            "type": "string",
                                                            "example": "#ef4444"
                                                        },
                                                        "maintenance": {
                                                            "type": "string",
                                                            "example": "#6366f1"
                                                        },
                                                        "empty": {
                                                            "type": "string",
                                                            "example": "#d3d3d3"
                                                        },
                                                        "background": {
                                                            "type": "string",
                                                            "example": "#ffffff"
                                                        },
                                                        "border": {
                                                            "type": "string",
                                                            "example": "#e5e5e5"
                                                        },
                                                        "foreground": {
                                                            "type": "string",
                                                            "example": "#000000"
                                                        },
                                                        "foreground_muted": {
                                                            "type": "string",
                                                            "example": "#737373"
                                                        },
                                                        "background_card": {
                                                            "type": "string",
                                                            "example": "#fafafa"
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                "dark": {
                                                    "description": "Dark theme colors, as lowercase 6-digit hexadecimal codes",
                                                    "properties": {
                                                        "operational": {
                                                            "type": "string",
                                                            "example": "#16a34a"
                                                        },
                                                        "degraded_performance": {
                                                            "type": "string",
                                                            "example": "#fbbf24"
                                                        },
                                                        "partial_outage": {
                                                            "type": "string",
                                                            "example": "#f59e0b"
                                                        },
                                                        "major_outage": {
                                                            "type": "string",
                                                            "example": "#ef4444"
                                                        },
                                                        "maintenance": {
                                                            "type": "string",
                                                            "example": "#6366f1"
                                                        },
                                                        "empty": {
                                                            "type": "string",
                                                            "example": "#d3d3d3"
                                                        },
                                                        "background": {
                                                            "type": "string",
                                                            "example": "#111111"
                                                        },
                                                        "border": {
                                                            "type": "string",
                                                            "example": "#3f3f46"
                                                        },
                                                        "foreground": {
                                                            "type": "string",
                                                            "example": "#ffffff"
                                                        },
                                                        "foreground_muted": {
                                                            "type": "string",
                                                            "example": "#959595"
                                                        },
                                                        "background_card": {
                                                            "type": "string",
                                                            "example": "#1a1a1a"
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                "rounded": {
                                                    "type": "boolean",
                                                    "example": true,
                                                    "default": true
                                                },
                                                "border_width": {
                                                    "type": "integer",
                                                    "example": 2,
                                                    "default": 1,
                                                    "maximum": 3,
                                                    "minimum": 0
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "components": {
                                            "description": "List of components to show on the status page. A monitor can only be shown once on a status page.",
                                            "type": "array",
                                            "items": {
                                                "oneOf": [
                                                    {
                                                        "title": "Monitor component",
                                                        "required": [
                                                            "componentable_type",
                                                            "componentable_id"
                                                        ],
                                                        "properties": {
                                                            "componentable_type": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "uptime/monitor"
                                                                ]
                                                            },
                                                            "componentable_id": {
                                                                "description": "ID of the monitor to show",
                                                                "type": "integer"
                                                            },
                                                            "display_name": {
                                                                "description": "Custom display name of the monitor on the status page",
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ],
                                                                "example": "Main Website",
                                                                "default": null,
                                                                "maxLength": 45,
                                                                "minLength": 1
                                                            }
                                                        },
                                                        "type": "object"
                                                    },
                                                    {
                                                        "title": "Group component",
                                                        "required": [
                                                            "componentable_type",
                                                            "name",
                                                            "components"
                                                        ],
                                                        "properties": {
                                                            "componentable_type": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "uptime/group"
                                                                ]
                                                            },
                                                            "name": {
                                                                "description": "Name of the group shown on the status page. Must be unique within the status page (case-insensitive).",
                                                                "type": "string",
                                                                "maxLength": 100,
                                                                "minLength": 1
                                                            },
                                                            "is_expanded": {
                                                                "description": "Whether the group components are expanded by default",
                                                                "type": "boolean",
                                                                "example": false,
                                                                "default": false
                                                            },
                                                            "components": {
                                                                "description": "List of monitor components shown inside the group",
                                                                "type": "array",
                                                                "items": {
                                                                    "required": [
                                                                        "componentable_type",
                                                                        "componentable_id"
                                                                    ],
                                                                    "properties": {
                                                                        "componentable_type": {
                                                                            "type": "string",
                                                                            "enum": [
                                                                                "uptime/monitor"
                                                                            ]
                                                                        },
                                                                        "componentable_id": {
                                                                            "description": "ID of the monitor to show",
                                                                            "type": "integer"
                                                                        },
                                                                        "display_name": {
                                                                            "description": "Custom display name of the monitor on the status page",
                                                                            "type": [
                                                                                "string",
                                                                                "null"
                                                                            ],
                                                                            "example": "Main Website",
                                                                            "default": null,
                                                                            "maxLength": 45,
                                                                            "minLength": 1
                                                                        }
                                                                    },
                                                                    "type": "object"
                                                                },
                                                                "maxItems": 100,
                                                                "minItems": 1
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                ]
                                            },
                                            "maxItems": 100,
                                            "minItems": 1
                                        },
                                        "timeframe": {
                                            "description": "Number of days of status and incident history to display.",
                                            "type": "integer",
                                            "example": 90,
                                            "enum": [
                                                30,
                                                60,
                                                90
                                            ]
                                        },
                                        "show_response_times": {
                                            "description": "Whether to display response times for monitors on the status page",
                                            "type": "boolean",
                                            "example": true,
                                            "default": true
                                        },
                                        "timezone": {
                                            "description": "Timezone used to split the status page timeline into days and to display all dates on the status page and in feeds. Must be a canonical IANA timezone identifier (case-sensitive, e.g. `Europe/Paris`, `America/New_York` or `UTC`).",
                                            "type": "string",
                                            "example": "Europe/Paris",
                                            "default": "UTC"
                                        },
                                        "subscription_channels": {
                                            "description": "List of active subscription channels",
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Uptime.StatusPage.SubscriptionChannelEnum"
                                            },
                                            "maxItems": 3,
                                            "minItems": 0
                                        },
                                        "access_ips": {
                                            "description": "List of IP addresses or CIDR ranges allowed to access the status page. Requires an active Scale plan subscription.",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "string",
                                                "example": "45.129.56.0/24"
                                            },
                                            "maxItems": 50,
                                            "minItems": 1
                                        },
                                        "tags": {
                                            "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "string",
                                                "example": "environment:production",
                                                "maxLength": 100,
                                                "minLength": 1
                                            },
                                            "maxItems": 20
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "name",
                                        "subdomain",
                                        "title",
                                        "description",
                                        "search_engine_indexed",
                                        "website_url",
                                        "components",
                                        "timeframe"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            },
            "post": {
                "tags": [
                    "Status Pages"
                ],
                "summary": "Update a status page",
                "description": "Update a status page by ID",
                "operationId": "updateUptimeStatusPage",
                "parameters": [
                    {
                        "name": "statusPageId",
                        "in": "path",
                        "description": "ID of the status page to update",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "requestBody": {
                    "description": "Status page request, sent as JSON or as `multipart/form-data` to upload logos and favicons. With `multipart/form-data`, booleans must be sent as `1` or `0` and nested fields with the bracket notation, e.g. `components[0][componentable_id]`.",
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "description": "Status page name",
                                        "type": "string",
                                        "example": "Phare status",
                                        "maxLength": 30,
                                        "minLength": 2
                                    },
                                    "subdomain": {
                                        "description": "Subdomain name for the status page, hosted on a phare.io domain: {subdomain}.status.phare.io",
                                        "type": "string",
                                        "example": "example",
                                        "maxLength": 30,
                                        "minLength": 2
                                    },
                                    "domain": {
                                        "description": "Custom domain name for the status page",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "example": "status.example.com",
                                        "maxLength": 60,
                                        "minLength": 4
                                    },
                                    "title": {
                                        "description": "Status page HTML title",
                                        "type": "string",
                                        "example": "Phare status",
                                        "maxLength": 150,
                                        "minLength": 2
                                    },
                                    "description": {
                                        "description": "Status page HTML description",
                                        "type": "string",
                                        "example": "Status page of phare.io",
                                        "maxLength": 250,
                                        "minLength": 2
                                    },
                                    "search_engine_indexed": {
                                        "description": "Whether search engines are allowed to index the page",
                                        "type": "boolean",
                                        "example": true
                                    },
                                    "website_url": {
                                        "description": "URL to redirect users clicking the status page logo",
                                        "type": "string",
                                        "example": "https://phare.io",
                                        "maxLength": 250
                                    },
                                    "color_scheme": {
                                        "description": "Choose the available color schemes for the status page",
                                        "type": "string",
                                        "example": "all",
                                        "default": "all",
                                        "enum": [
                                            "all",
                                            "dark",
                                            "light"
                                        ]
                                    },
                                    "theme": {
                                        "description": "Theme settings to customize the status page",
                                        "properties": {
                                            "light": {
                                                "description": "Light theme colors, as lowercase 6-digit hexadecimal codes",
                                                "properties": {
                                                    "operational": {
                                                        "type": "string",
                                                        "example": "#16a34a"
                                                    },
                                                    "degraded_performance": {
                                                        "type": "string",
                                                        "example": "#fbbf24"
                                                    },
                                                    "partial_outage": {
                                                        "type": "string",
                                                        "example": "#f59e0b"
                                                    },
                                                    "major_outage": {
                                                        "type": "string",
                                                        "example": "#ef4444"
                                                    },
                                                    "maintenance": {
                                                        "type": "string",
                                                        "example": "#6366f1"
                                                    },
                                                    "empty": {
                                                        "type": "string",
                                                        "example": "#d3d3d3"
                                                    },
                                                    "background": {
                                                        "type": "string",
                                                        "example": "#ffffff"
                                                    },
                                                    "border": {
                                                        "type": "string",
                                                        "example": "#e5e5e5"
                                                    },
                                                    "foreground": {
                                                        "type": "string",
                                                        "example": "#000000"
                                                    },
                                                    "foreground_muted": {
                                                        "type": "string",
                                                        "example": "#737373"
                                                    },
                                                    "background_card": {
                                                        "type": "string",
                                                        "example": "#fafafa"
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            "dark": {
                                                "description": "Dark theme colors, as lowercase 6-digit hexadecimal codes",
                                                "properties": {
                                                    "operational": {
                                                        "type": "string",
                                                        "example": "#16a34a"
                                                    },
                                                    "degraded_performance": {
                                                        "type": "string",
                                                        "example": "#fbbf24"
                                                    },
                                                    "partial_outage": {
                                                        "type": "string",
                                                        "example": "#f59e0b"
                                                    },
                                                    "major_outage": {
                                                        "type": "string",
                                                        "example": "#ef4444"
                                                    },
                                                    "maintenance": {
                                                        "type": "string",
                                                        "example": "#6366f1"
                                                    },
                                                    "empty": {
                                                        "type": "string",
                                                        "example": "#d3d3d3"
                                                    },
                                                    "background": {
                                                        "type": "string",
                                                        "example": "#111111"
                                                    },
                                                    "border": {
                                                        "type": "string",
                                                        "example": "#3f3f46"
                                                    },
                                                    "foreground": {
                                                        "type": "string",
                                                        "example": "#ffffff"
                                                    },
                                                    "foreground_muted": {
                                                        "type": "string",
                                                        "example": "#959595"
                                                    },
                                                    "background_card": {
                                                        "type": "string",
                                                        "example": "#1a1a1a"
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            "rounded": {
                                                "type": "boolean",
                                                "example": true,
                                                "default": true
                                            },
                                            "border_width": {
                                                "type": "integer",
                                                "example": 2,
                                                "default": 1,
                                                "maximum": 3,
                                                "minimum": 0
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "components": {
                                        "description": "List of components to show on the status page. A monitor can only be shown once on a status page.",
                                        "type": "array",
                                        "items": {
                                            "oneOf": [
                                                {
                                                    "title": "Monitor component",
                                                    "required": [
                                                        "componentable_type",
                                                        "componentable_id"
                                                    ],
                                                    "properties": {
                                                        "componentable_type": {
                                                            "type": "string",
                                                            "enum": [
                                                                "uptime/monitor"
                                                            ]
                                                        },
                                                        "componentable_id": {
                                                            "description": "ID of the monitor to show",
                                                            "type": "integer"
                                                        },
                                                        "display_name": {
                                                            "description": "Custom display name of the monitor on the status page",
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "example": "Main Website",
                                                            "default": null,
                                                            "maxLength": 45,
                                                            "minLength": 1
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                {
                                                    "title": "Group component",
                                                    "required": [
                                                        "componentable_type",
                                                        "name",
                                                        "components"
                                                    ],
                                                    "properties": {
                                                        "componentable_type": {
                                                            "type": "string",
                                                            "enum": [
                                                                "uptime/group"
                                                            ]
                                                        },
                                                        "name": {
                                                            "description": "Name of the group shown on the status page. Must be unique within the status page (case-insensitive).",
                                                            "type": "string",
                                                            "maxLength": 100,
                                                            "minLength": 1
                                                        },
                                                        "is_expanded": {
                                                            "description": "Whether the group components are expanded by default",
                                                            "type": "boolean",
                                                            "example": false,
                                                            "default": false
                                                        },
                                                        "components": {
                                                            "description": "List of monitor components shown inside the group",
                                                            "type": "array",
                                                            "items": {
                                                                "required": [
                                                                    "componentable_type",
                                                                    "componentable_id"
                                                                ],
                                                                "properties": {
                                                                    "componentable_type": {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "uptime/monitor"
                                                                        ]
                                                                    },
                                                                    "componentable_id": {
                                                                        "description": "ID of the monitor to show",
                                                                        "type": "integer"
                                                                    },
                                                                    "display_name": {
                                                                        "description": "Custom display name of the monitor on the status page",
                                                                        "type": [
                                                                            "string",
                                                                            "null"
                                                                        ],
                                                                        "example": "Main Website",
                                                                        "default": null,
                                                                        "maxLength": 45,
                                                                        "minLength": 1
                                                                    }
                                                                },
                                                                "type": "object"
                                                            },
                                                            "maxItems": 100,
                                                            "minItems": 1
                                                        }
                                                    },
                                                    "type": "object"
                                                }
                                            ]
                                        },
                                        "maxItems": 100,
                                        "minItems": 1
                                    },
                                    "timeframe": {
                                        "description": "Number of days of status and incident history to display.",
                                        "type": "integer",
                                        "example": 90,
                                        "enum": [
                                            30,
                                            60,
                                            90
                                        ]
                                    },
                                    "show_response_times": {
                                        "description": "Whether to display response times for monitors on the status page",
                                        "type": "boolean",
                                        "example": true,
                                        "default": true
                                    },
                                    "timezone": {
                                        "description": "Timezone used to split the status page timeline into days and to display all dates on the status page and in feeds. Must be a canonical IANA timezone identifier (case-sensitive, e.g. `Europe/Paris`, `America/New_York` or `UTC`).",
                                        "type": "string",
                                        "example": "Europe/Paris",
                                        "default": "UTC"
                                    },
                                    "subscription_channels": {
                                        "description": "List of active subscription channels",
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/Uptime.StatusPage.SubscriptionChannelEnum"
                                        },
                                        "maxItems": 3,
                                        "minItems": 0
                                    },
                                    "access_ips": {
                                        "description": "List of IP addresses or CIDR ranges allowed to access the status page. Requires an active Scale plan subscription.",
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "example": "45.129.56.0/24"
                                        },
                                        "maxItems": 50,
                                        "minItems": 1
                                    },
                                    "tags": {
                                        "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "example": "environment:production",
                                            "maxLength": 100,
                                            "minLength": 1
                                        },
                                        "maxItems": 20
                                    },
                                    "logo_light": {
                                        "description": "Light theme logo of the status page (accepted formats: jpeg / png / svg, max size: 1MB). Files can only be uploaded with a `multipart/form-data` request, send `false` to remove the logo.",
                                        "anyOf": [
                                            {
                                                "description": "Image file to upload",
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "binary"
                                            },
                                            {
                                                "description": "Remove the logo",
                                                "type": "boolean",
                                                "enum": [
                                                    false
                                                ]
                                            }
                                        ]
                                    },
                                    "logo_dark": {
                                        "description": "Dark theme logo of the status page (accepted formats: jpeg / png / svg, max size: 1MB). Files can only be uploaded with a `multipart/form-data` request, send `false` to remove the logo.",
                                        "anyOf": [
                                            {
                                                "description": "Image file to upload",
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "binary"
                                            },
                                            {
                                                "description": "Remove the logo",
                                                "type": "boolean",
                                                "enum": [
                                                    false
                                                ]
                                            }
                                        ]
                                    },
                                    "favicon_light": {
                                        "description": "Light theme favicon of the status page (accepted formats: jpeg / png / svg, max size: 1MB, square image). Files can only be uploaded with a `multipart/form-data` request, send `false` to remove the favicon.",
                                        "anyOf": [
                                            {
                                                "description": "Image file to upload",
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "binary"
                                            },
                                            {
                                                "description": "Remove the favicon",
                                                "type": "boolean",
                                                "enum": [
                                                    false
                                                ]
                                            }
                                        ]
                                    },
                                    "favicon_dark": {
                                        "description": "Dark theme favicon of the status page (accepted formats: jpeg / png / svg, max size: 1MB, square image). Files can only be uploaded with a `multipart/form-data` request, send `false` to remove the favicon.",
                                        "anyOf": [
                                            {
                                                "description": "Image file to upload",
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "binary"
                                            },
                                            {
                                                "description": "Remove the favicon",
                                                "type": "boolean",
                                                "enum": [
                                                    false
                                                ]
                                            }
                                        ]
                                    },
                                    "access_token": {
                                        "description": "Token to restrict access to the status page. Requires an active Scale plan subscription.",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "example": "secret",
                                        "maxLength": 500,
                                        "minLength": 8
                                    },
                                    "access_password": {
                                        "description": "Password to restrict access to the status page. Requires an active Scale plan subscription.",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "example": "secret",
                                        "maxLength": 500,
                                        "minLength": 8
                                    }
                                }
                            },
                            "encoding": {
                                "theme": {
                                    "style": "deepObject",
                                    "explode": true
                                },
                                "components": {
                                    "style": "deepObject",
                                    "explode": true
                                },
                                "subscription_channels": {
                                    "style": "deepObject",
                                    "explode": true
                                },
                                "access_ips": {
                                    "style": "deepObject",
                                    "explode": true
                                },
                                "tags": {
                                    "style": "deepObject",
                                    "explode": true
                                }
                            }
                        },
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "description": "Status page name",
                                        "type": "string",
                                        "example": "Phare status",
                                        "maxLength": 30,
                                        "minLength": 2
                                    },
                                    "subdomain": {
                                        "description": "Subdomain name for the status page, hosted on a phare.io domain: {subdomain}.status.phare.io",
                                        "type": "string",
                                        "example": "example",
                                        "maxLength": 30,
                                        "minLength": 2
                                    },
                                    "domain": {
                                        "description": "Custom domain name for the status page",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "example": "status.example.com",
                                        "maxLength": 60,
                                        "minLength": 4
                                    },
                                    "title": {
                                        "description": "Status page HTML title",
                                        "type": "string",
                                        "example": "Phare status",
                                        "maxLength": 150,
                                        "minLength": 2
                                    },
                                    "description": {
                                        "description": "Status page HTML description",
                                        "type": "string",
                                        "example": "Status page of phare.io",
                                        "maxLength": 250,
                                        "minLength": 2
                                    },
                                    "search_engine_indexed": {
                                        "description": "Whether search engines are allowed to index the page",
                                        "type": "boolean",
                                        "example": true
                                    },
                                    "website_url": {
                                        "description": "URL to redirect users clicking the status page logo",
                                        "type": "string",
                                        "example": "https://phare.io",
                                        "maxLength": 250
                                    },
                                    "color_scheme": {
                                        "description": "Choose the available color schemes for the status page",
                                        "type": "string",
                                        "example": "all",
                                        "default": "all",
                                        "enum": [
                                            "all",
                                            "dark",
                                            "light"
                                        ]
                                    },
                                    "theme": {
                                        "description": "Theme settings to customize the status page",
                                        "properties": {
                                            "light": {
                                                "description": "Light theme colors, as lowercase 6-digit hexadecimal codes",
                                                "properties": {
                                                    "operational": {
                                                        "type": "string",
                                                        "example": "#16a34a"
                                                    },
                                                    "degraded_performance": {
                                                        "type": "string",
                                                        "example": "#fbbf24"
                                                    },
                                                    "partial_outage": {
                                                        "type": "string",
                                                        "example": "#f59e0b"
                                                    },
                                                    "major_outage": {
                                                        "type": "string",
                                                        "example": "#ef4444"
                                                    },
                                                    "maintenance": {
                                                        "type": "string",
                                                        "example": "#6366f1"
                                                    },
                                                    "empty": {
                                                        "type": "string",
                                                        "example": "#d3d3d3"
                                                    },
                                                    "background": {
                                                        "type": "string",
                                                        "example": "#ffffff"
                                                    },
                                                    "border": {
                                                        "type": "string",
                                                        "example": "#e5e5e5"
                                                    },
                                                    "foreground": {
                                                        "type": "string",
                                                        "example": "#000000"
                                                    },
                                                    "foreground_muted": {
                                                        "type": "string",
                                                        "example": "#737373"
                                                    },
                                                    "background_card": {
                                                        "type": "string",
                                                        "example": "#fafafa"
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            "dark": {
                                                "description": "Dark theme colors, as lowercase 6-digit hexadecimal codes",
                                                "properties": {
                                                    "operational": {
                                                        "type": "string",
                                                        "example": "#16a34a"
                                                    },
                                                    "degraded_performance": {
                                                        "type": "string",
                                                        "example": "#fbbf24"
                                                    },
                                                    "partial_outage": {
                                                        "type": "string",
                                                        "example": "#f59e0b"
                                                    },
                                                    "major_outage": {
                                                        "type": "string",
                                                        "example": "#ef4444"
                                                    },
                                                    "maintenance": {
                                                        "type": "string",
                                                        "example": "#6366f1"
                                                    },
                                                    "empty": {
                                                        "type": "string",
                                                        "example": "#d3d3d3"
                                                    },
                                                    "background": {
                                                        "type": "string",
                                                        "example": "#111111"
                                                    },
                                                    "border": {
                                                        "type": "string",
                                                        "example": "#3f3f46"
                                                    },
                                                    "foreground": {
                                                        "type": "string",
                                                        "example": "#ffffff"
                                                    },
                                                    "foreground_muted": {
                                                        "type": "string",
                                                        "example": "#959595"
                                                    },
                                                    "background_card": {
                                                        "type": "string",
                                                        "example": "#1a1a1a"
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            "rounded": {
                                                "type": "boolean",
                                                "example": true,
                                                "default": true
                                            },
                                            "border_width": {
                                                "type": "integer",
                                                "example": 2,
                                                "default": 1,
                                                "maximum": 3,
                                                "minimum": 0
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "components": {
                                        "description": "List of components to show on the status page. A monitor can only be shown once on a status page.",
                                        "type": "array",
                                        "items": {
                                            "oneOf": [
                                                {
                                                    "title": "Monitor component",
                                                    "required": [
                                                        "componentable_type",
                                                        "componentable_id"
                                                    ],
                                                    "properties": {
                                                        "componentable_type": {
                                                            "type": "string",
                                                            "enum": [
                                                                "uptime/monitor"
                                                            ]
                                                        },
                                                        "componentable_id": {
                                                            "description": "ID of the monitor to show",
                                                            "type": "integer"
                                                        },
                                                        "display_name": {
                                                            "description": "Custom display name of the monitor on the status page",
                                                            "type": [
                                                                "string",
                                                                "null"
                                                            ],
                                                            "example": "Main Website",
                                                            "default": null,
                                                            "maxLength": 45,
                                                            "minLength": 1
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                {
                                                    "title": "Group component",
                                                    "required": [
                                                        "componentable_type",
                                                        "name",
                                                        "components"
                                                    ],
                                                    "properties": {
                                                        "componentable_type": {
                                                            "type": "string",
                                                            "enum": [
                                                                "uptime/group"
                                                            ]
                                                        },
                                                        "name": {
                                                            "description": "Name of the group shown on the status page. Must be unique within the status page (case-insensitive).",
                                                            "type": "string",
                                                            "maxLength": 100,
                                                            "minLength": 1
                                                        },
                                                        "is_expanded": {
                                                            "description": "Whether the group components are expanded by default",
                                                            "type": "boolean",
                                                            "example": false,
                                                            "default": false
                                                        },
                                                        "components": {
                                                            "description": "List of monitor components shown inside the group",
                                                            "type": "array",
                                                            "items": {
                                                                "required": [
                                                                    "componentable_type",
                                                                    "componentable_id"
                                                                ],
                                                                "properties": {
                                                                    "componentable_type": {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "uptime/monitor"
                                                                        ]
                                                                    },
                                                                    "componentable_id": {
                                                                        "description": "ID of the monitor to show",
                                                                        "type": "integer"
                                                                    },
                                                                    "display_name": {
                                                                        "description": "Custom display name of the monitor on the status page",
                                                                        "type": [
                                                                            "string",
                                                                            "null"
                                                                        ],
                                                                        "example": "Main Website",
                                                                        "default": null,
                                                                        "maxLength": 45,
                                                                        "minLength": 1
                                                                    }
                                                                },
                                                                "type": "object"
                                                            },
                                                            "maxItems": 100,
                                                            "minItems": 1
                                                        }
                                                    },
                                                    "type": "object"
                                                }
                                            ]
                                        },
                                        "maxItems": 100,
                                        "minItems": 1
                                    },
                                    "timeframe": {
                                        "description": "Number of days of status and incident history to display.",
                                        "type": "integer",
                                        "example": 90,
                                        "enum": [
                                            30,
                                            60,
                                            90
                                        ]
                                    },
                                    "show_response_times": {
                                        "description": "Whether to display response times for monitors on the status page",
                                        "type": "boolean",
                                        "example": true,
                                        "default": true
                                    },
                                    "timezone": {
                                        "description": "Timezone used to split the status page timeline into days and to display all dates on the status page and in feeds. Must be a canonical IANA timezone identifier (case-sensitive, e.g. `Europe/Paris`, `America/New_York` or `UTC`).",
                                        "type": "string",
                                        "example": "Europe/Paris",
                                        "default": "UTC"
                                    },
                                    "subscription_channels": {
                                        "description": "List of active subscription channels",
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/Uptime.StatusPage.SubscriptionChannelEnum"
                                        },
                                        "maxItems": 3,
                                        "minItems": 0
                                    },
                                    "access_ips": {
                                        "description": "List of IP addresses or CIDR ranges allowed to access the status page. Requires an active Scale plan subscription.",
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "example": "45.129.56.0/24"
                                        },
                                        "maxItems": 50,
                                        "minItems": 1
                                    },
                                    "tags": {
                                        "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string",
                                            "example": "environment:production",
                                            "maxLength": 100,
                                            "minLength": 1
                                        },
                                        "maxItems": 20
                                    },
                                    "logo_light": {
                                        "description": "Light theme logo of the status page (accepted formats: jpeg / png / svg, max size: 1MB). Files can only be uploaded with a `multipart/form-data` request, send `false` to remove the logo.",
                                        "anyOf": [
                                            {
                                                "description": "Image file to upload",
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "binary"
                                            },
                                            {
                                                "description": "Remove the logo",
                                                "type": "boolean",
                                                "enum": [
                                                    false
                                                ]
                                            }
                                        ]
                                    },
                                    "logo_dark": {
                                        "description": "Dark theme logo of the status page (accepted formats: jpeg / png / svg, max size: 1MB). Files can only be uploaded with a `multipart/form-data` request, send `false` to remove the logo.",
                                        "anyOf": [
                                            {
                                                "description": "Image file to upload",
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "binary"
                                            },
                                            {
                                                "description": "Remove the logo",
                                                "type": "boolean",
                                                "enum": [
                                                    false
                                                ]
                                            }
                                        ]
                                    },
                                    "favicon_light": {
                                        "description": "Light theme favicon of the status page (accepted formats: jpeg / png / svg, max size: 1MB, square image). Files can only be uploaded with a `multipart/form-data` request, send `false` to remove the favicon.",
                                        "anyOf": [
                                            {
                                                "description": "Image file to upload",
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "binary"
                                            },
                                            {
                                                "description": "Remove the favicon",
                                                "type": "boolean",
                                                "enum": [
                                                    false
                                                ]
                                            }
                                        ]
                                    },
                                    "favicon_dark": {
                                        "description": "Dark theme favicon of the status page (accepted formats: jpeg / png / svg, max size: 1MB, square image). Files can only be uploaded with a `multipart/form-data` request, send `false` to remove the favicon.",
                                        "anyOf": [
                                            {
                                                "description": "Image file to upload",
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "binary"
                                            },
                                            {
                                                "description": "Remove the favicon",
                                                "type": "boolean",
                                                "enum": [
                                                    false
                                                ]
                                            }
                                        ]
                                    },
                                    "access_token": {
                                        "description": "Token to restrict access to the status page. Requires an active Scale plan subscription.",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "example": "secret",
                                        "maxLength": 500,
                                        "minLength": 8
                                    },
                                    "access_password": {
                                        "description": "Password to restrict access to the status page. Requires an active Scale plan subscription.",
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "example": "secret",
                                        "maxLength": 500,
                                        "minLength": 8
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Success, status page updated",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "description": "Status page ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "project_id": {
                                            "description": "Parent project ID",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "is_private": {
                                            "description": "Whether access to the status page is restricted by a password, a secret token or an IP allowlist",
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "access_password_enabled": {
                                            "description": "Whether the status page is protected by a password. Requires an active Scale plan subscription.",
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "access_token_enabled": {
                                            "description": "Whether the status page is protected by a secret token. Requires an active Scale plan subscription.",
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "name": {
                                            "description": "Status page name",
                                            "type": "string",
                                            "example": "Phare status",
                                            "maxLength": 30,
                                            "minLength": 2
                                        },
                                        "subdomain": {
                                            "description": "Subdomain name for the status page, hosted on a phare.io domain: {subdomain}.status.phare.io",
                                            "type": "string",
                                            "example": "example",
                                            "maxLength": 30,
                                            "minLength": 2
                                        },
                                        "domain": {
                                            "description": "Custom domain name for the status page",
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "example": "status.example.com",
                                            "maxLength": 60,
                                            "minLength": 4
                                        },
                                        "title": {
                                            "description": "Status page HTML title",
                                            "type": "string",
                                            "example": "Phare status",
                                            "maxLength": 150,
                                            "minLength": 2
                                        },
                                        "description": {
                                            "description": "Status page HTML description",
                                            "type": "string",
                                            "example": "Status page of phare.io",
                                            "maxLength": 250,
                                            "minLength": 2
                                        },
                                        "search_engine_indexed": {
                                            "description": "Whether search engines are allowed to index the page",
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "website_url": {
                                            "description": "URL to redirect users clicking the status page logo",
                                            "type": "string",
                                            "example": "https://phare.io",
                                            "maxLength": 250
                                        },
                                        "color_scheme": {
                                            "description": "Choose the available color schemes for the status page",
                                            "type": "string",
                                            "example": "all",
                                            "default": "all",
                                            "enum": [
                                                "all",
                                                "dark",
                                                "light"
                                            ]
                                        },
                                        "theme": {
                                            "description": "Theme settings to customize the status page",
                                            "properties": {
                                                "light": {
                                                    "description": "Light theme colors, as lowercase 6-digit hexadecimal codes",
                                                    "properties": {
                                                        "operational": {
                                                            "type": "string",
                                                            "example": "#16a34a"
                                                        },
                                                        "degraded_performance": {
                                                            "type": "string",
                                                            "example": "#fbbf24"
                                                        },
                                                        "partial_outage": {
                                                            "type": "string",
                                                            "example": "#f59e0b"
                                                        },
                                                        "major_outage": {
                                                            "type": "string",
                                                            "example": "#ef4444"
                                                        },
                                                        "maintenance": {
                                                            "type": "string",
                                                            "example": "#6366f1"
                                                        },
                                                        "empty": {
                                                            "type": "string",
                                                            "example": "#d3d3d3"
                                                        },
                                                        "background": {
                                                            "type": "string",
                                                            "example": "#ffffff"
                                                        },
                                                        "border": {
                                                            "type": "string",
                                                            "example": "#e5e5e5"
                                                        },
                                                        "foreground": {
                                                            "type": "string",
                                                            "example": "#000000"
                                                        },
                                                        "foreground_muted": {
                                                            "type": "string",
                                                            "example": "#737373"
                                                        },
                                                        "background_card": {
                                                            "type": "string",
                                                            "example": "#fafafa"
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                "dark": {
                                                    "description": "Dark theme colors, as lowercase 6-digit hexadecimal codes",
                                                    "properties": {
                                                        "operational": {
                                                            "type": "string",
                                                            "example": "#16a34a"
                                                        },
                                                        "degraded_performance": {
                                                            "type": "string",
                                                            "example": "#fbbf24"
                                                        },
                                                        "partial_outage": {
                                                            "type": "string",
                                                            "example": "#f59e0b"
                                                        },
                                                        "major_outage": {
                                                            "type": "string",
                                                            "example": "#ef4444"
                                                        },
                                                        "maintenance": {
                                                            "type": "string",
                                                            "example": "#6366f1"
                                                        },
                                                        "empty": {
                                                            "type": "string",
                                                            "example": "#d3d3d3"
                                                        },
                                                        "background": {
                                                            "type": "string",
                                                            "example": "#111111"
                                                        },
                                                        "border": {
                                                            "type": "string",
                                                            "example": "#3f3f46"
                                                        },
                                                        "foreground": {
                                                            "type": "string",
                                                            "example": "#ffffff"
                                                        },
                                                        "foreground_muted": {
                                                            "type": "string",
                                                            "example": "#959595"
                                                        },
                                                        "background_card": {
                                                            "type": "string",
                                                            "example": "#1a1a1a"
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                "rounded": {
                                                    "type": "boolean",
                                                    "example": true,
                                                    "default": true
                                                },
                                                "border_width": {
                                                    "type": "integer",
                                                    "example": 2,
                                                    "default": 1,
                                                    "maximum": 3,
                                                    "minimum": 0
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "components": {
                                            "description": "List of components to show on the status page. A monitor can only be shown once on a status page.",
                                            "type": "array",
                                            "items": {
                                                "oneOf": [
                                                    {
                                                        "title": "Monitor component",
                                                        "required": [
                                                            "componentable_type",
                                                            "componentable_id"
                                                        ],
                                                        "properties": {
                                                            "componentable_type": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "uptime/monitor"
                                                                ]
                                                            },
                                                            "componentable_id": {
                                                                "description": "ID of the monitor to show",
                                                                "type": "integer"
                                                            },
                                                            "display_name": {
                                                                "description": "Custom display name of the monitor on the status page",
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ],
                                                                "example": "Main Website",
                                                                "default": null,
                                                                "maxLength": 45,
                                                                "minLength": 1
                                                            }
                                                        },
                                                        "type": "object"
                                                    },
                                                    {
                                                        "title": "Group component",
                                                        "required": [
                                                            "componentable_type",
                                                            "name",
                                                            "components"
                                                        ],
                                                        "properties": {
                                                            "componentable_type": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "uptime/group"
                                                                ]
                                                            },
                                                            "name": {
                                                                "description": "Name of the group shown on the status page. Must be unique within the status page (case-insensitive).",
                                                                "type": "string",
                                                                "maxLength": 100,
                                                                "minLength": 1
                                                            },
                                                            "is_expanded": {
                                                                "description": "Whether the group components are expanded by default",
                                                                "type": "boolean",
                                                                "example": false,
                                                                "default": false
                                                            },
                                                            "components": {
                                                                "description": "List of monitor components shown inside the group",
                                                                "type": "array",
                                                                "items": {
                                                                    "required": [
                                                                        "componentable_type",
                                                                        "componentable_id"
                                                                    ],
                                                                    "properties": {
                                                                        "componentable_type": {
                                                                            "type": "string",
                                                                            "enum": [
                                                                                "uptime/monitor"
                                                                            ]
                                                                        },
                                                                        "componentable_id": {
                                                                            "description": "ID of the monitor to show",
                                                                            "type": "integer"
                                                                        },
                                                                        "display_name": {
                                                                            "description": "Custom display name of the monitor on the status page",
                                                                            "type": [
                                                                                "string",
                                                                                "null"
                                                                            ],
                                                                            "example": "Main Website",
                                                                            "default": null,
                                                                            "maxLength": 45,
                                                                            "minLength": 1
                                                                        }
                                                                    },
                                                                    "type": "object"
                                                                },
                                                                "maxItems": 100,
                                                                "minItems": 1
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                ]
                                            },
                                            "maxItems": 100,
                                            "minItems": 1
                                        },
                                        "timeframe": {
                                            "description": "Number of days of status and incident history to display.",
                                            "type": "integer",
                                            "example": 90,
                                            "enum": [
                                                30,
                                                60,
                                                90
                                            ]
                                        },
                                        "show_response_times": {
                                            "description": "Whether to display response times for monitors on the status page",
                                            "type": "boolean",
                                            "example": true,
                                            "default": true
                                        },
                                        "timezone": {
                                            "description": "Timezone used to split the status page timeline into days and to display all dates on the status page and in feeds. Must be a canonical IANA timezone identifier (case-sensitive, e.g. `Europe/Paris`, `America/New_York` or `UTC`).",
                                            "type": "string",
                                            "example": "Europe/Paris",
                                            "default": "UTC"
                                        },
                                        "subscription_channels": {
                                            "description": "List of active subscription channels",
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Uptime.StatusPage.SubscriptionChannelEnum"
                                            },
                                            "maxItems": 3,
                                            "minItems": 0
                                        },
                                        "access_ips": {
                                            "description": "List of IP addresses or CIDR ranges allowed to access the status page. Requires an active Scale plan subscription.",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "string",
                                                "example": "45.129.56.0/24"
                                            },
                                            "maxItems": 50,
                                            "minItems": 1
                                        },
                                        "tags": {
                                            "description": "Resource tags, made of lowercase letters, numbers, `.`, `_`, `:` and `-`. An organization can have up to 200 tags.",
                                            "type": [
                                                "array",
                                                "null"
                                            ],
                                            "items": {
                                                "type": "string",
                                                "example": "environment:production",
                                                "maxLength": 100,
                                                "minLength": 1
                                            },
                                            "maxItems": 20
                                        },
                                        "created_at": {
                                            "description": "Date of creation for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "description": "Date of last update for the entity",
                                            "type": "string",
                                            "format": "date-time"
                                        }
                                    },
                                    "required": [
                                        "name",
                                        "subdomain",
                                        "title",
                                        "description",
                                        "search_engine_indexed",
                                        "website_url",
                                        "components",
                                        "timeframe"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Status Pages"
                ],
                "summary": "Delete a status page",
                "description": "Delete a status page by ID",
                "operationId": "deleteUptimeStatusPage",
                "parameters": [
                    {
                        "name": "statusPageId",
                        "in": "path",
                        "description": "ID of the status page to delete",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Success, status page deleted",
                        "content": {}
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            }
        },
        "/uptime/status-pages/{statusPageId}/current-status": {
            "get": {
                "tags": [
                    "Status Pages"
                ],
                "summary": "Get a status page current status",
                "description": "Get a status page current status by ID",
                "operationId": "getUptimeStatusPageCurrentStatus",
                "parameters": [
                    {
                        "name": "statusPageId",
                        "in": "path",
                        "description": "ID of the status page to show the current status for",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/header_project_id"
                    },
                    {
                        "$ref": "#/components/parameters/header_project_slug"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success, status page current status retrieved",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "current_incident_impact": {
                                            "$ref": "#/components/schemas/Uptime.Incident.ImpactEnum",
                                            "description": "Highest impact of all the active incidents linked to the status page, `maintenance` if there is no active incident and a maintenance window linked to the status page is in progress"
                                        },
                                        "availability": {
                                            "description": "Average availability of all associated monitors over the status page timeframe (30, 60 or 90 days), in percents",
                                            "type": "number",
                                            "format": "float",
                                            "example": 99.9999
                                        },
                                        "updated_at": {
                                            "description": "Date of the data calculation",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "components": {
                                            "description": "Components of the status page and their current status",
                                            "type": "array",
                                            "items": {
                                                "oneOf": [
                                                    {
                                                        "title": "Monitor component",
                                                        "properties": {
                                                            "component_type": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "uptime/monitor"
                                                                ]
                                                            },
                                                            "component_id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "name": {
                                                                "description": "Monitor name, or its custom display name on the status page",
                                                                "type": "string",
                                                                "example": "Website",
                                                                "maxLength": 45,
                                                                "minLength": 1
                                                            },
                                                            "response_time": {
                                                                "description": "75th percentile (P75) response time of successful checks over the last 7 days, in milliseconds. Null if unavailable or if response times are hidden on the status page",
                                                                "type": [
                                                                    "integer",
                                                                    "null"
                                                                ],
                                                                "example": 123
                                                            },
                                                            "availability": {
                                                                "description": "Availability over the status page timeframe, in percents",
                                                                "type": "number",
                                                                "format": "float",
                                                                "example": 99.9999
                                                            },
                                                            "current_incident_impact": {
                                                                "$ref": "#/components/schemas/Uptime.Incident.ImpactEnum",
                                                                "description": "Highest impact of the active incidents linked to the monitor, `maintenance` if there is no active incident and the monitor is in an in-progress maintenance window"
                                                            }
                                                        },
                                                        "type": "object"
                                                    },
                                                    {
                                                        "title": "Group component",
                                                        "properties": {
                                                            "component_type": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "uptime/group"
                                                                ]
                                                            },
                                                            "name": {
                                                                "description": "Group name",
                                                                "type": "string",
                                                                "example": "Websites",
                                                                "maxLength": 100,
                                                                "minLength": 1
                                                            },
                                                            "response_time": {
                                                                "description": "Average response time of the group components, in milliseconds",
                                                                "type": [
                                                                    "integer",
                                                                    "null"
                                                                ],
                                                                "example": 123
                                                            },
                                                            "availability": {
                                                                "description": "Average availability of the group components over the status page timeframe, in percents",
                                                                "type": "number",
                                                                "format": "float",
                                                                "example": 99.9999
                                                            },
                                                            "current_incident_impact": {
                                                                "$ref": "#/components/schemas/Uptime.Incident.ImpactEnum",
                                                                "description": "Highest current incident impact of the group components"
                                                            },
                                                            "components": {
                                                                "description": "Components of the group",
                                                                "type": "array",
                                                                "items": {
                                                                    "properties": {
                                                                        "component_type": {
                                                                            "type": "string",
                                                                            "enum": [
                                                                                "uptime/monitor"
                                                                            ]
                                                                        },
                                                                        "component_id": {
                                                                            "type": "integer",
                                                                            "example": 1
                                                                        },
                                                                        "name": {
                                                                            "description": "Monitor name, or its custom display name on the status page",
                                                                            "type": "string",
                                                                            "example": "Website",
                                                                            "maxLength": 45,
                                                                            "minLength": 1
                                                                        },
                                                                        "response_time": {
                                                                            "description": "75th percentile (P75) response time of successful checks over the last 7 days, in milliseconds. Null if unavailable or if response times are hidden on the status page",
                                                                            "type": [
                                                                                "integer",
                                                                                "null"
                                                                            ],
                                                                            "example": 123
                                                                        },
                                                                        "availability": {
                                                                            "description": "Availability over the status page timeframe, in percents",
                                                                            "type": "number",
                                                                            "format": "float",
                                                                            "example": 99.9999
                                                                        },
                                                                        "current_incident_impact": {
                                                                            "$ref": "#/components/schemas/Uptime.Incident.ImpactEnum",
                                                                            "description": "Highest impact of the active incidents linked to the monitor, `maintenance` if there is no active incident and the monitor is in an in-progress maintenance window"
                                                                        }
                                                                    },
                                                                    "type": "object"
                                                                }
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                ]
                                            }
                                        },
                                        "active_incidents": {
                                            "description": "Active incidents linked to the status page, unpublished incidents are excluded",
                                            "type": "array",
                                            "items": {
                                                "oneOf": [
                                                    {
                                                        "title": "Incident",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "title": {
                                                                "description": "Incident title",
                                                                "type": "string",
                                                                "example": "Service is not working as expected",
                                                                "maxLength": 250,
                                                                "minLength": 1
                                                            },
                                                            "impact": {
                                                                "$ref": "#/components/schemas/Uptime.Incident.ImpactEnum",
                                                                "description": "Incident impact level"
                                                            },
                                                            "state": {
                                                                "$ref": "#/components/schemas/Uptime.Incident.StateEnum",
                                                                "description": "Incident state"
                                                            },
                                                            "status": {
                                                                "$ref": "#/components/schemas/Uptime.Incident.StatusEnum",
                                                                "description": "Incident status"
                                                            },
                                                            "exclude_from_downtime": {
                                                                "description": "Flag to exclude the incident from downtime calculations",
                                                                "type": "boolean",
                                                                "example": false
                                                            },
                                                            "incident_at": {
                                                                "description": "Date of incident confirmation",
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ],
                                                                "format": "date-time"
                                                            },
                                                            "recovery_at": {
                                                                "description": "Date of incident recovery",
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ],
                                                                "format": "date-time"
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                ]
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "meta": {
                "description": "Meta data for pagination",
                "properties": {
                    "current_page": {
                        "type": "integer",
                        "example": 2
                    },
                    "from": {
                        "type": "integer",
                        "example": 11
                    },
                    "to": {
                        "type": "integer",
                        "example": 20
                    },
                    "per_page": {
                        "type": "integer",
                        "example": 100
                    },
                    "path": {
                        "type": "string",
                        "example": "https://api.phare.io/{resource}?page=2"
                    }
                },
                "type": "object"
            },
            "links": {
                "description": "Links for pagination",
                "properties": {
                    "first": {
                        "type": "string",
                        "format": "url",
                        "example": "https://api.phare.io/{resource}?page=2"
                    },
                    "last": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "url",
                        "example": "https://api.phare.io/{resource}?page=10"
                    },
                    "prev": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "url",
                        "example": "https://api.phare.io/{resource}?page=1"
                    },
                    "next": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "url",
                        "example": "https://api.phare.io/{resource}?page=1"
                    }
                },
                "type": "object"
            },
            "Platform.App.Email.IntegrationSettings": {
                "title": "Email",
                "required": [
                    "members"
                ],
                "properties": {
                    "members": {
                        "description": "IDs of the organization members receiving the alerts",
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "example": [
                            1,
                            2
                        ],
                        "maxItems": 100,
                        "minItems": 1
                    }
                },
                "type": "object"
            },
            "Platform.App.Ilert.IntegrationSettings": {
                "title": "ilert",
                "required": [
                    "integration_key"
                ],
                "properties": {
                    "integration_key": {
                        "description": "ilert alert source integration key",
                        "type": "string",
                        "writeOnly": true,
                        "example": "il1api00000000000000000000000000000000000000",
                        "maxLength": 70,
                        "minLength": 40
                    }
                },
                "type": "object"
            },
            "Platform.App.Ntfy.AlertRuleSettings": {
                "title": "Ntfy",
                "required": [
                    "priority"
                ],
                "properties": {
                    "priority": {
                        "description": "Notification priority level",
                        "type": "string",
                        "example": "default",
                        "enum": [
                            "min",
                            "low",
                            "default",
                            "high",
                            "max"
                        ]
                    }
                },
                "type": "object"
            },
            "Platform.App.Ntfy.IntegrationSettings": {
                "title": "Ntfy",
                "required": [
                    "hostname",
                    "topic"
                ],
                "properties": {
                    "hostname": {
                        "description": "Hostname of the Ntfy server",
                        "type": "string",
                        "example": "ntfy.sh",
                        "maxLength": 100,
                        "minLength": 4
                    },
                    "topic": {
                        "description": "Ntfy topic receiving the alerts",
                        "type": "string",
                        "example": "phare-alerts",
                        "maxLength": 255,
                        "minLength": 1
                    },
                    "access_token": {
                        "description": "Ntfy access token used for authenticated topics, must start with `tk_`",
                        "type": [
                            "string",
                            "null"
                        ],
                        "writeOnly": true,
                        "example": "tk_00000000000000000000000000000",
                        "maxLength": 32,
                        "minLength": 32
                    }
                },
                "type": "object"
            },
            "Platform.App.OutgoingWebhook.AlertRuleSettings": {
                "title": "Outgoing Webhooks",
                "required": [
                    "schema"
                ],
                "properties": {
                    "schema": {
                        "description": "JSON schema defining the webhook payload structure",
                        "type": "string",
                        "format": "json",
                        "example": "{\"id\": \"{{ alert_rule_request.id }}\", \"event\": \"{{ event.key }}\"}",
                        "maxLength": 5000
                    }
                },
                "type": "object"
            },
            "Platform.App.OutgoingWebhook.IntegrationSettings": {
                "title": "Outgoing Webhooks",
                "required": [
                    "url",
                    "secret"
                ],
                "properties": {
                    "url": {
                        "description": "URL receiving the webhook requests",
                        "type": "string",
                        "format": "uri",
                        "example": "https://example.com/webhooks/phare",
                        "maxLength": 250
                    },
                    "secret": {
                        "description": "Secret used to sign the webhook requests",
                        "type": "string",
                        "writeOnly": true,
                        "example": "a-very-secure-secret",
                        "maxLength": 250,
                        "minLength": 10
                    }
                },
                "type": "object"
            },
            "Platform.App.Pushover.AlertRuleSettings": {
                "title": "Pushover",
                "required": [
                    "priority"
                ],
                "properties": {
                    "priority": {
                        "description": "Notification priority level",
                        "type": "string",
                        "example": "normal",
                        "enum": [
                            "lowest",
                            "low",
                            "normal",
                            "high",
                            "emergency"
                        ]
                    },
                    "retry": {
                        "description": "Retry interval in seconds (required for emergency priority)",
                        "type": [
                            "integer",
                            "null"
                        ],
                        "example": 300,
                        "maximum": 86400,
                        "minimum": 30
                    },
                    "expire": {
                        "description": "Expiration time in seconds (required for emergency priority)",
                        "type": [
                            "integer",
                            "null"
                        ],
                        "example": 3600,
                        "maximum": 10800,
                        "minimum": 30
                    }
                },
                "type": "object"
            },
            "Platform.App.Pushover.IntegrationSettings": {
                "title": "Pushover",
                "required": [
                    "user_key",
                    "api_key"
                ],
                "properties": {
                    "user_key": {
                        "description": "Pushover user or group key",
                        "type": "string",
                        "writeOnly": true,
                        "example": "u00000000000000000000000000000",
                        "maxLength": 30,
                        "minLength": 30
                    },
                    "api_key": {
                        "description": "Pushover application API token",
                        "type": "string",
                        "writeOnly": true,
                        "example": "a00000000000000000000000000000",
                        "maxLength": 30,
                        "minLength": 30
                    }
                },
                "type": "object"
            },
            "Platform.App.Sms.IntegrationSettings": {
                "title": "SMS",
                "required": [
                    "members"
                ],
                "properties": {
                    "members": {
                        "description": "IDs of the organization members receiving the alerts",
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "example": [
                            1,
                            2
                        ],
                        "maxItems": 100,
                        "minItems": 1
                    }
                },
                "type": "object"
            },
            "Platform.Event.UptimeIncident.AlertRuleSettings": {
                "title": "Uptime incident",
                "required": [
                    "type"
                ],
                "properties": {
                    "type": {
                        "description": "Type of incident to notify about",
                        "type": "string",
                        "example": "all",
                        "enum": [
                            "all",
                            "monitor",
                            "manual"
                        ]
                    }
                },
                "type": "object"
            },
            "Platform.Event.UptimeMonitorCertificateExpiring.AlertRuleSettings": {
                "title": "Uptime certificate expiring",
                "required": [
                    "days_before_expiry"
                ],
                "properties": {
                    "days_before_expiry": {
                        "description": "Days to notify before the certificate expires",
                        "type": "integer",
                        "example": 25,
                        "maximum": 60,
                        "minimum": 1
                    }
                },
                "type": "object"
            },
            "Uptime.ProductEvents": {
                "type": "string",
                "enum": [
                    "uptime.monitor.created",
                    "uptime.monitor.deleted",
                    "uptime.monitor_certificate.discovered",
                    "uptime.monitor_certificate.expiring",
                    "uptime.incident.created",
                    "uptime.incident.propagated",
                    "uptime.incident.partially_recovered",
                    "uptime.incident.recovered",
                    "uptime.incident_comment.created",
                    "uptime.incident_update.published",
                    "uptime.maintenance_window.in_progress",
                    "uptime.maintenance_window.completed",
                    "uptime.maintenance_window.cancelled"
                ]
            },
            "Phare.User.UserRoleEnum": {
                "type": "string",
                "enum": [
                    "member",
                    "admin"
                ]
            },
            "Uptime.Incident.ImpactEnum": {
                "type": "string",
                "enum": [
                    "unknown",
                    "operational",
                    "maintenance",
                    "degraded_performance",
                    "partial_outage",
                    "major_outage"
                ]
            },
            "Uptime.Incident.StateEnum": {
                "type": "string",
                "enum": [
                    "unknown",
                    "investigating",
                    "identified",
                    "monitoring",
                    "resolved"
                ]
            },
            "Uptime.Incident.StatusEnum": {
                "type": "string",
                "enum": [
                    "ongoing",
                    "recovering",
                    "recovered"
                ]
            },
            "Uptime.Incident.TypeEnum": {
                "type": "string",
                "enum": [
                    "monitor",
                    "manual"
                ]
            },
            "Uptime.MaintenanceWindow.MonitoringModeEnum": {
                "type": "string",
                "enum": [
                    "pause",
                    "mute",
                    "normal"
                ]
            },
            "Uptime.MaintenanceWindow.StateEnum": {
                "type": "string",
                "enum": [
                    "scheduled",
                    "in_progress",
                    "completed",
                    "cancelled"
                ]
            },
            "Uptime.Monitor.ConnectionEnum": {
                "type": "string",
                "enum": [
                    "plain",
                    "tls"
                ]
            },
            "Uptime.Monitor.ProtocolEnum": {
                "type": "string",
                "enum": [
                    "http",
                    "tcp",
                    "icmp"
                ]
            },
            "Uptime.Monitor.RegionEnum": {
                "type": "string",
                "enum": [
                    "as-jpn-hnd",
                    "as-sgp-sin",
                    "as-tha-bkk",
                    "eu-deu-fra",
                    "eu-fra-cdg",
                    "eu-gbr-lhr",
                    "eu-swe-arn",
                    "ng-nld-ams",
                    "na-mex-mex",
                    "na-usa-iad",
                    "na-usa-sea",
                    "oc-aus-syd",
                    "sa-bra-gru"
                ]
            },
            "Uptime.Monitor.StatusEnum": {
                "type": "string",
                "enum": [
                    "fetching",
                    "online",
                    "offline",
                    "partial",
                    "paused"
                ]
            },
            "Uptime.StatusPage.SubscriptionChannelEnum": {
                "type": "string",
                "enum": [
                    "rss",
                    "atom",
                    "slack"
                ]
            },
            "Platform.App.AppEnum": {
                "type": "string",
                "enum": [
                    "sms",
                    "discord",
                    "email",
                    "ilert",
                    "ntfy",
                    "outgoing_webhook",
                    "pushover",
                    "slack",
                    "telegram"
                ]
            },
            "Platform.App.ManageableAppEnum": {
                "type": "string",
                "enum": [
                    "sms",
                    "email",
                    "ilert",
                    "ntfy",
                    "outgoing_webhook",
                    "pushover"
                ]
            }
        },
        "responses": {
            "401": {
                "description": "Error, access unauthorized",
                "content": {
                    "application/json": {
                        "schema": {
                            "description": "Access unauthorized error schema",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "example": "Unauthenticated."
                                }
                            },
                            "type": "object"
                        }
                    }
                }
            },
            "403": {
                "description": "Error, access forbidden",
                "content": {
                    "application/json": {
                        "schema": {
                            "description": "Access forbidden error schema",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "example": "The platform:write permission is required to perform this action."
                                }
                            },
                            "type": "object"
                        }
                    }
                }
            },
            "404": {
                "description": "Error, resource not found",
                "content": {
                    "application/json": {
                        "schema": {
                            "description": "Not found error schema",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "example": "Record not found."
                                }
                            },
                            "type": "object"
                        }
                    }
                }
            },
            "422": {
                "description": "Error, unprocessable entity",
                "content": {
                    "application/json": {
                        "schema": {
                            "description": "Validation error schema",
                            "properties": {
                                "message": {
                                    "type": "string"
                                },
                                "errors": {
                                    "properties": {
                                        "key": {
                                            "type": "array",
                                            "items": {
                                                "type": "string",
                                                "example": "The key field is required"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            },
                            "type": "object"
                        }
                    }
                }
            }
        },
        "parameters": {
            "header_project_id": {
                "name": "X-Phare-Project-Id",
                "in": "header",
                "description": "A project header is required when using an organization-scoped API key.",
                "required": false,
                "schema": {
                    "type": "integer",
                    "example": 1
                }
            },
            "header_project_slug": {
                "name": "X-Phare-Project-Slug",
                "in": "header",
                "description": "A project header is required when using an organization-scoped API key.",
                "required": false,
                "schema": {
                    "type": "string",
                    "example": "luminous-guiding-tower"
                }
            },
            "page": {
                "name": "page",
                "in": "query",
                "description": "Page number to show",
                "required": false,
                "schema": {
                    "type": "integer",
                    "example": 1,
                    "default": 1
                }
            },
            "per_page": {
                "name": "per_page",
                "in": "query",
                "description": "Number of resources to return per page",
                "required": false,
                "schema": {
                    "type": "integer",
                    "example": 20,
                    "default": 20,
                    "maximum": 100,
                    "minimum": 1
                }
            }
        },
        "securitySchemes": {
            "BearerAuth": {
                "type": "http",
                "description": "Use a user token to access authenticated routes. The token must be specified in the Authorization HTTP header with the following format 'Authorization: Bearer <token>'.",
                "scheme": "bearer"
            }
        }
    },
    "security": [
        {
            "BearerAuth": []
        }
    ],
    "tags": [
        {
            "name": "Platform",
            "description": "Platform"
        },
        {
            "name": "Users",
            "description": "Users"
        },
        {
            "name": "Projects",
            "description": "Projects"
        },
        {
            "name": "Alert Rules",
            "description": "Alert Rules"
        },
        {
            "name": "Integrations",
            "description": "Integrations"
        },
        {
            "name": "Monitors",
            "description": "Monitors"
        },
        {
            "name": "Incidents",
            "description": "Incidents"
        },
        {
            "name": "Maintenance Windows",
            "description": "Maintenance Windows"
        },
        {
            "name": "Status Pages",
            "description": "Status Pages"
        },
        {
            "name": "Reports",
            "description": "Reports"
        }
    ],
    "x-tagGroups": [
        {
            "name": "Phare platform",
            "tags": [
                "Platform",
                "Users",
                "Projects",
                "Alert Rules",
                "Integrations"
            ]
        },
        {
            "name": "Phare uptime",
            "tags": [
                "Monitors",
                "Incidents",
                "Maintenance Windows",
                "Status Pages",
                "Reports"
            ]
        }
    ]
}