{
  "info": {
    "description": "\nThe official API for Pingera, a monitoring and status page platform. This API allows you to manage checks, organizations, incidents, and more.\n\n\nSome useful links:\n* [Pingera website](https://pingera.ru?utm_source=api_docs)\n* [API documentation](https://docs.pingera.ru/api/overview)\n* [Application](https://app.pingera.ru)\n* [Status page](https://status.pingera.ru)\n",
    "contact": {
      "email": "privet@pingera.ru"
    },
    "title": "Pingera API",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://api.pingera.ru"
    }
  ],
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Authentication using a JSON Web Token (JWT)."
      },
      "apiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "Authentication using a standard API Token. The value should be just the token (e.g., 'YOUR_API_TOKEN'), not prefixed with 'Bearer'."
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": "Error code"
          },
          "errors": {
            "type": "object",
            "description": "Errors",
            "additionalProperties": {}
          },
          "status": {
            "type": "string",
            "description": "Error name"
          },
          "message": {
            "type": "string",
            "description": "Error message"
          }
        },
        "additionalProperties": false
      },
      "PaginationMetadata": {
        "type": "object",
        "properties": {
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          },
          "first_page": {
            "type": "integer"
          },
          "last_page": {
            "type": "integer"
          },
          "page": {
            "type": "integer"
          },
          "previous_page": {
            "type": "integer"
          },
          "next_page": {
            "type": "integer"
          }
        },
        "additionalProperties": false
      },
      "User": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the user account was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "last_name": {
            "type": "string",
            "maxLength": 50,
            "description": "The user's last name. Maximum 50 characters.",
            "example": "Doe"
          },
          "organization_id": {
            "type": "string",
            "readOnly": true,
            "description": "The ID of the organization the user belongs to.",
            "example": "org_stellar_solutions"
          },
          "email_verified": {
            "type": "boolean",
            "readOnly": true,
            "description": "Whether the user's email address has been verified.",
            "example": true
          },
          "first_name": {
            "type": "string",
            "maxLength": 50,
            "description": "The user's first name. Maximum 50 characters.",
            "example": "John"
          },
          "verification_token_expires": {
            "readOnly": true,
            "description": "The expiration time of the email verification token in ISO format. Null if already verified.",
            "example": "2024-01-16T10:00:00Z"
          },
          "password": {
            "type": "string",
            "writeOnly": true,
            "minLength": 6,
            "description": "The user's password. Minimum 6 characters. Only used for input, never returned.",
            "example": "securepassword123"
          },
          "onboarding_completed_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when onboarding was completed in ISO format. Null if not completed.",
            "example": "2024-01-15T11:30:00Z"
          },
          "is_first_login": {
            "type": "boolean",
            "readOnly": true,
            "description": "Whether this is the user's first login to the system.",
            "example": false
          },
          "onboarding_completed": {
            "type": "boolean",
            "readOnly": true,
            "description": "Whether the user has completed the onboarding process.",
            "example": true
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "The user's email address. Must be a valid email format and unique.",
            "example": "user@example.com"
          },
          "onboarding_step": {
            "type": "string",
            "readOnly": true,
            "description": "The current step in the onboarding process. Null if onboarding is completed.",
            "example": "setup_alerts"
          },
          "last_login": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp of the user's last login in ISO format. Null if never logged in.",
            "example": "2024-01-15T14:30:00Z",
            "nullable": true
          },
          "org_name": {
            "type": "string",
            "maxLength": 100,
            "description": "Organization name for registration. Used when creating a new organization. Maximum 100 characters.",
            "example": "My Company"
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the user account.",
            "example": "user_abc123def456"
          },
          "role": {
            "description": "The user's role within the organization.",
            "example": "admin",
            "enum": [
              "admin",
              "editor",
              "viewer",
              "billing"
            ]
          }
        },
        "required": [
          "email",
          "password"
        ],
        "additionalProperties": false
      },
      "Login": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "description": "The user's email address for authentication.",
            "example": "user@example.com"
          },
          "password": {
            "type": "string",
            "description": "The user's password for authentication.",
            "example": "securepassword123"
          }
        },
        "required": [
          "email",
          "password"
        ],
        "additionalProperties": false
      },
      "User1": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the user account was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "last_name": {
            "type": "string",
            "maxLength": 50,
            "description": "The user's last name. Maximum 50 characters.",
            "example": "Doe"
          },
          "organization_id": {
            "type": "string",
            "readOnly": true,
            "description": "The ID of the organization the user belongs to.",
            "example": "org_stellar_solutions"
          },
          "email_verified": {
            "type": "boolean",
            "readOnly": true,
            "description": "Whether the user's email address has been verified.",
            "example": true
          },
          "first_name": {
            "type": "string",
            "maxLength": 50,
            "description": "The user's first name. Maximum 50 characters.",
            "example": "John"
          },
          "verification_token_expires": {
            "readOnly": true,
            "description": "The expiration time of the email verification token in ISO format. Null if already verified.",
            "example": "2024-01-16T10:00:00Z"
          },
          "password": {
            "type": "string",
            "writeOnly": true,
            "minLength": 6,
            "description": "The user's password. Minimum 6 characters. Only used for input, never returned.",
            "example": "securepassword123"
          },
          "onboarding_completed_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when onboarding was completed in ISO format. Null if not completed.",
            "example": "2024-01-15T11:30:00Z"
          },
          "is_first_login": {
            "type": "boolean",
            "readOnly": true,
            "description": "Whether this is the user's first login to the system.",
            "example": false
          },
          "onboarding_completed": {
            "type": "boolean",
            "readOnly": true,
            "description": "Whether the user has completed the onboarding process.",
            "example": true
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "The user's email address. Must be a valid email format and unique.",
            "example": "user@example.com"
          },
          "onboarding_step": {
            "type": "string",
            "readOnly": true,
            "description": "The current step in the onboarding process. Null if onboarding is completed.",
            "example": "setup_alerts"
          },
          "last_login": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp of the user's last login in ISO format. Null if never logged in.",
            "example": "2024-01-15T14:30:00Z",
            "nullable": true
          },
          "org_name": {
            "type": "string",
            "maxLength": 100,
            "description": "Organization name for registration. Used when creating a new organization. Maximum 100 characters.",
            "example": "My Company"
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the user account.",
            "example": "user_abc123def456"
          },
          "role": {
            "description": "The user's role within the organization.",
            "example": "admin",
            "enum": [
              "admin",
              "editor",
              "viewer",
              "billing"
            ]
          }
        },
        "additionalProperties": false
      },
      "APIToken": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the API token was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "A descriptive name for the API token. Maximum 100 characters.",
            "example": "Production API Access"
          },
          "last_used_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the API token was last used in ISO format. Null if never used.",
            "example": "2024-01-15T14:30:00Z"
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the API token.",
            "example": "token_abc123def456"
          },
          "token": {
            "type": "string",
            "readOnly": true,
            "description": "The actual API token string. Only returned when creating a new token.",
            "example": "api_1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "Plan": {
        "type": "object",
        "properties": {
          "limits": {
            "type": "object",
            "description": "Usage limits and quotas for the plan features.",
            "example": {
              "checks": 10,
              "heartbeats": 5,
              "alert_channels": 3
            },
            "additionalProperties": {}
          },
          "duration": {
            "type": "integer",
            "minimum": 1,
            "description": "The duration of the plan subscription in days. Minimum is 1 day.",
            "example": 30
          },
          "description": {
            "type": "string",
            "description": "A detailed description of the plan features and benefits.",
            "example": "Perfect for getting started with basic monitoring needs"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "The name of the subscription plan. Maximum 100 characters.",
            "example": "Free Plan"
          },
          "price": {
            "type": "object",
            "description": "Pricing information for the plan in different currencies.",
            "example": {
              "USD": 0,
              "EUR": 0
            },
            "additionalProperties": {}
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the subscription plan.",
            "example": "plan_free_123"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "PlanSubscription": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when the subscription was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "plan": {
            "readOnly": true,
            "description": "The subscribed plan details including pricing and limits.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Plan"
              }
            ]
          },
          "end_date": {
            "type": "string",
            "format": "date-time",
            "description": "The end date of the subscription in ISO format.",
            "example": "2024-02-15T10:00:00Z"
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the plan subscription.",
            "example": "sub_abc123def456"
          },
          "start_date": {
            "type": "string",
            "format": "date-time",
            "description": "The start date of the subscription in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          }
        },
        "additionalProperties": false
      },
      "Organization": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the organization was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "invoice_address": {
            "type": "string",
            "description": "Full legal address for invoices.",
            "example": "123 Main St, Suite 100, San Francisco, CA 94102"
          },
          "timezone": {
            "type": "string",
            "description": "Timezone for displaying dates and times on the status page",
            "example": "America/New_York"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "The name of the organization. Maximum 100 characters.",
            "example": "Stellar Solutions"
          },
          "current_subscription": {
            "readOnly": true,
            "description": "The current active subscription for the organization.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PlanSubscription"
              }
            ]
          },
          "invoice_company_name": {
            "type": "string",
            "description": "Legal company name for invoices.",
            "example": "Stellar Solutions LLC"
          },
          "invoice_email": {
            "type": "string",
            "description": "Email address for invoice delivery.",
            "example": "billing@example.com"
          },
          "payment_method_preference": {
            "readOnly": true,
            "description": "Preferred payment method for the organization.",
            "example": "card",
            "enum": [
              "card",
              "invoice"
            ]
          },
          "invoice_tax_id": {
            "type": "string",
            "description": "Tax ID / INN for invoice.",
            "example": "1234567890"
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the organization.",
            "example": "org_stellar_solutions"
          },
          "auto_renew": {
            "type": "boolean",
            "description": "Whether the subscription will automatically renew at the end of the billing period.",
            "example": true
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "Page": {
        "type": "object",
        "properties": {
          "favicon_logo": {
            "type": "string",
            "maxLength": 200,
            "description": "URL to the favicon image",
            "example": "https://example.com/favicon.ico",
            "nullable": true
          },
          "css_blues": {
            "type": "string",
            "description": "Blue color used for maintenance status in HEX format",
            "example": "#007bff",
            "nullable": true
          },
          "css_border_color": {
            "type": "string",
            "description": "Border color for page elements in HEX format",
            "example": "#dee2e6",
            "nullable": true
          },
          "notifications_email_footer": {
            "type": "string",
            "description": "Footer text included in notification emails",
            "example": "You are receiving this email because you are subscribed to updates from MyCompany.",
            "nullable": true
          },
          "css_link_color": {
            "type": "string",
            "description": "Color for links in HEX format",
            "example": "#007bff",
            "nullable": true
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "Display name of the status page",
            "example": "MyCompany Status"
          },
          "allow_webhook_subscribers": {
            "type": "boolean",
            "description": "Whether to allow webhook subscriptions",
            "example": true,
            "nullable": true
          },
          "css_oranges": {
            "type": "string",
            "description": "Orange color used for partial outage status in HEX format",
            "example": "#fd7e14",
            "nullable": true
          },
          "css_button_text_color": {
            "type": "string",
            "description": "Button text color in HEX format",
            "example": "#ffffff",
            "nullable": true
          },
          "organization_id": {
            "type": "string",
            "readOnly": true,
            "description": "ID of the organization this page belongs to",
            "example": "org123abc456"
          },
          "css_spinner_color": {
            "type": "string",
            "description": "Loading spinner color in HEX format",
            "example": "#007bff",
            "nullable": true
          },
          "css_body_background_color": {
            "type": "string",
            "description": "Background color for the page body in HEX format",
            "example": "#ffffff",
            "nullable": true
          },
          "city": {
            "type": "string",
            "maxLength": 100,
            "description": "City where your organization is located",
            "example": "New York",
            "nullable": true
          },
          "css_button_color": {
            "type": "string",
            "description": "Button background color in HEX format",
            "example": "#007bff",
            "nullable": true
          },
          "allow_rss_atom_feeds": {
            "type": "boolean",
            "description": "Whether to provide RSS/Atom feeds",
            "example": true,
            "nullable": true
          },
          "country": {
            "type": "string",
            "maxLength": 100,
            "description": "Country where your organization is located",
            "example": "Russia",
            "nullable": true
          },
          "language": {
            "description": "Language for the status page interface",
            "example": "ru",
            "enum": [
              "ru",
              "en"
            ]
          },
          "headline": {
            "type": "string",
            "maxLength": 200,
            "description": "Headline text displayed on the status page",
            "example": "Real-time status and performance monitoring for MyCompany services",
            "nullable": true
          },
          "hidden_from_search": {
            "type": "boolean",
            "description": "Whether to hide this page from search engines",
            "example": false,
            "nullable": true
          },
          "transactional_logo": {
            "type": "string",
            "maxLength": 200,
            "description": "URL to the logo used in transactional emails",
            "example": "https://example.com/email-logo.png",
            "nullable": true
          },
          "css_button_border_color": {
            "type": "string",
            "description": "Button border color in HEX format",
            "example": "#007bff",
            "nullable": true
          },
          "css_graph_color": {
            "type": "string",
            "description": "Color used for graphs and charts in HEX format",
            "example": "#6f42c1",
            "nullable": true
          },
          "ip_restrictions": {
            "type": "string",
            "maxLength": 200,
            "description": "IP address restrictions for viewing the page",
            "example": "192.168.1.0/24,10.0.0.0/8",
            "nullable": true
          },
          "domain": {
            "type": "string",
            "maxLength": 100,
            "description": "Custom domain for the status page",
            "example": "status.mycompany.com",
            "nullable": true
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "Unique identifier for the status page",
            "example": "abc123def456"
          },
          "notifications_from_email": {
            "type": "string",
            "format": "email",
            "maxLength": 100,
            "description": "Email address used as sender for notifications",
            "example": "noreply@mycompany.com",
            "nullable": true
          },
          "css_no_data": {
            "type": "string",
            "description": "Color used when no data is available in HEX format",
            "example": "#6c757d",
            "nullable": true
          },
          "allow_incident_subscribers": {
            "type": "boolean",
            "description": "Whether to allow users to subscribe to incident updates",
            "example": true,
            "nullable": true
          },
          "css_yellows": {
            "type": "string",
            "description": "Yellow color used for degraded status in HEX format",
            "example": "#ffc107",
            "nullable": true
          },
          "hero_cover": {
            "type": "string",
            "maxLength": 200,
            "description": "URL to the hero cover image",
            "example": "https://example.com/hero.jpg",
            "nullable": true
          },
          "google_analytics_id": {
            "type": "string",
            "maxLength": 50,
            "description": "Google Analytics measurement ID (e.g., G-XXXXXXXXXX or UA-XXXXXXXXX-X)",
            "example": "G-XXXXXXXXXX",
            "nullable": true
          },
          "yandex_metrica_id": {
            "type": "string",
            "maxLength": 50,
            "description": "Yandex Metrica counter ID for analytics tracking",
            "example": "12345678",
            "nullable": true
          },
          "support_url": {
            "type": "string",
            "maxLength": 200,
            "description": "URL to your support or contact page",
            "example": "https://mycompany.com/support",
            "nullable": true
          },
          "css_font_color": {
            "type": "string",
            "description": "Primary font color in HEX format",
            "example": "#333333",
            "nullable": true
          },
          "time_zone": {
            "type": "string",
            "enum": [
              "Africa/Abidjan",
              "Africa/Accra",
              "Africa/Addis_Ababa",
              "Africa/Algiers",
              "Africa/Asmara",
              "Africa/Asmera",
              "Africa/Bamako",
              "Africa/Bangui",
              "Africa/Banjul",
              "Africa/Bissau",
              "Africa/Blantyre",
              "Africa/Brazzaville",
              "Africa/Bujumbura",
              "Africa/Cairo",
              "Africa/Casablanca",
              "Africa/Ceuta",
              "Africa/Conakry",
              "Africa/Dakar",
              "Africa/Dar_es_Salaam",
              "Africa/Djibouti",
              "Africa/Douala",
              "Africa/El_Aaiun",
              "Africa/Freetown",
              "Africa/Gaborone",
              "Africa/Harare",
              "Africa/Johannesburg",
              "Africa/Juba",
              "Africa/Kampala",
              "Africa/Khartoum",
              "Africa/Kigali",
              "Africa/Kinshasa",
              "Africa/Lagos",
              "Africa/Libreville",
              "Africa/Lome",
              "Africa/Luanda",
              "Africa/Lubumbashi",
              "Africa/Lusaka",
              "Africa/Malabo",
              "Africa/Maputo",
              "Africa/Maseru",
              "Africa/Mbabane",
              "Africa/Mogadishu",
              "Africa/Monrovia",
              "Africa/Nairobi",
              "Africa/Ndjamena",
              "Africa/Niamey",
              "Africa/Nouakchott",
              "Africa/Ouagadougou",
              "Africa/Porto-Novo",
              "Africa/Sao_Tome",
              "Africa/Timbuktu",
              "Africa/Tripoli",
              "Africa/Tunis",
              "Africa/Windhoek",
              "America/Adak",
              "America/Anchorage",
              "America/Anguilla",
              "America/Antigua",
              "America/Araguaina",
              "America/Argentina/Buenos_Aires",
              "America/Argentina/Catamarca",
              "America/Argentina/ComodRivadavia",
              "America/Argentina/Cordoba",
              "America/Argentina/Jujuy",
              "America/Argentina/La_Rioja",
              "America/Argentina/Mendoza",
              "America/Argentina/Rio_Gallegos",
              "America/Argentina/Salta",
              "America/Argentina/San_Juan",
              "America/Argentina/San_Luis",
              "America/Argentina/Tucuman",
              "America/Argentina/Ushuaia",
              "America/Aruba",
              "America/Asuncion",
              "America/Atikokan",
              "America/Atka",
              "America/Bahia",
              "America/Bahia_Banderas",
              "America/Barbados",
              "America/Belem",
              "America/Belize",
              "America/Blanc-Sablon",
              "America/Boa_Vista",
              "America/Bogota",
              "America/Boise",
              "America/Buenos_Aires",
              "America/Cambridge_Bay",
              "America/Campo_Grande",
              "America/Cancun",
              "America/Caracas",
              "America/Catamarca",
              "America/Cayenne",
              "America/Cayman",
              "America/Chicago",
              "America/Chihuahua",
              "America/Ciudad_Juarez",
              "America/Coral_Harbour",
              "America/Cordoba",
              "America/Costa_Rica",
              "America/Coyhaique",
              "America/Creston",
              "America/Cuiaba",
              "America/Curacao",
              "America/Danmarkshavn",
              "America/Dawson",
              "America/Dawson_Creek",
              "America/Denver",
              "America/Detroit",
              "America/Dominica",
              "America/Edmonton",
              "America/Eirunepe",
              "America/El_Salvador",
              "America/Ensenada",
              "America/Fort_Nelson",
              "America/Fort_Wayne",
              "America/Fortaleza",
              "America/Glace_Bay",
              "America/Godthab",
              "America/Goose_Bay",
              "America/Grand_Turk",
              "America/Grenada",
              "America/Guadeloupe",
              "America/Guatemala",
              "America/Guayaquil",
              "America/Guyana",
              "America/Halifax",
              "America/Havana",
              "America/Hermosillo",
              "America/Indiana/Indianapolis",
              "America/Indiana/Knox",
              "America/Indiana/Marengo",
              "America/Indiana/Petersburg",
              "America/Indiana/Tell_City",
              "America/Indiana/Vevay",
              "America/Indiana/Vincennes",
              "America/Indiana/Winamac",
              "America/Indianapolis",
              "America/Inuvik",
              "America/Iqaluit",
              "America/Jamaica",
              "America/Jujuy",
              "America/Juneau",
              "America/Kentucky/Louisville",
              "America/Kentucky/Monticello",
              "America/Knox_IN",
              "America/Kralendijk",
              "America/La_Paz",
              "America/Lima",
              "America/Los_Angeles",
              "America/Louisville",
              "America/Lower_Princes",
              "America/Maceio",
              "America/Managua",
              "America/Manaus",
              "America/Marigot",
              "America/Martinique",
              "America/Matamoros",
              "America/Mazatlan",
              "America/Mendoza",
              "America/Menominee",
              "America/Merida",
              "America/Metlakatla",
              "America/Mexico_City",
              "America/Miquelon",
              "America/Moncton",
              "America/Monterrey",
              "America/Montevideo",
              "America/Montreal",
              "America/Montserrat",
              "America/Nassau",
              "America/New_York",
              "America/Nipigon",
              "America/Nome",
              "America/Noronha",
              "America/North_Dakota/Beulah",
              "America/North_Dakota/Center",
              "America/North_Dakota/New_Salem",
              "America/Nuuk",
              "America/Ojinaga",
              "America/Panama",
              "America/Pangnirtung",
              "America/Paramaribo",
              "America/Phoenix",
              "America/Port-au-Prince",
              "America/Port_of_Spain",
              "America/Porto_Acre",
              "America/Porto_Velho",
              "America/Puerto_Rico",
              "America/Punta_Arenas",
              "America/Rainy_River",
              "America/Rankin_Inlet",
              "America/Recife",
              "America/Regina",
              "America/Resolute",
              "America/Rio_Branco",
              "America/Rosario",
              "America/Santa_Isabel",
              "America/Santarem",
              "America/Santiago",
              "America/Santo_Domingo",
              "America/Sao_Paulo",
              "America/Scoresbysund",
              "America/Shiprock",
              "America/Sitka",
              "America/St_Barthelemy",
              "America/St_Johns",
              "America/St_Kitts",
              "America/St_Lucia",
              "America/St_Thomas",
              "America/St_Vincent",
              "America/Swift_Current",
              "America/Tegucigalpa",
              "America/Thule",
              "America/Thunder_Bay",
              "America/Tijuana",
              "America/Toronto",
              "America/Tortola",
              "America/Vancouver",
              "America/Virgin",
              "America/Whitehorse",
              "America/Winnipeg",
              "America/Yakutat",
              "America/Yellowknife",
              "Antarctica/Casey",
              "Antarctica/Davis",
              "Antarctica/DumontDUrville",
              "Antarctica/Macquarie",
              "Antarctica/Mawson",
              "Antarctica/McMurdo",
              "Antarctica/Palmer",
              "Antarctica/Rothera",
              "Antarctica/South_Pole",
              "Antarctica/Syowa",
              "Antarctica/Troll",
              "Antarctica/Vostok",
              "Arctic/Longyearbyen",
              "Asia/Aden",
              "Asia/Almaty",
              "Asia/Amman",
              "Asia/Anadyr",
              "Asia/Aqtau",
              "Asia/Aqtobe",
              "Asia/Ashgabat",
              "Asia/Ashkhabad",
              "Asia/Atyrau",
              "Asia/Baghdad",
              "Asia/Bahrain",
              "Asia/Baku",
              "Asia/Bangkok",
              "Asia/Barnaul",
              "Asia/Beirut",
              "Asia/Bishkek",
              "Asia/Brunei",
              "Asia/Calcutta",
              "Asia/Chita",
              "Asia/Choibalsan",
              "Asia/Chongqing",
              "Asia/Chungking",
              "Asia/Colombo",
              "Asia/Dacca",
              "Asia/Damascus",
              "Asia/Dhaka",
              "Asia/Dili",
              "Asia/Dubai",
              "Asia/Dushanbe",
              "Asia/Famagusta",
              "Asia/Gaza",
              "Asia/Harbin",
              "Asia/Hebron",
              "Asia/Ho_Chi_Minh",
              "Asia/Hong_Kong",
              "Asia/Hovd",
              "Asia/Irkutsk",
              "Asia/Istanbul",
              "Asia/Jakarta",
              "Asia/Jayapura",
              "Asia/Jerusalem",
              "Asia/Kabul",
              "Asia/Kamchatka",
              "Asia/Karachi",
              "Asia/Kashgar",
              "Asia/Kathmandu",
              "Asia/Katmandu",
              "Asia/Khandyga",
              "Asia/Kolkata",
              "Asia/Krasnoyarsk",
              "Asia/Kuala_Lumpur",
              "Asia/Kuching",
              "Asia/Kuwait",
              "Asia/Macao",
              "Asia/Macau",
              "Asia/Magadan",
              "Asia/Makassar",
              "Asia/Manila",
              "Asia/Muscat",
              "Asia/Nicosia",
              "Asia/Novokuznetsk",
              "Asia/Novosibirsk",
              "Asia/Omsk",
              "Asia/Oral",
              "Asia/Phnom_Penh",
              "Asia/Pontianak",
              "Asia/Pyongyang",
              "Asia/Qatar",
              "Asia/Qostanay",
              "Asia/Qyzylorda",
              "Asia/Rangoon",
              "Asia/Riyadh",
              "Asia/Saigon",
              "Asia/Sakhalin",
              "Asia/Samarkand",
              "Asia/Seoul",
              "Asia/Shanghai",
              "Asia/Singapore",
              "Asia/Srednekolymsk",
              "Asia/Taipei",
              "Asia/Tashkent",
              "Asia/Tbilisi",
              "Asia/Tehran",
              "Asia/Tel_Aviv",
              "Asia/Thimbu",
              "Asia/Thimphu",
              "Asia/Tokyo",
              "Asia/Tomsk",
              "Asia/Ujung_Pandang",
              "Asia/Ulaanbaatar",
              "Asia/Ulan_Bator",
              "Asia/Urumqi",
              "Asia/Ust-Nera",
              "Asia/Vientiane",
              "Asia/Vladivostok",
              "Asia/Yakutsk",
              "Asia/Yangon",
              "Asia/Yekaterinburg",
              "Asia/Yerevan",
              "Atlantic/Azores",
              "Atlantic/Bermuda",
              "Atlantic/Canary",
              "Atlantic/Cape_Verde",
              "Atlantic/Faeroe",
              "Atlantic/Faroe",
              "Atlantic/Jan_Mayen",
              "Atlantic/Madeira",
              "Atlantic/Reykjavik",
              "Atlantic/South_Georgia",
              "Atlantic/St_Helena",
              "Atlantic/Stanley",
              "Australia/ACT",
              "Australia/Adelaide",
              "Australia/Brisbane",
              "Australia/Broken_Hill",
              "Australia/Canberra",
              "Australia/Currie",
              "Australia/Darwin",
              "Australia/Eucla",
              "Australia/Hobart",
              "Australia/LHI",
              "Australia/Lindeman",
              "Australia/Lord_Howe",
              "Australia/Melbourne",
              "Australia/NSW",
              "Australia/North",
              "Australia/Perth",
              "Australia/Queensland",
              "Australia/South",
              "Australia/Sydney",
              "Australia/Tasmania",
              "Australia/Victoria",
              "Australia/West",
              "Australia/Yancowinna",
              "Brazil/Acre",
              "Brazil/DeNoronha",
              "Brazil/East",
              "Brazil/West",
              "CET",
              "CST6CDT",
              "Canada/Atlantic",
              "Canada/Central",
              "Canada/Eastern",
              "Canada/Mountain",
              "Canada/Newfoundland",
              "Canada/Pacific",
              "Canada/Saskatchewan",
              "Canada/Yukon",
              "Chile/Continental",
              "Chile/EasterIsland",
              "Cuba",
              "EET",
              "EST",
              "EST5EDT",
              "Egypt",
              "Eire",
              "Etc/GMT",
              "Etc/GMT+0",
              "Etc/GMT+1",
              "Etc/GMT+10",
              "Etc/GMT+11",
              "Etc/GMT+12",
              "Etc/GMT+2",
              "Etc/GMT+3",
              "Etc/GMT+4",
              "Etc/GMT+5",
              "Etc/GMT+6",
              "Etc/GMT+7",
              "Etc/GMT+8",
              "Etc/GMT+9",
              "Etc/GMT-0",
              "Etc/GMT-1",
              "Etc/GMT-10",
              "Etc/GMT-11",
              "Etc/GMT-12",
              "Etc/GMT-13",
              "Etc/GMT-14",
              "Etc/GMT-2",
              "Etc/GMT-3",
              "Etc/GMT-4",
              "Etc/GMT-5",
              "Etc/GMT-6",
              "Etc/GMT-7",
              "Etc/GMT-8",
              "Etc/GMT-9",
              "Etc/GMT0",
              "Etc/Greenwich",
              "Etc/UCT",
              "Etc/UTC",
              "Etc/Universal",
              "Etc/Zulu",
              "Europe/Amsterdam",
              "Europe/Andorra",
              "Europe/Astrakhan",
              "Europe/Athens",
              "Europe/Belfast",
              "Europe/Belgrade",
              "Europe/Berlin",
              "Europe/Bratislava",
              "Europe/Brussels",
              "Europe/Bucharest",
              "Europe/Budapest",
              "Europe/Busingen",
              "Europe/Chisinau",
              "Europe/Copenhagen",
              "Europe/Dublin",
              "Europe/Gibraltar",
              "Europe/Guernsey",
              "Europe/Helsinki",
              "Europe/Isle_of_Man",
              "Europe/Istanbul",
              "Europe/Jersey",
              "Europe/Kaliningrad",
              "Europe/Kiev",
              "Europe/Kirov",
              "Europe/Kyiv",
              "Europe/Lisbon",
              "Europe/Ljubljana",
              "Europe/London",
              "Europe/Luxembourg",
              "Europe/Madrid",
              "Europe/Malta",
              "Europe/Mariehamn",
              "Europe/Minsk",
              "Europe/Monaco",
              "Europe/Moscow",
              "Europe/Nicosia",
              "Europe/Oslo",
              "Europe/Paris",
              "Europe/Podgorica",
              "Europe/Prague",
              "Europe/Riga",
              "Europe/Rome",
              "Europe/Samara",
              "Europe/San_Marino",
              "Europe/Sarajevo",
              "Europe/Saratov",
              "Europe/Simferopol",
              "Europe/Skopje",
              "Europe/Sofia",
              "Europe/Stockholm",
              "Europe/Tallinn",
              "Europe/Tirane",
              "Europe/Tiraspol",
              "Europe/Ulyanovsk",
              "Europe/Uzhgorod",
              "Europe/Vaduz",
              "Europe/Vatican",
              "Europe/Vienna",
              "Europe/Vilnius",
              "Europe/Volgograd",
              "Europe/Warsaw",
              "Europe/Zagreb",
              "Europe/Zaporozhye",
              "Europe/Zurich",
              "GB",
              "GB-Eire",
              "GMT",
              "GMT+0",
              "GMT-0",
              "GMT0",
              "Greenwich",
              "HST",
              "Hongkong",
              "Iceland",
              "Indian/Antananarivo",
              "Indian/Chagos",
              "Indian/Christmas",
              "Indian/Cocos",
              "Indian/Comoro",
              "Indian/Kerguelen",
              "Indian/Mahe",
              "Indian/Maldives",
              "Indian/Mauritius",
              "Indian/Mayotte",
              "Indian/Reunion",
              "Iran",
              "Israel",
              "Jamaica",
              "Japan",
              "Kwajalein",
              "Libya",
              "MET",
              "MST",
              "MST7MDT",
              "Mexico/BajaNorte",
              "Mexico/BajaSur",
              "Mexico/General",
              "NZ",
              "NZ-CHAT",
              "Navajo",
              "PRC",
              "PST8PDT",
              "Pacific/Apia",
              "Pacific/Auckland",
              "Pacific/Bougainville",
              "Pacific/Chatham",
              "Pacific/Chuuk",
              "Pacific/Easter",
              "Pacific/Efate",
              "Pacific/Enderbury",
              "Pacific/Fakaofo",
              "Pacific/Fiji",
              "Pacific/Funafuti",
              "Pacific/Galapagos",
              "Pacific/Gambier",
              "Pacific/Guadalcanal",
              "Pacific/Guam",
              "Pacific/Honolulu",
              "Pacific/Johnston",
              "Pacific/Kanton",
              "Pacific/Kiritimati",
              "Pacific/Kosrae",
              "Pacific/Kwajalein",
              "Pacific/Majuro",
              "Pacific/Marquesas",
              "Pacific/Midway",
              "Pacific/Nauru",
              "Pacific/Niue",
              "Pacific/Norfolk",
              "Pacific/Noumea",
              "Pacific/Pago_Pago",
              "Pacific/Palau",
              "Pacific/Pitcairn",
              "Pacific/Pohnpei",
              "Pacific/Ponape",
              "Pacific/Port_Moresby",
              "Pacific/Rarotonga",
              "Pacific/Saipan",
              "Pacific/Samoa",
              "Pacific/Tahiti",
              "Pacific/Tarawa",
              "Pacific/Tongatapu",
              "Pacific/Truk",
              "Pacific/Wake",
              "Pacific/Wallis",
              "Pacific/Yap",
              "Poland",
              "Portugal",
              "ROC",
              "ROK",
              "Singapore",
              "Turkey",
              "UCT",
              "US/Alaska",
              "US/Aleutian",
              "US/Arizona",
              "US/Central",
              "US/East-Indiana",
              "US/Eastern",
              "US/Hawaii",
              "US/Indiana-Starke",
              "US/Michigan",
              "US/Mountain",
              "US/Pacific",
              "US/Samoa",
              "UTC",
              "Universal",
              "W-SU",
              "WET",
              "Zulu",
              null
            ],
            "description": "Timezone for displaying dates and times on the status page",
            "example": "America/New_York",
            "nullable": true
          },
          "css_light_font_color": {
            "type": "string",
            "description": "Light font color for secondary text in HEX format",
            "example": "#666666",
            "nullable": true
          },
          "viewers_must_be_team_members": {
            "type": "boolean",
            "description": "Whether only team members can view this page. In other words if page is public or not.",
            "example": false,
            "nullable": true
          },
          "allow_page_subscribers": {
            "type": "boolean",
            "description": "Whether to allow users to subscribe to page updates",
            "example": true,
            "nullable": true
          },
          "state": {
            "type": "string",
            "maxLength": 100,
            "description": "State/region where your organization is located",
            "example": "NY",
            "nullable": true
          },
          "subdomain": {
            "type": "string",
            "maxLength": 100,
            "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]$",
            "description": "Subdomain for accessing the status page (e.g., 'mycompany' for mycompany.pingera.ru)",
            "example": "mycompany"
          },
          "email_logo": {
            "type": "string",
            "maxLength": 200,
            "description": "URL to the logo used in email notifications",
            "example": "https://example.com/email-logo.png",
            "nullable": true
          },
          "company_logo": {
            "type": "string",
            "maxLength": 200,
            "description": "URL to the company logo",
            "example": "https://example.com/logo.png",
            "nullable": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Timestamp when the page was created",
            "example": "2024-01-15T10:00:00Z"
          },
          "url": {
            "type": "string",
            "maxLength": 200,
            "description": "Company URL - users will be redirected there when clicking on the logo",
            "example": "https://mycompany.com",
            "nullable": true
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Timestamp when the page was last updated",
            "example": "2024-01-15T14:00:00Z"
          },
          "page_description": {
            "type": "string",
            "description": "Brief description of what this status page monitors",
            "example": "Real-time status and performance monitoring for MyCompany services",
            "nullable": true
          },
          "css_reds": {
            "type": "string",
            "description": "Red color used for major outage status in HEX format",
            "example": "#dc3545",
            "nullable": true
          },
          "allow_email_subscribers": {
            "type": "boolean",
            "description": "Whether to allow email subscriptions",
            "example": true,
            "nullable": true
          },
          "css_greens": {
            "type": "string",
            "description": "Green color used for operational status in HEX format",
            "example": "#28a745",
            "nullable": true
          },
          "allow_sms_subscribers": {
            "type": "boolean",
            "description": "Whether to allow SMS subscriptions",
            "example": false,
            "nullable": true
          },
          "css_button_hover_color": {
            "type": "string",
            "description": "Button color on hover in HEX format",
            "example": "#0056b3",
            "nullable": true
          },
          "template_id": {
            "type": "string",
            "maxLength": 12,
            "description": "ID of the template used for this page",
            "example": "tpl123abc456",
            "nullable": true
          },
          "password_protected": {
            "type": "boolean",
            "description": "Whether this page is protected by password(s). When true, users must enter a valid password to access the page.",
            "example": false,
            "nullable": true
          },
          "activity_score": {
            "type": "integer",
            "description": "Internal activity score for the page",
            "example": 85,
            "nullable": true
          },
          "template": {
            "readOnly": true,
            "description": "Name of the template used for this page",
            "example": "Modern"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "Pagination": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "description": "Current page number",
            "example": 1
          },
          "has_prev": {
            "type": "boolean",
            "description": "Whether there is a previous page",
            "example": false
          },
          "has_next": {
            "type": "boolean",
            "description": "Whether there is a next page",
            "example": true
          },
          "total_items": {
            "type": "integer",
            "description": "Total number of items",
            "example": 100
          },
          "total_pages": {
            "type": "integer",
            "description": "Total number of pages",
            "example": 5
          },
          "page_size": {
            "type": "integer",
            "description": "Number of items per page",
            "example": 20
          }
        },
        "additionalProperties": false
      },
      "PageList": {
        "type": "object",
        "properties": {
          "pagination": {
            "description": "Pagination information",
            "allOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              }
            ]
          },
          "pages": {
            "type": "array",
            "description": "List of status pages",
            "items": {
              "$ref": "#/components/schemas/Page"
            }
          }
        },
        "additionalProperties": false
      },
      "Page1": {
        "type": "object",
        "properties": {
          "favicon_logo": {
            "type": "string",
            "maxLength": 200,
            "description": "URL to the favicon image",
            "example": "https://example.com/favicon.ico",
            "nullable": true
          },
          "css_blues": {
            "type": "string",
            "description": "Blue color used for maintenance status in HEX format",
            "example": "#007bff",
            "nullable": true
          },
          "css_border_color": {
            "type": "string",
            "description": "Border color for page elements in HEX format",
            "example": "#dee2e6",
            "nullable": true
          },
          "notifications_email_footer": {
            "type": "string",
            "description": "Footer text included in notification emails",
            "example": "You are receiving this email because you are subscribed to updates from MyCompany.",
            "nullable": true
          },
          "css_link_color": {
            "type": "string",
            "description": "Color for links in HEX format",
            "example": "#007bff",
            "nullable": true
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "Display name of the status page",
            "example": "MyCompany Status"
          },
          "allow_webhook_subscribers": {
            "type": "boolean",
            "description": "Whether to allow webhook subscriptions",
            "example": true,
            "nullable": true
          },
          "css_oranges": {
            "type": "string",
            "description": "Orange color used for partial outage status in HEX format",
            "example": "#fd7e14",
            "nullable": true
          },
          "css_button_text_color": {
            "type": "string",
            "description": "Button text color in HEX format",
            "example": "#ffffff",
            "nullable": true
          },
          "organization_id": {
            "type": "string",
            "readOnly": true,
            "description": "ID of the organization this page belongs to",
            "example": "org123abc456"
          },
          "css_spinner_color": {
            "type": "string",
            "description": "Loading spinner color in HEX format",
            "example": "#007bff",
            "nullable": true
          },
          "css_body_background_color": {
            "type": "string",
            "description": "Background color for the page body in HEX format",
            "example": "#ffffff",
            "nullable": true
          },
          "city": {
            "type": "string",
            "maxLength": 100,
            "description": "City where your organization is located",
            "example": "New York",
            "nullable": true
          },
          "css_button_color": {
            "type": "string",
            "description": "Button background color in HEX format",
            "example": "#007bff",
            "nullable": true
          },
          "allow_rss_atom_feeds": {
            "type": "boolean",
            "description": "Whether to provide RSS/Atom feeds",
            "example": true,
            "nullable": true
          },
          "country": {
            "type": "string",
            "maxLength": 100,
            "description": "Country where your organization is located",
            "example": "Russia",
            "nullable": true
          },
          "language": {
            "description": "Language for the status page interface",
            "example": "ru",
            "enum": [
              "ru",
              "en"
            ]
          },
          "headline": {
            "type": "string",
            "maxLength": 200,
            "description": "Headline text displayed on the status page",
            "example": "Real-time status and performance monitoring for MyCompany services",
            "nullable": true
          },
          "hidden_from_search": {
            "type": "boolean",
            "description": "Whether to hide this page from search engines",
            "example": false,
            "nullable": true
          },
          "transactional_logo": {
            "type": "string",
            "maxLength": 200,
            "description": "URL to the logo used in transactional emails",
            "example": "https://example.com/email-logo.png",
            "nullable": true
          },
          "css_button_border_color": {
            "type": "string",
            "description": "Button border color in HEX format",
            "example": "#007bff",
            "nullable": true
          },
          "css_graph_color": {
            "type": "string",
            "description": "Color used for graphs and charts in HEX format",
            "example": "#6f42c1",
            "nullable": true
          },
          "ip_restrictions": {
            "type": "string",
            "maxLength": 200,
            "description": "IP address restrictions for viewing the page",
            "example": "192.168.1.0/24,10.0.0.0/8",
            "nullable": true
          },
          "domain": {
            "type": "string",
            "maxLength": 100,
            "description": "Custom domain for the status page",
            "example": "status.mycompany.com",
            "nullable": true
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "Unique identifier for the status page",
            "example": "abc123def456"
          },
          "notifications_from_email": {
            "type": "string",
            "format": "email",
            "maxLength": 100,
            "description": "Email address used as sender for notifications",
            "example": "noreply@mycompany.com",
            "nullable": true
          },
          "css_no_data": {
            "type": "string",
            "description": "Color used when no data is available in HEX format",
            "example": "#6c757d",
            "nullable": true
          },
          "allow_incident_subscribers": {
            "type": "boolean",
            "description": "Whether to allow users to subscribe to incident updates",
            "example": true,
            "nullable": true
          },
          "css_yellows": {
            "type": "string",
            "description": "Yellow color used for degraded status in HEX format",
            "example": "#ffc107",
            "nullable": true
          },
          "hero_cover": {
            "type": "string",
            "maxLength": 200,
            "description": "URL to the hero cover image",
            "example": "https://example.com/hero.jpg",
            "nullable": true
          },
          "google_analytics_id": {
            "type": "string",
            "maxLength": 50,
            "description": "Google Analytics measurement ID (e.g., G-XXXXXXXXXX or UA-XXXXXXXXX-X)",
            "example": "G-XXXXXXXXXX",
            "nullable": true
          },
          "yandex_metrica_id": {
            "type": "string",
            "maxLength": 50,
            "description": "Yandex Metrica counter ID for analytics tracking",
            "example": "12345678",
            "nullable": true
          },
          "support_url": {
            "type": "string",
            "maxLength": 200,
            "description": "URL to your support or contact page",
            "example": "https://mycompany.com/support",
            "nullable": true
          },
          "css_font_color": {
            "type": "string",
            "description": "Primary font color in HEX format",
            "example": "#333333",
            "nullable": true
          },
          "time_zone": {
            "type": "string",
            "enum": [
              "Africa/Abidjan",
              "Africa/Accra",
              "Africa/Addis_Ababa",
              "Africa/Algiers",
              "Africa/Asmara",
              "Africa/Asmera",
              "Africa/Bamako",
              "Africa/Bangui",
              "Africa/Banjul",
              "Africa/Bissau",
              "Africa/Blantyre",
              "Africa/Brazzaville",
              "Africa/Bujumbura",
              "Africa/Cairo",
              "Africa/Casablanca",
              "Africa/Ceuta",
              "Africa/Conakry",
              "Africa/Dakar",
              "Africa/Dar_es_Salaam",
              "Africa/Djibouti",
              "Africa/Douala",
              "Africa/El_Aaiun",
              "Africa/Freetown",
              "Africa/Gaborone",
              "Africa/Harare",
              "Africa/Johannesburg",
              "Africa/Juba",
              "Africa/Kampala",
              "Africa/Khartoum",
              "Africa/Kigali",
              "Africa/Kinshasa",
              "Africa/Lagos",
              "Africa/Libreville",
              "Africa/Lome",
              "Africa/Luanda",
              "Africa/Lubumbashi",
              "Africa/Lusaka",
              "Africa/Malabo",
              "Africa/Maputo",
              "Africa/Maseru",
              "Africa/Mbabane",
              "Africa/Mogadishu",
              "Africa/Monrovia",
              "Africa/Nairobi",
              "Africa/Ndjamena",
              "Africa/Niamey",
              "Africa/Nouakchott",
              "Africa/Ouagadougou",
              "Africa/Porto-Novo",
              "Africa/Sao_Tome",
              "Africa/Timbuktu",
              "Africa/Tripoli",
              "Africa/Tunis",
              "Africa/Windhoek",
              "America/Adak",
              "America/Anchorage",
              "America/Anguilla",
              "America/Antigua",
              "America/Araguaina",
              "America/Argentina/Buenos_Aires",
              "America/Argentina/Catamarca",
              "America/Argentina/ComodRivadavia",
              "America/Argentina/Cordoba",
              "America/Argentina/Jujuy",
              "America/Argentina/La_Rioja",
              "America/Argentina/Mendoza",
              "America/Argentina/Rio_Gallegos",
              "America/Argentina/Salta",
              "America/Argentina/San_Juan",
              "America/Argentina/San_Luis",
              "America/Argentina/Tucuman",
              "America/Argentina/Ushuaia",
              "America/Aruba",
              "America/Asuncion",
              "America/Atikokan",
              "America/Atka",
              "America/Bahia",
              "America/Bahia_Banderas",
              "America/Barbados",
              "America/Belem",
              "America/Belize",
              "America/Blanc-Sablon",
              "America/Boa_Vista",
              "America/Bogota",
              "America/Boise",
              "America/Buenos_Aires",
              "America/Cambridge_Bay",
              "America/Campo_Grande",
              "America/Cancun",
              "America/Caracas",
              "America/Catamarca",
              "America/Cayenne",
              "America/Cayman",
              "America/Chicago",
              "America/Chihuahua",
              "America/Ciudad_Juarez",
              "America/Coral_Harbour",
              "America/Cordoba",
              "America/Costa_Rica",
              "America/Coyhaique",
              "America/Creston",
              "America/Cuiaba",
              "America/Curacao",
              "America/Danmarkshavn",
              "America/Dawson",
              "America/Dawson_Creek",
              "America/Denver",
              "America/Detroit",
              "America/Dominica",
              "America/Edmonton",
              "America/Eirunepe",
              "America/El_Salvador",
              "America/Ensenada",
              "America/Fort_Nelson",
              "America/Fort_Wayne",
              "America/Fortaleza",
              "America/Glace_Bay",
              "America/Godthab",
              "America/Goose_Bay",
              "America/Grand_Turk",
              "America/Grenada",
              "America/Guadeloupe",
              "America/Guatemala",
              "America/Guayaquil",
              "America/Guyana",
              "America/Halifax",
              "America/Havana",
              "America/Hermosillo",
              "America/Indiana/Indianapolis",
              "America/Indiana/Knox",
              "America/Indiana/Marengo",
              "America/Indiana/Petersburg",
              "America/Indiana/Tell_City",
              "America/Indiana/Vevay",
              "America/Indiana/Vincennes",
              "America/Indiana/Winamac",
              "America/Indianapolis",
              "America/Inuvik",
              "America/Iqaluit",
              "America/Jamaica",
              "America/Jujuy",
              "America/Juneau",
              "America/Kentucky/Louisville",
              "America/Kentucky/Monticello",
              "America/Knox_IN",
              "America/Kralendijk",
              "America/La_Paz",
              "America/Lima",
              "America/Los_Angeles",
              "America/Louisville",
              "America/Lower_Princes",
              "America/Maceio",
              "America/Managua",
              "America/Manaus",
              "America/Marigot",
              "America/Martinique",
              "America/Matamoros",
              "America/Mazatlan",
              "America/Mendoza",
              "America/Menominee",
              "America/Merida",
              "America/Metlakatla",
              "America/Mexico_City",
              "America/Miquelon",
              "America/Moncton",
              "America/Monterrey",
              "America/Montevideo",
              "America/Montreal",
              "America/Montserrat",
              "America/Nassau",
              "America/New_York",
              "America/Nipigon",
              "America/Nome",
              "America/Noronha",
              "America/North_Dakota/Beulah",
              "America/North_Dakota/Center",
              "America/North_Dakota/New_Salem",
              "America/Nuuk",
              "America/Ojinaga",
              "America/Panama",
              "America/Pangnirtung",
              "America/Paramaribo",
              "America/Phoenix",
              "America/Port-au-Prince",
              "America/Port_of_Spain",
              "America/Porto_Acre",
              "America/Porto_Velho",
              "America/Puerto_Rico",
              "America/Punta_Arenas",
              "America/Rainy_River",
              "America/Rankin_Inlet",
              "America/Recife",
              "America/Regina",
              "America/Resolute",
              "America/Rio_Branco",
              "America/Rosario",
              "America/Santa_Isabel",
              "America/Santarem",
              "America/Santiago",
              "America/Santo_Domingo",
              "America/Sao_Paulo",
              "America/Scoresbysund",
              "America/Shiprock",
              "America/Sitka",
              "America/St_Barthelemy",
              "America/St_Johns",
              "America/St_Kitts",
              "America/St_Lucia",
              "America/St_Thomas",
              "America/St_Vincent",
              "America/Swift_Current",
              "America/Tegucigalpa",
              "America/Thule",
              "America/Thunder_Bay",
              "America/Tijuana",
              "America/Toronto",
              "America/Tortola",
              "America/Vancouver",
              "America/Virgin",
              "America/Whitehorse",
              "America/Winnipeg",
              "America/Yakutat",
              "America/Yellowknife",
              "Antarctica/Casey",
              "Antarctica/Davis",
              "Antarctica/DumontDUrville",
              "Antarctica/Macquarie",
              "Antarctica/Mawson",
              "Antarctica/McMurdo",
              "Antarctica/Palmer",
              "Antarctica/Rothera",
              "Antarctica/South_Pole",
              "Antarctica/Syowa",
              "Antarctica/Troll",
              "Antarctica/Vostok",
              "Arctic/Longyearbyen",
              "Asia/Aden",
              "Asia/Almaty",
              "Asia/Amman",
              "Asia/Anadyr",
              "Asia/Aqtau",
              "Asia/Aqtobe",
              "Asia/Ashgabat",
              "Asia/Ashkhabad",
              "Asia/Atyrau",
              "Asia/Baghdad",
              "Asia/Bahrain",
              "Asia/Baku",
              "Asia/Bangkok",
              "Asia/Barnaul",
              "Asia/Beirut",
              "Asia/Bishkek",
              "Asia/Brunei",
              "Asia/Calcutta",
              "Asia/Chita",
              "Asia/Choibalsan",
              "Asia/Chongqing",
              "Asia/Chungking",
              "Asia/Colombo",
              "Asia/Dacca",
              "Asia/Damascus",
              "Asia/Dhaka",
              "Asia/Dili",
              "Asia/Dubai",
              "Asia/Dushanbe",
              "Asia/Famagusta",
              "Asia/Gaza",
              "Asia/Harbin",
              "Asia/Hebron",
              "Asia/Ho_Chi_Minh",
              "Asia/Hong_Kong",
              "Asia/Hovd",
              "Asia/Irkutsk",
              "Asia/Istanbul",
              "Asia/Jakarta",
              "Asia/Jayapura",
              "Asia/Jerusalem",
              "Asia/Kabul",
              "Asia/Kamchatka",
              "Asia/Karachi",
              "Asia/Kashgar",
              "Asia/Kathmandu",
              "Asia/Katmandu",
              "Asia/Khandyga",
              "Asia/Kolkata",
              "Asia/Krasnoyarsk",
              "Asia/Kuala_Lumpur",
              "Asia/Kuching",
              "Asia/Kuwait",
              "Asia/Macao",
              "Asia/Macau",
              "Asia/Magadan",
              "Asia/Makassar",
              "Asia/Manila",
              "Asia/Muscat",
              "Asia/Nicosia",
              "Asia/Novokuznetsk",
              "Asia/Novosibirsk",
              "Asia/Omsk",
              "Asia/Oral",
              "Asia/Phnom_Penh",
              "Asia/Pontianak",
              "Asia/Pyongyang",
              "Asia/Qatar",
              "Asia/Qostanay",
              "Asia/Qyzylorda",
              "Asia/Rangoon",
              "Asia/Riyadh",
              "Asia/Saigon",
              "Asia/Sakhalin",
              "Asia/Samarkand",
              "Asia/Seoul",
              "Asia/Shanghai",
              "Asia/Singapore",
              "Asia/Srednekolymsk",
              "Asia/Taipei",
              "Asia/Tashkent",
              "Asia/Tbilisi",
              "Asia/Tehran",
              "Asia/Tel_Aviv",
              "Asia/Thimbu",
              "Asia/Thimphu",
              "Asia/Tokyo",
              "Asia/Tomsk",
              "Asia/Ujung_Pandang",
              "Asia/Ulaanbaatar",
              "Asia/Ulan_Bator",
              "Asia/Urumqi",
              "Asia/Ust-Nera",
              "Asia/Vientiane",
              "Asia/Vladivostok",
              "Asia/Yakutsk",
              "Asia/Yangon",
              "Asia/Yekaterinburg",
              "Asia/Yerevan",
              "Atlantic/Azores",
              "Atlantic/Bermuda",
              "Atlantic/Canary",
              "Atlantic/Cape_Verde",
              "Atlantic/Faeroe",
              "Atlantic/Faroe",
              "Atlantic/Jan_Mayen",
              "Atlantic/Madeira",
              "Atlantic/Reykjavik",
              "Atlantic/South_Georgia",
              "Atlantic/St_Helena",
              "Atlantic/Stanley",
              "Australia/ACT",
              "Australia/Adelaide",
              "Australia/Brisbane",
              "Australia/Broken_Hill",
              "Australia/Canberra",
              "Australia/Currie",
              "Australia/Darwin",
              "Australia/Eucla",
              "Australia/Hobart",
              "Australia/LHI",
              "Australia/Lindeman",
              "Australia/Lord_Howe",
              "Australia/Melbourne",
              "Australia/NSW",
              "Australia/North",
              "Australia/Perth",
              "Australia/Queensland",
              "Australia/South",
              "Australia/Sydney",
              "Australia/Tasmania",
              "Australia/Victoria",
              "Australia/West",
              "Australia/Yancowinna",
              "Brazil/Acre",
              "Brazil/DeNoronha",
              "Brazil/East",
              "Brazil/West",
              "CET",
              "CST6CDT",
              "Canada/Atlantic",
              "Canada/Central",
              "Canada/Eastern",
              "Canada/Mountain",
              "Canada/Newfoundland",
              "Canada/Pacific",
              "Canada/Saskatchewan",
              "Canada/Yukon",
              "Chile/Continental",
              "Chile/EasterIsland",
              "Cuba",
              "EET",
              "EST",
              "EST5EDT",
              "Egypt",
              "Eire",
              "Etc/GMT",
              "Etc/GMT+0",
              "Etc/GMT+1",
              "Etc/GMT+10",
              "Etc/GMT+11",
              "Etc/GMT+12",
              "Etc/GMT+2",
              "Etc/GMT+3",
              "Etc/GMT+4",
              "Etc/GMT+5",
              "Etc/GMT+6",
              "Etc/GMT+7",
              "Etc/GMT+8",
              "Etc/GMT+9",
              "Etc/GMT-0",
              "Etc/GMT-1",
              "Etc/GMT-10",
              "Etc/GMT-11",
              "Etc/GMT-12",
              "Etc/GMT-13",
              "Etc/GMT-14",
              "Etc/GMT-2",
              "Etc/GMT-3",
              "Etc/GMT-4",
              "Etc/GMT-5",
              "Etc/GMT-6",
              "Etc/GMT-7",
              "Etc/GMT-8",
              "Etc/GMT-9",
              "Etc/GMT0",
              "Etc/Greenwich",
              "Etc/UCT",
              "Etc/UTC",
              "Etc/Universal",
              "Etc/Zulu",
              "Europe/Amsterdam",
              "Europe/Andorra",
              "Europe/Astrakhan",
              "Europe/Athens",
              "Europe/Belfast",
              "Europe/Belgrade",
              "Europe/Berlin",
              "Europe/Bratislava",
              "Europe/Brussels",
              "Europe/Bucharest",
              "Europe/Budapest",
              "Europe/Busingen",
              "Europe/Chisinau",
              "Europe/Copenhagen",
              "Europe/Dublin",
              "Europe/Gibraltar",
              "Europe/Guernsey",
              "Europe/Helsinki",
              "Europe/Isle_of_Man",
              "Europe/Istanbul",
              "Europe/Jersey",
              "Europe/Kaliningrad",
              "Europe/Kiev",
              "Europe/Kirov",
              "Europe/Kyiv",
              "Europe/Lisbon",
              "Europe/Ljubljana",
              "Europe/London",
              "Europe/Luxembourg",
              "Europe/Madrid",
              "Europe/Malta",
              "Europe/Mariehamn",
              "Europe/Minsk",
              "Europe/Monaco",
              "Europe/Moscow",
              "Europe/Nicosia",
              "Europe/Oslo",
              "Europe/Paris",
              "Europe/Podgorica",
              "Europe/Prague",
              "Europe/Riga",
              "Europe/Rome",
              "Europe/Samara",
              "Europe/San_Marino",
              "Europe/Sarajevo",
              "Europe/Saratov",
              "Europe/Simferopol",
              "Europe/Skopje",
              "Europe/Sofia",
              "Europe/Stockholm",
              "Europe/Tallinn",
              "Europe/Tirane",
              "Europe/Tiraspol",
              "Europe/Ulyanovsk",
              "Europe/Uzhgorod",
              "Europe/Vaduz",
              "Europe/Vatican",
              "Europe/Vienna",
              "Europe/Vilnius",
              "Europe/Volgograd",
              "Europe/Warsaw",
              "Europe/Zagreb",
              "Europe/Zaporozhye",
              "Europe/Zurich",
              "GB",
              "GB-Eire",
              "GMT",
              "GMT+0",
              "GMT-0",
              "GMT0",
              "Greenwich",
              "HST",
              "Hongkong",
              "Iceland",
              "Indian/Antananarivo",
              "Indian/Chagos",
              "Indian/Christmas",
              "Indian/Cocos",
              "Indian/Comoro",
              "Indian/Kerguelen",
              "Indian/Mahe",
              "Indian/Maldives",
              "Indian/Mauritius",
              "Indian/Mayotte",
              "Indian/Reunion",
              "Iran",
              "Israel",
              "Jamaica",
              "Japan",
              "Kwajalein",
              "Libya",
              "MET",
              "MST",
              "MST7MDT",
              "Mexico/BajaNorte",
              "Mexico/BajaSur",
              "Mexico/General",
              "NZ",
              "NZ-CHAT",
              "Navajo",
              "PRC",
              "PST8PDT",
              "Pacific/Apia",
              "Pacific/Auckland",
              "Pacific/Bougainville",
              "Pacific/Chatham",
              "Pacific/Chuuk",
              "Pacific/Easter",
              "Pacific/Efate",
              "Pacific/Enderbury",
              "Pacific/Fakaofo",
              "Pacific/Fiji",
              "Pacific/Funafuti",
              "Pacific/Galapagos",
              "Pacific/Gambier",
              "Pacific/Guadalcanal",
              "Pacific/Guam",
              "Pacific/Honolulu",
              "Pacific/Johnston",
              "Pacific/Kanton",
              "Pacific/Kiritimati",
              "Pacific/Kosrae",
              "Pacific/Kwajalein",
              "Pacific/Majuro",
              "Pacific/Marquesas",
              "Pacific/Midway",
              "Pacific/Nauru",
              "Pacific/Niue",
              "Pacific/Norfolk",
              "Pacific/Noumea",
              "Pacific/Pago_Pago",
              "Pacific/Palau",
              "Pacific/Pitcairn",
              "Pacific/Pohnpei",
              "Pacific/Ponape",
              "Pacific/Port_Moresby",
              "Pacific/Rarotonga",
              "Pacific/Saipan",
              "Pacific/Samoa",
              "Pacific/Tahiti",
              "Pacific/Tarawa",
              "Pacific/Tongatapu",
              "Pacific/Truk",
              "Pacific/Wake",
              "Pacific/Wallis",
              "Pacific/Yap",
              "Poland",
              "Portugal",
              "ROC",
              "ROK",
              "Singapore",
              "Turkey",
              "UCT",
              "US/Alaska",
              "US/Aleutian",
              "US/Arizona",
              "US/Central",
              "US/East-Indiana",
              "US/Eastern",
              "US/Hawaii",
              "US/Indiana-Starke",
              "US/Michigan",
              "US/Mountain",
              "US/Pacific",
              "US/Samoa",
              "UTC",
              "Universal",
              "W-SU",
              "WET",
              "Zulu",
              null
            ],
            "description": "Timezone for displaying dates and times on the status page",
            "example": "America/New_York",
            "nullable": true
          },
          "css_light_font_color": {
            "type": "string",
            "description": "Light font color for secondary text in HEX format",
            "example": "#666666",
            "nullable": true
          },
          "viewers_must_be_team_members": {
            "type": "boolean",
            "description": "Whether only team members can view this page. In other words if page is public or not.",
            "example": false,
            "nullable": true
          },
          "allow_page_subscribers": {
            "type": "boolean",
            "description": "Whether to allow users to subscribe to page updates",
            "example": true,
            "nullable": true
          },
          "state": {
            "type": "string",
            "maxLength": 100,
            "description": "State/region where your organization is located",
            "example": "NY",
            "nullable": true
          },
          "subdomain": {
            "type": "string",
            "maxLength": 100,
            "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]$",
            "description": "Subdomain for accessing the status page (e.g., 'mycompany' for mycompany.pingera.ru)",
            "example": "mycompany"
          },
          "email_logo": {
            "type": "string",
            "maxLength": 200,
            "description": "URL to the logo used in email notifications",
            "example": "https://example.com/email-logo.png",
            "nullable": true
          },
          "company_logo": {
            "type": "string",
            "maxLength": 200,
            "description": "URL to the company logo",
            "example": "https://example.com/logo.png",
            "nullable": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Timestamp when the page was created",
            "example": "2024-01-15T10:00:00Z"
          },
          "url": {
            "type": "string",
            "maxLength": 200,
            "description": "Company URL - users will be redirected there when clicking on the logo",
            "example": "https://mycompany.com",
            "nullable": true
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Timestamp when the page was last updated",
            "example": "2024-01-15T14:00:00Z"
          },
          "page_description": {
            "type": "string",
            "description": "Brief description of what this status page monitors",
            "example": "Real-time status and performance monitoring for MyCompany services",
            "nullable": true
          },
          "css_reds": {
            "type": "string",
            "description": "Red color used for major outage status in HEX format",
            "example": "#dc3545",
            "nullable": true
          },
          "allow_email_subscribers": {
            "type": "boolean",
            "description": "Whether to allow email subscriptions",
            "example": true,
            "nullable": true
          },
          "css_greens": {
            "type": "string",
            "description": "Green color used for operational status in HEX format",
            "example": "#28a745",
            "nullable": true
          },
          "allow_sms_subscribers": {
            "type": "boolean",
            "description": "Whether to allow SMS subscriptions",
            "example": false,
            "nullable": true
          },
          "css_button_hover_color": {
            "type": "string",
            "description": "Button color on hover in HEX format",
            "example": "#0056b3",
            "nullable": true
          },
          "template_id": {
            "type": "string",
            "maxLength": 12,
            "description": "ID of the template used for this page",
            "example": "tpl123abc456",
            "nullable": true
          },
          "password_protected": {
            "type": "boolean",
            "description": "Whether this page is protected by password(s). When true, users must enter a valid password to access the page.",
            "example": false,
            "nullable": true
          },
          "activity_score": {
            "type": "integer",
            "description": "Internal activity score for the page",
            "example": 85,
            "nullable": true
          },
          "template": {
            "readOnly": true,
            "description": "Name of the template used for this page",
            "example": "Modern"
          }
        },
        "additionalProperties": false
      },
      "Component": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Timestamp when the component was created",
            "example": "2024-01-15T10:00:00Z"
          },
          "position": {
            "type": "integer",
            "description": "Display order position of the component on the status page",
            "example": 1,
            "nullable": true
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Timestamp when the component was last updated",
            "example": "2024-01-15T14:00:00Z"
          },
          "group": {
            "type": "boolean",
            "default": false,
            "description": "Whether this component is a group container for other components",
            "example": false
          },
          "group_id": {
            "type": "string",
            "description": "ID of the group this component belongs to (if any)",
            "example": "grp123abc456",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Detailed description of the component",
            "example": "Main REST API server handling user requests",
            "nullable": true
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "Display name of the component",
            "example": "API Server"
          },
          "page_id": {
            "type": "string",
            "readOnly": true,
            "description": "ID of the status page this component belongs to",
            "example": "page123def789"
          },
          "status": {
            "enum": [
              "operational",
              "under_maintenance",
              "degraded_performance",
              "partial_outage",
              "major_outage"
            ],
            "description": "Current operational status of the component",
            "example": "operational"
          },
          "only_show_if_degraded": {
            "type": "boolean",
            "description": "Whether to show this component only when it's not operational",
            "example": false
          },
          "showcase": {
            "type": "boolean",
            "description": "Whether to prominently display this component on the status page",
            "example": true
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "Unique identifier for the component",
            "example": "comp123abc456"
          },
          "start_date": {
            "type": "string",
            "format": "date-time",
            "description": "Date when monitoring for this component started",
            "example": "2024-01-01T00:00:00Z"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "Component1": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Timestamp when the component was created",
            "example": "2024-01-15T10:00:00Z"
          },
          "position": {
            "type": "integer",
            "description": "Display order position of the component on the status page",
            "example": 1,
            "nullable": true
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Timestamp when the component was last updated",
            "example": "2024-01-15T14:00:00Z"
          },
          "group": {
            "type": "boolean",
            "default": false,
            "description": "Whether this component is a group container for other components",
            "example": false
          },
          "group_id": {
            "type": "string",
            "description": "ID of the group this component belongs to (if any)",
            "example": "grp123abc456",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Detailed description of the component",
            "example": "Main REST API server handling user requests",
            "nullable": true
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "Display name of the component",
            "example": "API Server"
          },
          "page_id": {
            "type": "string",
            "readOnly": true,
            "description": "ID of the status page this component belongs to",
            "example": "page123def789"
          },
          "status": {
            "enum": [
              "operational",
              "under_maintenance",
              "degraded_performance",
              "partial_outage",
              "major_outage"
            ],
            "description": "Current operational status of the component",
            "example": "operational"
          },
          "only_show_if_degraded": {
            "type": "boolean",
            "description": "Whether to show this component only when it's not operational",
            "example": false
          },
          "showcase": {
            "type": "boolean",
            "description": "Whether to prominently display this component on the status page",
            "example": true
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "Unique identifier for the component",
            "example": "comp123abc456"
          },
          "start_date": {
            "type": "string",
            "format": "date-time",
            "description": "Date when monitoring for this component started",
            "example": "2024-01-01T00:00:00Z"
          }
        },
        "additionalProperties": false
      },
      "ComponentUptimeBulkRequest": {
        "type": "object",
        "properties": {
          "component_ids": {
            "type": "array",
            "minItems": 1,
            "description": "List of component IDs to calculate uptime for",
            "example": [
              "comp123",
              "comp456",
              "comp789"
            ],
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "component_ids"
        ],
        "additionalProperties": false
      },
      "ComponentUptimeEvents": {
        "type": "object",
        "properties": {
          "id": {
            "type": "array",
            "readOnly": true,
            "description": "List of incident IDs that affected this component during the period",
            "example": [
              "inc123",
              "inc456"
            ],
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "ComponentUptime": {
        "type": "object",
        "properties": {
          "warnings": {
            "type": "array",
            "readOnly": true,
            "description": "List of warnings about the calculation",
            "example": [
              "End date was adjusted to today"
            ],
            "items": {
              "type": "string"
            }
          },
          "range_end": {
            "type": "string",
            "readOnly": true,
            "description": "End date of the uptime calculation period (YYYY-MM-DD)",
            "example": "2024-01-31"
          },
          "name": {
            "type": "string",
            "readOnly": true,
            "description": "Component name",
            "example": "API Server"
          },
          "related_events": {
            "readOnly": true,
            "description": "Events that affected this component during the period",
            "allOf": [
              {
                "$ref": "#/components/schemas/ComponentUptimeEvents"
              }
            ]
          },
          "uptime_percentage": {
            "type": "number",
            "readOnly": true,
            "description": "Uptime percentage for the specified period",
            "example": 99.5
          },
          "major_outage": {
            "type": "integer",
            "readOnly": true,
            "description": "Total seconds of major outages during the period",
            "example": 3600
          },
          "range_start": {
            "type": "string",
            "readOnly": true,
            "description": "Start date of the uptime calculation period (YYYY-MM-DD)",
            "example": "2024-01-01"
          },
          "partial_outage": {
            "type": "integer",
            "readOnly": true,
            "description": "Total seconds of partial outages during the period",
            "example": 1800
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "Component ID",
            "example": "comp123abc456"
          }
        },
        "additionalProperties": false
      },
      "Incident": {
        "type": "object",
        "properties": {
          "deliver_notifications": {
            "type": "boolean",
            "description": "Whether to send notifications when creating or updating this incident.",
            "example": true
          },
          "scheduled_auto_in_progress": {
            "type": "boolean",
            "description": "Whether the scheduled maintenance should automatically be marked as in progress.",
            "example": true,
            "nullable": true
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "description": "The name/title of the incident. Must be between 1 and 200 characters.",
            "example": "Database Connection Issues"
          },
          "scheduled_reminded_at": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when reminder notifications were sent for scheduled maintenance (UTC).",
            "example": "2024-01-19T18:00:00Z"
          },
          "status": {
            "description": "The current status of the incident.",
            "example": "investigating",
            "enum": [
              "investigating",
              "identified",
              "monitoring",
              "resolved",
              "scheduled",
              "in_progress",
              "verifying",
              "completed"
            ]
          },
          "metadata": {
            "type": "object",
            "description": "Additional metadata associated with the incident.",
            "example": {
              "severity": "high",
              "team": "backend"
            },
            "additionalProperties": {}
          },
          "impact": {
            "description": "The impact level of the incident.",
            "example": "minor",
            "enum": [
              "minor",
              "major",
              "critical",
              "maintenance",
              "none"
            ]
          },
          "postmortem_body_last_updated_at": {
            "readOnly": true,
            "description": "The timestamp when the postmortem body was last updated.",
            "example": "2024-01-16T10:00:00Z"
          },
          "auto_transition_deliver_notifications_at_start": {
            "type": "boolean",
            "description": "Whether to deliver notifications when auto-transitioning at the start of scheduled maintenance.",
            "example": true,
            "nullable": true
          },
          "auto_transition_deliver_notifications_at_end": {
            "type": "boolean",
            "description": "Whether to deliver notifications when auto-transitioning at the end of scheduled maintenance.",
            "example": true,
            "nullable": true
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the incident.",
            "example": "abc123def456"
          },
          "auto_transition_to_maintenance_state": {
            "type": "boolean",
            "description": "Whether to automatically transition components to maintenance state during scheduled maintenance.",
            "example": true,
            "nullable": true
          },
          "body": {
            "type": "string",
            "description": "The main description/body content of the incident.",
            "example": "We are currently investigating issues with our database connections that may affect service availability."
          },
          "auto_transition_to_operational_state": {
            "type": "boolean",
            "description": "Whether to automatically transition components back to operational state after scheduled maintenance.",
            "example": true,
            "nullable": true
          },
          "postmortem_published_at": {
            "readOnly": true,
            "description": "The timestamp when the postmortem was published.",
            "example": "2024-01-16T12:00:00Z"
          },
          "components": {
            "description": "List of components affected by this incident with their current status.",
            "example": [
              {
                "id": "comp_123",
                "name": "API Server",
                "status": "degraded_performance"
              }
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the incident was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the incident was last updated in ISO format.",
            "example": "2024-01-15T14:30:00Z"
          },
          "scheduled_for": {
            "type": "string",
            "format": "date-time",
            "description": "For scheduled maintenance, the timestamp when maintenance is scheduled to start (UTC).",
            "example": "2024-01-20T02:00:00Z"
          },
          "scheduled_remind_prior": {
            "type": "boolean",
            "description": "Whether to send reminder notifications before scheduled maintenance begins.",
            "example": true,
            "nullable": true
          },
          "reminder_intervals": {
            "type": "string",
            "description": "The intervals at which to send reminder notifications for scheduled maintenance.",
            "example": "24h,1h"
          },
          "page_id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier of the status page this incident belongs to.",
            "example": "abc123def456"
          },
          "incident_updates": {
            "readOnly": true,
            "description": "List of all updates posted for this incident, sorted by creation time (newest first).",
            "example": [
              {
                "id": "upd_123",
                "body": "We have identified the issue...",
                "status": "identified"
              }
            ]
          },
          "postmortem_body": {
            "readOnly": true,
            "description": "The content of the incident postmortem, if published.",
            "example": "## Root Cause\nThe database connection pool was exhausted due to..."
          },
          "resolved_at": {
            "readOnly": true,
            "description": "The timestamp when the incident was resolved, derived from the latest update with 'resolved' status.",
            "example": "2024-01-15T15:00:00Z"
          },
          "monitoring_at": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when the incident status was changed to monitoring.",
            "example": "2024-01-15T12:00:00Z"
          },
          "scheduled_until": {
            "type": "string",
            "format": "date-time",
            "description": "For scheduled maintenance, the timestamp when maintenance is scheduled to end (UTC).",
            "example": "2024-01-20T04:00:00Z"
          },
          "scheduled_auto_completed": {
            "type": "boolean",
            "description": "Whether the scheduled maintenance should automatically be marked as completed.",
            "example": true,
            "nullable": true
          }
        },
        "required": [
          "name",
          "status"
        ],
        "additionalProperties": false
      },
      "IncidentUpdateSchemaEdit": {
        "type": "object",
        "properties": {
          "components": {
            "type": "object",
            "description": "A dictionary mapping component IDs to their status during incident update.",
            "example": {
              "comp_123": "operational",
              "comp_456": "operational"
            },
            "additionalProperties": {
              "type": "string"
            }
          },
          "deliver_notifications": {
            "type": "boolean",
            "default": true,
            "description": "Whether to send notifications when updating this incident.",
            "example": true
          },
          "scheduled_auto_in_progress": {
            "type": "boolean",
            "description": "Whether the scheduled maintenance should automatically be marked as in progress.",
            "example": true,
            "nullable": true
          },
          "body": {
            "type": "string",
            "description": "The update body content for the incident.",
            "example": "Issue has been identified and we are working on a fix."
          },
          "auto_transition_to_operational_state": {
            "type": "boolean",
            "description": "Whether to automatically transition components back to operational state after scheduled maintenance.",
            "example": true,
            "nullable": true
          },
          "scheduled_for": {
            "type": "string",
            "format": "date-time",
            "description": "For scheduled maintenance, the timestamp when maintenance is scheduled to start (UTC).",
            "example": "2024-01-20T02:00:00Z"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "description": "The name/title of the incident. Must be between 1 and 200 characters.",
            "example": "Database Connection Issues"
          },
          "auto_transition_deliver_notifications_at_start": {
            "type": "boolean",
            "description": "Whether to deliver notifications when auto-transitioning at the start of scheduled maintenance.",
            "example": true,
            "nullable": true
          },
          "scheduled_reminded_at": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when reminder notifications were sent for scheduled maintenance (UTC).",
            "example": "2024-01-19T18:00:00Z"
          },
          "scheduled_remind_prior": {
            "type": "boolean",
            "description": "Whether to send reminder notifications before scheduled maintenance begins.",
            "example": true,
            "nullable": true
          },
          "reminder_intervals": {
            "type": "string",
            "description": "The intervals at which to send reminder notifications for scheduled maintenance.",
            "example": "24h,1h"
          },
          "status": {
            "type": "string",
            "enum": [
              "investigating",
              "identified",
              "monitoring",
              "resolved",
              "scheduled",
              "in_progress",
              "verifying",
              "completed"
            ],
            "description": "The current status of the incident or maintenance window.",
            "example": "monitoring"
          },
          "auto_transition_deliver_notifications_at_end": {
            "type": "boolean",
            "description": "Whether to deliver notifications when auto-transitioning at the end of scheduled maintenance.",
            "example": true,
            "nullable": true
          },
          "scheduled_until": {
            "type": "string",
            "format": "date-time",
            "description": "For scheduled maintenance, the timestamp when maintenance is scheduled to end (UTC).",
            "example": "2024-01-20T04:00:00Z"
          },
          "scheduled_auto_completed": {
            "type": "boolean",
            "description": "Whether the scheduled maintenance should automatically be marked as completed.",
            "example": true,
            "nullable": true
          },
          "impact": {
            "type": "string",
            "enum": [
              "minor",
              "major",
              "critical",
              "maintenance",
              "none"
            ],
            "description": "The impact level of the incident.",
            "example": "minor"
          },
          "auto_transition_to_maintenance_state": {
            "type": "boolean",
            "description": "Whether to automatically transition components to maintenance state during scheduled maintenance.",
            "example": true,
            "nullable": true
          }
        }
      },
      "PastIncidentUpdate": {
        "type": "object",
        "properties": {
          "components": {
            "type": "object",
            "default": {},
            "description": "Component statuses at time of update",
            "example": {
              "comp_123": "major_outage",
              "comp_456": "operational"
            },
            "additionalProperties": {
              "type": "string"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "When this update was posted (ISO format).",
            "example": "2024-01-15T10:30:00Z"
          },
          "status": {
            "type": "string",
            "enum": [
              "investigating",
              "identified",
              "monitoring",
              "resolved"
            ],
            "description": "The incident status at the time of this update.",
            "example": "investigating"
          },
          "body": {
            "type": "string",
            "description": "The content of the incident update.",
            "example": "We are investigating database connectivity issues"
          }
        },
        "required": [
          "body",
          "created_at",
          "status"
        ]
      },
      "LogPastIncident": {
        "type": "object",
        "properties": {
          "deliver_notifications": {
            "type": "boolean",
            "default": false,
            "description": "Whether to send notifications",
            "example": false
          },
          "name": {
            "type": "string",
            "description": "The name of the incident",
            "example": "Database Outage"
          },
          "impact": {
            "type": "string",
            "enum": [
              "minor",
              "major",
              "critical",
              "maintenance",
              "none"
            ],
            "description": "The impact level of the incident",
            "example": "major"
          },
          "incident_updates": {
            "type": "array",
            "minItems": 1,
            "description": "Array of incident updates in chronological order",
            "items": {
              "$ref": "#/components/schemas/PastIncidentUpdate"
            }
          }
        },
        "required": [
          "impact",
          "incident_updates",
          "name"
        ]
      },
      "IncidentCreate": {
        "type": "object",
        "properties": {
          "components": {
            "type": "object",
            "description": "A dictionary mapping component IDs to their status during incident creation.",
            "example": {
              "comp_123": "degraded_performance",
              "comp_456": "operational"
            },
            "additionalProperties": {
              "type": "string"
            }
          },
          "deliver_notifications": {
            "type": "boolean",
            "default": true,
            "description": "Whether to send notifications when creating this incident.",
            "example": true
          },
          "scheduled_auto_in_progress": {
            "type": "boolean",
            "description": "Whether the scheduled maintenance should automatically be marked as in progress.",
            "example": true,
            "nullable": true
          },
          "body": {
            "type": "string",
            "description": "The initial update body content for the incident.",
            "example": "We are currently investigating issues with our database connections that may affect service availability."
          },
          "auto_transition_to_operational_state": {
            "type": "boolean",
            "description": "Whether to automatically transition components back to operational state after scheduled maintenance.",
            "example": true,
            "nullable": true
          },
          "scheduled_for": {
            "type": "string",
            "format": "date-time",
            "description": "For scheduled maintenance, the timestamp when maintenance is scheduled to start (UTC).",
            "example": "2024-01-20T02:00:00Z"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "description": "The name/title of the incident. Must be between 1 and 200 characters.",
            "example": "Database Connection Issues"
          },
          "auto_transition_deliver_notifications_at_start": {
            "type": "boolean",
            "description": "Whether to deliver notifications when auto-transitioning at the start of scheduled maintenance.",
            "example": true,
            "nullable": true
          },
          "scheduled_reminded_at": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when reminder notifications were sent for scheduled maintenance (UTC).",
            "example": "2024-01-19T18:00:00Z"
          },
          "scheduled_remind_prior": {
            "type": "boolean",
            "description": "Whether to send reminder notifications before scheduled maintenance begins.",
            "example": true,
            "nullable": true
          },
          "reminder_intervals": {
            "type": "string",
            "description": "The intervals at which to send reminder notifications for scheduled maintenance.",
            "example": "24h,1h"
          },
          "status": {
            "type": "string",
            "enum": [
              "investigating",
              "identified",
              "monitoring",
              "resolved",
              "scheduled",
              "in_progress",
              "verifying",
              "completed"
            ],
            "description": "The current status of the incident.",
            "example": "investigating"
          },
          "metadata": {
            "type": "object",
            "description": "Additional metadata associated with the incident.",
            "example": {
              "severity": "high",
              "team": "backend"
            },
            "additionalProperties": {}
          },
          "auto_transition_deliver_notifications_at_end": {
            "type": "boolean",
            "description": "Whether to deliver notifications when auto-transitioning at the end of scheduled maintenance.",
            "example": true,
            "nullable": true
          },
          "scheduled_until": {
            "type": "string",
            "format": "date-time",
            "description": "For scheduled maintenance, the timestamp when maintenance is scheduled to end (UTC).",
            "example": "2024-01-20T04:00:00Z"
          },
          "scheduled_auto_completed": {
            "type": "boolean",
            "description": "Whether the scheduled maintenance should automatically be marked as completed.",
            "example": true,
            "nullable": true
          },
          "impact": {
            "type": "string",
            "enum": [
              "minor",
              "major",
              "critical",
              "maintenance",
              "none"
            ],
            "description": "The impact level of the incident.",
            "example": "minor"
          },
          "auto_transition_to_maintenance_state": {
            "type": "boolean",
            "description": "Whether to automatically transition components to maintenance state during scheduled maintenance.",
            "example": true,
            "nullable": true
          }
        },
        "required": [
          "name",
          "status"
        ]
      },
      "IncidentUpdate": {
        "type": "object",
        "properties": {
          "components": {
            "readOnly": true,
            "description": "Components affected by this incident update.",
            "example": [
              {
                "id": "comp_123",
                "name": "API",
                "status": "operational"
              }
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the incident update was created.",
            "example": "2024-01-15T10:30:00Z"
          },
          "deliver_notifications": {
            "type": "boolean",
            "default": true,
            "description": "Whether to send notifications for this update.",
            "example": true
          },
          "incident_id": {
            "type": "string",
            "readOnly": true,
            "description": "The ID of the incident this update belongs to.",
            "example": "inc_123456789"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the incident update was last updated.",
            "example": "2024-01-15T10:30:00Z"
          },
          "body": {
            "type": "string",
            "description": "The content of the incident update.",
            "example": "We have identified the root cause and are implementing a fix."
          },
          "status": {
            "description": "The status of the incident update.",
            "example": "investigating",
            "enum": [
              "investigating",
              "identified",
              "monitoring",
              "resolved"
            ]
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the incident update.",
            "example": "upd_123456789"
          }
        }
      },
      "IncidentUpdateEdit": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when the update was created in ISO format.",
            "example": "2024-01-15T11:30:00Z"
          },
          "body": {
            "type": "string",
            "description": "The content of the incident update.",
            "example": "We have identified the root cause and are implementing a fix."
          }
        }
      },
      "IncidentUpdateCreate": {
        "type": "object",
        "properties": {
          "deliver_notifications": {
            "type": "boolean",
            "default": true,
            "description": "Whether to send notifications for this update.",
            "example": true
          },
          "status": {
            "type": "string",
            "enum": [
              "investigating",
              "identified",
              "monitoring",
              "resolved"
            ],
            "description": "The incident status for this update.",
            "example": "identified"
          },
          "body": {
            "type": "string",
            "description": "The content/message of the incident update.",
            "example": "We have identified the root cause and are implementing a fix."
          }
        },
        "required": [
          "status"
        ]
      },
      "IncidentPostmortem": {
        "type": "object",
        "properties": {
          "published_at": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when the postmortem was published and made publicly available.",
            "example": "2024-01-16T12:00:00Z"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the postmortem was created.",
            "example": "2024-01-15T16:00:00Z"
          },
          "incident_id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier of the incident this postmortem belongs to.",
            "example": "inc_xyz789"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the postmortem was last updated.",
            "example": "2024-01-16T12:00:00Z"
          },
          "body": {
            "type": "string",
            "description": "The published content of the postmortem in Markdown format.",
            "example": "## Summary\nOn January 15th, we experienced a 2-hour outage affecting our API services..."
          },
          "notify_subscribers": {
            "type": "boolean",
            "description": "Whether to notify subscribers when the postmortem is published.",
            "example": true
          },
          "body_draft": {
            "type": "string",
            "description": "The draft content of the postmortem that hasn't been published yet.",
            "example": "## Summary (DRAFT)\nWe experienced an outage... [work in progress]"
          },
          "body_draft_updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when the draft postmortem body was last updated.",
            "example": "2024-01-16T09:30:00Z"
          },
          "preview_key": {
            "type": "string",
            "description": "A unique key that allows public access to preview the postmortem before it's published.",
            "example": "preview_abc123"
          },
          "body_updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when the published postmortem body was last updated.",
            "example": "2024-01-16T10:00:00Z"
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the incident postmortem.",
            "example": "pm_abc123def456"
          }
        }
      },
      "CheckSecretInput": {
        "type": "object",
        "properties": {
          "env_variable": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "The environment variable name for this secret. Max 100 characters.",
            "example": "DATABASE_PASSWORD"
          },
          "secret_id": {
            "type": "string",
            "description": "The unique identifier of the secret.",
            "example": "sec123abc456"
          }
        },
        "required": [
          "env_variable",
          "secret_id"
        ],
        "additionalProperties": false
      },
      "CheckGroup": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the group was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "position": {
            "type": "integer",
            "minimum": 0,
            "description": "Position for ordering groups (0 = first).",
            "example": 0
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the group was last updated in ISO format.",
            "example": "2024-01-15T14:00:00Z"
          },
          "color": {
            "type": "string",
            "pattern": "^#[0-9A-Fa-f]{6}$",
            "description": "Hex color code for the group (e.g., #4F46E5).",
            "example": "#4F46E5"
          },
          "description": {
            "type": "string",
            "maxLength": 500,
            "description": "Optional description for the check group. Max 500 characters.",
            "example": "Critical production services monitoring"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "A user-friendly name for the check group. Max 100 characters.",
            "example": "Production Services"
          },
          "active": {
            "type": "boolean",
            "description": "Whether the check group is active.",
            "example": true
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the check group.",
            "example": "grp123abc456"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "Secret": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the secret was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "secret_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "A unique name for the secret within the organization. Max 100 characters.",
            "example": "DATABASE_PASSWORD"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the secret was last updated in ISO format.",
            "example": "2024-01-15T14:00:00Z"
          },
          "created_by": {
            "type": "string",
            "readOnly": true,
            "description": "The ID of the user who created the secret.",
            "example": "usr123def456"
          },
          "updated_by": {
            "type": "string",
            "readOnly": true,
            "description": "The ID of the user who last updated the secret.",
            "example": "usr789ghi012"
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the secret.",
            "example": "sec123abc456"
          }
        },
        "required": [
          "secret_name"
        ],
        "additionalProperties": false
      },
      "CheckSecret": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the association was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "secret_id": {
            "type": "string",
            "description": "The unique identifier of the secret.",
            "example": "sec123abc456"
          },
          "secret": {
            "readOnly": true,
            "description": "The secret details (excluding the actual secret value).",
            "allOf": [
              {
                "$ref": "#/components/schemas/Secret"
              }
            ]
          },
          "env_variable": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "The environment variable name for this secret. Max 100 characters.",
            "example": "DATABASE_PASSWORD"
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the check-secret association.",
            "example": "cs123abc456"
          }
        },
        "required": [
          "env_variable",
          "secret_id"
        ],
        "additionalProperties": false
      },
      "MonitorCheck": {
        "type": "object",
        "properties": {
          "cron_schedule": {
            "type": "string",
            "maxLength": 100,
            "description": "Cron expression for scheduling (required when scheduling_type is 'cron'). Uses standard cron format.",
            "example": "0 9 * * 1",
            "nullable": true
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "A user-friendly name for the monitor check. Max 100 characters.",
            "example": "Production API Health Check"
          },
          "uptime_summary": {
            "type": "object",
            "readOnly": true,
            "description": "Uptime summary statistics (only included when include_uptime=true)",
            "example": {
              "uptime": 99.5,
              "avg_response_time": 250,
              "checks": 100
            },
            "additionalProperties": {}
          },
          "status": {
            "readOnly": true,
            "description": "The current status of the monitor check.",
            "example": "ok",
            "enum": [
              "ok",
              "failed",
              "degraded",
              "timeout",
              "pending",
              "paused"
            ]
          },
          "secrets": {
            "type": "array",
            "readOnly": true,
            "description": "Secrets associated with this check for environment variable injection.",
            "items": {
              "$ref": "#/components/schemas/CheckSecret"
            }
          },
          "host": {
            "type": "string",
            "maxLength": 255,
            "description": "The hostname or IP address to monitor (required for TCP/SSL checks). Max 255 characters.",
            "example": "example.com"
          },
          "position": {
            "type": "integer",
            "minimum": 0,
            "description": "Position for ordering checks within groups or ungrouped (0 = first).",
            "example": 0
          },
          "uptime_data": {
            "type": "array",
            "readOnly": true,
            "description": "Uptime data breakdown by hour (only included when include_uptime=true)",
            "example": [
              {
                "hour": "2024-01-15T14:00:00",
                "status": "ok",
                "uptime": 100.0
              }
            ],
            "items": {
              "type": "object",
              "additionalProperties": {}
            }
          },
          "group": {
            "readOnly": true,
            "description": "The group this check belongs to (if any).",
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckGroup"
              }
            ]
          },
          "parameters": {
            "type": "object",
            "description": "Additional parameters specific to the check type. May include 'regions' (list of region IDs) and 'multi_region_execution' (configuration object).",
            "example": {
              "regions": [
                "US, East coast",
                "EU, West"
              ],
              "multi_region_execution": {
                "enabled": true,
                "execution_mode": "all"
              }
            },
            "additionalProperties": {}
          },
          "type": {
            "description": "The type of monitoring check to perform.",
            "example": "web",
            "enum": [
              "web",
              "api",
              "ssl",
              "tcp",
              "synthetic",
              "multistep",
              "icmp",
              "dns",
              "portscan"
            ]
          },
          "timeout": {
            "type": "integer",
            "minimum": 1,
            "maximum": 180,
            "description": "The timeout for each check in seconds. Range: 1-30 seconds for most checks, up to 180 seconds for portscan checks.",
            "example": 10
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the monitor check. 12 chars, alpha-numeric.",
            "example": "chk123def456"
          },
          "interval": {
            "type": "integer",
            "minimum": 30,
            "maximum": 86400,
            "description": "The interval between checks in seconds. Range: 30 seconds to 24 hours. Required when scheduling_type is 'interval'.",
            "example": 300
          },
          "scheduling_type": {
            "type": "string",
            "default": "interval",
            "enum": [
              "interval",
              "cron"
            ],
            "description": "The scheduling type for this check. 'interval' uses fixed intervals, 'cron' uses cron expressions.",
            "example": "interval"
          },
          "last_checked_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the check was last executed in ISO format.",
            "example": "2024-01-15T14:30:00Z"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the monitor check was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "url": {
            "type": "string",
            "maxLength": 2048,
            "description": "The URL to monitor (required for web/api checks). Supports international domain names.",
            "example": "https://api.example.com/health"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the monitor check was last updated in ISO format.",
            "example": "2024-01-15T14:00:00Z"
          },
          "group_id": {
            "type": "string",
            "description": "The ID of the group this check belongs to (optional).",
            "example": "grp123abc456",
            "nullable": true
          },
          "port": {
            "type": "integer",
            "minimum": 1,
            "maximum": 65535,
            "description": "The port number to monitor (required for TCP checks). Range: 1-65535.",
            "example": 443
          },
          "active": {
            "type": "boolean",
            "description": "Whether the monitor check is active or paused.",
            "example": true
          }
        },
        "required": [
          "name",
          "type"
        ]
      },
      "MonitorCheckList": {
        "type": "object",
        "properties": {
          "checks": {
            "type": "array",
            "description": "List of monitor checks for the organization.",
            "items": {
              "$ref": "#/components/schemas/MonitorCheck"
            }
          },
          "pagination": {
            "type": "object",
            "description": "Pagination information for the check results.",
            "example": {
              "page": 1,
              "page_size": 20,
              "total_pages": 5,
              "total_items": 100
            },
            "additionalProperties": {}
          }
        },
        "additionalProperties": false
      },
      "MonitorCheck1": {
        "type": "object",
        "properties": {
          "cron_schedule": {
            "type": "string",
            "maxLength": 100,
            "description": "Cron expression for scheduling (required when scheduling_type is 'cron'). Uses standard cron format.",
            "example": "0 9 * * 1",
            "nullable": true
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "A user-friendly name for the monitor check. Max 100 characters.",
            "example": "Production API Health Check"
          },
          "uptime_summary": {
            "type": "object",
            "readOnly": true,
            "description": "Uptime summary statistics (only included when include_uptime=true)",
            "example": {
              "uptime": 99.5,
              "avg_response_time": 250,
              "checks": 100
            },
            "additionalProperties": {}
          },
          "status": {
            "readOnly": true,
            "description": "The current status of the monitor check.",
            "example": "ok",
            "enum": [
              "ok",
              "failed",
              "degraded",
              "timeout",
              "pending",
              "paused"
            ]
          },
          "secrets": {
            "type": "array",
            "readOnly": true,
            "description": "Secrets associated with this check for environment variable injection.",
            "items": {
              "$ref": "#/components/schemas/CheckSecret"
            }
          },
          "host": {
            "type": "string",
            "maxLength": 255,
            "description": "The hostname or IP address to monitor (required for TCP/SSL checks). Max 255 characters.",
            "example": "example.com"
          },
          "position": {
            "type": "integer",
            "minimum": 0,
            "description": "Position for ordering checks within groups or ungrouped (0 = first).",
            "example": 0
          },
          "uptime_data": {
            "type": "array",
            "readOnly": true,
            "description": "Uptime data breakdown by hour (only included when include_uptime=true)",
            "example": [
              {
                "hour": "2024-01-15T14:00:00",
                "status": "ok",
                "uptime": 100.0
              }
            ],
            "items": {
              "type": "object",
              "additionalProperties": {}
            }
          },
          "group": {
            "readOnly": true,
            "description": "The group this check belongs to (if any).",
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckGroup"
              }
            ]
          },
          "parameters": {
            "type": "object",
            "description": "Additional parameters specific to the check type. May include 'regions' (list of region IDs) and 'multi_region_execution' (configuration object).",
            "example": {
              "regions": [
                "US, East coast",
                "EU, West"
              ],
              "multi_region_execution": {
                "enabled": true,
                "execution_mode": "all"
              }
            },
            "additionalProperties": {}
          },
          "type": {
            "description": "The type of monitoring check to perform.",
            "example": "web",
            "enum": [
              "web",
              "api",
              "ssl",
              "tcp",
              "synthetic",
              "multistep",
              "icmp",
              "dns",
              "portscan"
            ]
          },
          "timeout": {
            "type": "integer",
            "minimum": 1,
            "maximum": 180,
            "description": "The timeout for each check in seconds. Range: 1-30 seconds for most checks, up to 180 seconds for portscan checks.",
            "example": 10
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the monitor check. 12 chars, alpha-numeric.",
            "example": "chk123def456"
          },
          "interval": {
            "type": "integer",
            "minimum": 30,
            "maximum": 86400,
            "description": "The interval between checks in seconds. Range: 30 seconds to 24 hours. Required when scheduling_type is 'interval'.",
            "example": 300
          },
          "scheduling_type": {
            "type": "string",
            "default": "interval",
            "enum": [
              "interval",
              "cron"
            ],
            "description": "The scheduling type for this check. 'interval' uses fixed intervals, 'cron' uses cron expressions.",
            "example": "interval"
          },
          "last_checked_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the check was last executed in ISO format.",
            "example": "2024-01-15T14:30:00Z"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the monitor check was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "url": {
            "type": "string",
            "maxLength": 2048,
            "description": "The URL to monitor (required for web/api checks). Supports international domain names.",
            "example": "https://api.example.com/health"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the monitor check was last updated in ISO format.",
            "example": "2024-01-15T14:00:00Z"
          },
          "group_id": {
            "type": "string",
            "description": "The ID of the group this check belongs to (optional).",
            "example": "grp123abc456",
            "nullable": true
          },
          "port": {
            "type": "integer",
            "minimum": 1,
            "maximum": 65535,
            "description": "The port number to monitor (required for TCP checks). Range: 1-65535.",
            "example": 443
          },
          "active": {
            "type": "boolean",
            "description": "Whether the monitor check is active or paused.",
            "example": true
          }
        }
      },
      "CheckServer": {
        "type": "object",
        "properties": {
          "region": {
            "type": "string",
            "description": "The geographical region where the server is located.",
            "example": "us-west-1"
          },
          "ip_address": {
            "type": "string",
            "description": "The IP address of the check server.",
            "example": "192.168.1.100"
          },
          "country": {
            "type": "string",
            "description": "The country where the server is located.",
            "example": "United States"
          },
          "server_metadata": {
            "type": "object",
            "description": "Additional metadata about the server configuration.",
            "example": {
              "datacenter": "aws-oregon",
              "provider": "aws"
            },
            "additionalProperties": {}
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the check server.",
            "example": "srv123abc456"
          }
        },
        "additionalProperties": false
      },
      "MonitorCheckResult": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the check result was created in ISO format.",
            "example": "2024-01-15T14:30:00Z"
          },
          "check_metadata": {
            "type": "object",
            "description": "Additional metadata collected during the check execution.",
            "example": {
              "status_code": 200,
              "content_length": 1024
            },
            "additionalProperties": {}
          },
          "error_message": {
            "type": "string",
            "description": "Error message if the check failed.",
            "example": "Connection timeout after 10 seconds"
          },
          "execution_id": {
            "type": "string",
            "readOnly": true,
            "description": "Unique identifier for this specific check execution. Use this for support tickets. Null for legacy results.",
            "example": "3f7a9b2e-4d5c-4e9f-8a1b-2c3d4e5f6a7b",
            "nullable": true
          },
          "response_time": {
            "type": "integer",
            "description": "The response time of the check in milliseconds.",
            "example": 250
          },
          "check_server_id": {
            "type": "string",
            "description": "The identifier of the server that executed this check.",
            "example": "srv123abc456"
          },
          "check_id": {
            "type": "string",
            "description": "The identifier of the monitor check this result belongs to.",
            "example": "chk123def456"
          },
          "status": {
            "description": "The result status of the check execution.",
            "example": "ok",
            "enum": [
              "ok",
              "failed",
              "degraded",
              "timeout",
              "pending"
            ]
          },
          "triggered_alerts": {
            "readOnly": true,
            "description": "Alerts that were triggered by this check result.",
            "example": [
              {
                "alert_id": "alert123abc456",
                "title": "Check 'API Health' has failed",
                "severity": "high",
                "status": "firing",
                "is_primary_trigger": true
              }
            ]
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the check result.",
            "example": "res789xyz012"
          },
          "check_server": {
            "readOnly": true,
            "description": "Details about the server that executed this check.",
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckServer"
              }
            ]
          }
        },
        "required": [
          "check_id"
        ],
        "additionalProperties": false
      },
      "MonitorCheckResultList": {
        "type": "object",
        "properties": {
          "pagination": {
            "type": "object",
            "description": "Pagination information for the check results.",
            "example": {
              "page": 1,
              "page_size": 20,
              "total_pages": 5,
              "total_items": 100
            },
            "additionalProperties": {}
          },
          "results": {
            "type": "array",
            "description": "List of monitor check results.",
            "items": {
              "$ref": "#/components/schemas/MonitorCheckResult"
            }
          }
        },
        "additionalProperties": false
      },
      "MonitorCheckStatusHistory": {
        "type": "object",
        "properties": {
          "started_at": {
            "type": "string",
            "format": "date-time",
            "description": "When this status period started in ISO format.",
            "example": "2024-01-15T14:30:00Z"
          },
          "status": {
            "type": "string",
            "description": "The status during this period.",
            "example": "ok",
            "enum": [
              "ok",
              "failed",
              "degraded",
              "timeout",
              "pending",
              "paused"
            ]
          },
          "ended_at": {
            "type": "string",
            "format": "date-time",
            "description": "When this status period ended in ISO format. Null if still active.",
            "example": "2024-01-15T15:30:00Z",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MonitorCheckStatusHistoryList": {
        "type": "object",
        "properties": {
          "pagination": {
            "type": "object",
            "description": "Pagination information for the status history.",
            "example": {
              "page": 1,
              "page_size": 20,
              "total_pages": 5,
              "total_items": 100
            },
            "additionalProperties": {}
          },
          "status_history": {
            "type": "array",
            "description": "List of status history records for the check.",
            "items": {
              "$ref": "#/components/schemas/MonitorCheckStatusHistory"
            }
          }
        },
        "additionalProperties": false
      },
      "Region": {
        "type": "object",
        "properties": {
          "available_check_types": {
            "type": "array",
            "description": "List of check types available in this region.",
            "example": [
              "api",
              "web",
              "tcp",
              "ssl",
              "synthetic",
              "multistep"
            ],
            "items": {
              "type": "string"
            }
          },
          "display_name": {
            "type": "string",
            "description": "The human-readable display name for the region.",
            "example": "Europe, West, Belgium"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier for the region.",
            "example": "EU, West"
          },
          "aliases": {
            "type": "array",
            "description": "Cloud-provider-style aliases for the region.",
            "example": [
              "eu-west1",
              "eu-bel"
            ],
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "RegionsList": {
        "type": "object",
        "properties": {
          "regions": {
            "type": "array",
            "description": "List of available regions for serverless check execution.",
            "items": {
              "$ref": "#/components/schemas/Region"
            }
          },
          "total_regions": {
            "type": "integer",
            "description": "Total number of available regions.",
            "example": 2
          }
        },
        "additionalProperties": false
      },
      "ExecuteExistingCheckResponse": {
        "type": "object",
        "properties": {
          "job_id": {
            "type": "string",
            "description": "The unique identifier for the queued check job.",
            "example": "job456ghi789"
          },
          "status": {
            "type": "string",
            "enum": [
              "queued"
            ],
            "description": "The current status of the check job.",
            "example": "queued"
          },
          "message": {
            "type": "string",
            "description": "Human-readable message about the operation result.",
            "example": "Check execution queued successfully"
          }
        },
        "required": [
          "job_id",
          "message",
          "status"
        ],
        "additionalProperties": false
      },
      "ExecuteCustomCheckRequest": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "maxLength": 2048,
            "description": "The URL to monitor (required for web/api checks). Supports international domain names.",
            "example": "https://api.example.com/health"
          },
          "port": {
            "type": "integer",
            "minimum": 1,
            "maximum": 65535,
            "description": "The port number to monitor (required for TCP and SSL checks). Range: 1-65535.",
            "example": 443
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "A user-friendly name for the custom check. Max 100 characters.",
            "example": "Custom API Health Check"
          },
          "parameters": {
            "type": "object",
            "description": "Additional parameters specific to the check type. May include 'regions' (list of region IDs) and 'multi_region_execution' (configuration object).",
            "example": {
              "regions": [
                "US, East coast",
                "EU, West"
              ],
              "multi_region_execution": {
                "enabled": true,
                "execution_mode": "all"
              },
              "expected_status_code": 200,
              "expected_content": "OK",
              "pw_script": "const { test, expect } = require('@playwright/test');\n\ntest('example', async ({ page }) => {\n  await page.goto('https://example.com');\n  await expect(page).toHaveTitle(/Example/);\n});"
            },
            "additionalProperties": {}
          },
          "secrets": {
            "type": "array",
            "default": [],
            "description": "List of secrets to inject as environment variables during check execution. Each secret must have 'secret_id' and 'env_variable' keys.",
            "example": [
              {
                "secret_id": "imzahxn0vqfe",
                "env_variable": "MY_DOMAIN"
              }
            ],
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "type": {
            "type": "string",
            "enum": [
              "web",
              "api",
              "ssl",
              "tcp",
              "synthetic",
              "multistep",
              "icmp",
              "dns",
              "portscan"
            ],
            "description": "The type of monitoring check to perform.",
            "example": "web"
          },
          "timeout": {
            "type": "integer",
            "minimum": 1,
            "maximum": 180,
            "description": "The timeout for each check in seconds. Range: 1-30 seconds for most checks, up to 180 seconds for portscan checks.",
            "example": 10
          },
          "host": {
            "type": "string",
            "maxLength": 255,
            "description": "The hostname or IP address to monitor (required for TCP/SSL checks). Max 255 characters.",
            "example": "example.com"
          }
        },
        "required": [
          "name",
          "type"
        ]
      },
      "CheckJob": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the check job was created in ISO format.",
            "example": "2024-01-15T14:25:00Z"
          },
          "job_type": {
            "readOnly": true,
            "description": "The type of check job being executed.",
            "example": "web_check"
          },
          "error_message": {
            "type": "string",
            "readOnly": true,
            "description": "Error message if the job execution failed.",
            "example": "Unable to connect to target server"
          },
          "started_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the check job started execution in ISO format.",
            "example": "2024-01-15T14:26:00Z"
          },
          "check_parameters": {
            "type": "object",
            "readOnly": true,
            "description": "The parameters used for executing this check job.",
            "example": {
              "url": "https://api.example.com",
              "timeout": 10
            },
            "additionalProperties": {}
          },
          "check_id": {
            "type": "string",
            "readOnly": true,
            "description": "The identifier of the monitor check this job belongs to.",
            "example": "chk123def456"
          },
          "completed_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the check job completed execution in ISO format.",
            "example": "2024-01-15T14:30:00Z"
          },
          "status": {
            "readOnly": true,
            "description": "The current status of the check job execution.",
            "example": "completed",
            "enum": [
              "pending",
              "running",
              "completed",
              "failed"
            ]
          },
          "result": {
            "readOnly": true,
            "description": "Check execution result. For multi-region checks, includes 'regional_results' array with detailed data from each region. For single-region checks, includes direct check metadata.",
            "example": {
              "execution_group_id": "9mnt6ecba3g4",
              "status": "completed",
              "avg_response_time": 46,
              "regional_summary": {
                "EU, West": {
                  "status": "ok",
                  "response_time": 46
                }
              },
              "regional_results": [
                {
                  "result_id": "1bgajfewc63e",
                  "execution_id": "d2af136a-5d83-41bb-af02-7c1bfd93110a",
                  "region": "EU, West",
                  "status": "ok",
                  "response_time": 46,
                  "check_metadata": {
                    "latency_avg_ms": 46.783
                  },
                  "check_server": {
                    "region": "EU, West",
                    "id": "k8u7h8eppuod"
                  }
                }
              ]
            }
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the check job.",
            "example": "job456ghi789"
          }
        },
        "additionalProperties": false
      },
      "JobListResponse": {
        "type": "object",
        "properties": {
          "jobs": {
            "type": "array",
            "description": "List of check jobs for the organization.",
            "items": {
              "$ref": "#/components/schemas/CheckJob"
            }
          },
          "pagination": {
            "type": "object",
            "description": "Pagination information for the job results.",
            "example": {
              "page": 1,
              "per_page": 20,
              "total": 100,
              "pages": 5,
              "has_next": true,
              "has_prev": false
            },
            "additionalProperties": {}
          }
        },
        "additionalProperties": false
      },
      "AlertChannel": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the alert channel was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the alert channel was last updated in ISO format.",
            "example": "2024-01-15T14:00:00Z"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "A user-friendly name for the alert channel. Max 100 characters.",
            "example": "Production Email Alerts"
          },
          "enabled": {
            "type": "boolean",
            "default": true,
            "description": "Whether the alert channel is enabled. Defaults to true.",
            "example": true
          },
          "configuration": {
            "type": "object",
            "description": "Channel-specific configuration. Structure varies by channel type.",
            "example": {
              "recipients": [
                "admin@example.com",
                "ops@example.com"
              ]
            },
            "additionalProperties": {}
          },
          "last_used_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the alert channel was last used to send an alert in ISO format. Null if never used.",
            "example": "2024-01-15T15:30:00Z",
            "nullable": true
          },
          "type": {
            "description": "The type of alert channel.",
            "example": "email",
            "enum": [
              "email",
              "webhook",
              "statuspage",
              "telegram",
              "sms"
            ]
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the alert channel.",
            "example": "chn_abc123def456"
          }
        },
        "required": [
          "configuration",
          "name",
          "type"
        ],
        "additionalProperties": false
      },
      "AlertChannel1": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the alert channel was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the alert channel was last updated in ISO format.",
            "example": "2024-01-15T14:00:00Z"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "A user-friendly name for the alert channel. Max 100 characters.",
            "example": "Production Email Alerts"
          },
          "enabled": {
            "type": "boolean",
            "default": true,
            "description": "Whether the alert channel is enabled. Defaults to true.",
            "example": true
          },
          "configuration": {
            "type": "object",
            "description": "Channel-specific configuration. Structure varies by channel type.",
            "example": {
              "recipients": [
                "admin@example.com",
                "ops@example.com"
              ]
            },
            "additionalProperties": {}
          },
          "last_used_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the alert channel was last used to send an alert in ISO format. Null if never used.",
            "example": "2024-01-15T15:30:00Z",
            "nullable": true
          },
          "type": {
            "description": "The type of alert channel.",
            "example": "email",
            "enum": [
              "email",
              "webhook",
              "statuspage",
              "telegram",
              "sms"
            ]
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the alert channel.",
            "example": "chn_abc123def456"
          }
        },
        "additionalProperties": false
      },
      "AlertRule": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the alert rule was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "severity": {
            "default": null,
            "description": "The severity level of alerts generated by this rule.",
            "example": "high",
            "enum": [
              "low",
              "medium",
              "high",
              "critical"
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the alert rule was last updated in ISO format.",
            "example": "2024-01-15T14:00:00Z"
          },
          "auto_resolve": {
            "type": "boolean",
            "default": true,
            "description": "Whether alerts should automatically resolve when the check recovers. Defaults to true.",
            "example": true
          },
          "condition": {
            "description": "The condition that triggers this alert rule.",
            "example": "check_failed",
            "enum": [
              "check_failed",
              "check_timeout",
              "check_degraded",
              "consecutive_failures",
              "uptime_below_threshold"
            ]
          },
          "cooldown_period": {
            "type": "integer",
            "default": 300,
            "minimum": 0,
            "description": "Time in seconds to wait before triggering another alert. Defaults to 300.",
            "example": 600
          },
          "multi_region_mode": {
            "type": "string",
            "default": "any_region",
            "enum": [
              "any_region",
              "all_regions",
              "majority",
              "specific_count"
            ],
            "description": "How to evaluate multi-region check failures. Defaults to 'any_region'.",
            "example": "any_region"
          },
          "channels": {
            "readOnly": true,
            "description": "List of alert channels configured for this rule.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlertChannel"
            }
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "A user-friendly name for the alert rule. Max 100 characters.",
            "example": "Production API Down Alert"
          },
          "enabled": {
            "type": "boolean",
            "default": true,
            "description": "Whether the alert rule is enabled. Defaults to true.",
            "example": true
          },
          "check_id": {
            "type": "string",
            "description": "The identifier of the monitor check this rule applies to.",
            "example": "check_def456ghi789"
          },
          "condition_parameters": {
            "type": "object",
            "description": "Parameters specific to the trigger condition. Required for some conditions.",
            "example": {
              "count": 3
            },
            "additionalProperties": {}
          },
          "channel_ids": {
            "type": "array",
            "minItems": 1,
            "description": "List of alert channel IDs to send notifications to.",
            "example": [
              "chn_abc123",
              "chn_def456"
            ],
            "items": {
              "type": "string"
            }
          },
          "check_name": {
            "readOnly": true,
            "description": "The name of the monitor check this rule applies to.",
            "example": "Production API Health Check"
          },
          "multi_region_threshold": {
            "type": "object",
            "default": null,
            "description": "Threshold configuration for 'specific_count' mode. Example: {'count': 2}",
            "example": {
              "count": 2
            },
            "additionalProperties": {},
            "nullable": true
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the alert rule.",
            "example": "rule_abc123def456"
          }
        },
        "required": [
          "channel_ids",
          "check_id",
          "condition",
          "name"
        ],
        "additionalProperties": false
      },
      "AlertRule1": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the alert rule was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "severity": {
            "default": null,
            "description": "The severity level of alerts generated by this rule.",
            "example": "high",
            "enum": [
              "low",
              "medium",
              "high",
              "critical"
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the alert rule was last updated in ISO format.",
            "example": "2024-01-15T14:00:00Z"
          },
          "auto_resolve": {
            "type": "boolean",
            "default": true,
            "description": "Whether alerts should automatically resolve when the check recovers. Defaults to true.",
            "example": true
          },
          "condition": {
            "description": "The condition that triggers this alert rule.",
            "example": "check_failed",
            "enum": [
              "check_failed",
              "check_timeout",
              "check_degraded",
              "consecutive_failures",
              "uptime_below_threshold"
            ]
          },
          "cooldown_period": {
            "type": "integer",
            "default": 300,
            "minimum": 0,
            "description": "Time in seconds to wait before triggering another alert. Defaults to 300.",
            "example": 600
          },
          "multi_region_mode": {
            "type": "string",
            "default": "any_region",
            "enum": [
              "any_region",
              "all_regions",
              "majority",
              "specific_count"
            ],
            "description": "How to evaluate multi-region check failures. Defaults to 'any_region'.",
            "example": "any_region"
          },
          "channels": {
            "readOnly": true,
            "description": "List of alert channels configured for this rule.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlertChannel"
            }
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "A user-friendly name for the alert rule. Max 100 characters.",
            "example": "Production API Down Alert"
          },
          "enabled": {
            "type": "boolean",
            "default": true,
            "description": "Whether the alert rule is enabled. Defaults to true.",
            "example": true
          },
          "check_id": {
            "type": "string",
            "description": "The identifier of the monitor check this rule applies to.",
            "example": "check_def456ghi789"
          },
          "condition_parameters": {
            "type": "object",
            "description": "Parameters specific to the trigger condition. Required for some conditions.",
            "example": {
              "count": 3
            },
            "additionalProperties": {}
          },
          "channel_ids": {
            "type": "array",
            "minItems": 1,
            "description": "List of alert channel IDs to send notifications to.",
            "example": [
              "chn_abc123",
              "chn_def456"
            ],
            "items": {
              "type": "string"
            }
          },
          "check_name": {
            "readOnly": true,
            "description": "The name of the monitor check this rule applies to.",
            "example": "Production API Health Check"
          },
          "multi_region_threshold": {
            "type": "object",
            "default": null,
            "description": "Threshold configuration for 'specific_count' mode. Example: {'count': 2}",
            "example": {
              "count": 2
            },
            "additionalProperties": {},
            "nullable": true
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the alert rule.",
            "example": "rule_abc123def456"
          }
        },
        "additionalProperties": false
      },
      "Alert": {
        "type": "object",
        "properties": {
          "rule_name": {
            "readOnly": true,
            "description": "The name of the alert rule that triggered this alert.",
            "example": "Production API Down Alert"
          },
          "duration": {
            "readOnly": true,
            "description": "The duration of the alert in seconds. For active alerts, this is time since firing.",
            "example": 3600
          },
          "check_id": {
            "type": "string",
            "readOnly": true,
            "description": "The identifier of the monitor check that triggered this alert.",
            "example": "check_ghi789jkl012"
          },
          "fired_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the alert was first triggered in ISO format.",
            "example": "2024-01-15T15:30:00Z"
          },
          "status": {
            "readOnly": true,
            "description": "The current status of the alert.",
            "example": "firing",
            "enum": [
              "firing",
              "resolved",
              "acknowledged",
              "suppressed"
            ]
          },
          "rule_id": {
            "type": "string",
            "readOnly": true,
            "description": "The identifier of the alert rule that triggered this alert.",
            "example": "rule_def456ghi789"
          },
          "description": {
            "type": "string",
            "readOnly": true,
            "description": "A detailed description of the alert condition.",
            "example": "The production API health check has failed 3 consecutive times, indicating a potential service outage."
          },
          "last_notification_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the last notification was sent in ISO format. Null if no notifications sent.",
            "example": "2024-01-15T15:45:00Z",
            "nullable": true
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the alert.",
            "example": "alert_abc123def456"
          },
          "severity": {
            "readOnly": true,
            "description": "The severity level of the alert.",
            "example": "high",
            "enum": [
              "low",
              "medium",
              "high",
              "critical"
            ]
          },
          "alert_metadata": {
            "type": "object",
            "readOnly": true,
            "description": "Additional context and metadata about what triggered the alert.",
            "example": {
              "consecutive_failures": 3,
              "last_check_result": "timeout",
              "response_time": 5000
            },
            "additionalProperties": {}
          },
          "trigger_results": {
            "readOnly": true,
            "description": "The check results that triggered this alert. Includes result IDs and which one is primary.",
            "example": [
              {
                "result_id": "res123abc456",
                "is_primary": true,
                "status": "failed",
                "error_message": "Connection timeout",
                "created_at": "2024-01-15T10:30:00Z",
                "region": "us-east-1"
              }
            ]
          },
          "is_active": {
            "readOnly": true,
            "description": "Whether the alert is currently active (firing or acknowledged).",
            "example": true
          },
          "title": {
            "type": "string",
            "readOnly": true,
            "description": "A short, descriptive title for the alert.",
            "example": "Production API Health Check Failed"
          },
          "acknowledged_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the alert was acknowledged in ISO format. Null if not acknowledged.",
            "example": "2024-01-15T15:35:00Z",
            "nullable": true
          },
          "check_name": {
            "readOnly": true,
            "description": "The name of the monitor check that triggered this alert.",
            "example": "Production API Health Check"
          },
          "notification_count": {
            "type": "integer",
            "readOnly": true,
            "description": "The number of notifications sent for this alert.",
            "example": 3
          },
          "acknowledged_by_id": {
            "type": "string",
            "readOnly": true,
            "description": "The identifier of the user who acknowledged the alert. Null if not acknowledged.",
            "example": "user_jkl012mno345",
            "nullable": true
          },
          "regional_summary": {
            "readOnly": true,
            "description": "Summary of regional results if this alert was triggered by a multi-region check",
            "example": {
              "total_regions": 3,
              "failed_regions": 2,
              "regions": [
                "us-east-1",
                "eu-west-1"
              ]
            }
          },
          "resolved_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the alert was resolved in ISO format. Null if not resolved.",
            "example": "2024-01-15T16:30:00Z",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AlertList": {
        "type": "object",
        "properties": {
          "pagination": {
            "type": "object",
            "readOnly": true,
            "description": "Pagination metadata for the list of alerts.",
            "example": {
              "page": 1,
              "pages": 3,
              "per_page": 20,
              "total": 45,
              "has_next": true,
              "has_prev": false
            },
            "additionalProperties": {}
          },
          "alerts": {
            "readOnly": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Alert"
            }
          }
        },
        "additionalProperties": false
      },
      "AlertNotification": {
        "type": "object",
        "properties": {
          "channel_name": {
            "readOnly": true,
            "description": "The name of the alert channel used for this notification.",
            "example": "Production Email Alerts"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the notification was created in ISO format.",
            "example": "2024-01-15T15:30:00Z"
          },
          "retry_count": {
            "type": "integer",
            "readOnly": true,
            "description": "The number of retry attempts for this notification.",
            "example": 2
          },
          "sent_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the notification was successfully sent in ISO format. Null if not sent.",
            "example": "2024-01-15T15:32:00Z",
            "nullable": true
          },
          "error_message": {
            "type": "string",
            "readOnly": true,
            "description": "Error message if the notification failed to send. Null if successful.",
            "example": "SMTP connection timeout",
            "nullable": true
          },
          "notification_type": {
            "type": "string",
            "readOnly": true,
            "description": "The type of notification sent.",
            "example": "alert_fired",
            "enum": [
              "alert_fired",
              "alert_resolved",
              "alert_acknowledged"
            ]
          },
          "channel_type": {
            "readOnly": true,
            "description": "The type of the alert channel used for this notification.",
            "example": "email",
            "enum": [
              "email",
              "webhook",
              "statuspage",
              "telegram",
              "sms"
            ]
          },
          "alert_id": {
            "type": "string",
            "readOnly": true,
            "description": "The identifier of the alert this notification belongs to.",
            "example": "alert_def456ghi789"
          },
          "status": {
            "type": "string",
            "readOnly": true,
            "description": "The delivery status of the notification.",
            "example": "sent",
            "enum": [
              "pending",
              "sent",
              "failed",
              "retrying"
            ]
          },
          "channel_id": {
            "type": "string",
            "readOnly": true,
            "description": "The identifier of the alert channel used for this notification.",
            "example": "chn_ghi789jkl012"
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the alert notification.",
            "example": "notif_abc123def456"
          }
        },
        "additionalProperties": false
      },
      "AlertStats": {
        "type": "object",
        "properties": {
          "total_channels": {
            "type": "integer",
            "readOnly": true,
            "description": "Total number of enabled alert channels.",
            "example": 4
          },
          "recent_alerts": {
            "type": "integer",
            "readOnly": true,
            "description": "Number of alerts fired in the last 30 days.",
            "example": 23
          },
          "severity_breakdown": {
            "type": "object",
            "readOnly": true,
            "description": "Count of alerts by severity level in the last 30 days.",
            "example": {
              "low": 2,
              "medium": 8,
              "high": 10,
              "critical": 3
            },
            "additionalProperties": {}
          },
          "total_rules": {
            "type": "integer",
            "readOnly": true,
            "description": "Total number of enabled alert rules.",
            "example": 12
          },
          "active_alerts": {
            "type": "integer",
            "readOnly": true,
            "description": "Number of currently active alerts (firing or acknowledged).",
            "example": 5
          }
        },
        "additionalProperties": false
      },
      "HeartbeatCheck": {
        "type": "object",
        "properties": {
          "ping_url": {
            "type": "string",
            "readOnly": true,
            "description": "The unique URL to which the monitored service should send GET or POST requests. Auto-generated.",
            "example": "https://api.pingera.ru/v1/heartbeats/abc123def456/ping"
          },
          "next_expected_ping": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the next ping is expected in ISO format.",
            "example": "2024-01-16T14:30:00Z"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the heartbeat check was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the heartbeat check was last updated in ISO format.",
            "example": "2024-01-15T14:00:00Z"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "A user-friendly name for the heartbeat check. Max 100 symbols.",
            "example": "Nightly Backup Cron Job"
          },
          "period_seconds": {
            "type": "integer",
            "minimum": 60,
            "description": "The expected interval between pings, in seconds. Minimum is 60.",
            "example": 86400
          },
          "status": {
            "readOnly": true,
            "description": "The current status of the heartbeat check.",
            "example": "up",
            "enum": [
              "up",
              "down",
              "grace",
              "paused"
            ]
          },
          "grace_seconds": {
            "type": "integer",
            "default": 3600,
            "minimum": 60,
            "description": "A grace period in seconds to wait before marking the check as 'down'. Defaults to 3600.",
            "example": 600
          },
          "active": {
            "type": "boolean",
            "default": true,
            "description": "Whether the heartbeat check is active or paused. Defaults to true.",
            "example": true
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the heartbeat check. 12 chars, alpha-numeric.",
            "example": "abc123def456"
          },
          "last_ping_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp of the last received ping in ISO format.",
            "example": "2024-01-15T14:30:00Z"
          }
        },
        "required": [
          "name",
          "period_seconds"
        ],
        "additionalProperties": false
      },
      "HeartbeatCheckList": {
        "type": "object",
        "properties": {
          "checks": {
            "readOnly": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HeartbeatCheck"
            }
          },
          "pagination": {
            "type": "object",
            "readOnly": true,
            "description": "Pagination metadata for the list of checks.",
            "example": {
              "page": 1,
              "pages": 3,
              "per_page": 20,
              "total": 45
            },
            "additionalProperties": {}
          }
        },
        "additionalProperties": false
      },
      "HeartbeatPing": {
        "type": "object",
        "properties": {
          "received_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the ping was received in ISO format.",
            "example": "2024-01-15T14:30:00Z"
          },
          "ping_data": {
            "type": "object",
            "readOnly": true,
            "description": "Additional JSON data sent with the ping request.",
            "example": {
              "status": "ok",
              "message": "Backup completed successfully"
            },
            "additionalProperties": {}
          },
          "source_ip": {
            "type": "string",
            "readOnly": true,
            "description": "The IP address from which the ping was sent.",
            "example": "192.168.1.100"
          },
          "check_id": {
            "type": "string",
            "readOnly": true,
            "description": "The identifier of the heartbeat check this ping belongs to.",
            "example": "abc123def456"
          },
          "user_agent": {
            "type": "string",
            "readOnly": true,
            "description": "The User-Agent header from the ping request.",
            "example": "curl/7.68.0"
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the heartbeat ping.",
            "example": "ping789xyz012"
          }
        },
        "additionalProperties": false
      },
      "HeartbeatCheckDetail": {
        "type": "object",
        "properties": {
          "ping_url": {
            "type": "string",
            "readOnly": true,
            "description": "The unique URL to which the monitored service should send GET or POST requests. Auto-generated.",
            "example": "https://api.pingera.ru/v1/heartbeats/abc123def456/ping"
          },
          "next_expected_ping": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the next ping is expected in ISO format.",
            "example": "2024-01-16T14:30:00Z"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the heartbeat check was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the heartbeat check was last updated in ISO format.",
            "example": "2024-01-15T14:00:00Z"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "A user-friendly name for the heartbeat check. Max 100 symbols.",
            "example": "Nightly Backup Cron Job"
          },
          "period_seconds": {
            "type": "integer",
            "minimum": 60,
            "description": "The expected interval between pings, in seconds. Minimum is 60.",
            "example": 86400
          },
          "status": {
            "readOnly": true,
            "description": "The current status of the heartbeat check.",
            "example": "up",
            "enum": [
              "up",
              "down",
              "grace",
              "paused"
            ]
          },
          "recent_pings": {
            "readOnly": true,
            "description": "A list of the 10 most recent pings for this check.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HeartbeatPing"
            }
          },
          "grace_seconds": {
            "type": "integer",
            "default": 3600,
            "minimum": 60,
            "description": "A grace period in seconds to wait before marking the check as 'down'. Defaults to 3600.",
            "example": 600
          },
          "active": {
            "type": "boolean",
            "default": true,
            "description": "Whether the heartbeat check is active or paused. Defaults to true.",
            "example": true
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the heartbeat check. 12 chars, alpha-numeric.",
            "example": "abc123def456"
          },
          "last_ping_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp of the last received ping in ISO format.",
            "example": "2024-01-15T14:30:00Z"
          }
        },
        "required": [
          "name",
          "period_seconds"
        ],
        "additionalProperties": false
      },
      "HeartbeatCheck1": {
        "type": "object",
        "properties": {
          "ping_url": {
            "type": "string",
            "readOnly": true,
            "description": "The unique URL to which the monitored service should send GET or POST requests. Auto-generated.",
            "example": "https://api.pingera.ru/v1/heartbeats/abc123def456/ping"
          },
          "next_expected_ping": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the next ping is expected in ISO format.",
            "example": "2024-01-16T14:30:00Z"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the heartbeat check was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the heartbeat check was last updated in ISO format.",
            "example": "2024-01-15T14:00:00Z"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "A user-friendly name for the heartbeat check. Max 100 symbols.",
            "example": "Nightly Backup Cron Job"
          },
          "period_seconds": {
            "type": "integer",
            "minimum": 60,
            "description": "The expected interval between pings, in seconds. Minimum is 60.",
            "example": 86400
          },
          "status": {
            "readOnly": true,
            "description": "The current status of the heartbeat check.",
            "example": "up",
            "enum": [
              "up",
              "down",
              "grace",
              "paused"
            ]
          },
          "grace_seconds": {
            "type": "integer",
            "default": 3600,
            "minimum": 60,
            "description": "A grace period in seconds to wait before marking the check as 'down'. Defaults to 3600.",
            "example": 600
          },
          "active": {
            "type": "boolean",
            "default": true,
            "description": "Whether the heartbeat check is active or paused. Defaults to true.",
            "example": true
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the heartbeat check. 12 chars, alpha-numeric.",
            "example": "abc123def456"
          },
          "last_ping_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp of the last received ping in ISO format.",
            "example": "2024-01-15T14:30:00Z"
          }
        },
        "additionalProperties": false
      },
      "HeartbeatPingResponse": {
        "type": "object",
        "properties": {
          "check_id": {
            "type": "string",
            "readOnly": true,
            "description": "The identifier of the heartbeat check that received the ping.",
            "example": "abc123def456"
          },
          "next_expected_ping": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the next ping is expected in ISO format.",
            "example": "2024-01-16T14:30:00Z"
          },
          "status": {
            "type": "string",
            "readOnly": true,
            "description": "The status of the ping request.",
            "example": "ok"
          },
          "message": {
            "type": "string",
            "readOnly": true,
            "description": "A message describing the ping result.",
            "example": "Ping received successfully"
          }
        },
        "additionalProperties": false
      },
      "HeartbeatPingHistory": {
        "type": "object",
        "properties": {
          "pagination": {
            "type": "object",
            "readOnly": true,
            "description": "Pagination metadata for the ping history.",
            "example": {
              "page": 1,
              "pages": 5,
              "per_page": 20,
              "total": 100
            },
            "additionalProperties": {}
          },
          "pings": {
            "readOnly": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HeartbeatPing"
            }
          }
        },
        "additionalProperties": false
      },
      "HeartbeatPingCountHistory": {
        "type": "object",
        "properties": {
          "hour": {
            "type": "string",
            "readOnly": true,
            "description": "The hour bucket timestamp in GMT format following RFC standard.",
            "example": "Mon, 15 Jan 2024 14:00:00 GMT"
          },
          "ping_count": {
            "type": "integer",
            "readOnly": true,
            "description": "Number of pings received in this hour bucket.",
            "example": 12
          }
        },
        "additionalProperties": false
      },
      "HeartbeatPingCountResponse": {
        "type": "object",
        "properties": {
          "summary": {
            "type": "object",
            "readOnly": true,
            "description": "Summary statistics for the time period.",
            "example": {
              "total_pings": 288,
              "total_hours": 24,
              "average_pings_per_hour": 12.0,
              "start_time": "Sun, 14 Jan 2024 14:00:00 GMT",
              "end_time": "Mon, 15 Jan 2024 14:00:00 GMT"
            },
            "additionalProperties": {}
          },
          "ping_counts": {
            "readOnly": true,
            "description": "List of hourly ping counts.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HeartbeatPingCountHistory"
            }
          }
        },
        "additionalProperties": false
      },
      "HeartbeatCheckChannelAssignment": {
        "type": "object",
        "properties": {
          "channel_ids": {
            "type": "array",
            "minItems": 1,
            "description": "A list of alert channel IDs to assign to the heartbeat check.",
            "example": [
              "chn_abc123",
              "chn_def456"
            ],
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "channel_ids"
        ],
        "additionalProperties": false
      },
      "UnifiedResult": {
        "type": "object",
        "properties": {
          "check_type": {
            "type": "string",
            "readOnly": true,
            "description": "The type of check performed (e.g., web, api, ssl, icmp, dns)."
          },
          "region": {
            "type": "string",
            "readOnly": true,
            "description": "The region where the check was executed from."
          },
          "check_metadata": {
            "type": "object",
            "description": "Additional metadata from the check.",
            "additionalProperties": {}
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "error_message": {
            "type": "string",
            "description": "Error message if the check failed.",
            "nullable": true
          },
          "execution_id": {
            "type": "string",
            "readOnly": true,
            "description": "Unique identifier for this specific check execution. Null for legacy results.",
            "example": "3f7a9b2e-4d5c-4e9f-8a1b-2c3d4e5f6a7b",
            "nullable": true
          },
          "response_time": {
            "type": "integer",
            "description": "The response time in milliseconds."
          },
          "check_server_id": {
            "type": "string"
          },
          "result_type": {
            "type": "string",
            "readOnly": true,
            "description": "Type of the result.",
            "enum": [
              "regular",
              "on_demand"
            ]
          },
          "execution_group_id": {
            "type": "string",
            "readOnly": true,
            "description": "ID of the execution group if this result is part of a multi-region execution. Null for single-region checks.",
            "example": "grp123abc456",
            "nullable": true
          },
          "execution_group": {
            "type": "object",
            "readOnly": true,
            "description": "Execution group details if this result is part of a multi-region execution.",
            "example": {
              "id": "grp123abc456",
              "execution_type": "scheduled",
              "execution_mode": "all",
              "status": "completed",
              "total_executions": 3,
              "completed_executions": 3,
              "avg_response_time": 175,
              "min_response_time": 120,
              "max_response_time": 230,
              "regional_summary": {
                "US, East coast": {
                  "status": "ok",
                  "response_time": 150
                },
                "EU, West": {
                  "status": "ok",
                  "response_time": 200
                }
              },
              "requested_regions": [
                "US, East coast",
                "EU, West",
                "RU, Moscow"
              ]
            },
            "additionalProperties": {},
            "nullable": true
          },
          "check_id": {
            "type": "string",
            "description": "The identifier of the monitor check, if applicable."
          },
          "status": {
            "type": "string",
            "description": "The result status of the check execution."
          },
          "triggered_alerts": {
            "type": "array",
            "readOnly": true,
            "description": "Alerts that were triggered by this check result.",
            "example": [
              {
                "alert_id": "alert123abc456",
                "title": "Check 'API Health' has failed",
                "severity": "high",
                "status": "firing",
                "is_primary_trigger": true
              }
            ],
            "items": {
              "type": "object",
              "additionalProperties": {}
            },
            "nullable": true
          },
          "check_name": {
            "type": "string",
            "readOnly": true,
            "description": "The name of the check."
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the result or job."
          },
          "check_server": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckServer"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "UnifiedResultList": {
        "type": "object",
        "properties": {
          "pagination": {
            "type": "object",
            "description": "Pagination metadata.",
            "example": {
              "page": 1,
              "page_size": 20,
              "total_pages": 5,
              "total_items": 100
            },
            "additionalProperties": {}
          },
          "results": {
            "type": "array",
            "description": "List of check results (both regular and on-demand).",
            "items": {
              "$ref": "#/components/schemas/UnifiedResult"
            }
          }
        },
        "additionalProperties": false
      },
      "RegionResponseTimeMetrics": {
        "type": "object",
        "properties": {},
        "additionalProperties": true
      },
      "RegionStatusHistory": {
        "type": "object",
        "properties": {},
        "additionalProperties": true
      },
      "LoginOptions": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "description": "Email address to check authentication options for",
            "example": "user@example.com"
          }
        },
        "required": [
          "email"
        ],
        "additionalProperties": false
      },
      "LoginOptionsResponse": {
        "type": "object",
        "properties": {
          "preferred": {
            "type": "string",
            "readOnly": true,
            "description": "Preferred authentication method",
            "example": "password"
          },
          "methods": {
            "type": "array",
            "readOnly": true,
            "description": "Available authentication methods for this email",
            "example": [
              "password",
              "passkey"
            ],
            "items": {
              "type": "string"
            }
          },
          "requires_2fa": {
            "type": "boolean",
            "readOnly": true,
            "description": "Whether 2FA is required for this user",
            "example": false
          }
        },
        "additionalProperties": false
      },
      "EnhancedLogin": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "description": "User's email address",
            "example": "user@example.com"
          },
          "method": {
            "type": "string",
            "default": "password",
            "enum": [
              "password",
              "passkey",
              "oauth_google",
              "oauth_github",
              "oauth_microsoft"
            ],
            "description": "Authentication method to use",
            "example": "password"
          },
          "password": {
            "type": "string",
            "description": "Password (required when method is 'password')",
            "example": "securepassword123",
            "nullable": true
          }
        },
        "required": [
          "email"
        ],
        "additionalProperties": false
      },
      "LoginResponse": {
        "type": "object",
        "properties": {
          "user": {
            "readOnly": true,
            "description": "User information",
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          },
          "access_token": {
            "type": "string",
            "readOnly": true,
            "description": "JWT access token for authenticated requests",
            "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
          },
          "refresh_token": {
            "type": "string",
            "readOnly": true,
            "description": "Refresh token for obtaining new access tokens",
            "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
          },
          "auth_method": {
            "type": "string",
            "readOnly": true,
            "description": "Authentication method used",
            "example": "password"
          }
        },
        "additionalProperties": false
      },
      "AuthSetupStatus": {
        "type": "object",
        "properties": {
          "has_password": {
            "type": "boolean",
            "readOnly": true,
            "description": "Whether user has a password set",
            "example": true
          },
          "setup_complete": {
            "type": "boolean",
            "readOnly": true,
            "description": "Whether authentication setup is complete",
            "example": true
          },
          "oauth_providers": {
            "type": "array",
            "readOnly": true,
            "description": "Connected OAuth providers",
            "example": [
              "google",
              "github"
            ],
            "items": {
              "type": "string"
            }
          },
          "passkey_count": {
            "type": "integer",
            "readOnly": true,
            "description": "Number of registered passkeys",
            "example": 2
          },
          "two_factor_enabled": {
            "type": "boolean",
            "readOnly": true,
            "description": "Whether 2FA is enabled",
            "example": false
          }
        },
        "additionalProperties": false
      },
      "AuthRecommendations": {
        "type": "object",
        "properties": {
          "recommendations": {
            "type": "array",
            "readOnly": true,
            "description": "List of authentication setup recommendations",
            "example": [
              {
                "type": "enable_2fa",
                "message": "Enable two-factor authentication for better security"
              }
            ],
            "items": {
              "type": "object",
              "additionalProperties": {}
            }
          }
        },
        "additionalProperties": false
      },
      "AuthPreferences": {
        "type": "object",
        "properties": {
          "preferred_auth_method": {
            "type": "string",
            "enum": [
              "password",
              "passkey",
              "oauth_google",
              "oauth_github",
              "oauth_microsoft",
              null
            ],
            "description": "Preferred authentication method",
            "example": "password",
            "nullable": true
          },
          "passkey_only": {
            "type": "boolean",
            "description": "Whether to allow only passkey authentication",
            "example": false
          },
          "require_2fa": {
            "type": "boolean",
            "description": "Whether to require 2FA for this user",
            "example": false
          }
        },
        "additionalProperties": false
      },
      "AuthPreferences1": {
        "type": "object",
        "properties": {
          "preferred_auth_method": {
            "type": "string",
            "enum": [
              "password",
              "passkey",
              "oauth_google",
              "oauth_github",
              "oauth_microsoft",
              null
            ],
            "description": "Preferred authentication method",
            "example": "password",
            "nullable": true
          },
          "passkey_only": {
            "type": "boolean",
            "description": "Whether to allow only passkey authentication",
            "example": false
          },
          "require_2fa": {
            "type": "boolean",
            "description": "Whether to require 2FA for this user",
            "example": false
          }
        },
        "additionalProperties": false
      },
      "RegistrationOptionsResponse": {
        "type": "object",
        "properties": {
          "challenge_id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique challenge ID for this registration attempt. Must be sent back in the completion step."
          },
          "options": {
            "type": "object",
            "readOnly": true,
            "description": "The W3C standard PublicKeyCredentialCreationOptions to be passed to navigator.credentials.create().",
            "additionalProperties": {}
          }
        },
        "additionalProperties": false
      },
      "RegistrationComplete": {
        "type": "object",
        "properties": {
          "challenge_id": {
            "type": "string",
            "description": "The server-generated challenge ID from the registration initiation step.",
            "example": "challenge-123-456"
          },
          "device_name": {
            "type": "string",
            "default": "Unnamed Device",
            "description": "An optional, user-friendly name for the new passkey.",
            "example": "iPhone 15 Pro"
          },
          "credential": {
            "type": "object",
            "description": "The raw WebAuthn credential object generated by the browser/authenticator.",
            "additionalProperties": {}
          }
        },
        "required": [
          "challenge_id",
          "credential"
        ],
        "additionalProperties": false
      },
      "Credential": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the credential was registered.",
            "example": "2025-08-02T11:30:45+00:00"
          },
          "device_name": {
            "type": "string",
            "readOnly": true,
            "description": "The user-provided name for the device or passkey.",
            "example": "My MacBook Pro"
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the credential.",
            "example": "cred_2Xy...Z1a"
          }
        },
        "additionalProperties": false
      },
      "RegistrationCompleteResponse": {
        "type": "object",
        "properties": {
          "credential": {
            "readOnly": true,
            "description": "Information about the newly created credential.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Credential"
              }
            ]
          },
          "success": {
            "type": "boolean",
            "readOnly": true,
            "description": "Indicates if the registration was successful."
          }
        },
        "additionalProperties": false
      },
      "AuthBeginRequest": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string",
            "description": "Optional user ID to hint which user is trying to authenticate. Enables usernameless login if omitted.",
            "example": "user_2Xy...Z1a",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AuthenticationOptionsResponse": {
        "type": "object",
        "properties": {
          "challenge_id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique challenge ID for this authentication attempt. Must be sent back in the completion step."
          },
          "options": {
            "type": "object",
            "readOnly": true,
            "description": "The W3C standard PublicKeyCredentialRequestOptions to be passed to navigator.credentials.get().",
            "additionalProperties": {}
          }
        },
        "additionalProperties": false
      },
      "AuthenticationComplete": {
        "type": "object",
        "properties": {
          "challenge_id": {
            "type": "string",
            "description": "The server-generated challenge ID from the authentication initiation step.",
            "example": "challenge-789-012"
          },
          "credential": {
            "type": "object",
            "description": "The raw WebAuthn credential assertion generated by the browser/authenticator.",
            "additionalProperties": {}
          }
        },
        "required": [
          "challenge_id",
          "credential"
        ],
        "additionalProperties": false
      },
      "AuthenticationCompleteResponse": {
        "type": "object",
        "properties": {
          "user": {
            "readOnly": true,
            "description": "Information about the authenticated user.",
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          },
          "access_token": {
            "type": "string",
            "readOnly": true,
            "description": "A JWT access token for authenticating subsequent requests."
          },
          "auth_method": {
            "type": "string",
            "readOnly": true,
            "description": "The authentication method used.",
            "example": "passkey"
          },
          "refresh_token": {
            "type": "string",
            "readOnly": true,
            "description": "A JWT refresh token for generating new access tokens."
          },
          "is_first_login": {
            "type": "boolean",
            "readOnly": true,
            "description": "Indicates if this is the user's first successful authentication."
          }
        },
        "additionalProperties": false
      },
      "CredentialsListResponse": {
        "type": "object",
        "properties": {
          "credentials": {
            "type": "array",
            "readOnly": true,
            "description": "A list of the user's registered passkey credentials.",
            "items": {
              "$ref": "#/components/schemas/Credential"
            }
          }
        },
        "additionalProperties": false
      },
      "MessageResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "readOnly": true,
            "description": "A success, error, or status message."
          }
        },
        "additionalProperties": false
      },
      "CredentialUpdate": {
        "type": "object",
        "properties": {
          "device_name": {
            "type": "string",
            "description": "The new user-friendly name for the passkey.",
            "example": "Work Laptop"
          }
        },
        "required": [
          "device_name"
        ],
        "additionalProperties": false
      },
      "CheckGroup1": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the group was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "position": {
            "type": "integer",
            "minimum": 0,
            "description": "Position for ordering groups (0 = first).",
            "example": 0
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the group was last updated in ISO format.",
            "example": "2024-01-15T14:00:00Z"
          },
          "color": {
            "type": "string",
            "pattern": "^#[0-9A-Fa-f]{6}$",
            "description": "Hex color code for the group (e.g., #4F46E5).",
            "example": "#4F46E5"
          },
          "description": {
            "type": "string",
            "maxLength": 500,
            "description": "Optional description for the check group. Max 500 characters.",
            "example": "Critical production services monitoring"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "A user-friendly name for the check group. Max 100 characters.",
            "example": "Production Services"
          },
          "checks_count": {
            "readOnly": true,
            "description": "Number of checks in this group.",
            "example": 5
          },
          "active": {
            "type": "boolean",
            "description": "Whether the check group is active.",
            "example": true
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the check group.",
            "example": "grp123abc456"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "CheckGroupList": {
        "type": "object",
        "properties": {
          "pagination": {
            "type": "object",
            "description": "Pagination information for the groups.",
            "example": {
              "page": 1,
              "page_size": 20,
              "total_pages": 1,
              "total_items": 5
            },
            "additionalProperties": {}
          },
          "groups": {
            "type": "array",
            "description": "List of check groups for the organization.",
            "items": {
              "$ref": "#/components/schemas/CheckGroup1"
            }
          }
        },
        "additionalProperties": false
      },
      "CheckGroup2": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the group was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "position": {
            "type": "integer",
            "minimum": 0,
            "description": "Position for ordering groups (0 = first).",
            "example": 0
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the group was last updated in ISO format.",
            "example": "2024-01-15T14:00:00Z"
          },
          "color": {
            "type": "string",
            "pattern": "^#[0-9A-Fa-f]{6}$",
            "description": "Hex color code for the group (e.g., #4F46E5).",
            "example": "#4F46E5"
          },
          "description": {
            "type": "string",
            "maxLength": 500,
            "description": "Optional description for the check group. Max 500 characters.",
            "example": "Critical production services monitoring"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "A user-friendly name for the check group. Max 100 characters.",
            "example": "Production Services"
          },
          "checks_count": {
            "readOnly": true,
            "description": "Number of checks in this group.",
            "example": 5
          },
          "active": {
            "type": "boolean",
            "description": "Whether the check group is active.",
            "example": true
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the check group.",
            "example": "grp123abc456"
          }
        },
        "additionalProperties": false
      },
      "Generated": {
        "type": "object",
        "properties": {
          "group_id": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Generated1": {
        "type": "object",
        "properties": {
          "group_id": {
            "type": "string",
            "nullable": true
          },
          "check_id": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "SecretListItem": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the secret was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "secret_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "A unique name for the secret within the organization. Max 100 characters.",
            "example": "DATABASE_PASSWORD"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the secret was last updated in ISO format.",
            "example": "2024-01-15T14:00:00Z"
          },
          "created_by": {
            "type": "string",
            "readOnly": true,
            "description": "The ID of the user who created the secret.",
            "example": "usr123def456"
          },
          "updated_by": {
            "type": "string",
            "readOnly": true,
            "description": "The ID of the user who last updated the secret.",
            "example": "usr789ghi012"
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the secret.",
            "example": "sec123abc456"
          },
          "secret_value": {
            "type": "string",
            "writeOnly": true,
            "description": "The secret value - not included in list responses for security."
          }
        },
        "required": [
          "secret_name"
        ],
        "additionalProperties": false
      },
      "SecretList": {
        "type": "object",
        "properties": {
          "pagination": {
            "type": "object",
            "description": "Pagination information for the secrets.",
            "example": {
              "page": 1,
              "page_size": 20,
              "total_pages": 1,
              "total_items": 5
            },
            "additionalProperties": {}
          },
          "secrets": {
            "type": "array",
            "description": "List of secrets for the organization.",
            "items": {
              "$ref": "#/components/schemas/SecretListItem"
            }
          }
        },
        "additionalProperties": false
      },
      "Secret1": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the secret was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "secret_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "A unique name for the secret within the organization. Max 100 characters.",
            "example": "DATABASE_PASSWORD"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the secret was last updated in ISO format.",
            "example": "2024-01-15T14:00:00Z"
          },
          "created_by": {
            "type": "string",
            "readOnly": true,
            "description": "The ID of the user who created the secret.",
            "example": "usr123def456"
          },
          "updated_by": {
            "type": "string",
            "readOnly": true,
            "description": "The ID of the user who last updated the secret.",
            "example": "usr789ghi012"
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the secret.",
            "example": "sec123abc456"
          },
          "secret_value": {
            "type": "string",
            "description": "The secret value. This will be encrypted in storage but returned in API responses.",
            "example": "my-secret-password-123"
          }
        },
        "required": [
          "secret_name",
          "secret_value"
        ],
        "additionalProperties": false
      },
      "Secret2": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the secret was created in ISO format.",
            "example": "2024-01-15T10:00:00Z"
          },
          "secret_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "A unique name for the secret within the organization. Max 100 characters.",
            "example": "DATABASE_PASSWORD"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the secret was last updated in ISO format.",
            "example": "2024-01-15T14:00:00Z"
          },
          "created_by": {
            "type": "string",
            "readOnly": true,
            "description": "The ID of the user who created the secret.",
            "example": "usr123def456"
          },
          "updated_by": {
            "type": "string",
            "readOnly": true,
            "description": "The ID of the user who last updated the secret.",
            "example": "usr789ghi012"
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier for the secret.",
            "example": "sec123abc456"
          },
          "secret_value": {
            "type": "string",
            "description": "The secret value. This will be encrypted in storage but returned in API responses.",
            "example": "my-secret-password-123"
          }
        },
        "additionalProperties": false
      },
      "ExecutionGroupStatistics": {
        "type": "object",
        "properties": {
          "failed_executions": {
            "type": "integer",
            "description": "Number of failed executions",
            "example": 1
          },
          "max_response_time": {
            "type": "integer",
            "description": "Slowest response time across regions in milliseconds",
            "example": 230,
            "nullable": true
          },
          "min_response_time": {
            "type": "integer",
            "description": "Fastest response time across regions in milliseconds",
            "example": 120,
            "nullable": true
          },
          "completed_executions": {
            "type": "integer",
            "description": "Number of completed executions",
            "example": 3
          },
          "avg_response_time": {
            "type": "integer",
            "description": "Average response time across all regions in milliseconds",
            "example": 175,
            "nullable": true
          },
          "total_executions": {
            "type": "integer",
            "description": "Total number of regional executions expected",
            "example": 3
          }
        }
      },
      "ExecutionGroup": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "When the execution group was created",
            "example": "2024-01-15T10:00:00Z"
          },
          "execution_mode": {
            "type": "string",
            "description": "Execution mode used",
            "example": "all",
            "enum": [
              "all",
              "random_n"
            ]
          },
          "statistics": {
            "description": "Aggregated statistics for this execution group",
            "allOf": [
              {
                "$ref": "#/components/schemas/ExecutionGroupStatistics"
              }
            ]
          },
          "regional_summary": {
            "type": "object",
            "description": "Summary of results by region",
            "example": {
              "US, East coast": {
                "status": "ok",
                "response_time": 150
              },
              "EU, West": {
                "status": "failed",
                "error_message": "Connection timeout"
              }
            },
            "additionalProperties": {}
          },
          "organization_id": {
            "type": "string",
            "description": "ID of the organization that owns this execution",
            "example": "org123xyz789"
          },
          "started_at": {
            "type": "string",
            "format": "date-time",
            "description": "When the execution started",
            "example": "2024-01-15T10:00:01Z",
            "nullable": true
          },
          "check_id": {
            "type": "string",
            "description": "ID of the check (null for on-demand custom checks)",
            "example": "chk123def456",
            "nullable": true
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "Unique identifier for the execution group",
            "example": "grp123abc456"
          },
          "status": {
            "type": "string",
            "description": "Overall status of the execution group",
            "example": "completed",
            "enum": [
              "pending",
              "running",
              "completed",
              "partial",
              "failed"
            ]
          },
          "completed_at": {
            "type": "string",
            "format": "date-time",
            "description": "When the execution completed",
            "example": "2024-01-15T10:00:05Z",
            "nullable": true
          },
          "requested_regions": {
            "type": "array",
            "description": "List of regions where execution was requested",
            "example": [
              "US, East coast",
              "EU, West",
              "RU, Moscow"
            ],
            "items": {
              "type": "string"
            }
          },
          "timeout_at": {
            "type": "string",
            "format": "date-time",
            "description": "When to give up waiting for results",
            "example": "2024-01-15T10:05:00Z",
            "nullable": true
          },
          "execution_type": {
            "type": "string",
            "description": "Type of execution",
            "example": "scheduled",
            "enum": [
              "scheduled",
              "on_demand"
            ]
          },
          "triggered_by_user_id": {
            "type": "string",
            "description": "ID of user who triggered the execution (null for scheduled)",
            "example": "usr123abc456",
            "nullable": true
          }
        }
      },
      "RegionalResultSummary": {
        "type": "object",
        "properties": {
          "result_id": {
            "type": "string",
            "description": "Unique identifier of the check result",
            "example": "res123abc456"
          },
          "region": {
            "type": "string",
            "description": "Region where this check was executed",
            "example": "US, East coast"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp when this regional result was created",
            "example": "2024-01-15T10:00:05Z"
          },
          "error_message": {
            "type": "string",
            "description": "Error message if the check failed",
            "example": "Connection timeout",
            "nullable": true
          },
          "response_time": {
            "type": "integer",
            "description": "Response time in milliseconds (null if check failed)",
            "example": 150,
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "Status of the check in this region",
            "example": "ok",
            "enum": [
              "ok",
              "failed",
              "degraded",
              "timeout",
              "pending"
            ]
          }
        }
      },
      "RegionalResultsList": {
        "type": "object",
        "properties": {
          "regional_results": {
            "type": "array",
            "description": "List of results from each region",
            "items": {
              "$ref": "#/components/schemas/RegionalResultSummary"
            }
          },
          "execution_group_id": {
            "type": "string",
            "description": "ID of the execution group",
            "example": "grp123abc456"
          },
          "statistics": {
            "description": "Aggregated statistics",
            "allOf": [
              {
                "$ref": "#/components/schemas/ExecutionGroupStatistics"
              }
            ]
          }
        }
      },
      "ExecutionGroupList": {
        "type": "object",
        "properties": {
          "pagination": {
            "type": "object",
            "description": "Pagination information",
            "example": {
              "page": 1,
              "page_size": 20,
              "total_pages": 3,
              "total_items": 45
            },
            "additionalProperties": {}
          },
          "execution_groups": {
            "type": "array",
            "description": "List of execution groups",
            "items": {
              "$ref": "#/components/schemas/ExecutionGroup"
            }
          }
        }
      },
      "OAuthProvider": {
        "type": "object",
        "properties": {
          "display_name": {
            "type": "string",
            "readOnly": true,
            "description": "Human-readable provider name",
            "example": "Yandex.ID"
          },
          "is_active": {
            "type": "boolean",
            "readOnly": true,
            "description": "Whether this provider is currently available",
            "example": true
          },
          "name": {
            "type": "string",
            "readOnly": true,
            "description": "Provider identifier",
            "example": "yandex"
          },
          "icon_url": {
            "type": "string",
            "format": "url",
            "readOnly": true,
            "description": "URL to provider icon/logo for UI",
            "example": "https://yastatic.net/s3/passport-static/autofill/v2/svg/ya-logo.svg",
            "nullable": true
          },
          "authorization_url": {
            "type": "string",
            "format": "url",
            "readOnly": true,
            "description": "OAuth authorization endpoint",
            "example": "https://oauth.yandex.ru/authorize"
          }
        },
        "additionalProperties": false
      },
      "OAuthProvidersResponse": {
        "type": "object",
        "properties": {
          "providers": {
            "type": "array",
            "readOnly": true,
            "description": "List of available OAuth providers",
            "items": {
              "$ref": "#/components/schemas/OAuthProvider"
            }
          }
        },
        "additionalProperties": false
      },
      "OAuthAuthorizeResponse": {
        "type": "object",
        "properties": {
          "authorization_url": {
            "type": "string",
            "format": "url",
            "readOnly": true,
            "description": "URL to redirect user to for OAuth authorization",
            "example": "https://oauth.yandex.ru/authorize?client_id=...&state=..."
          },
          "state": {
            "type": "string",
            "readOnly": true,
            "description": "OAuth state parameter for CSRF protection",
            "example": "abc123def456"
          }
        },
        "additionalProperties": false
      },
      "OAuthLoginResponse": {
        "type": "object",
        "properties": {
          "user": {
            "readOnly": true,
            "description": "User information",
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          },
          "access_token": {
            "type": "string",
            "readOnly": true,
            "description": "JWT access token for authenticated requests",
            "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
          },
          "auth_method": {
            "type": "string",
            "readOnly": true,
            "description": "Authentication method used",
            "example": "oauth_yandex"
          },
          "linked_account": {
            "type": "boolean",
            "readOnly": true,
            "description": "Whether OAuth account was linked to existing user",
            "example": true
          },
          "refresh_token": {
            "type": "string",
            "readOnly": true,
            "description": "Refresh token for obtaining new access tokens",
            "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
          },
          "is_new_user": {
            "type": "boolean",
            "readOnly": true,
            "description": "Whether this was a new user registration",
            "example": false
          }
        },
        "additionalProperties": false
      },
      "LinkedOAuthAccount": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "When the OAuth account was linked",
            "example": "2023-08-02T11:30:45+00:00"
          },
          "provider": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/OAuthProvider"
              }
            ]
          },
          "provider_name": {
            "type": "string",
            "readOnly": true,
            "description": "Display name from OAuth provider",
            "example": "John Doe"
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "OAuth account link ID",
            "example": "oauth_acc123"
          },
          "last_used_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "When this OAuth account was last used for login",
            "example": "2023-08-02T11:30:45+00:00",
            "nullable": true
          },
          "provider_avatar_url": {
            "type": "string",
            "format": "url",
            "readOnly": true,
            "description": "Avatar URL from OAuth provider",
            "example": "https://avatars.yandex.net/get-yapic/123/456/islands-200",
            "nullable": true
          },
          "provider_email": {
            "type": "string",
            "format": "email",
            "readOnly": true,
            "description": "Email address from OAuth provider",
            "example": "user@yandex.ru"
          }
        },
        "additionalProperties": false
      },
      "LinkedOAuthAccountsResponse": {
        "type": "object",
        "properties": {
          "accounts": {
            "type": "array",
            "readOnly": true,
            "description": "List of linked OAuth accounts",
            "items": {
              "$ref": "#/components/schemas/LinkedOAuthAccount"
            }
          }
        },
        "additionalProperties": false
      },
      "OAuthUnlinkResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "readOnly": true,
            "description": "Human-readable result message",
            "example": "Yandex account successfully unlinked"
          },
          "success": {
            "type": "boolean",
            "readOnly": true,
            "description": "Whether the account was successfully unlinked",
            "example": true
          }
        },
        "additionalProperties": false
      },
      "PasswordVerification": {
        "type": "object",
        "properties": {
          "password": {
            "type": "string",
            "description": "The password to verify",
            "example": "securepassword123"
          }
        },
        "required": [
          "password"
        ],
        "additionalProperties": false
      },
      "PasswordVerificationResponse": {
        "type": "object",
        "properties": {
          "password_name": {
            "type": "string",
            "description": "Name of the matched password (if available)",
            "example": "VIP Access",
            "nullable": true
          },
          "expires_in": {
            "type": "integer",
            "description": "Token expiration time in seconds",
            "example": 3600
          },
          "access_token": {
            "type": "string",
            "description": "JWT access token for the page",
            "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
          },
          "token_type": {
            "type": "string",
            "description": "Type of the token",
            "example": "Bearer"
          }
        },
        "additionalProperties": false
      },
      "PasswordHint": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the password (if available)",
            "example": "VIP Access",
            "nullable": true
          },
          "hint": {
            "type": "string",
            "description": "The password hint",
            "example": "Use the company founding year"
          }
        },
        "additionalProperties": false
      },
      "PasswordHintsResponse": {
        "type": "object",
        "properties": {
          "hints": {
            "type": "array",
            "description": "List of available password hints",
            "items": {
              "$ref": "#/components/schemas/PasswordHint"
            }
          }
        },
        "additionalProperties": false
      },
      "PagePassword": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Timestamp when the password was created",
            "example": "2024-01-15T10:00:00Z"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Timestamp when the password was last updated",
            "example": "2024-01-15T14:00:00Z"
          },
          "created_by": {
            "type": "string",
            "readOnly": true,
            "description": "ID of the user who created this password",
            "example": "user_abc123def456"
          },
          "password_hint": {
            "type": "string",
            "maxLength": 200,
            "description": "Optional hint for the password",
            "example": "Use the company founding year",
            "nullable": true
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "description": "Optional expiration date for the password. Accepts ISO format, partial dates (YYYY-MM-DD), or flexible date strings",
            "example": "2024-12-31",
            "nullable": true
          },
          "name": {
            "type": "string",
            "maxLength": 100,
            "description": "Optional name/label for the password",
            "example": "VIP Access",
            "nullable": true
          },
          "is_expired": {
            "type": "boolean",
            "readOnly": true,
            "description": "Whether the password is expired",
            "example": false
          },
          "password": {
            "type": "string",
            "writeOnly": true,
            "minLength": 8,
            "description": "The password (minimum 8 characters). Only used for input, never returned.",
            "example": "securepassword123"
          },
          "active": {
            "type": "boolean",
            "description": "Whether the password is active",
            "example": true
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "Unique identifier for the page password",
            "example": "pwd_abc123def456"
          }
        },
        "required": [
          "password"
        ],
        "additionalProperties": false
      },
      "PagePasswordCreate": {
        "type": "object",
        "properties": {
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "description": "Optional expiration date for the password. Accepts ISO format, partial dates (YYYY-MM-DD), or flexible date strings",
            "example": "2024-12-31",
            "nullable": true
          },
          "name": {
            "type": "string",
            "maxLength": 100,
            "description": "Optional name/label for the password",
            "example": "VIP Access",
            "nullable": true
          },
          "password": {
            "type": "string",
            "writeOnly": true,
            "minLength": 8,
            "description": "The password (minimum 8 characters). Only used for input, never returned.",
            "example": "securepassword123"
          },
          "password_hint": {
            "type": "string",
            "maxLength": 200,
            "description": "Optional hint for the password",
            "example": "Use the company founding year",
            "nullable": true
          }
        },
        "required": [
          "password"
        ],
        "additionalProperties": false
      },
      "PagePasswordUpdate": {
        "type": "object",
        "properties": {
          "password_hint": {
            "type": "string",
            "maxLength": 200,
            "description": "Optional hint for the password",
            "example": "Use the company founding year",
            "nullable": true
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "description": "Optional expiration date for the password. Accepts ISO format, partial dates (YYYY-MM-DD), or flexible date strings",
            "example": "2024-12-31",
            "nullable": true
          },
          "name": {
            "type": "string",
            "maxLength": 100,
            "description": "Optional name/label for the password",
            "example": "VIP Access",
            "nullable": true
          },
          "password": {
            "type": "string",
            "writeOnly": true,
            "minLength": 8,
            "description": "The password (minimum 8 characters). Only used for input, never returned.",
            "example": "newsecurepassword123"
          },
          "active": {
            "type": "boolean",
            "description": "Whether the password is active",
            "example": true
          }
        },
        "additionalProperties": false
      },
      "ReportRequest": {
        "type": "object",
        "properties": {
          "start_date": {
            "type": "string",
            "format": "date-time",
            "description": "Start date for the report period (ISO 8601 format).",
            "example": "2026-02-01T00:00:00"
          },
          "end_date": {
            "type": "string",
            "format": "date-time",
            "description": "End date for the report period (ISO 8601 format).",
            "example": "2026-03-01T00:00:00"
          },
          "check_ids": {
            "type": "array",
            "default": null,
            "description": "List of check IDs to include in the report. If omitted or null, all active checks in the organization will be included.",
            "example": [
              "abc123def456",
              "xyz789ghi012"
            ],
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "required": [
          "end_date",
          "start_date"
        ],
        "additionalProperties": false
      },
      "ReportResponse": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Timestamp when the report was requested.",
            "example": "2026-03-01T10:30:00"
          },
          "error_message": {
            "type": "string",
            "readOnly": true,
            "description": "Error message if report generation failed.",
            "example": null,
            "nullable": true
          },
          "end_date": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "End date of the report period.",
            "example": "2026-03-01T00:00:00"
          },
          "check_ids": {
            "type": "array",
            "readOnly": true,
            "description": "List of check IDs included in the report. Null means all active checks.",
            "example": [
              "abc123def456"
            ],
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "completed_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Timestamp when the report generation completed.",
            "example": "2026-03-01T10:31:15",
            "nullable": true
          },
          "status": {
            "type": "string",
            "readOnly": true,
            "description": "Report generation status: pending, generating, completed, or failed.",
            "example": "completed"
          },
          "download_url": {
            "type": "string",
            "readOnly": true,
            "description": "Presigned URL to download the PDF report. Only available when status is 'completed'. Expires after 1 hour.",
            "example": "https://storage.example.com/reports/rpt123.pdf?signature=...",
            "nullable": true
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "The unique identifier of the report.",
            "example": "rpt123abc456"
          },
          "start_date": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Start date of the report period.",
            "example": "2026-02-01T00:00:00"
          }
        },
        "additionalProperties": false
      },
      "ReportList": {
        "type": "object",
        "properties": {
          "pagination": {
            "type": "object",
            "description": "Pagination information.",
            "example": {
              "page": 1,
              "page_size": 20,
              "total": 5
            },
            "additionalProperties": {}
          },
          "reports": {
            "type": "array",
            "description": "List of reports.",
            "items": {
              "$ref": "#/components/schemas/ReportResponse"
            }
          }
        },
        "additionalProperties": false
      }
    },
    "responses": {
      "UNPROCESSABLE_ENTITY": {
        "description": "Unprocessable Entity",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "DEFAULT_ERROR": {
        "description": "Default error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      }
    }
  },
  "paths": {
    "/v1/register": {
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "201": {
            "description": "User registered successfully. Email verification sent.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Validation error - Invalid request data"
          },
          "409": {
            "description": "Conflict - Email already registered"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User"
              }
            }
          },
          "description": "User registration data including email, password, and optional personal details"
        },
        "tags": [
          "Users"
        ],
        "summary": "Register a new user",
        "description": "Register a new user account and automatically create an organization with a free plan subscription. Sends email verification and team notification."
      }
    },
    "/v1/login": {
      "post": {
        "responses": {
          "422": {
            "description": "Validation error"
          },
          "200": {
            "description": "Login successful. Returns access token, refresh token, and user data.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "access_token": {
                      "type": "string",
                      "description": "JWT access token"
                    },
                    "refresh_token": {
                      "type": "string",
                      "description": "JWT refresh token"
                    },
                    "user": {
                      "$ref": "#/components/schemas/User"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Invalid credentials"
          },
          "403": {
            "description": "Forbidden - Email not verified"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Login"
              }
            }
          },
          "description": "User login credentials"
        },
        "tags": [
          "Users"
        ],
        "summary": "User login",
        "description": "Authenticate user credentials and return access and refresh tokens. Requires email verification."
      }
    },
    "/v1/users": {
      "get": {
        "responses": {
          "200": {
            "description": "Users retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/User"
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Users"
        ],
        "summary": "Get all users",
        "description": "Get all users in the current organization. Requires authentication.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/users/{user_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "User details retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - User not in same organization"
          },
          "404": {
            "description": "User not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Users"
        ],
        "summary": "Get user details",
        "description": "Retrieve details of a specific user within the same organization",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the user to retrieve.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "user_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "put": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "User updated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Validation error - Invalid role or data"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Admin access required"
          },
          "404": {
            "description": "User not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User1"
              }
            }
          },
          "description": "User data to update (partial updates supported)"
        },
        "tags": [
          "Users"
        ],
        "summary": "Update user",
        "description": "Update user details including role assignment. Requires admin privileges.",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the user to update.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "patch": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "User updated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Validation error - Invalid role or data"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Admin access required"
          },
          "404": {
            "description": "User not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User1"
              }
            }
          },
          "description": "User data to update (partial updates supported)"
        },
        "tags": [
          "Users"
        ],
        "summary": "Update user",
        "description": "Update user details including role assignment. Requires admin privileges.",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the user to update.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "delete": {
        "responses": {
          "204": {
            "description": "User deleted successfully"
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Admin access required"
          },
          "404": {
            "description": "User not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Users"
        ],
        "summary": "Delete user",
        "description": "Delete a user from the organization. This action is irreversible. Requires admin privileges.",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the user to delete.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/api-tokens": {
      "post": {
        "responses": {
          "422": {
            "description": "Validation error"
          },
          "201": {
            "description": "API token created successfully. Token value is only returned once.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIToken"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/APIToken"
              }
            }
          },
          "description": "API token creation data"
        },
        "tags": [
          "Users"
        ],
        "summary": "Create new API token",
        "description": "Create a new API token for the current user. The token will only be returned once during creation.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "get": {
        "responses": {
          "200": {
            "description": "API tokens retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/APIToken"
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Users"
        ],
        "summary": "List API tokens",
        "description": "List all API tokens for the current user. Token values are never returned in list operations.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/api-tokens/{token_id}": {
      "delete": {
        "responses": {
          "204": {
            "description": "API token deleted successfully"
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "404": {
            "description": "API token not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Users"
        ],
        "summary": "Delete API token",
        "description": "Delete an API token. This action is irreversible and will immediately invalidate the token.",
        "parameters": [
          {
            "name": "token_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the API token to delete.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "token_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/verify-email/{token}": {
      "get": {
        "responses": {
          "200": {
            "description": "Email verified successfully. Returns access and refresh tokens.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "access_token": {
                      "type": "string",
                      "description": "JWT access token"
                    },
                    "refresh_token": {
                      "type": "string",
                      "description": "JWT refresh token"
                    },
                    "user": {
                      "$ref": "#/components/schemas/User"
                    },
                    "message": {
                      "type": "string",
                      "description": "Success message"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Invalid or expired token"
          },
          "404": {
            "description": "Token not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Users"
        ],
        "summary": "Verify email address",
        "description": "Verify user email address using verification token. Returns authentication tokens upon successful verification.",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "description": "The email verification token sent to the user.",
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "token",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/users/change-password": {
      "post": {
        "responses": {
          "200": {
            "description": "Password changed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Success message"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Missing required fields"
          },
          "401": {
            "description": "Unauthorized - Current password incorrect"
          },
          "422": {
            "description": "Validation error"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Users"
        ],
        "summary": "Change user password",
        "description": "Change the current user password. Requires current password verification.",
        "requestBody": {
          "description": "Password change data",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "old_password": {
                    "type": "string",
                    "description": "Current password for verification"
                  },
                  "new_password": {
                    "type": "string",
                    "description": "New password to set",
                    "minLength": 6
                  }
                },
                "required": [
                  "old_password",
                  "new_password"
                ]
              }
            }
          },
          "required": true
        },
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/users/resend-verification": {
      "post": {
        "responses": {
          "200": {
            "description": "Verification email sent (if account exists and not verified).",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Generic success message for security"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Email already verified or missing fields"
          },
          "422": {
            "description": "Validation error"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Users"
        ],
        "summary": "Resend email verification",
        "description": "Resend email verification link to user. Generates new verification token with 24-hour expiry.",
        "requestBody": {
          "description": "Email address to resend verification to",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string",
                    "format": "email",
                    "description": "Email address to resend verification to"
                  }
                },
                "required": [
                  "email"
                ]
              }
            }
          },
          "required": true
        }
      }
    },
    "/v1/users/request-password-reset": {
      "post": {
        "responses": {
          "200": {
            "description": "Reset email sent (if account exists).",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Generic success message for security"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Missing email field"
          },
          "422": {
            "description": "Validation error"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Users"
        ],
        "summary": "Request password reset email",
        "description": "Request password reset email with reset token. Token expires in 24 hours.",
        "requestBody": {
          "description": "Email address to send reset link to",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string",
                    "format": "email",
                    "description": "Email address to send reset link to"
                  }
                },
                "required": [
                  "email"
                ]
              }
            }
          },
          "required": true
        }
      }
    },
    "/v1/users/reset-password": {
      "post": {
        "responses": {
          "200": {
            "description": "Password reset successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Success message"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Invalid or expired token"
          },
          "422": {
            "description": "Validation error"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Users"
        ],
        "summary": "Reset password using token",
        "description": "Reset password using reset token from email or invitation token. Supports both password reset and invitation acceptance.",
        "requestBody": {
          "description": "Password reset data",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string",
                    "description": "Reset token from email or invitation"
                  },
                  "new_password": {
                    "type": "string",
                    "description": "New password to set",
                    "minLength": 6
                  }
                },
                "required": [
                  "token",
                  "new_password"
                ]
              }
            }
          },
          "required": true
        }
      }
    },
    "/v1/users/roles": {
      "get": {
        "responses": {
          "200": {
            "description": "Available user roles retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "example": [
                    "admin",
                    "editor",
                    "viewer",
                    "billing"
                  ]
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Users"
        ],
        "summary": "Get available user roles",
        "description": "Get list of available user roles in the system"
      }
    },
    "/v1/refresh": {
      "post": {
        "responses": {
          "200": {
            "description": "Tokens refreshed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "access_token": {
                      "type": "string",
                      "description": "New JWT access token"
                    },
                    "refresh_token": {
                      "type": "string",
                      "description": "New JWT refresh token"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Invalid or expired refresh token"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Users"
        ],
        "summary": "Refresh access token",
        "description": "Refresh access token using refresh token from Authorization header",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "required": true,
            "description": "Bearer token with refresh token",
            "schema": {
              "type": "string",
              "example": "Bearer <refresh_token>"
            }
          }
        ]
      }
    },
    "/v1/users/profile": {
      "put": {
        "responses": {
          "422": {
            "description": "Validation error"
          },
          "200": {
            "description": "Profile updated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "first_name": {
                    "type": "string",
                    "description": "User first name",
                    "maxLength": 50
                  },
                  "last_name": {
                    "type": "string",
                    "description": "User last name",
                    "maxLength": 50
                  }
                }
              }
            }
          },
          "description": "Profile data to update"
        },
        "tags": [
          "Users"
        ],
        "summary": "Update user profile information",
        "description": "Update user profile information. Only first_name and last_name can be updated.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/users/onboarding": {
      "patch": {
        "responses": {
          "200": {
            "description": "Onboarding status updated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Validation error - Invalid onboarding step"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Users"
        ],
        "summary": "Update user onboarding status",
        "description": "Update user onboarding progress or mark as completed",
        "requestBody": {
          "description": "Onboarding status update",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "onboarding_completed": {
                    "type": "boolean",
                    "description": "Mark onboarding as completed"
                  },
                  "onboarding_step": {
                    "type": "string",
                    "description": "Current onboarding step",
                    "maxLength": 50
                  }
                }
              }
            }
          },
          "required": true
        },
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/users/{user_id}/resend-invitation": {
      "post": {
        "responses": {
          "200": {
            "description": "Invitation email sent successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Success message"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - User already active"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Admin access required"
          },
          "404": {
            "description": "User not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Users"
        ],
        "summary": "Resend invitation email for a user (admin only)",
        "description": "Resend invitation email for a user who was previously invited but has not yet activated their account. Requires admin privileges.",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the user to resend invitation to.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "user_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/users/invite": {
      "post": {
        "responses": {
          "200": {
            "description": "Invitation sent successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Success message"
                    }
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Invalid role"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Admin access required"
          },
          "409": {
            "description": "Conflict - User already exists"
          },
          "422": {
            "description": "Validation error"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Users"
        ],
        "summary": "Invite a new user",
        "description": "Invite a new user to the organization with specified role. Sends invitation email with 7-day expiry. Requires admin privileges.",
        "requestBody": {
          "description": "User invitation data",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string",
                    "format": "email",
                    "description": "Email address of user to invite"
                  },
                  "role": {
                    "type": "string",
                    "enum": [
                      "admin",
                      "editor",
                      "viewer",
                      "billing"
                    ],
                    "description": "Role to assign to invited user",
                    "default": "viewer"
                  }
                },
                "required": [
                  "email"
                ]
              }
            }
          },
          "required": true
        },
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/plans": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Plan"
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "tags": [
          "organizations"
        ],
        "summary": "Get available plans",
        "description": "Get list of available public plans"
      }
    },
    "/v1/organizations": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Organization"
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "tags": [
          "organizations"
        ],
        "summary": "Get user organization",
        "description": "Get user organization",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/organizations/{org_id}": {
      "get": {
        "responses": {
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "tags": [
          "organizations"
        ]
      },
      "put": {
        "responses": {
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "tags": [
          "organizations"
        ]
      },
      "patch": {
        "responses": {
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "tags": [
          "organizations"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "org_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/organizations/{org_id}/subscriptions": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PlanSubscription"
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "tags": [
          "organizations"
        ],
        "summary": "Get subscription history",
        "description": "Get organization subscription history",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "org_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/pages/get-templates": {
      "get": {
        "responses": {
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get available templates",
        "tags": [
          "Status pages"
        ],
        "description": "Get available templates with their preview URLs"
      }
    },
    "/v1/pages/by-domain/{domain}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get page by domain",
        "tags": [
          "Status pages"
        ],
        "description": "Get a page by its domain or subdomain"
      },
      "parameters": [
        {
          "in": "path",
          "name": "domain",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/pages": {
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "Status page created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Validation error, invalid subdomain, or invalid domain"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Plan limit exceeded for status pages, domains, CSS, or templates"
          },
          "500": {
            "description": "Internal Server Error - Database error occurred"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Page"
              }
            }
          }
        },
        "summary": "Create a new status page",
        "tags": [
          "Status pages"
        ],
        "description": "Create a new status page for the organization. This endpoint allows you to create a status page with custom branding, domain configuration, and notification settings. The page can be configured as public or private, and supports custom CSS styling and subscriber management.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "get": {
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number (starting from 1)",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "Number of items per page (1-100)",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            }
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "List of status pages retrieved successfully with pagination.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageList"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Invalid pagination parameters"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "500": {
            "description": "Internal Server Error - Database error occurred"
          }
        },
        "summary": "Get all status pages",
        "tags": [
          "Status pages"
        ],
        "description": "Retrieve all status pages for the authenticated organization with pagination support. Returns a paginated list of all status pages including their configuration, branding settings, and metadata. This endpoint provides complete information about each page including custom domains, CSS styling, and notification preferences.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/pages/{page_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "Status page retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required for private pages"
          },
          "403": {
            "description": "Forbidden - Access denied to this page"
          },
          "404": {
            "description": "Status page not found"
          },
          "500": {
            "description": "Internal Server Error - Database error occurred"
          }
        },
        "summary": "Get status page by ID",
        "tags": [
          "Status pages"
        ],
        "description": "Retrieve a specific status page by its unique identifier. Returns complete page configuration including branding, domain settings, CSS customization, and notification preferences.\n\n    **Security Details:**\n    * **Public Pages:** If a page is configured for public access (viewers_must_be_team_members=false), it can be accessed **without any authentication token**. In this case, providing a bearer token or API key is **optional** and is primarily used to identify the requesting user for analytics or to apply user-specific preferences (if applicable).\n    * **Private Pages:** For pages that are not public, authentication is **mandatory**. You must provide either a `bearerAuth` token (JWT) or an `Authorization: <API_TOKEN>` header. Access will be granted only if the authenticated user belongs to the same organization as the requested page.\n    ",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "put": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "Status page updated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Validation error, invalid domain, subdomain, timezone, or file format"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Access denied or plan limit exceeded"
          },
          "404": {
            "description": "Status page not found"
          },
          "500": {
            "description": "Internal Server Error - Database error occurred"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Page1"
              }
            }
          }
        },
        "summary": "Update status page",
        "tags": [
          "Status pages"
        ],
        "description": "Update a status page with new configuration settings. This endpoint supports both partial updates (PATCH) and full updates (PUT). You can update page branding, domain settings, CSS styling, notification preferences, and upload logo files. File uploads for logos should be sent as multipart/form-data, while other updates should be sent as JSON.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "patch": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "Status page updated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Validation error, invalid domain, subdomain, timezone, or file format"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Access denied or plan limit exceeded"
          },
          "404": {
            "description": "Status page not found"
          },
          "500": {
            "description": "Internal Server Error - Database error occurred"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Page1"
              }
            }
          }
        },
        "summary": "Update status page",
        "tags": [
          "Status pages"
        ],
        "description": "Update a status page with new configuration settings. This endpoint supports both partial updates (PATCH) and full updates (PUT). You can update page branding, domain settings, CSS styling, notification preferences, and upload logo files. File uploads for logos should be sent as multipart/form-data, while other updates should be sent as JSON.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "delete": {
        "responses": {
          "204": {
            "description": "Status page deleted successfully. No content returned."
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Access denied to this page"
          },
          "404": {
            "description": "Status page not found"
          },
          "500": {
            "description": "Internal Server Error - Database error occurred"
          }
        },
        "summary": "Delete status page",
        "tags": [
          "Status pages"
        ],
        "description": "Permanently delete a status page and all its associated data including components, incidents, subscribers, and historical data. This action cannot be undone. Only users from the same organization as the page can perform this operation.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/component-statuses": {
      "get": {
        "responses": {
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "200": {
            "description": "List of components successfully retrieved"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Get available components' statuses",
        "tags": [
          "Status pages - Components"
        ],
        "description": "Get statuses that components can have"
      }
    },
    "/v1/pages/{page_id}/components": {
      "get": {
        "responses": {
          "200": {
            "description": "List of components successfully retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Component"
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Access denied"
          },
          "404": {
            "description": "Page not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Status pages - Components"
        ],
        "summary": "Get page components",
        "description": "Get all components for a specific status page with optional filtering",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "201": {
            "description": "Component successfully created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Component"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Validation error"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Access denied"
          },
          "404": {
            "description": "Page not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Component"
              }
            }
          }
        },
        "tags": [
          "Status pages - Components"
        ],
        "summary": "Create component",
        "description": "Create a new component for a specific status page",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/pages/{page_id}/components/{component_id}": {
      "put": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "Component updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Component"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Validation error"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Access denied"
          },
          "404": {
            "description": "Component not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Component1"
              }
            }
          }
        },
        "tags": [
          "Status pages - Components"
        ],
        "summary": "Update component",
        "description": "Update a component with new configuration (PATCH for partial updates, PUT for full replacement)",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "patch": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "Component updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Component"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Validation error"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Access denied"
          },
          "404": {
            "description": "Component not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Component1"
              }
            }
          }
        },
        "tags": [
          "Status pages - Components"
        ],
        "summary": "Update component",
        "description": "Update a component with new configuration (PATCH for partial updates, PUT for full replacement)",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "component_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "delete": {
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "404": {
            "description": "Component not found"
          },
          "403": {
            "description": "Forbidden - Access denied"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "204": {
            "description": "Component deleted successfully"
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "tags": [
          "Status pages - Components"
        ],
        "summary": "Delete component",
        "description": "Delete a component permanently or mark it as deleted (soft delete for regular components, hard delete for groups)",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "get": {
        "responses": {
          "200": {
            "description": "Component successfully retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Component"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Access denied"
          },
          "404": {
            "description": "Component not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Status pages - Components"
        ],
        "summary": "Get component",
        "description": "Get a specific component by ID with detailed information",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/pages/{page_id}/component-groups": {
      "get": {
        "responses": {
          "200": {
            "description": "List of component groups successfully retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Component"
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Access denied"
          },
          "404": {
            "description": "Page not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Status pages - Components"
        ],
        "summary": "Get component groups",
        "description": "Get all component groups for a specific status page with optional filtering",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "201": {
            "description": "Component group created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Component"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Validation error"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Access denied"
          },
          "404": {
            "description": "Page not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Component"
              }
            }
          }
        },
        "tags": [
          "Status pages - Components"
        ],
        "summary": "Create component group",
        "description": "Create a new component group for organizing related components on a status page",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/pages/{page_id}/component-groups/{component_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "Component group successfully retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Component"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Access denied"
          },
          "404": {
            "description": "Component group not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Status pages - Components"
        ],
        "summary": "Get component group",
        "description": "Get a specific component group by ID with detailed information",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "component_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "put": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "Component group updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Component1"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Validation error"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Access denied"
          },
          "404": {
            "description": "Component group not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Component1"
              }
            }
          }
        },
        "tags": [
          "Status pages - Components"
        ],
        "summary": "Update component group",
        "description": "Update a component group with new configuration (PATCH for partial updates, PUT for full replacement)",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "patch": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "Component group updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Component1"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Validation error"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Access denied"
          },
          "404": {
            "description": "Component group not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Component1"
              }
            }
          }
        },
        "tags": [
          "Status pages - Components"
        ],
        "summary": "Update component group",
        "description": "Update a component group with new configuration (PATCH for partial updates, PUT for full replacement)",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "delete": {
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "404": {
            "description": "Component group not found"
          },
          "403": {
            "description": "Forbidden - Access denied"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "204": {
            "description": "Component group deleted successfully"
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "tags": [
          "Status pages - Components"
        ],
        "summary": "Delete component group",
        "description": "Delete a component group permanently and reset group membership for all components in the group",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/pages/{page_id}/components/uptime": {
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "200": {
            "description": "Uptime data successfully calculated"
          },
          "400": {
            "description": "Bad Request - Validation error"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Access denied"
          },
          "404": {
            "description": "Components not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComponentUptimeBulkRequest"
              }
            }
          }
        },
        "tags": [
          "Status pages - Components"
        ],
        "summary": "Get bulk component uptime",
        "description": "Get uptime data for multiple components in bulk with optional date range filtering",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/pages/{page_id}/components/{component_id}/uptime": {
      "get": {
        "responses": {
          "200": {
            "description": "Component uptime data successfully calculated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComponentUptime"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Access denied"
          },
          "404": {
            "description": "Component not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "tags": [
          "Status pages - Components"
        ],
        "summary": "Get component uptime",
        "description": "Get uptime data for a specific component with optional date range filtering",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "component_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/incident-statuses": {
      "get": {
        "responses": {
          "200": {
            "description": "List of available incident statuses"
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "tags": [
          "Status pages - Incidents"
        ]
      }
    },
    "/v1/incident-impacts": {
      "get": {
        "responses": {
          "200": {
            "description": "List of available incident impacts"
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "tags": [
          "Status pages - Incidents"
        ]
      }
    },
    "/v1/maintenance-statuses": {
      "get": {
        "responses": {
          "200": {
            "description": "List of available maintenance statuses"
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "tags": [
          "Status pages - Incidents"
        ]
      }
    },
    "/v1/pages/{page_id}/incidents/maintenance": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Incident"
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get maintenance windows for a specific status page",
        "tags": [
          "Status pages - Incidents"
        ],
        "description": "Get maintenance windows filtered by status. Defaults to scheduled maintenance.",
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "description": "The ID of the status page.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Filter by maintenance status. Can be: scheduled, in_progress, verifying, completed. Defaults to scheduled.",
            "schema": {
              "type": "string",
              "enum": [
                "scheduled",
                "in_progress",
                "verifying",
                "completed"
              ]
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/pages/{page_id}/incidents/unresolved": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Incident"
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get unresolved incidents for a specific status page",
        "tags": [
          "Status pages - Incidents"
        ],
        "description": "Get unresolved incidents for a specific status page (excludes maintenance windows)",
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "description": "The ID of the status page.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/pages/{page_id}/incidents": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Incident"
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get incidents for a specific status page",
        "tags": [
          "Status pages - Incidents"
        ],
        "description": "Get incidents for a specific status page (excludes maintenance windows)",
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "description": "The ID of the status page.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "component_id",
            "in": "query",
            "required": false,
            "description": "Filter incidents by component ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Incident"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IncidentCreate"
              }
            }
          }
        },
        "summary": "Create a new incident for a specific status page",
        "tags": [
          "Status pages - Incidents"
        ],
        "description": "Create a new incident for a specific status page",
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "description": "The ID of the status page.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/pages/{page_id}/incidents/{incident_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Incident"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get a specific incident by ID",
        "tags": [
          "Status pages - Incidents"
        ],
        "description": "Get a specific incident by ID",
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "description": "The ID of the status page.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "incident_id",
            "in": "path",
            "required": true,
            "description": "The ID of the incident.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "incident_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "put": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Incident"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IncidentUpdateSchemaEdit"
              }
            }
          }
        },
        "summary": "Update an incident by ID",
        "tags": [
          "Status pages - Incidents"
        ],
        "description": "Update an incident by ID",
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "description": "The ID of the status page.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "incident_id",
            "in": "path",
            "required": true,
            "description": "The ID of the incident.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "patch": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Incident"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IncidentUpdateSchemaEdit"
              }
            }
          }
        },
        "summary": "Update an incident by ID",
        "tags": [
          "Status pages - Incidents"
        ],
        "description": "Update an incident by ID",
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "description": "The ID of the status page.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "incident_id",
            "in": "path",
            "required": true,
            "description": "The ID of the incident.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "delete": {
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Delete an incident by ID",
        "tags": [
          "Status pages - Incidents"
        ],
        "description": "Delete an incident by ID",
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "description": "The ID of the status page.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "incident_id",
            "in": "path",
            "required": true,
            "description": "The ID of the incident.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/pages/{page_id}/incidents/log-past-incident": {
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Incident"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LogPastIncident"
              }
            }
          }
        },
        "summary": "Log an incident that has already occurred in the past with multiple updates",
        "tags": [
          "Status pages - Incidents"
        ],
        "description": "Log an incident that has already occurred in the past with multiple updates",
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "description": "The ID of the status page.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/pages/{page_id}/incidents/{incident_id}/incident_updates": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IncidentUpdate"
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get all updates for a specific incident",
        "tags": [
          "Status pages - Incidents"
        ],
        "description": "Get all updates for a specific incident",
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "description": "The ID of the status page.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "incident_id",
            "in": "path",
            "required": true,
            "description": "The ID of the incident.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "incident_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncidentUpdate"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IncidentUpdateCreate"
              }
            }
          }
        },
        "summary": "Create a new update for a specific incident",
        "tags": [
          "Status pages - Incidents"
        ],
        "description": "Create a new update for a specific incident",
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "description": "The ID of the status page.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "incident_id",
            "in": "path",
            "required": true,
            "description": "The ID of the incident.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/pages/{page_id}/incidents/{incident_id}/incident_updates/{incident_update_id}": {
      "put": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncidentUpdate"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IncidentUpdateEdit"
              }
            }
          }
        },
        "summary": "Update an incident update",
        "tags": [
          "Status pages - Incidents"
        ],
        "description": "Update an incident update",
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "description": "The ID of the status page.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "incident_id",
            "in": "path",
            "required": true,
            "description": "The ID of the incident.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "incident_update_id",
            "in": "path",
            "required": true,
            "description": "The ID of the incident update.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "patch": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncidentUpdate"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IncidentUpdateEdit"
              }
            }
          }
        },
        "summary": "Update an incident update",
        "tags": [
          "Status pages - Incidents"
        ],
        "description": "Update an incident update",
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "description": "The ID of the status page.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "incident_id",
            "in": "path",
            "required": true,
            "description": "The ID of the incident.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "incident_update_id",
            "in": "path",
            "required": true,
            "description": "The ID of the incident update.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "incident_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "incident_update_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/pages/{page_id}/incidents/{incident_id}/postmortem": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncidentPostmortem"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get the postmortem for a specific incident",
        "tags": [
          "Status pages - Incidents"
        ],
        "description": "Get the postmortem for a specific incident",
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "description": "The ID of the status page.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "incident_id",
            "in": "path",
            "required": true,
            "description": "The ID of the incident.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "incident_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "put": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncidentPostmortem"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IncidentPostmortem"
              }
            }
          }
        },
        "summary": "Create or update an incident postmortem",
        "tags": [
          "Status pages - Incidents"
        ],
        "description": "Create or update an incident postmortem",
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "description": "The ID of the status page.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "incident_id",
            "in": "path",
            "required": true,
            "description": "The ID of the incident.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/pages/{page_id}/incidents/{incident_id}/postmortem/publish": {
      "put": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncidentPostmortem"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Publish an incident postmortem",
        "tags": [
          "Status pages - Incidents"
        ],
        "description": "Publish an incident postmortem",
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "description": "The ID of the status page.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "incident_id",
            "in": "path",
            "required": true,
            "description": "The ID of the incident.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "incident_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/usage": {
      "get": {
        "responses": {
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "tags": [
          "usage"
        ],
        "summary": "Get usage statistics",
        "description": "Get user organization usage statistics",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/checks": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorCheckList"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get all monitor checks",
        "tags": [
          "Checks"
        ],
        "description": "Get all monitor checks for current organization with pagination and filtering",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for pagination (default: 1).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "required": false,
            "description": "Number of items per page (default: 20, max: 100).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            }
          },
          {
            "name": "group_id",
            "in": "query",
            "required": false,
            "description": "Filter checks by group ID. Use \"ungrouped\" to get checks not assigned to any group.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Filter checks by status. Can specify multiple statuses separated by commas (e.g., \"ok,failed\").",
            "schema": {
              "type": "string"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "description": "Filter checks by name using case-insensitive partial matching.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "description": "Filter checks by type.",
            "schema": {
              "type": "string",
              "enum": [
                "web",
                "api",
                "ssl",
                "tcp",
                "synthetic",
                "multistep"
              ]
            }
          },
          {
            "name": "include_uptime",
            "in": "query",
            "required": false,
            "description": "Include uptime data for each check in the response (default: false).",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "required": false,
            "description": "Start time for uptime calculation (ISO format). Defaults to 24 hours ago.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "required": false,
            "description": "End time for uptime calculation (ISO format). Defaults to current time.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorCheck"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MonitorCheck"
              }
            }
          }
        },
        "summary": "Create a new regular check",
        "tags": [
          "Checks"
        ],
        "description": "Create a new regular check. Optionally include secrets in the request to associate them with the check during creation. Supports multi-region execution configuration.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/checks/{check_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorCheck"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get a specific monitor check",
        "tags": [
          "Checks"
        ],
        "description": "Get a specific monitor check by ID. Optionally include uptime data by setting include_uptime=true.",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "description": "The unique identifier of the monitor check.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include_uptime",
            "in": "query",
            "required": false,
            "description": "Include uptime data in the response (default: false).",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "required": false,
            "description": "Start time for uptime calculation (ISO format). Defaults to 24 hours ago.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "required": false,
            "description": "End time for uptime calculation (ISO format). Defaults to current time.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "check_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "patch": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorCheck"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MonitorCheck1"
              }
            }
          }
        },
        "summary": "Update a monitor check",
        "tags": [
          "Checks"
        ],
        "description": "Update a monitor check. Optionally include secrets in the request to replace all secret associations. Supports updating multi-region execution configuration. Note: The \"type\" of a check cannot be changed after creation.",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the monitor check to update.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "delete": {
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Delete a monitor check",
        "tags": [
          "Checks"
        ],
        "description": "Delete a monitor check. This will also delete all associated alert rules and results.",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the monitor check to delete.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/checks/{check_id}/uptime": {
      "get": {
        "responses": {
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get check uptime",
        "tags": [
          "Checks"
        ],
        "description": "Get check uptime by ID. Shows uptime for the last 24 hours by default. Set end_time and start_time to define the period.",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the monitor check.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "start_time",
            "in": "query",
            "required": false,
            "description": "Start time for uptime calculation (ISO format). Defaults to 24 hours ago.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "end_time",
            "in": "query",
            "required": false,
            "description": "End time for uptime calculation (ISO format). Defaults to current time.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "check_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/checks/{check_id}/results": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorCheckResultList"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get results for a specific check",
        "tags": [
          "Checks"
        ],
        "description": "Get results for a specific check with pagination",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the monitor check.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for pagination (default: 1).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "required": false,
            "description": "Number of items per page (default: 20, max: 100).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "required": false,
            "description": "Filter results from this date (ISO format).",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "required": false,
            "description": "Filter results until this date (ISO format).",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "failed_only",
            "in": "query",
            "required": false,
            "description": "Show only failed checks (default: false).",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "check_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/checks/{check_id}/results/{check_result_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorCheckResult"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get a specific check result",
        "tags": [
          "Checks"
        ],
        "description": "Get a specific check result by ID",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the monitor check.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "check_result_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the check result.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "check_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "check_result_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/checks/{check_id}/status-history": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorCheckStatusHistoryList"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get status history for a check",
        "tags": [
          "Checks"
        ],
        "description": "Get status history for a check with pagination",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the monitor check.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for pagination (default: 1).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "required": false,
            "description": "Number of items per page (default: 20, max: 100).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "check_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/checks/get-regions": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionsList"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get available regions",
        "tags": [
          "Checks"
        ],
        "description": "Get available regions for serverless check execution, optionally filtered by check type",
        "parameters": [
          {
            "name": "check_type",
            "in": "query",
            "required": false,
            "description": "Filter regions by check type support.",
            "schema": {
              "type": "string",
              "enum": [
                "web",
                "api",
                "ssl",
                "tcp",
                "synthetic",
                "multistep"
              ]
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/checks/{check_id}/execute": {
      "post": {
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExecuteExistingCheckResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Invalid regions or validation error"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Credit limit exceeded or insufficient permissions"
          },
          "404": {
            "description": "Check not found or you do not have permission to access it"
          },
          "500": {
            "description": "Internal Server Error - Failed to queue check for execution"
          }
        },
        "summary": "Execute an existing monitor check immediately",
        "tags": [
          "On-Demand Checks"
        ],
        "description": "Execute an existing monitor check immediately on-demand. This endpoint queues the check for immediate execution and returns a job ID for tracking progress and results. Supports multi-region execution if configured in check parameters.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "check_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/checks/execute": {
      "post": {
        "responses": {
          "422": {
            "description": "Validation error - Invalid request data"
          },
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExecuteExistingCheckResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Invalid parameters, missing pw_script for multistep checks, or invalid regions"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Credit limit exceeded"
          },
          "500": {
            "description": "Internal Server Error - Failed to queue custom check for execution"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExecuteCustomCheckRequest"
              }
            }
          },
          "description": "Custom check configuration data"
        },
        "summary": "Execute a custom check with user-provided parameters",
        "tags": [
          "On-Demand Checks"
        ],
        "description": "Execute a custom check with user-provided parameters on-demand. This endpoint allows you to run a one-time check without saving the configuration. The check parameters are validated and the check is queued for immediate execution. Supports multi-region execution via parameters.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/checks/jobs/{job_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckJob"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "404": {
            "description": "Job not found or you do not have permission to access it"
          },
          "500": {
            "description": "Internal Server Error - Database error occurred"
          }
        },
        "summary": "Get job status and results",
        "tags": [
          "On-Demand Checks"
        ],
        "description": "Retrieve the status and results of a specific on-demand check job. Returns detailed information about the job execution including results, timing information, and any error messages.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "job_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/checks/jobs": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobListResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Invalid pagination parameters or status filter"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "500": {
            "description": "Internal Server Error - Database error occurred"
          }
        },
        "summary": "List on-demand check jobs",
        "tags": [
          "On-Demand Checks"
        ],
        "description": "List on-demand check jobs for the current organization with pagination support. Supports filtering by job status and ordering by creation date (newest first).",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for pagination (starting from 1).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "required": false,
            "description": "Number of jobs per page (maximum 100).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Filter jobs by status.",
            "schema": {
              "type": "string",
              "enum": [
                "pending",
                "running",
                "completed",
                "failed"
              ]
            }
          }
        ]
      }
    },
    "/v1/alerts/channels": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AlertChannel"
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Get all alert channels",
        "tags": [
          "Alerts"
        ],
        "description": "Get all alert channels for the current organization",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertChannel"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Validation error"
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AlertChannel"
              }
            }
          }
        },
        "summary": "Create a new alert channel",
        "tags": [
          "Alerts"
        ],
        "description": "Create a new alert channel",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/alerts/channels/{channel_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertChannel"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "422": {
            "description": "Bad Request - Validation error"
          },
          "404": {
            "description": "Component not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Get an alert channel by id",
        "tags": [
          "Alerts"
        ],
        "description": "Get an alert channel by id",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "channel_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "put": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertChannel"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Validation error"
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication"
          },
          "404": {
            "description": "Alert channel not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AlertChannel1"
              }
            }
          }
        },
        "summary": "Update an alert channel by ID",
        "tags": [
          "Alerts"
        ],
        "description": "Update an alert channel by ID",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "delete": {
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Channel is being used by alert rules"
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication"
          },
          "404": {
            "description": "Alert channel not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Delete an alert channel by ID",
        "tags": [
          "Alerts"
        ],
        "description": "Delete an alert channel by ID",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/alerts/rules": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AlertRule"
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Get all alert rules",
        "tags": [
          "Alerts"
        ],
        "description": "Get all alert rules for the current organization",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertRule"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Validation error"
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication"
          },
          "404": {
            "description": "Check or channel not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AlertRule"
              }
            }
          }
        },
        "summary": "Create a new alert rule",
        "tags": [
          "Alerts"
        ],
        "description": "Create a new alert rule",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/alerts/rules/{rule_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertRule"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication"
          },
          "404": {
            "description": "Alert rule not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Get an alert rule by ID",
        "tags": [
          "Alerts"
        ],
        "description": "Get an alert rule by ID",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "rule_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "put": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertRule"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Validation error"
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication"
          },
          "404": {
            "description": "Alert rule or referenced channels not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AlertRule1"
              }
            }
          }
        },
        "summary": "Update an alert rule by ID",
        "tags": [
          "Alerts"
        ],
        "description": "Update an alert rule by ID",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "delete": {
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication"
          },
          "404": {
            "description": "Alert rule not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Delete an alert rule by ID",
        "tags": [
          "Alerts"
        ],
        "description": "Delete an alert rule by ID",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/alerts": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertList"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Invalid filter parameters"
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Get all alerts",
        "tags": [
          "Alerts"
        ],
        "description": "Get all alerts for the organization with optional filtering and pagination",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Filter alerts by status (active, firing, resolved, acknowledged, suppressed).",
            "schema": {
              "type": "string",
              "enum": [
                "active",
                "firing",
                "resolved",
                "acknowledged",
                "suppressed"
              ]
            }
          },
          {
            "name": "check_id",
            "in": "query",
            "required": false,
            "description": "Filter alerts by check ID.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "severity",
            "in": "query",
            "required": false,
            "description": "Filter alerts by severity level.",
            "schema": {
              "type": "string",
              "enum": [
                "low",
                "medium",
                "high",
                "critical"
              ]
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for pagination (default: 1).",
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "required": false,
            "description": "Number of alerts per page (default: 20, max: 100).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/alerts/{alert_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Alert"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication"
          },
          "404": {
            "description": "Alert not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Get an alert by ID",
        "tags": [
          "Alerts"
        ],
        "description": "Get an alert by ID",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "alert_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/alerts/{alert_id}/acknowledge": {
      "post": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Alert"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Only firing alerts can be acknowledged"
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication"
          },
          "404": {
            "description": "Alert not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Acknowledge an alert",
        "tags": [
          "Alerts"
        ],
        "description": "Acknowledge an alert (mark as acknowledged)",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "alert_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/alerts/{alert_id}/resolve": {
      "post": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Alert"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Only active alerts can be resolved"
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication"
          },
          "404": {
            "description": "Alert not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Manually resolve an alert",
        "tags": [
          "Alerts"
        ],
        "description": "Manually resolve an alert",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "alert_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/alerts/{alert_id}/notifications": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AlertNotification"
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication"
          },
          "404": {
            "description": "Alert not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Get all notifications for a specific alert",
        "tags": [
          "Alerts"
        ],
        "description": "Get all notifications for a specific alert",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "alert_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/alerts/stats": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertStats"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Invalid or missing authentication"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Get alert statistics",
        "tags": [
          "Alerts"
        ],
        "description": "Get alert statistics and metrics for the organization",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/heartbeats": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HeartbeatCheckList"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get all heartbeat checks",
        "tags": [
          "Heartbeats"
        ],
        "description": "Get all heartbeat checks for current organization with pagination",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for pagination (default: 1)",
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "required": false,
            "description": "Number of items per page (default: 50, max: 100)",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HeartbeatCheck"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HeartbeatCheck"
              }
            }
          }
        },
        "summary": "Create a new heartbeat check",
        "tags": [
          "Heartbeats"
        ],
        "description": "Create a new heartbeat check",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/heartbeats/{check_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HeartbeatCheckDetail"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get specific heartbeat check",
        "tags": [
          "Heartbeats"
        ],
        "description": "Get specific heartbeat check with recent pings",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "required": true,
            "description": "The ID of the heartbeat check.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "check_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "put": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HeartbeatCheck"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HeartbeatCheck1"
              }
            }
          }
        },
        "summary": "Update an existing heartbeat check",
        "tags": [
          "Heartbeats"
        ],
        "description": "Update an existing heartbeat check",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "required": true,
            "description": "The ID of the heartbeat check.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "patch": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HeartbeatCheck"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HeartbeatCheck1"
              }
            }
          }
        },
        "summary": "Update an existing heartbeat check",
        "tags": [
          "Heartbeats"
        ],
        "description": "Update an existing heartbeat check",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "required": true,
            "description": "The ID of the heartbeat check.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "delete": {
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Delete a heartbeat check",
        "tags": [
          "Heartbeats"
        ],
        "description": "Delete a heartbeat check",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "required": true,
            "description": "The ID of the heartbeat check.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/heartbeats/{check_id}/ping": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HeartbeatPingResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Receive heartbeat ping (GET)",
        "tags": [
          "Heartbeats"
        ],
        "description": "Public endpoint for receiving heartbeat pings via GET request (no authentication required)",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "required": true,
            "description": "The ID of the heartbeat check.",
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "check_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "post": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HeartbeatPingResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Receive heartbeat ping (POST)",
        "tags": [
          "Heartbeats"
        ],
        "description": "Public endpoint for receiving heartbeat pings via POST request with optional JSON data (no authentication required)",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "required": true,
            "description": "The ID of the heartbeat check.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Optional ping data (JSON)",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          },
          "required": false
        }
      }
    },
    "/v1/heartbeats/{check_id}/pings": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HeartbeatPingHistory"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get ping history",
        "tags": [
          "Heartbeats"
        ],
        "description": "Get ping history for heartbeat check with pagination and filtering",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "required": true,
            "description": "The ID of the heartbeat check.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for pagination (default: 1)",
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "required": false,
            "description": "Number of items per page (default: 50, max: 100)",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "required": false,
            "description": "Filter pings from this date (ISO format)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "required": false,
            "description": "Filter pings until this date (ISO format)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "check_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/heartbeats/{check_id}/pings-count": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HeartbeatPingCountResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get ping count history",
        "tags": [
          "Heartbeats"
        ],
        "description": "Get ping count history for heartbeat check with hourly buckets. Returns ping counts grouped by hour for the specified time period.",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "required": true,
            "description": "The ID of the heartbeat check.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "required": false,
            "description": "Filter pings from this date (ISO format). Defaults to 24 hours ago.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "required": false,
            "description": "Filter pings until this date (ISO format). Defaults to current time.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "check_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/heartbeats/{check_id}/channels": {
      "get": {
        "responses": {
          "200": {
            "description": "OK"
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get alert channels assigned to heartbeat check",
        "tags": [
          "Heartbeats"
        ],
        "description": "Get alert channels assigned to heartbeat check",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "required": true,
            "description": "The ID of the heartbeat check.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "check_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "201": {
            "description": "Created"
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HeartbeatCheckChannelAssignment"
              }
            }
          }
        },
        "summary": "Assign alert channels to heartbeat check",
        "tags": [
          "Heartbeats"
        ],
        "description": "Assign alert channels to heartbeat check",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "required": true,
            "description": "The ID of the heartbeat check.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/heartbeats/{check_id}/channels/{channel_id}": {
      "delete": {
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Remove alert channel from heartbeat check",
        "tags": [
          "Heartbeats"
        ],
        "description": "Remove alert channel from heartbeat check",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "required": true,
            "description": "The ID of the heartbeat check.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "channel_id",
            "in": "path",
            "required": true,
            "description": "The ID of the alert channel to remove.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "check_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "channel_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/checks/all-results": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "check_type",
            "description": "Filter by check type.",
            "schema": {
              "type": "string",
              "enum": [
                "web",
                "api",
                "tcp",
                "ssl",
                "synthetic",
                "multistep",
                "icmp",
                "dns",
                "portscan"
              ],
              "example": "web"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "region",
            "description": "Filter by region where check was executed.",
            "schema": {
              "type": "string",
              "example": "us-west-1"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "result_id",
            "description": "Filter by specific result ID to get a single result.",
            "schema": {
              "type": "string",
              "example": "o8gzgweldbw2"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "page",
            "description": "Page number for pagination (starting from 1).",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "example": 1
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "description": "End date for filtering results (ISO format).",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2024-01-15T23:59:59Z"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "result_type",
            "description": "Filter by result type.",
            "schema": {
              "type": "string",
              "enum": [
                "regular",
                "on_demand"
              ],
              "example": "regular"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "execution_group_id",
            "description": "Filter by specific execution group ID. Shows all regional results from a multi-region execution.",
            "schema": {
              "type": "string",
              "example": "grp123abc456"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "is_multi_region",
            "description": "Filter to show only multi-region executions (true) or only single-region executions (false). Omit to show all results.",
            "schema": {
              "type": "boolean",
              "example": true
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "description": "Start date for filtering results (ISO format). Limited to 6 months in the past.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2024-01-15T00:00:00Z"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "check_id",
            "description": "Filter by specific check ID.",
            "schema": {
              "type": "string",
              "example": "chk123abc456"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "status",
            "description": "Filter by check result status.",
            "schema": {
              "type": "string",
              "enum": [
                "ok",
                "failed",
                "degraded",
                "timeout",
                "pending"
              ],
              "example": "ok"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "has_alerts",
            "description": "Filter to show only results that have triggered alerts (true) or only results without alerts (false). Omit to show all results.",
            "schema": {
              "type": "boolean",
              "example": true
            },
            "required": false
          },
          {
            "in": "query",
            "name": "page_size",
            "description": "Number of results per page (maximum 100).",
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 100,
              "example": 20
            },
            "required": false
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnifiedResultList"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Invalid parameters or date range"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "500": {
            "description": "Internal Server Error - Failed to fetch results"
          }
        },
        "summary": "Get all check results (regular and on-demand)",
        "tags": [
          "Checks - Unified Results"
        ],
        "description": "Get all check results (regular and on-demand) for the organization, sorted by creation date. Supports filtering by check ID, result ID, job ID, status, type, region, execution group, date range, and alert presence. Date range is limited to 6 months in the past.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/checks/{check_id}/response-times": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "region",
            "description": "Filter by specific region.",
            "schema": {
              "type": "string",
              "example": "us-west-1"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "description": "End date for metrics (ISO format).",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2024-01-15T23:59:59Z"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "execution_group_id",
            "description": "Filter by specific execution group ID for multi-region analysis.",
            "schema": {
              "type": "string",
              "example": "grp123abc456"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "is_multi_region",
            "description": "Filter to show only multi-region executions (true) or only single-region executions (false).",
            "schema": {
              "type": "boolean",
              "example": true
            },
            "required": false
          },
          {
            "in": "query",
            "name": "status",
            "description": "Filter by check status.",
            "schema": {
              "type": "string",
              "enum": [
                "ok",
                "failed",
                "degraded",
                "timeout"
              ],
              "example": "ok"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "description": "Start date for metrics (ISO format). Limited to 6 months in the past.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2024-01-15T00:00:00Z"
            },
            "required": false
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionResponseTimeMetrics"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Invalid parameters or date range"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "404": {
            "description": "Check not found or you do not have permission to access it"
          },
          "500": {
            "description": "Internal Server Error - Failed to fetch response time metrics"
          }
        },
        "summary": "Get aggregated response time metrics for a specific check",
        "tags": [
          "Checks - Unified Results"
        ],
        "description": "Get aggregated response time metrics for a specific check, grouped by region. Returns average, 95th percentile, and 99th percentile response times for each time bucket and region. Supports filtering by execution group for multi-region executions. Time intervals are automatically determined based on the date range.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "check_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/checks/status-history": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "check_type",
            "description": "Filter by check type (e.g., web, synthetic, multistep, api, ssl, icmp, dns, tcp, port_scan).",
            "schema": {
              "type": "string",
              "example": "synthetic"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "region",
            "description": "Filter by specific region.",
            "schema": {
              "type": "string",
              "example": "us-west-1"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "end_date",
            "description": "End date for status history (ISO format).",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2024-01-15T23:59:59Z"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "result_type",
            "description": "Filter by result type.",
            "schema": {
              "type": "string",
              "enum": [
                "regular",
                "on_demand"
              ],
              "example": "regular"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "execution_group_id",
            "description": "Filter by specific execution group ID for multi-region analysis.",
            "schema": {
              "type": "string",
              "example": "grp123abc456"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "is_multi_region",
            "description": "Filter to show only multi-region executions (true) or only single-region executions (false).",
            "schema": {
              "type": "boolean",
              "example": true
            },
            "required": false
          },
          {
            "in": "query",
            "name": "check_id",
            "description": "Filter by specific check ID. If not provided, returns metrics for all checks.",
            "schema": {
              "type": "string",
              "example": "chk123abc456"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "status",
            "description": "Filter by check status.",
            "schema": {
              "type": "string",
              "enum": [
                "ok",
                "failed",
                "degraded",
                "timeout"
              ],
              "example": "ok"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "has_alerts",
            "description": "Filter to show only results that have triggered alerts (true) or only results without alerts (false). Omit to show all results.",
            "schema": {
              "type": "boolean",
              "example": true
            },
            "required": false
          },
          {
            "in": "query",
            "name": "start_date",
            "description": "Start date for status history (ISO format). Limited to 6 months in the past.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2024-01-15T00:00:00Z"
            },
            "required": false
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionStatusHistory"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Invalid parameters or date range"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "500": {
            "description": "Internal Server Error - Failed to fetch status history"
          }
        },
        "summary": "Get time-bucketed status history metrics",
        "tags": [
          "Checks - Unified Results"
        ],
        "description": "Get a time-bucketed history of check counts by status for a check or all checks. Returns counts for each status (ok, failed, degraded, timeout) grouped by region and time bucket. If no check_id is provided, returns metrics for all checks in the organization. Can be filtered by result type (regular or on_demand), execution group, and by alert presence.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/auth/login/options": {
      "post": {
        "responses": {
          "422": {
            "description": "Validation error - Invalid email format"
          },
          "200": {
            "description": "Authentication options retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginOptionsResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginOptions"
              }
            }
          }
        },
        "summary": "Get authentication options",
        "tags": [
          "auth_enhanced"
        ],
        "description": "Get available authentication methods for an email address. This endpoint checks what authentication options are available for a given email address, including password, passkey, and OAuth providers."
      }
    },
    "/v1/auth/login": {
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "User authenticated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Missing fields or unsupported method"
          },
          "401": {
            "description": "Unauthorized - Authentication failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EnhancedLogin"
              }
            }
          }
        },
        "summary": "Enhanced login",
        "tags": [
          "auth_enhanced"
        ],
        "description": "Enhanced login endpoint supporting multiple authentication methods. Currently supports password authentication with plans for passkey and OAuth integration."
      }
    },
    "/v1/auth/setup/check": {
      "get": {
        "responses": {
          "200": {
            "description": "Authentication setup status retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthSetupStatus"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Check authentication setup",
        "tags": [
          "auth_enhanced"
        ],
        "description": "Check user's authentication setup status. Returns information about configured authentication methods including passwords, passkeys, OAuth providers, and 2FA status.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/auth/setup/recommend": {
      "get": {
        "responses": {
          "200": {
            "description": "Authentication recommendations retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthRecommendations"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Get authentication recommendations",
        "tags": [
          "auth_enhanced"
        ],
        "description": "Get authentication setup recommendations for user. Provides personalized suggestions for improving account security based on current authentication configuration.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/auth/preferences": {
      "get": {
        "responses": {
          "200": {
            "description": "Authentication preferences retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthPreferences"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Get authentication preferences",
        "tags": [
          "auth_enhanced"
        ],
        "description": "Get user authentication preferences including preferred method, 2FA requirements, and passkey-only mode.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "put": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "Authentication preferences updated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthPreferences"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Invalid authentication method or validation error"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthPreferences1"
              }
            }
          }
        },
        "summary": "Update authentication preferences",
        "tags": [
          "auth_enhanced"
        ],
        "description": "Update user authentication preferences. Allows users to set their preferred authentication method, enable/disable 2FA requirements, and configure passkey-only mode.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/auth/passkey/register/begin": {
      "post": {
        "responses": {
          "200": {
            "description": "Registration options generated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegistrationOptionsResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Begin passkey registration",
        "tags": [
          "webauthn"
        ],
        "description": "Begin passkey registration for authenticated user. This endpoint generates WebAuthn registration options that the client can use to prompt the user to create a new passkey.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/auth/passkey/register/complete": {
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "Passkey registered successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegistrationCompleteResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Registration failed or validation error"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegistrationComplete"
              }
            }
          }
        },
        "summary": "Complete passkey registration",
        "tags": [
          "webauthn"
        ],
        "description": "Complete passkey registration by verifying the credential response from the authenticator. This finalizes the registration process and stores the new passkey.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/auth/passkey/authenticate/begin": {
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "Authentication options generated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationOptionsResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthBeginRequest"
              }
            }
          }
        },
        "summary": "Begin passkey authentication",
        "tags": [
          "webauthn"
        ],
        "description": "Begin passkey authentication. Supports both usernameless authentication (without user_id) and user-specific authentication (with user_id). Generates WebAuthn authentication options."
      }
    },
    "/v1/auth/passkey/authenticate/complete": {
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "User authenticated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationCompleteResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Validation error"
          },
          "401": {
            "description": "Unauthorized - Authentication failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthenticationComplete"
              }
            }
          }
        },
        "summary": "Complete passkey authentication",
        "tags": [
          "webauthn"
        ],
        "description": "Complete passkey authentication by verifying the credential assertion from the authenticator. Returns access token and user information upon successful authentication."
      }
    },
    "/v1/auth/passkey/credentials": {
      "get": {
        "responses": {
          "200": {
            "description": "Credentials retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialsListResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Get passkey credentials",
        "tags": [
          "webauthn"
        ],
        "description": "Get list of user's registered passkey credentials. Returns information about all passkeys registered to the authenticated user.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/auth/passkey/credentials/{credential_id}": {
      "delete": {
        "responses": {
          "200": {
            "description": "Credential deleted successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Credential not found or deletion failed"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Delete passkey credential",
        "tags": [
          "webauthn"
        ],
        "description": "Delete a specific passkey credential. Removes the specified passkey from the user's account permanently.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "credential_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the credential to delete",
            "example": "cred-123-456"
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "credential_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "put": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "Credential updated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Credential not found or validation error"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CredentialUpdate"
              }
            }
          }
        },
        "summary": "Update passkey credential",
        "tags": [
          "webauthn"
        ],
        "description": "Update passkey credential information. Currently supports renaming the device/authenticator for easier identification.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "credential_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the credential to update",
            "example": "cred-123-456"
          }
        ]
      }
    },
    "/v1/check-groups": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckGroupList"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get all check groups",
        "tags": [
          "CheckGroups"
        ],
        "description": "Get all check groups for current organization with pagination",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for pagination (default: 1).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "required": false,
            "description": "Number of items per page (default: 20, max: 100).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckGroup1"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckGroup1"
              }
            }
          }
        },
        "summary": "Create a new check group",
        "tags": [
          "CheckGroups"
        ],
        "description": "Create a new check group",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/check-groups/{group_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckGroup1"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get a specific check group",
        "tags": [
          "CheckGroups"
        ],
        "description": "Get a specific check group by ID",
        "parameters": [
          {
            "name": "group_id",
            "in": "path",
            "description": "The unique identifier of the check group.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "group_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "patch": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckGroup1"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckGroup2"
              }
            }
          }
        },
        "summary": "Update a check group",
        "tags": [
          "CheckGroups"
        ],
        "description": "Update a check group",
        "parameters": [
          {
            "name": "group_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the check group to update.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "delete": {
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Delete a check group",
        "tags": [
          "CheckGroups"
        ],
        "description": "Delete a check group. All checks in the group will be moved to ungrouped.",
        "parameters": [
          {
            "name": "group_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the check group to delete.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/check-groups/{group_id}/checks": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorCheckList"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get checks in a group",
        "tags": [
          "CheckGroups"
        ],
        "description": "Get all checks that belong to a specific group",
        "parameters": [
          {
            "name": "group_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the check group.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for pagination (default: 1).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "required": false,
            "description": "Number of items per page (default: 20, max: 100).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "group_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/checks/{check_id}/group": {
      "patch": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Generated1"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Generated"
              }
            }
          }
        },
        "summary": "Assign check to group",
        "tags": [
          "CheckGroups"
        ],
        "description": "Assign a check to a group or remove it from a group (set group_id to null)",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the monitor check.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "check_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/secrets": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecretList"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get all organization secrets",
        "tags": [
          "Secrets"
        ],
        "description": "Get all secrets for current organization with pagination. Secret values are excluded from list responses for security.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for pagination (default: 1).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "required": false,
            "description": "Number of items per page (default: 20, max: 100).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Secret1"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Secret1"
              }
            }
          }
        },
        "summary": "Create a new secret",
        "tags": [
          "Secrets"
        ],
        "description": "Create a new organization secret. The secret value will be encrypted in storage.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/secrets/{secret_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Secret1"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get a specific secret",
        "tags": [
          "Secrets"
        ],
        "description": "Get a specific secret by ID. Secret value is included in single secret responses.",
        "parameters": [
          {
            "name": "secret_id",
            "in": "path",
            "description": "The unique identifier of the secret.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "secret_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "patch": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Secret1"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Secret2"
              }
            }
          }
        },
        "summary": "Update a secret",
        "tags": [
          "Secrets"
        ],
        "description": "Update a secret. Only the secret value can be updated, not the name.",
        "parameters": [
          {
            "name": "secret_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the secret to update.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "delete": {
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Delete a secret",
        "tags": [
          "Secrets"
        ],
        "description": "Delete a secret. This action cannot be undone.",
        "parameters": [
          {
            "name": "secret_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the secret to delete.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/checks/{check_id}/secrets": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CheckSecret"
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get all secrets for a check",
        "tags": [
          "CheckSecrets"
        ],
        "description": "Get all secrets associated with a specific check",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "description": "The unique identifier of the monitor check.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "check_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckSecret"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckSecret"
              }
            }
          }
        },
        "summary": "Add secret to check",
        "tags": [
          "CheckSecrets"
        ],
        "description": "Associate a secret with a check using an environment variable name",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "description": "The unique identifier of the monitor check.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "put": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CheckSecret"
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CheckSecret"
                }
              }
            }
          }
        },
        "summary": "Update all secrets for a check",
        "tags": [
          "CheckSecrets"
        ],
        "description": "Replace all secret associations for a check. This will remove existing associations and create new ones.",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "description": "The unique identifier of the monitor check.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/checks/{check_id}/secrets/{secret_id}": {
      "delete": {
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Remove secret from check",
        "tags": [
          "CheckSecrets"
        ],
        "description": "Remove a secret association from a check",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "description": "The unique identifier of the monitor check.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "secret_id",
            "in": "path",
            "description": "The unique identifier of the secret.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "check_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "secret_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/execution-groups/{group_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExecutionGroup"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get execution group details",
        "tags": [
          "ExecutionGroups"
        ],
        "description": "Get details of a specific multi-region execution group including aggregated statistics",
        "parameters": [
          {
            "name": "group_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the execution group",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "group_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/execution-groups/{group_id}/regional-results": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionalResultsList"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get regional results for execution group",
        "tags": [
          "ExecutionGroups"
        ],
        "description": "Get detailed results from each region within a multi-region execution group",
        "parameters": [
          {
            "name": "group_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the execution group",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "group_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/checks/{check_id}/execution-groups": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExecutionGroupList"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get execution groups for a check",
        "tags": [
          "ExecutionGroups"
        ],
        "description": "Get list of multi-region execution groups for a specific check with pagination",
        "parameters": [
          {
            "name": "check_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the monitor check",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for pagination (default: 1)",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "required": false,
            "description": "Number of items per page (default: 20, max: 100)",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Filter by execution group status",
            "schema": {
              "type": "string",
              "enum": [
                "pending",
                "running",
                "completed",
                "partial",
                "failed"
              ]
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "check_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/auth/oauth/providers": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthProvidersResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get available OAuth providers",
        "tags": [
          "OAuth"
        ],
        "description": "Retrieve a list of all available OAuth providers for authentication"
      }
    },
    "/v1/auth/oauth/{provider_name}/authorize": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthAuthorizeResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Initiate OAuth authorization",
        "tags": [
          "OAuth"
        ],
        "description": "Start OAuth authorization flow for the specified provider"
      },
      "parameters": [
        {
          "in": "path",
          "name": "provider_name",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/auth/oauth/{provider_name}/callback": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "code",
            "description": "OAuth authorization code from provider",
            "schema": {
              "type": "string",
              "example": "def456ghi789"
            },
            "required": true
          },
          {
            "in": "query",
            "name": "error",
            "description": "OAuth error code if authorization failed",
            "schema": {
              "type": "string",
              "example": "access_denied",
              "nullable": true
            },
            "required": false
          },
          {
            "in": "query",
            "name": "error_description",
            "description": "Human-readable error description",
            "schema": {
              "type": "string",
              "example": "User denied access",
              "nullable": true
            },
            "required": false
          },
          {
            "in": "query",
            "name": "state",
            "description": "OAuth state parameter for CSRF validation",
            "schema": {
              "type": "string",
              "example": "abc123def456"
            },
            "required": true
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthLoginResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Handle OAuth callback",
        "tags": [
          "OAuth"
        ],
        "description": "Handle OAuth provider callback and complete authentication"
      },
      "parameters": [
        {
          "in": "path",
          "name": "provider_name",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/auth/oauth/accounts": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkedOAuthAccountsResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get linked OAuth accounts",
        "tags": [
          "OAuth"
        ],
        "description": "Retrieve all OAuth accounts linked to the current user",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/v1/auth/oauth/{provider_name}/link": {
      "post": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthAuthorizeResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Link OAuth account to existing user",
        "tags": [
          "OAuth"
        ],
        "description": "Initiate OAuth flow to link an account to the currently authenticated user",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "provider_name",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/auth/oauth/{provider_name}/unlink": {
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthUnlinkResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Unlink OAuth account",
        "tags": [
          "OAuth"
        ],
        "description": "Remove OAuth account link from the current user",
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "provider_name",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/pages/{page_id}/verify-password": {
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "Password verified successfully, access token returned",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PasswordVerificationResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Missing or invalid password"
          },
          "401": {
            "description": "Unauthorized - Incorrect password"
          },
          "404": {
            "description": "Page not found or not password-protected"
          },
          "429": {
            "description": "Too many attempts - Rate limit exceeded"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PasswordVerification"
              }
            }
          }
        },
        "summary": "Verify password for page access",
        "tags": [
          "Page Passwords"
        ],
        "description": "Verify a password for accessing a password-protected page. Returns a temporary access token on success."
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/pages/{page_id}/password-hints": {
      "get": {
        "responses": {
          "200": {
            "description": "Password hints retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PasswordHintsResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "404": {
            "description": "Page not found or not password-protected"
          }
        },
        "summary": "Get password hints for page",
        "tags": [
          "Page Passwords"
        ],
        "description": "Get available password hints for a password-protected page"
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/v1/pages/{page_id}/passwords": {
      "get": {
        "responses": {
          "200": {
            "description": "Passwords retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PagePassword"
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Access denied"
          },
          "404": {
            "description": "Page not found"
          }
        },
        "summary": "List page passwords",
        "tags": [
          "Page Passwords"
        ],
        "description": "Get all passwords for a page (admin only)",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "201": {
            "description": "Password created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagePassword"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Invalid data"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Access denied"
          },
          "404": {
            "description": "Page not found"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PagePasswordCreate"
              }
            }
          }
        },
        "summary": "Create page password",
        "tags": [
          "Page Passwords"
        ],
        "description": "Create a new password for a page",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/pages/{page_id}/passwords/{password_id}": {
      "put": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "Password updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagePassword"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "400": {
            "description": "Bad Request - Invalid data"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Access denied"
          },
          "404": {
            "description": "Password not found"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PagePasswordUpdate"
              }
            }
          }
        },
        "summary": "Update page password",
        "tags": [
          "Page Passwords"
        ],
        "description": "Update an existing password for a page",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "page_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "password_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ],
      "delete": {
        "responses": {
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          },
          "204": {
            "description": "Password deleted successfully"
          },
          "401": {
            "description": "Unauthorized - Authentication required"
          },
          "403": {
            "description": "Forbidden - Access denied"
          },
          "404": {
            "description": "Password not found"
          }
        },
        "summary": "Delete page password",
        "tags": [
          "Page Passwords"
        ],
        "description": "Delete a password for a page",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/reports": {
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportRequest"
              }
            }
          }
        },
        "summary": "Request a new report",
        "tags": [
          "Reports"
        ],
        "description": "Request generation of a PDF report for monitoring checks. If check_ids is omitted or null, the report will include all active checks in the organization. The report is generated asynchronously. Poll GET /v1/reports/<id> for status and download URL.",
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportList"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "List reports",
        "tags": [
          "Reports"
        ],
        "description": "List all reports for the current organization, ordered by creation date (newest first).",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number (default: 1)",
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "required": false,
            "description": "Number of reports per page (default: 20, max: 100)",
            "schema": {
              "type": "integer",
              "default": 20
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/v1/reports/{report_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get report status and download URL",
        "tags": [
          "Reports"
        ],
        "description": "Get a single report by ID. When the report is completed, a presigned download URL (valid for 1 hour) will be included.",
        "parameters": [
          {
            "name": "report_id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the report.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "report_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    }
  },
  "tags": [
    {
      "name": "Users",
      "description": "User management and authentication"
    },
    {
      "name": "organizations",
      "description": "Organization and plan management"
    },
    {
      "name": "Status pages",
      "description": "Status page management and configuration"
    },
    {
      "name": "Status pages - Components",
      "description": "Component management operations for status pages"
    },
    {
      "name": "Status pages - Incidents",
      "description": "Incident management operations for status pages"
    },
    {
      "name": "usage",
      "description": "Organization usage and credit tracking"
    },
    {
      "name": "Checks",
      "description": "Regular monitoring checks"
    },
    {
      "name": "On-Demand Checks",
      "description": "On-demand check execution and job management"
    },
    {
      "name": "Alerts",
      "description": "Alert management operations"
    },
    {
      "name": "Heartbeats",
      "description": "Heartbeat checks for cron jobs and scheduled tasks"
    },
    {
      "name": "Checks - Unified Results",
      "description": "Unified check results and metrics across regular and on-demand checks"
    },
    {
      "name": "auth_enhanced",
      "description": "Enhanced authentication with multiple methods"
    },
    {
      "name": "webauthn",
      "description": "WebAuthn passkey authentication"
    },
    {
      "name": "CheckGroups",
      "description": "Check group management"
    },
    {
      "name": "Secrets",
      "description": "Organization secrets management"
    },
    {
      "name": "CheckSecrets",
      "description": "Check secrets management"
    },
    {
      "name": "ExecutionGroups",
      "description": "Multi-region check execution groups"
    },
    {
      "name": "OAuth",
      "description": "OAuth authentication with third-party providers"
    },
    {
      "name": "Page Passwords",
      "description": "Password protection management for status pages"
    },
    {
      "name": "Reports",
      "description": "Report generation and download"
    }
  ],
  "openapi": "3.0.3"
}