{
  "openapi": "3.1.0",
  "info": {
    "summary": "OpenAPI specification for the public Open Systems API",
    "title": "Open Systems API",
    "description": "This OpenAPI specification describes the public endpoints of the Open Systems API.",
    "contact": {
      "name": "Open Systems",
      "url": "https://open-systems.com",
      "email": "support@open-systems.com"
    },
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.open-systems.com",
      "description": "Primary API server for the Open Systems API"
    }
  ],
  "paths": {
    "/api/auth/v1/oauth/v2/token": {
      "post": {
        "description": "OAuth 2.0 token endpoint implementing the **client credentials grant** (RFC 6749 §4.4 - The OAuth 2.0 Authorization Framework). The client authenticates with the authorization server and exchanges its credentials for an access token. Accepts client credentials via exactly one of two methods:\n\n1. **HTTP Basic authentication** — `Authorization: Basic <credentials>` where `<credentials>` is `base64( formUrlEncode(client_id) + \":\" + formUrlEncode(client_secret) )`. `client_id` and `client_secret` are form-URL-encoded prior to base64 encoding, as required by RFC 6749 §2.3.1 (Appendix B).\n\n2. **Request-body parameters** — `client_id` and `client_secret` as form-encoded fields (unencrypted, sent in the request body).\n\nProviding both methods or neither results in an `422 validation failed` error. The endpoint exchanges the credentials for an access token from the Open Systems Identity Provider.",
        "operationId": "client-credentials-token",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/AuthClientCredentialsTokenRequest"
              }
            }
          },
          "description": "OAuth2 Client Credentials request schema"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthClientCredentialsTokenOutputBody"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Exchange client credentials for an access token",
        "tags": [
          "Auth"
        ]
      }
    },
    "/api/security-investigations/v1/companies/{company_id}/investigations": {
      "patch": {
        "description": "This API allows modifying the status of Hosts that triggered a security investigation for a company\n\n**API USER ACCESS**: This endpoint requires `write` access on scope `Network Detection and Response`.",
        "operationId": "v1-security-investigations-modify-investigations-api-grouped-exp",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SecurityInvestigationsModifyInvestigationsBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonChangeOutput"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Modify NDR investigations",
        "tags": [
          "Security Investigations"
        ]
      }
    },
    "/api/security-investigations/v1/companies/{company_id}/investigations/validate": {
      "patch": {
        "description": "This API allows modifying the status of Hosts that triggered a security investigation for a company\n\n**API USER ACCESS**: This endpoint requires `write` access on scope `Network Detection and Response`.",
        "operationId": "v1-security-investigations-modify-investigations-api-grouped-exp-validate",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SecurityInvestigationsModifyInvestigationsBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityInvestigationsndrInvestigationValidation"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityInvestigationsndrInvestigationErrorProblem"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Modify NDR investigations (validate)",
        "tags": [
          "Security Investigations"
        ]
      }
    },
    "/api/self-service/v1/companies/{company_id}/changes": {
      "post": {
        "description": "Search and filter automation changes for a company. Supports filtering by status, use case, creator, date ranges, associated tickets, and job groups. Results are returned with cursor-based pagination.\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "find-changes",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SelfServiceFindChangesSearchBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelfServiceFindChangesBody"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Search for changes",
        "tags": [
          "Self Service"
        ]
      }
    },
    "/api/self-service/v1/companies/{company_id}/changes/{change_id}/output": {
      "get": {
        "description": "Returns the current status and full stage breakdown of a change at the time of the request. Use this for a one-shot status check instead of the streaming SSE endpoint.\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "get-change-progress-snapshot",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "The change ID",
            "in": "path",
            "name": "change_id",
            "required": true,
            "schema": {
              "description": "The change ID",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelfServiceChangeProgressSnapshotBody"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Get the current status and progress of a change by its ID",
        "tags": [
          "Self Service"
        ]
      }
    },
    "/api/threat-protection/v1/companies/{company_id}/block-list-entries": {
      "delete": {
        "description": "Deletes one or more blocklist entries by their IDs for the specified scope.\n\n**API USER ACCESS**: This endpoint requires `write` access on scope `Threat Protection`.",
        "operationId": "v1-threat-protection-delete-threat-protection-block-list-entries-api-grouped-exp",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThreatProtectionTPDeleteBlocklistEntries"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonChangeOutput"
                }
              }
            },
            "description": "Accepted"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Delete threat protection blocklist entries",
        "tags": [
          "Threat Protection"
        ]
      },
      "post": {
        "description": "Creates one or more blocklist entries for the specified scope. Blocklist entries define threat indicators (IP addresses or domains) that should be blocked, categorized by threat type (malware, phishing, spam, or PUP).\n\n**API USER ACCESS**: This endpoint requires `write` access on scope `Threat Protection`.",
        "operationId": "v1-threat-protection-create-threat-protection-block-list-entries-api-grouped-exp",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThreatProtectionTPCreateBlocklistEntry"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonChangeOutput"
                }
              }
            },
            "description": "Accepted"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Create new threat protection blocklist entries",
        "tags": [
          "Threat Protection"
        ]
      },
      "get": {
        "description": "Returns a paginated list of block list entries. Use query parameters to filter by company, shared status, and limit the number of results.\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "get-block-list-entries",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "Filter by entry types. Can be specified multiple times to select entries matching any of the given types (ipv4, ipv6, or domain).",
            "example": [
              "ipv4"
            ],
            "explode": false,
            "in": "query",
            "name": "type",
            "schema": {
              "description": "Filter by entry types. Can be specified multiple times to select entries matching any of the given types (ipv4, ipv6, or domain).",
              "examples": [
                [
                  "ipv4"
                ]
              ],
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            }
          },
          {
            "description": "Only return entries where the entry value matches the given string. Match is case insensitive.",
            "example": "192.168",
            "explode": false,
            "in": "query",
            "name": "search_value",
            "schema": {
              "description": "Only return entries where the entry value matches the given string. Match is case insensitive.",
              "examples": [
                "192.168"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by entry scope: omit for all entries, 'true' for shared/global only, 'false' for company-specific only",
            "example": "false",
            "explode": false,
            "in": "query",
            "name": "is_shared",
            "schema": {
              "description": "Filter by entry scope: omit for all entries, 'true' for shared/global only, 'false' for company-specific only",
              "enum": [
                "true",
                "false"
              ],
              "examples": [
                "false"
              ],
              "type": "string"
            }
          },
          {
            "description": "Only return entries whose customer reference contains the given string. Match is case insensitive (substring).",
            "example": "SNOW-24567",
            "explode": false,
            "in": "query",
            "name": "customer_reference",
            "schema": {
              "description": "Only return entries whose customer reference contains the given string. Match is case insensitive (substring).",
              "examples": [
                "SNOW-24567"
              ],
              "type": "string"
            }
          },
          {
            "description": "Only return entries with the given ticket ID. Exact match.",
            "example": "1218521",
            "explode": false,
            "in": "query",
            "name": "ticket_id",
            "schema": {
              "description": "Only return entries with the given ticket ID. Exact match.",
              "examples": [
                "1218521"
              ],
              "pattern": "^[0-9]+$",
              "type": "string"
            }
          },
          {
            "description": "Maximum number of items to return (default: 100, max: 1000)",
            "example": 100,
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Maximum number of items to return (default: 100, max: 1000)",
              "examples": [
                100
              ],
              "format": "int64",
              "maximum": 1000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Number of items to skip",
            "example": 0,
            "explode": false,
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of items to skip",
              "examples": [
                0
              ],
              "format": "int64",
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreatProtectionPagedBlockEntries"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Get block list entries",
        "tags": [
          "Threat Protection"
        ]
      }
    },
    "/api/threat-protection/v1/companies/{company_id}/block-list-entries/validate": {
      "delete": {
        "description": "Deletes one or more blocklist entries by their IDs for the specified scope.\n\n**API USER ACCESS**: This endpoint requires `write` access on scope `Threat Protection`.",
        "operationId": "v1-threat-protection-delete-threat-protection-block-list-entries-api-grouped-exp-validate",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThreatProtectionTPDeleteBlocklistEntries"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreatProtectionthreat-protectionValidation"
                }
              }
            },
            "description": "Accepted"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreatProtectionthreat-protectionErrorProblem"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Delete threat protection blocklist entries (validate)",
        "tags": [
          "Threat Protection"
        ]
      },
      "post": {
        "description": "Creates one or more blocklist entries for the specified scope. Blocklist entries define threat indicators (IP addresses or domains) that should be blocked, categorized by threat type (malware, phishing, spam, or PUP).\n\n**API USER ACCESS**: This endpoint requires `write` access on scope `Threat Protection`.",
        "operationId": "v1-threat-protection-create-threat-protection-block-list-entries-api-grouped-exp-validate",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThreatProtectionTPCreateBlocklistEntry"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreatProtectionthreat-protectionValidation"
                }
              }
            },
            "description": "Accepted"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreatProtectionthreat-protectionErrorProblem"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Create new threat protection blocklist entries (validate)",
        "tags": [
          "Threat Protection"
        ]
      }
    },
    "/api/threat-protection/v1/companies/{company_id}/block-list-entries/{entry_id}": {
      "patch": {
        "description": "Updates the value, description, or customer reference of an existing blocklist entry identified by its ID.\n\n**API USER ACCESS**: This endpoint requires `write` access on scope `Threat Protection`.",
        "operationId": "v1-threat-protection-modify-threat-protection-block-list-entry-api-grouped-exp",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the blocklist entry",
            "example": "blk123abc",
            "in": "path",
            "name": "entry_id",
            "required": true,
            "schema": {
              "description": "ID of the blocklist entry",
              "examples": [
                "blk123abc"
              ],
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThreatProtectionTPModifyEntry"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonChangeOutput"
                }
              }
            },
            "description": "Accepted"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Modify a threat protection blocklist entry",
        "tags": [
          "Threat Protection"
        ]
      },
      "get": {
        "description": "Returns a single block list entry by its unique identifier.\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "get-block-list-entry",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the entry",
            "example": "123",
            "in": "path",
            "name": "entry_id",
            "required": true,
            "schema": {
              "description": "ID of the entry",
              "examples": [
                "123"
              ],
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreatProtectionThreatProtectionBlockEntry"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Get block list entry",
        "tags": [
          "Threat Protection"
        ]
      }
    },
    "/api/threat-protection/v1/companies/{company_id}/block-list-entries/{entry_id}/validate": {
      "patch": {
        "description": "Updates the value, description, or customer reference of an existing blocklist entry identified by its ID.\n\n**API USER ACCESS**: This endpoint requires `write` access on scope `Threat Protection`.",
        "operationId": "v1-threat-protection-modify-threat-protection-block-list-entry-api-grouped-exp-validate",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the blocklist entry",
            "example": "blk123abc",
            "in": "path",
            "name": "entry_id",
            "required": true,
            "schema": {
              "description": "ID of the blocklist entry",
              "examples": [
                "blk123abc"
              ],
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThreatProtectionTPModifyEntry"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreatProtectionthreat-protectionValidation"
                }
              }
            },
            "description": "Accepted"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreatProtectionthreat-protectionErrorProblem"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Modify a threat protection blocklist entry (validate)",
        "tags": [
          "Threat Protection"
        ]
      }
    },
    "/api/threat-protection/v1/companies/{company_id}/exclusion-list-entries": {
      "delete": {
        "description": "Deletes one or more exclusion list entries by their IDs for the specified scope.\n\n**API USER ACCESS**: This endpoint requires `write` access on scope `Threat Protection`.",
        "operationId": "v1-threat-protection-delete-threat-protection-exclusion-entries-api-grouped-exp",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThreatProtectionTPDeleteExclusionEntries"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonChangeOutput"
                }
              }
            },
            "description": "Accepted"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Delete threat protection exclusion list entries",
        "tags": [
          "Threat Protection"
        ]
      },
      "post": {
        "description": "Creates one or more exclusion list entries for the specified scope. Exclusion list entries define values (IP addresses, domains, or URLs) that should be excluded from threat protection filtering.\n\n**API USER ACCESS**: This endpoint requires `write` access on scope `Threat Protection`.",
        "operationId": "v1-threat-protection-create-threat-protection-exclusion-entries-api-grouped-exp",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThreatProtectionTPCreateExclusionEntry"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonChangeOutput"
                }
              }
            },
            "description": "Accepted"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Create new threat protection exclusion list entries",
        "tags": [
          "Threat Protection"
        ]
      },
      "get": {
        "description": "Returns a paginated list of exclusion list entries. Use query parameters to filter by company, shared status, and limit the number of results.\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "get-exclusion-list-entries",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "Filter by entry types. Can be specified multiple times to select entries matching any of the given types (ipv4, ipv6, url, or domain).",
            "example": [
              "url"
            ],
            "explode": false,
            "in": "query",
            "name": "type",
            "schema": {
              "description": "Filter by entry types. Can be specified multiple times to select entries matching any of the given types (ipv4, ipv6, url, or domain).",
              "examples": [
                [
                  "url"
                ]
              ],
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            }
          },
          {
            "description": "Only return entries where the entry value matches the given string. Match is case insensitive.",
            "example": "192.168",
            "explode": false,
            "in": "query",
            "name": "search_value",
            "schema": {
              "description": "Only return entries where the entry value matches the given string. Match is case insensitive.",
              "examples": [
                "192.168"
              ],
              "type": "string"
            }
          },
          {
            "description": "Filter by entry scope: omit for all entries, 'true' for shared/global only, 'false' for company-specific only",
            "example": "false",
            "explode": false,
            "in": "query",
            "name": "is_shared",
            "schema": {
              "description": "Filter by entry scope: omit for all entries, 'true' for shared/global only, 'false' for company-specific only",
              "enum": [
                "true",
                "false"
              ],
              "examples": [
                "false"
              ],
              "type": "string"
            }
          },
          {
            "description": "Only return entries whose customer reference contains the given string. Match is case insensitive (substring).",
            "example": "SNOW-24567",
            "explode": false,
            "in": "query",
            "name": "customer_reference",
            "schema": {
              "description": "Only return entries whose customer reference contains the given string. Match is case insensitive (substring).",
              "examples": [
                "SNOW-24567"
              ],
              "type": "string"
            }
          },
          {
            "description": "Only return entries with the given ticket ID. Exact match.",
            "example": "1218521",
            "explode": false,
            "in": "query",
            "name": "ticket_id",
            "schema": {
              "description": "Only return entries with the given ticket ID. Exact match.",
              "examples": [
                "1218521"
              ],
              "pattern": "^[0-9]+$",
              "type": "string"
            }
          },
          {
            "description": "Maximum number of items to return (default: 100, max: 1000)",
            "example": 100,
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "description": "Maximum number of items to return (default: 100, max: 1000)",
              "examples": [
                100
              ],
              "format": "int64",
              "maximum": 1000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Number of items to skip",
            "example": 0,
            "explode": false,
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Number of items to skip",
              "examples": [
                0
              ],
              "format": "int64",
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreatProtectionPagedExclusionEntries"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Get exclusion list entries",
        "tags": [
          "Threat Protection"
        ]
      }
    },
    "/api/threat-protection/v1/companies/{company_id}/exclusion-list-entries/validate": {
      "delete": {
        "description": "Deletes one or more exclusion list entries by their IDs for the specified scope.\n\n**API USER ACCESS**: This endpoint requires `write` access on scope `Threat Protection`.",
        "operationId": "v1-threat-protection-delete-threat-protection-exclusion-entries-api-grouped-exp-validate",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThreatProtectionTPDeleteExclusionEntries"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreatProtectionthreat-protectionValidation"
                }
              }
            },
            "description": "Accepted"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreatProtectionthreat-protectionErrorProblem"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Delete threat protection exclusion list entries (validate)",
        "tags": [
          "Threat Protection"
        ]
      },
      "post": {
        "description": "Creates one or more exclusion list entries for the specified scope. Exclusion list entries define values (IP addresses, domains, or URLs) that should be excluded from threat protection filtering.\n\n**API USER ACCESS**: This endpoint requires `write` access on scope `Threat Protection`.",
        "operationId": "v1-threat-protection-create-threat-protection-exclusion-entries-api-grouped-exp-validate",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThreatProtectionTPCreateExclusionEntry"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreatProtectionthreat-protectionValidation"
                }
              }
            },
            "description": "Accepted"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreatProtectionthreat-protectionErrorProblem"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Create new threat protection exclusion list entries (validate)",
        "tags": [
          "Threat Protection"
        ]
      }
    },
    "/api/threat-protection/v1/companies/{company_id}/exclusion-list-entries/{entry_id}": {
      "patch": {
        "description": "Updates the value, description, or customer reference of an existing exclusion list entry identified by its ID.\n\n**API USER ACCESS**: This endpoint requires `write` access on scope `Threat Protection`.",
        "operationId": "v1-threat-protection-modify-threat-protection-exclusion-list-entry-api-grouped-exp",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the entry",
            "example": "ass788asfhj8",
            "in": "path",
            "name": "entry_id",
            "required": true,
            "schema": {
              "description": "ID of the entry",
              "examples": [
                "ass788asfhj8"
              ],
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThreatProtectionTPModifyEntry"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonChangeOutput"
                }
              }
            },
            "description": "Accepted"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Modify a threat protection exclusion list entry",
        "tags": [
          "Threat Protection"
        ]
      },
      "get": {
        "description": "Returns a single exclusion list entry by its unique identifier.\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "get-exclusion-list-entry",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the entry",
            "example": "123",
            "in": "path",
            "name": "entry_id",
            "required": true,
            "schema": {
              "description": "ID of the entry",
              "examples": [
                "123"
              ],
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreatProtectionThreatProtectionExclusionEntry"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Get exclusion list entry",
        "tags": [
          "Threat Protection"
        ]
      }
    },
    "/api/threat-protection/v1/companies/{company_id}/exclusion-list-entries/{entry_id}/validate": {
      "patch": {
        "description": "Updates the value, description, or customer reference of an existing exclusion list entry identified by its ID.\n\n**API USER ACCESS**: This endpoint requires `write` access on scope `Threat Protection`.",
        "operationId": "v1-threat-protection-modify-threat-protection-exclusion-list-entry-api-grouped-exp-validate",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the entry",
            "example": "ass788asfhj8",
            "in": "path",
            "name": "entry_id",
            "required": true,
            "schema": {
              "description": "ID of the entry",
              "examples": [
                "ass788asfhj8"
              ],
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThreatProtectionTPModifyEntry"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreatProtectionthreat-protectionValidation"
                }
              }
            },
            "description": "Accepted"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreatProtectionthreat-protectionErrorProblem"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Modify a threat protection exclusion list entry (validate)",
        "tags": [
          "Threat Protection"
        ]
      }
    },
    "/api/firewall/v1/companies/{company_id}/objects": {
      "get": {
        "description": "Get all firewall objects of a company together with shared objects.\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "get-firewall-objects",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FirewallFirewallObjects"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Get firewall objects",
        "tags": [
          "Firewall"
        ]
      }
    },
    "/api/firewall/v1/companies/{company_id}/policies": {
      "get": {
        "description": "List the firewall policies of a company (metadata only, without rules).\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "list-firewall-policies",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FirewallPolicies"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "List firewall policies",
        "tags": [
          "Firewall"
        ]
      }
    },
    "/api/firewall/v1/companies/{company_id}/policies/{policy_id}": {
      "get": {
        "description": "Get a firewall policy of a company including all of its rules (forward and NAT rules).\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "get-firewall-policy",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the policy",
            "example": "1234",
            "in": "path",
            "name": "policy_id",
            "required": true,
            "schema": {
              "description": "ID of the policy",
              "examples": [
                "1234"
              ],
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FirewallFullPolicy"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Get a firewall policy",
        "tags": [
          "Firewall"
        ]
      }
    },
    "/api/firewall/v1/icmp-types": {
      "get": {
        "description": "List the IANA ICMP types and their numbers.",
        "operationId": "list-icmp-types",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FirewallICMPTypes"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "List ICMP types",
        "tags": [
          "Firewall"
        ]
      }
    },
    "/api/firewall/v1/icmp-types/{number}": {
      "get": {
        "description": "Get the IANA ICMP type with the given number.",
        "operationId": "get-icmp-type",
        "parameters": [
          {
            "description": "The number of the ICMP type",
            "example": 8,
            "in": "path",
            "name": "number",
            "required": true,
            "schema": {
              "description": "The number of the ICMP type",
              "examples": [
                8
              ],
              "format": "int64",
              "maximum": 255,
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FirewallICMPType"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Get an ICMP type",
        "tags": [
          "Firewall"
        ]
      }
    },
    "/api/firewall/v1/icmpv6-types": {
      "get": {
        "description": "List the IANA ICMPv6 types and their numbers.",
        "operationId": "list-icmpv6-types",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FirewallICMPv6Types"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "List ICMPv6 types",
        "tags": [
          "Firewall"
        ]
      }
    },
    "/api/firewall/v1/icmpv6-types/{number}": {
      "get": {
        "description": "Get the IANA ICMPv6 type with the given number.",
        "operationId": "get-icmpv6-type",
        "parameters": [
          {
            "description": "The number of the ICMPv6 type",
            "example": 128,
            "in": "path",
            "name": "number",
            "required": true,
            "schema": {
              "description": "The number of the ICMPv6 type",
              "examples": [
                128
              ],
              "format": "int64",
              "maximum": 255,
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FirewallICMPv6Type"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Get an ICMPv6 type",
        "tags": [
          "Firewall"
        ]
      }
    },
    "/api/firewall/v1/ip-protocols": {
      "get": {
        "description": "List the IANA IP protocols and their numbers.",
        "operationId": "list-ip-protocols",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FirewallIPProtocols"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "List IP protocols",
        "tags": [
          "Firewall"
        ]
      }
    },
    "/api/firewall/v1/ip-protocols/{number}": {
      "get": {
        "description": "Get the IANA IP protocol with the given number.",
        "operationId": "get-ip-protocol",
        "parameters": [
          {
            "description": "The number of the IP protocol",
            "example": 6,
            "in": "path",
            "name": "number",
            "required": true,
            "schema": {
              "description": "The number of the IP protocol",
              "examples": [
                6
              ],
              "format": "int64",
              "maximum": 255,
              "minimum": 0,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FirewallProtocol"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Get an IP protocol",
        "tags": [
          "Firewall"
        ]
      }
    },
    "/api/fleet/v1/companies/{company_id}": {
      "get": {
        "description": "Get all available information of the selected company.\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "company-detail",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FleetCompanyDetail"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Get company details",
        "tags": [
          "Fleet"
        ]
      }
    },
    "/api/fleet/v1/companies/{company_id}/hosts": {
      "get": {
        "description": "Get a list of hosts of the selected company.\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "host-list-company",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/FleetHost"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "List hosts of company",
        "tags": [
          "Fleet"
        ]
      }
    },
    "/api/fleet/v1/companies/{company_id}/services": {
      "get": {
        "description": "Get a list of services of the selected company.\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "service-list-company",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/FleetService"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "List services of company",
        "tags": [
          "Fleet"
        ]
      }
    },
    "/api/fleet/v1/companies/{company_id}/services/{service_id}/hosts": {
      "get": {
        "description": "Get a list of hosts of the selected service.\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "host-list-service",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the service",
            "example": "59061",
            "in": "path",
            "name": "service_id",
            "required": true,
            "schema": {
              "description": "ID of the service",
              "examples": [
                "59061"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/FleetHost"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "List hosts of service",
        "tags": [
          "Fleet"
        ]
      }
    },
    "/api/fleet/v1/companies/{company_id}/sites": {
      "get": {
        "description": "Get a list of sites.\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "site-list-company",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/FleetSite"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "List sites of company",
        "tags": [
          "Fleet"
        ]
      }
    },
    "/api/fleet/v1/companies/{company_id}/sites/{site_id}": {
      "get": {
        "description": "Get all available information of the selected site.\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "site-detail",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the site",
            "example": "50814",
            "in": "path",
            "name": "site_id",
            "required": true,
            "schema": {
              "description": "ID of the site",
              "examples": [
                "50814"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FleetSiteDetail"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Get site details",
        "tags": [
          "Fleet"
        ]
      }
    },
    "/api/fleet/v1/companies/{company_id}/sites/{site_id}/hosts": {
      "get": {
        "description": "Get a list of hosts at the selected site.\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "host-list-site",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the site",
            "example": "50814",
            "in": "path",
            "name": "site_id",
            "required": true,
            "schema": {
              "description": "ID of the site",
              "examples": [
                "50814"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/FleetHost"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "List hosts of site",
        "tags": [
          "Fleet"
        ]
      }
    },
    "/api/fleet/v1/hosts/{host_id}": {
      "get": {
        "description": "Get all available information of the selected host.\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "host-detail",
        "parameters": [
          {
            "description": "ID of the host",
            "example": "131190",
            "in": "path",
            "name": "host_id",
            "required": true,
            "schema": {
              "description": "ID of the host",
              "examples": [
                "131190"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FleetHostDetail"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Get host details",
        "tags": [
          "Fleet"
        ]
      }
    },
    "/api/fleet/v1/services/{service_id}": {
      "get": {
        "description": "Get all available information of the selected service.\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "service-detail",
        "parameters": [
          {
            "description": "ID of the service",
            "example": "59061",
            "in": "path",
            "name": "service_id",
            "required": true,
            "schema": {
              "description": "ID of the service",
              "examples": [
                "59061"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FleetServiceDetail"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Get service details",
        "tags": [
          "Fleet"
        ]
      }
    },
    "/api/ticketing/v1/companies/{company_id}/tickets": {
      "get": {
        "description": "List tickets based on query parameters, the returned ticket set is ordered by ticket ID\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "search-tickets",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "Tickets updated after this date/time",
            "example": "2025-06-15T12:00:00Z",
            "explode": false,
            "in": "query",
            "name": "last_update_after",
            "schema": {
              "description": "Tickets updated after this date/time",
              "examples": [
                "2025-06-15T12:00:00Z"
              ],
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Tickets with status updated after this date/time",
            "example": "2025-06-15T12:00:00Z",
            "explode": false,
            "in": "query",
            "name": "last_status_update_after",
            "schema": {
              "description": "Tickets with status updated after this date/time",
              "examples": [
                "2025-06-15T12:00:00Z"
              ],
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Ticket type filter",
            "example": [
              "incident"
            ],
            "explode": false,
            "in": "query",
            "name": "type",
            "schema": {
              "description": "Ticket type filter",
              "examples": [
                [
                  "incident"
                ]
              ],
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            }
          },
          {
            "description": "Ticket status filter",
            "example": [
              "open"
            ],
            "explode": false,
            "in": "query",
            "name": "status",
            "schema": {
              "description": "Ticket status filter",
              "examples": [
                [
                  "open"
                ]
              ],
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            }
          },
          {
            "description": "offset",
            "example": 0,
            "explode": false,
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "offset",
              "examples": [
                0
              ],
              "format": "int64",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "max number of items to return",
            "example": 20,
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 20,
              "description": "max number of items to return",
              "examples": [
                20
              ],
              "format": "int64",
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketingSearchTicketsResult"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Search tickets",
        "tags": [
          "Ticketing"
        ]
      },
      "post": {
        "description": "Create a new ticket based on the provided input\n\n**API USER ACCESS**: This endpoint requires `write` access on scope `Ticketing`.",
        "operationId": "create-ticket",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TicketingCreateTicket"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketingTicket"
                }
              }
            },
            "description": "Created"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Create a new ticket",
        "tags": [
          "Ticketing"
        ]
      }
    },
    "/api/ticketing/v1/companies/{company_id}/tickets/{ticket_id}": {
      "get": {
        "description": "Gets a ticket by ID\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "get-ticket",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the ticket",
            "example": "56789",
            "in": "path",
            "name": "ticket_id",
            "required": true,
            "schema": {
              "description": "ID of the ticket",
              "examples": [
                "56789"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketingTicket"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Gets a ticket by ID",
        "tags": [
          "Ticketing"
        ]
      },
      "patch": {
        "description": "Partially update a ticket. Only the fields provided in the request body are modified; other fields are left unchanged.\n\n**API USER ACCESS**: This endpoint requires `write` access on scope `Ticketing`.",
        "operationId": "update-ticket",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the ticket",
            "example": "56789",
            "in": "path",
            "name": "ticket_id",
            "required": true,
            "schema": {
              "description": "ID of the ticket",
              "examples": [
                "56789"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TicketingUpdateTicket"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketingTicket"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Update a ticket",
        "tags": [
          "Ticketing"
        ]
      }
    },
    "/api/ticketing/v1/companies/{company_id}/tickets/{ticket_id}/attachments": {
      "get": {
        "description": "Gets attachments for a given ticket.\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "get-attachments",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the ticket",
            "example": "56789",
            "in": "path",
            "name": "ticket_id",
            "required": true,
            "schema": {
              "description": "ID of the ticket",
              "examples": [
                "56789"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/TicketingAttachment"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Gets attachments for a ticket",
        "tags": [
          "Ticketing"
        ]
      },
      "post": {
        "description": "Uploads a file attachment to a given ticket. The attachment metadata and file content are sent as multipart/form-data.\n\n**API USER ACCESS**: This endpoint requires `write` access on scope `Ticketing`.",
        "operationId": "upload-attachment",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the ticket",
            "example": "56789",
            "in": "path",
            "name": "ticket_id",
            "required": true,
            "schema": {
              "description": "ID of the ticket",
              "examples": [
                "56789"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "The name for the uploaded file",
            "example": "network-schema.pdf",
            "explode": false,
            "in": "query",
            "name": "fileName",
            "schema": {
              "description": "The name for the uploaded file",
              "examples": [
                "network-schema.pdf"
              ],
              "maxLength": 255,
              "minLength": 4,
              "type": "string"
            }
          },
          {
            "description": "A comment to accompany the attachment",
            "example": "Network topology diagram",
            "explode": false,
            "in": "query",
            "name": "details",
            "schema": {
              "description": "A comment to accompany the attachment",
              "examples": [
                "Network topology diagram"
              ],
              "maxLength": 30000,
              "minLength": 4,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "encoding": {
                "file": {
                  "contentType": "application/octet-stream"
                }
              },
              "schema": {
                "properties": {
                  "file": {
                    "contentEncoding": "binary",
                    "contentMediaType": "application/octet-stream",
                    "description": "The file to upload",
                    "format": "binary",
                    "type": "string"
                  }
                },
                "required": [
                  "file"
                ],
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketingAttachment"
                }
              }
            },
            "description": "Created"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Uploads an attachment to a ticket",
        "tags": [
          "Ticketing"
        ]
      }
    },
    "/api/ticketing/v1/companies/{company_id}/tickets/{ticket_id}/attachments/{attachment_uuid}": {
      "get": {
        "description": "Gets the metadata of an attachment by UUID for a given ticket (file name, size, content type, etc.). This endpoint does not return the file content; use the `/download` sub-resource to retrieve the binary content. The attachment must belong to the same company as the ticket.\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "get-attachment",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the ticket",
            "example": "56789",
            "in": "path",
            "name": "ticket_id",
            "required": true,
            "schema": {
              "description": "ID of the ticket",
              "examples": [
                "56789"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "UUID of the attachment",
            "example": "550e8400-e29b-41d4-a716-446655440000",
            "in": "path",
            "name": "attachment_uuid",
            "required": true,
            "schema": {
              "description": "UUID of the attachment",
              "examples": [
                "550e8400-e29b-41d4-a716-446655440000"
              ],
              "maxLength": 36,
              "minLength": 36,
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketingAttachment"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Gets attachment metadata by UUID",
        "tags": [
          "Ticketing"
        ]
      }
    },
    "/api/ticketing/v1/companies/{company_id}/tickets/{ticket_id}/attachments/{attachment_uuid}/download": {
      "get": {
        "description": "Downloads an attachment by UUID for a given ticket. The attachment must belong to the same company as the ticket.\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "download-attachment",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the ticket",
            "example": "56789",
            "in": "path",
            "name": "ticket_id",
            "required": true,
            "schema": {
              "description": "ID of the ticket",
              "examples": [
                "56789"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "UUID of the attachment",
            "example": "550e8400-e29b-41d4-a716-446655440000",
            "in": "path",
            "name": "attachment_uuid",
            "required": true,
            "schema": {
              "description": "UUID of the attachment",
              "examples": [
                "550e8400-e29b-41d4-a716-446655440000"
              ],
              "maxLength": 36,
              "minLength": 36,
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Downloads an attachment by UUID",
        "tags": [
          "Ticketing"
        ]
      }
    },
    "/api/ticketing/v1/companies/{company_id}/tickets/{ticket_id}/change-requests": {
      "get": {
        "description": "Gets change requests by ticket ID\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "get-change-requests",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the ticket",
            "example": "56789",
            "in": "path",
            "name": "ticket_id",
            "required": true,
            "schema": {
              "description": "ID of the ticket",
              "examples": [
                "56789"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketingChangeRequestsResult"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Gets change requests by ticket ID",
        "tags": [
          "Ticketing"
        ]
      }
    },
    "/api/ticketing/v1/companies/{company_id}/tickets/{ticket_id}/change-requests/{change_request_id}": {
      "get": {
        "description": "Gets a change request by ID\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "get-change-request",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the ticket",
            "example": "56789",
            "in": "path",
            "name": "ticket_id",
            "required": true,
            "schema": {
              "description": "ID of the ticket",
              "examples": [
                "56789"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the change request",
            "example": "12345",
            "in": "path",
            "name": "change_request_id",
            "required": true,
            "schema": {
              "description": "ID of the change request",
              "examples": [
                "12345"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketingChangeRequest"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Gets a change request by ID",
        "tags": [
          "Ticketing"
        ]
      },
      "patch": {
        "description": "Partially updates a change request. Only the fields provided in the request body are modified. Currently only the `status` field is supported.\n\n**API USER ACCESS**: This endpoint requires `write` access on scope `Ticketing`.",
        "operationId": "update-change-request",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the ticket",
            "example": "56789",
            "in": "path",
            "name": "ticket_id",
            "required": true,
            "schema": {
              "description": "ID of the ticket",
              "examples": [
                "56789"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the change request",
            "example": "12345",
            "in": "path",
            "name": "change_request_id",
            "required": true,
            "schema": {
              "description": "ID of the change request",
              "examples": [
                "12345"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TicketingChangeRequestStatus"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketingChangeRequestStatus"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Updates a change request",
        "tags": [
          "Ticketing"
        ]
      }
    },
    "/api/ticketing/v1/companies/{company_id}/tickets/{ticket_id}/events": {
      "get": {
        "description": "List events based on query parameters\n\n**API USER ACCESS**: This endpoint requires `read` access.",
        "operationId": "search-events",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the ticket",
            "example": "56789",
            "in": "path",
            "name": "ticket_id",
            "required": true,
            "schema": {
              "description": "ID of the ticket",
              "examples": [
                "56789"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "Events created after this date/time",
            "example": "2025-06-15T12:00:00Z",
            "explode": false,
            "in": "query",
            "name": "created_after",
            "schema": {
              "description": "Events created after this date/time",
              "examples": [
                "2025-06-15T12:00:00Z"
              ],
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "If true, include also notification & escalation & history events. By default false",
            "example": false,
            "explode": false,
            "in": "query",
            "name": "include_all_sources",
            "schema": {
              "default": false,
              "description": "If true, include also notification & escalation & history events. By default false",
              "examples": [
                false
              ],
              "type": "boolean"
            }
          },
          {
            "description": "Event type filter",
            "example": [
              "COMMENT_FROM_CUSTOMER"
            ],
            "explode": false,
            "in": "query",
            "name": "type",
            "schema": {
              "description": "Event type filter",
              "examples": [
                [
                  "COMMENT_FROM_CUSTOMER"
                ]
              ],
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            }
          },
          {
            "description": "Offset for pagination",
            "example": 0,
            "explode": false,
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "description": "Offset for pagination",
              "examples": [
                0
              ],
              "format": "int64",
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "Maximum number of items to return for pagination",
            "example": 20,
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 20,
              "description": "Maximum number of items to return for pagination",
              "examples": [
                20
              ],
              "format": "int64",
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketingSearchEventsResult"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Search events",
        "tags": [
          "Ticketing"
        ]
      },
      "post": {
        "description": "Create a new event based on the provided input\n\n**API USER ACCESS**: This endpoint requires `write` access on scope `Ticketing`.",
        "operationId": "create-event",
        "parameters": [
          {
            "description": "ID of the company",
            "example": "37134",
            "in": "path",
            "name": "company_id",
            "required": true,
            "schema": {
              "description": "ID of the company",
              "examples": [
                "37134"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          },
          {
            "description": "ID of the ticket",
            "example": "56789",
            "in": "path",
            "name": "ticket_id",
            "required": true,
            "schema": {
              "description": "ID of the ticket",
              "examples": [
                "56789"
              ],
              "minLength": 1,
              "pattern": "^[1-9][0-9]*$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TicketingCreateEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketingEvent"
                }
              }
            },
            "description": "Created"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonProblemModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "security": [
          {
            "Bearer Token": []
          }
        ],
        "summary": "Create a new event",
        "tags": [
          "Ticketing"
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "AuthClientCredentialsGrantType": {
        "description": "OAuth 2.0 grant type identifier for the client credentials flow (RFC 6749 §4.4.2). Must be the literal string `client_credentials`.",
        "enum": [
          "client_credentials"
        ],
        "type": "string"
      },
      "AuthClientCredentialsTokenOutputBody": {
        "additionalProperties": false,
        "properties": {
          "access_token": {
            "description": "The access token issued by the Identity Provider. Opaque or JWT-encoded; clients must treat it as opaque.",
            "examples": [
              "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."
            ],
            "type": "string"
          },
          "expires_in": {
            "description": "The lifetime in seconds of the access token. After this duration the client must request a new token.",
            "examples": [
              3600
            ],
            "format": "int64",
            "type": "integer"
          },
          "scope": {
            "description": "Space-separated list of scopes actually granted with the access token (may differ from the requested scope).",
            "examples": [
              "urn:open:api:public"
            ],
            "type": "string"
          },
          "token_type": {
            "description": "The type of the token issued, as defined by RFC 6750. Always 'Bearer' for this endpoint.",
            "examples": [
              "Bearer"
            ],
            "type": "string"
          }
        },
        "required": [
          "access_token",
          "token_type",
          "expires_in"
        ],
        "type": "object"
      },
      "AuthClientCredentialsTokenRequest": {
        "properties": {
          "client_id": {
            "description": "Client identifier. Required when credentials are sent in the request body instead of the HTTP Basic `Authorization` header.",
            "type": "string"
          },
          "client_secret": {
            "description": "Client secret. Required when credentials are sent in the request body instead of the HTTP Basic `Authorization` header.",
            "type": "string"
          },
          "grant_type": {
            "$ref": "#/components/schemas/AuthClientCredentialsGrantType",
            "description": "The OAuth 2.0 grant type, per RFC 6749 §4.4.2. Must be `client_credentials`."
          },
          "scope": {
            "default": "urn:open:api:public",
            "description": "Space-separated list of requested scopes (e.g., `urn:open:api:public`).",
            "type": "string"
          }
        },
        "required": [
          "grant_type"
        ],
        "type": "object"
      },
      "CommonProblemModel": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "description": "A human-readable explanation specific to this occurrence of the problem.",
            "examples": [
              "Property foo is required but is missing."
            ],
            "type": "string"
          },
          "errors": {
            "description": "Optional list of individual validation details",
            "items": {
              "$ref": "#/components/schemas/CommonValidationDetail"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "instance": {
            "description": "A URI reference that identifies the specific occurrence of the problem.",
            "examples": [
              "https://example.com/error-log/abc123"
            ],
            "format": "uri",
            "type": "string"
          },
          "status": {
            "description": "HTTP status code",
            "examples": [
              400
            ],
            "format": "int64",
            "type": "integer"
          },
          "title": {
            "description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
            "examples": [
              "Bad Request"
            ],
            "type": "string"
          },
          "trace_id": {
            "description": "The trace ID for correlating logs and traces (format: W3C Trace Context)",
            "examples": [
              "4bf92f3577b34da6a3ce929d0e0e4736"
            ],
            "type": "string"
          },
          "type": {
            "default": "about:blank",
            "description": "A URI reference to human-readable documentation for the error.",
            "examples": [
              "https://example.com/errors/example"
            ],
            "format": "uri",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CommonValidationDetail": {
        "additionalProperties": false,
        "properties": {
          "location": {
            "description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
            "type": "string"
          },
          "message": {
            "description": "Error message text",
            "type": "string"
          },
          "value": {
            "description": "The value at the given location"
          }
        },
        "type": "object"
      },
      "SelfServiceAutomationCreator": {
        "additionalProperties": false,
        "properties": {
          "created_by": {
            "description": "The user who created the job",
            "type": "string"
          },
          "created_by_name": {
            "description": "The display name of the creator",
            "type": "string"
          }
        },
        "required": [
          "created_by",
          "created_by_name"
        ],
        "type": "object"
      },
      "ThreatProtectionBlocklistEntryInput": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "description": "The category of the threat.",
            "enum": [
              "MALWARE",
              "PHISHING",
              "SPAM",
              "PUP"
            ],
            "type": "string"
          },
          "description": {
            "description": "Description or reason for the blocklist entry.",
            "examples": [
              "Known C2 server"
            ],
            "type": "string"
          },
          "value": {
            "description": "The value to block. Expected format depends on value_type: IPV4 — a single IPv4 address (e.g. 192.168.1.1) or CIDR (e.g. 10.0.0.0/8); IPV6 — a single IPv6 address (e.g. 2001:db8::1) or CIDR; DOMAIN — a fully qualified domain name (e.g. example.com) or wildcard (e.g. *.example.com).",
            "examples": [
              "192.168.1.1"
            ],
            "type": "string"
          },
          "value_type": {
            "description": "The type of the entry.",
            "enum": [
              "IPV4",
              "IPV6",
              "DOMAIN"
            ],
            "type": "string"
          }
        },
        "required": [
          "value",
          "value_type",
          "category"
        ],
        "type": "object"
      },
      "SelfServiceChangeDateRange": {
        "additionalProperties": false,
        "properties": {
          "from": {
            "description": "Start date as a date-time in RFC 3339 format",
            "format": "date-time",
            "type": "string"
          },
          "to": {
            "description": "End date as a date-time in RFC 3339 format",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CommonChangeOutput": {
        "additionalProperties": false,
        "properties": {
          "change_id": {
            "type": "string"
          }
        },
        "required": [
          "change_id"
        ],
        "type": "object"
      },
      "SelfServiceChangePageInfo": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "description": "Number of items per page",
            "format": "int32",
            "type": "integer"
          },
          "next_cursor": {
            "description": "Cursor for next page",
            "type": "string"
          },
          "prev_cursor": {
            "description": "Cursor for previous page",
            "type": "string"
          }
        },
        "required": [
          "limit"
        ],
        "type": "object"
      },
      "SelfServiceChangeProgressSnapshotBody": {
        "additionalProperties": false,
        "properties": {
          "status": {
            "description": "The status of the change",
            "enum": [
              "RUNNING",
              "ONGOING",
              "COMPLETED",
              "FAILED",
              "WAITING"
            ],
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "type": "object"
      },
      "SelfServiceChangeSummary": {
        "additionalProperties": false,
        "properties": {
          "audit_trail_ids": {
            "description": "Associated audit trail IDs",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "change_description": {
            "description": "Description of the reason for the change",
            "examples": [
              "Updated user role as requested"
            ],
            "type": "string"
          },
          "change_id": {
            "description": "The ID of the change",
            "type": "string"
          },
          "created_at": {
            "description": "Timestamp when the change was created",
            "format": "date-time",
            "type": "string"
          },
          "creator": {
            "$ref": "#/components/schemas/SelfServiceAutomationCreator",
            "description": "Information about the creator"
          },
          "customer_reference": {
            "description": "reference for the customer ticket",
            "examples": [
              "RITM-123456"
            ],
            "minLength": 1,
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "description": "Labels associated with the change",
            "type": "object"
          },
          "message": {
            "description": "A message associated with the change",
            "type": "string"
          },
          "progress_status_counts": {
            "additionalProperties": {
              "format": "int64",
              "type": "integer"
            },
            "description": "Count of stages by progress status",
            "type": "object"
          },
          "rollout_job_group_ids": {
            "description": "Associated job group IDs",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "status": {
            "description": "The status",
            "enum": [
              "RUNNING",
              "ONGOING",
              "COMPLETED",
              "FAILED",
              "WAITING",
              "DENIED"
            ],
            "type": "string"
          },
          "terminated_at": {
            "description": "Timestamp when the change was terminated",
            "format": "date-time",
            "type": "string"
          },
          "ticket_ids": {
            "description": "Associated ticket IDs",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "use_case": {
            "description": "The self-service use case",
            "type": "string"
          }
        },
        "required": [
          "change_id",
          "status",
          "use_case",
          "creator",
          "created_at",
          "labels"
        ],
        "type": "object"
      },
      "ThreatProtectionExclusionEntryInput": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "description": "Description or reason for the exclusion.",
            "examples": [
              "Allow traffic from monitoring system"
            ],
            "type": "string"
          },
          "value": {
            "description": "The value to exclude. Expected format depends on value_type: IPV4 — a single IPv4 address (e.g. 192.168.1.1) or CIDR (e.g. 10.0.0.0/8); IPV6 — a single IPv6 address (e.g. 2001:db8::1) or CIDR; DOMAIN — a fully qualified domain name (e.g. example.com) or wildcard (e.g. *.example.com); URL — a full URL including scheme (e.g. https://example.com/path).",
            "examples": [
              "192.168.1.1"
            ],
            "type": "string"
          },
          "value_type": {
            "description": "The type of the entry.",
            "enum": [
              "IPV4",
              "IPV6",
              "DOMAIN",
              "URL"
            ],
            "type": "string"
          }
        },
        "required": [
          "value",
          "value_type"
        ],
        "type": "object"
      },
      "SelfServiceFindChangesBody": {
        "additionalProperties": false,
        "properties": {
          "changes": {
            "description": "List of matching changes",
            "items": {
              "$ref": "#/components/schemas/SelfServiceChangeSummary"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "$ref": "#/components/schemas/SelfServiceChangePageInfo",
            "description": "Pagination information"
          }
        },
        "required": [
          "changes",
          "pagination"
        ],
        "type": "object"
      },
      "SelfServiceFindChangesSearchBody": {
        "additionalProperties": false,
        "properties": {
          "change_description": {
            "description": "Filter by change description",
            "type": "string"
          },
          "change_id": {
            "description": "Filter by change ID",
            "type": "string"
          },
          "company_id": {
            "description": "ID of the company",
            "examples": [
              "37134"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          },
          "created_at": {
            "$ref": "#/components/schemas/SelfServiceChangeDateRange",
            "description": "Filter by creation date range"
          },
          "created_by": {
            "description": "Filter by creator. Use 'mc' for changes created by Mission Control",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "customer_reference": {
            "description": "Filter by customer reference",
            "type": "string"
          },
          "pagination": {
            "$ref": "#/components/schemas/SelfServicePageRequest",
            "description": "Pagination information"
          },
          "rollout_job_group_id": {
            "description": "Filter by job group ID",
            "type": "string"
          },
          "status": {
            "description": "Filter by status",
            "items": {
              "enum": [
                "RUNNING",
                "ONGOING",
                "COMPLETED",
                "FAILED",
                "WAITING",
                "DENIED"
              ],
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "terminated_at": {
            "$ref": "#/components/schemas/SelfServiceChangeDateRange",
            "description": "Filter by termination date range"
          },
          "ticket_id": {
            "description": "ID of the ticket",
            "examples": [
              "56789"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          },
          "use_case": {
            "description": "Filter by use case",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SecurityInvestigationsInvestigationSummary": {
        "additionalProperties": false,
        "properties": {
          "monitored_hosts_affected": {
            "description": "Number of monitored hosts that are affected by the change",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "monitored_hosts_affected"
        ],
        "type": "object"
      },
      "SecurityInvestigationsIsolationSettings": {
        "additionalProperties": false,
        "properties": {
          "expiry_date": {
            "description": "Optional expiration date for isolation (ISO 8601, RFC3339 format)",
            "examples": [
              "2026-03-20T00:00:00Z"
            ],
            "format": "date-time",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$",
            "type": "string"
          },
          "scope": {
            "description": "The scope type for isolation",
            "enum": [
              "COMPANY",
              "COMPANY_UNIT",
              "SERVICE"
            ],
            "examples": [
              "COMPANY"
            ],
            "type": "string"
          },
          "scope_id": {
            "description": "The scope identifier (company ID, company unit name, or service name)",
            "examples": [
              "your_company_id"
            ],
            "type": "string"
          }
        },
        "required": [
          "scope",
          "scope_id"
        ],
        "type": "object"
      },
      "SecurityInvestigationsModifyInvestigationEntry": {
        "additionalProperties": false,
        "properties": {
          "comment": {
            "description": "Optional comment when modifying the investigation",
            "examples": [
              "resolving investigation due to false positive"
            ],
            "maxLength": 1024,
            "type": "string"
          },
          "finding": {
            "description": "The investigation finding (required when status is RESOLVE)",
            "enum": [
              "UNKNOWN_ACTIVITY",
              "SCANNING_ACTIVITY",
              "DENIAL_OF_SERVICE",
              "POLICY_VIOLATION",
              "INFECTION",
              "FALSE_POSITIVE",
              "OTHER_MALICIOUS",
              "NO_ACTION_REQUIRED"
            ],
            "examples": [
              "FALSE_POSITIVE"
            ],
            "type": "string"
          },
          "ip": {
            "description": "The IP address of the host (IPv4 or IPv6)",
            "examples": [
              "10.0.0.1"
            ],
            "format": "ipv4/ipv6",
            "minLength": 1,
            "pattern": "^((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}|(([0-9A-Fa-f]{1,4}:){1,7}[0-9A-Fa-f]{1,4}|::1|::))$",
            "type": "string"
          },
          "isolation": {
            "$ref": "#/components/schemas/SecurityInvestigationsIsolationSettings",
            "description": "Isolation settings (required when status is ISOLATE)"
          },
          "namespace": {
            "description": "The namespace of the host",
            "examples": [
              "default"
            ],
            "minLength": 1,
            "type": "string"
          },
          "status": {
            "description": "The investigation status to set",
            "enum": [
              "ISOLATED",
              "RESOLVED",
              "ONGOING"
            ],
            "examples": [
              "RESOLVED"
            ],
            "type": "string"
          }
        },
        "required": [
          "namespace",
          "ip",
          "status"
        ],
        "type": "object"
      },
      "SecurityInvestigationsModifyInvestigationsBody": {
        "additionalProperties": false,
        "properties": {
          "change_description": {
            "description": "Description of the reason for the change",
            "examples": [
              "Updated user role as requested"
            ],
            "type": "string"
          },
          "customer_reference": {
            "description": "reference for the customer ticket",
            "examples": [
              "RITM-123456"
            ],
            "minLength": 1,
            "type": "string"
          },
          "investigations": {
            "description": "List of investigations to modify",
            "items": {
              "$ref": "#/components/schemas/SecurityInvestigationsModifyInvestigationEntry"
            },
            "minItems": 1,
            "type": "array"
          },
          "ticket_id": {
            "description": "ID of the ticket",
            "examples": [
              "56789"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          }
        },
        "required": [
          "investigations"
        ],
        "type": "object"
      },
      "SelfServicePageRequest": {
        "additionalProperties": false,
        "properties": {
          "cursor": {
            "description": "Cursor for pagination",
            "type": "string"
          },
          "limit": {
            "default": 50,
            "description": "Number of items per page",
            "format": "int32",
            "maximum": 1000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "limit"
        ],
        "type": "object"
      },
      "CommonProblemDetail": {
        "additionalProperties": false,
        "properties": {
          "location": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "value": {}
        },
        "required": [
          "location",
          "message"
        ],
        "type": "object"
      },
      "ThreatProtectionTPCreateBlocklistEntry": {
        "additionalProperties": false,
        "properties": {
          "change_description": {
            "description": "Description of the reason for the change",
            "examples": [
              "Updated user role as requested"
            ],
            "type": "string"
          },
          "customer_reference": {
            "description": "reference for the customer ticket",
            "examples": [
              "RITM-123456"
            ],
            "minLength": 1,
            "type": "string"
          },
          "entries": {
            "description": "List of blocklist entries to be created",
            "items": {
              "$ref": "#/components/schemas/ThreatProtectionBlocklistEntryInput"
            },
            "maxItems": 1000,
            "minItems": 1,
            "type": [
              "array",
              "null"
            ]
          },
          "ticket_id": {
            "description": "ID of the ticket",
            "examples": [
              "56789"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          }
        },
        "required": [
          "entries"
        ],
        "type": "object"
      },
      "ThreatProtectionTPCreateExclusionEntry": {
        "additionalProperties": false,
        "properties": {
          "change_description": {
            "description": "Description of the reason for the change",
            "examples": [
              "Updated user role as requested"
            ],
            "type": "string"
          },
          "customer_reference": {
            "description": "reference for the customer ticket",
            "examples": [
              "RITM-123456"
            ],
            "minLength": 1,
            "type": "string"
          },
          "entries": {
            "description": "List of exclusion entries to be created",
            "items": {
              "$ref": "#/components/schemas/ThreatProtectionExclusionEntryInput"
            },
            "maxItems": 1000,
            "minItems": 1,
            "type": [
              "array",
              "null"
            ]
          },
          "ticket_id": {
            "description": "ID of the ticket",
            "examples": [
              "56789"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          }
        },
        "required": [
          "entries"
        ],
        "type": "object"
      },
      "ThreatProtectionTPDeleteBlocklistEntries": {
        "additionalProperties": false,
        "properties": {
          "change_description": {
            "description": "Description of the reason for the change",
            "examples": [
              "Updated user role as requested"
            ],
            "type": "string"
          },
          "customer_reference": {
            "description": "reference for the customer ticket",
            "examples": [
              "RITM-123456"
            ],
            "minLength": 1,
            "type": "string"
          },
          "entry_ids": {
            "description": "List of blocklist entry IDs to be deleted",
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "type": [
              "array",
              "null"
            ]
          },
          "ticket_id": {
            "description": "ID of the ticket",
            "examples": [
              "56789"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          }
        },
        "required": [
          "entry_ids"
        ],
        "type": "object"
      },
      "ThreatProtectionTPDeleteExclusionEntries": {
        "additionalProperties": false,
        "properties": {
          "change_description": {
            "description": "Description of the reason for the change",
            "examples": [
              "Updated user role as requested"
            ],
            "type": "string"
          },
          "customer_reference": {
            "description": "reference for the customer ticket",
            "examples": [
              "RITM-123456"
            ],
            "minLength": 1,
            "type": "string"
          },
          "entry_ids": {
            "description": "List of exclusion entry IDs to be deleted",
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "type": [
              "array",
              "null"
            ]
          },
          "ticket_id": {
            "description": "ID of the ticket",
            "examples": [
              "56789"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          }
        },
        "required": [
          "entry_ids"
        ],
        "type": "object"
      },
      "ThreatProtectionTPModifyEntry": {
        "additionalProperties": false,
        "properties": {
          "change_description": {
            "description": "Description of the reason for the change",
            "examples": [
              "Updated user role as requested"
            ],
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/ThreatProtectionTPModifyEntryData",
            "description": "The entry fields to modify."
          },
          "ticket_id": {
            "description": "ID of the ticket",
            "examples": [
              "56789"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "ThreatProtectionTPModifyEntryData": {
        "additionalProperties": false,
        "properties": {
          "customer_reference": {
            "description": "Updated customer internal reference.",
            "examples": [
              "RITM-123456"
            ],
            "minLength": 1,
            "type": "string"
          },
          "description": {
            "description": "Updated description or reason for the entry.",
            "examples": [
              "Updated reason for entry"
            ],
            "type": "string"
          },
          "value": {
            "description": "Updated threat indicator value (IP address, domain, etc.).",
            "examples": [
              "10.0.0.0/8"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "SecurityInvestigationsndrInvestigationError": {
        "additionalProperties": false,
        "type": "object"
      },
      "SecurityInvestigationsndrInvestigationErrorProblem": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "type": "string"
          },
          "errors": {
            "items": {
              "$ref": "#/components/schemas/CommonProblemDetail"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "extended": {
            "$ref": "#/components/schemas/SecurityInvestigationsndrInvestigationError"
          },
          "instance": {
            "type": "string"
          },
          "status": {
            "format": "int64",
            "type": "integer"
          },
          "title": {
            "type": "string"
          },
          "trace_id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type",
          "title",
          "status"
        ],
        "type": "object"
      },
      "SecurityInvestigationsndrInvestigationValidation": {
        "additionalProperties": false,
        "properties": {
          "summary": {
            "$ref": "#/components/schemas/SecurityInvestigationsInvestigationSummary",
            "description": "Summary of the investigation operation"
          }
        },
        "required": [
          "summary"
        ],
        "type": "object"
      },
      "ThreatProtectionthreat-protectionError": {
        "additionalProperties": false,
        "properties": {
          "message": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ThreatProtectionthreat-protectionErrorProblem": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "type": "string"
          },
          "errors": {
            "items": {
              "$ref": "#/components/schemas/CommonProblemDetail"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "extended": {
            "$ref": "#/components/schemas/ThreatProtectionthreat-protectionError"
          },
          "instance": {
            "type": "string"
          },
          "status": {
            "format": "int64",
            "type": "integer"
          },
          "title": {
            "type": "string"
          },
          "trace_id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type",
          "title",
          "status"
        ],
        "type": "object"
      },
      "ThreatProtectionthreat-protectionValidation": {
        "additionalProperties": false,
        "type": "object"
      },
      "FirewallAddr4": {
        "additionalProperties": false,
        "properties": {
          "address": {
            "description": "The IPv4 address",
            "examples": [
              "192.0.2.1"
            ],
            "type": "string"
          },
          "comments": {
            "description": "Optional extra comments",
            "examples": [
              "The web server is going to be deployed in a week."
            ],
            "type": "string"
          },
          "description": {
            "description": "Optional description of the object",
            "examples": [
              "The web server for the new office"
            ],
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "is_shared": {
            "description": "Whether this object is available to all Open Systems customers",
            "examples": [
              false
            ],
            "type": "boolean"
          },
          "label": {
            "description": "Human-readable label of the object",
            "examples": [
              "IP 'web-server' [123]"
            ],
            "type": "string"
          },
          "name": {
            "description": "Descriptive name of the object",
            "examples": [
              "web-server"
            ],
            "type": "string"
          },
          "version": {
            "description": "Version of the object, incremented after every update",
            "examples": [
              3
            ],
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "label",
          "version",
          "is_shared",
          "address"
        ],
        "type": "object"
      },
      "FirewallAddr6": {
        "additionalProperties": false,
        "properties": {
          "address": {
            "description": "The IPv6 address",
            "examples": [
              "2001:db8::1"
            ],
            "type": "string"
          },
          "comments": {
            "description": "Optional extra comments",
            "examples": [
              "The web server is going to be deployed in a week."
            ],
            "type": "string"
          },
          "description": {
            "description": "Optional description of the object",
            "examples": [
              "The web server for the new office"
            ],
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "is_shared": {
            "description": "Whether this object is available to all Open Systems customers",
            "examples": [
              false
            ],
            "type": "boolean"
          },
          "label": {
            "description": "Human-readable label of the object",
            "examples": [
              "IP 'web-server' [123]"
            ],
            "type": "string"
          },
          "name": {
            "description": "Descriptive name of the object",
            "examples": [
              "web-server"
            ],
            "type": "string"
          },
          "version": {
            "description": "Version of the object, incremented after every update",
            "examples": [
              3
            ],
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "label",
          "version",
          "is_shared",
          "address"
        ],
        "type": "object"
      },
      "FirewallApplicationGroup": {
        "additionalProperties": false,
        "properties": {
          "comments": {
            "description": "Optional extra comments",
            "examples": [
              "Use this application group rather than individual Microsoft apps."
            ],
            "type": "string"
          },
          "description": {
            "description": "Optional description of the group",
            "examples": [
              "The group of all Microsoft apps"
            ],
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "is_shared": {
            "description": "Whether this object is available to all Open Systems customers",
            "examples": [
              false
            ],
            "type": "boolean"
          },
          "label": {
            "description": "Human-readable label of the group",
            "examples": [
              "Application Group 'Microsoft Apps' [123]"
            ],
            "type": "string"
          },
          "members": {
            "description": "Members of the group",
            "items": {
              "$ref": "#/components/schemas/FirewallApplicationGroupMember"
            },
            "type": "array"
          },
          "name": {
            "description": "Name of the group",
            "examples": [
              "Microsoft Apps"
            ],
            "type": "string"
          },
          "version": {
            "description": "Version of the object, incremented after every update",
            "examples": [
              3
            ],
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "label",
          "version",
          "is_shared",
          "members"
        ],
        "type": "object"
      },
      "FirewallApplicationGroupMember": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique ID of the member object",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "type": {
            "description": "Type of the member object",
            "examples": [
              "APP_GROUP"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "type": "object"
      },
      "FirewallDNS": {
        "additionalProperties": false,
        "properties": {
          "comments": {
            "description": "Optional extra comments",
            "examples": [
              "The FQDN will be usable in a week."
            ],
            "type": "string"
          },
          "description": {
            "description": "Optional description of the object",
            "examples": [
              "The FQDN of the website"
            ],
            "type": "string"
          },
          "domain": {
            "description": "The DNS domain",
            "examples": [
              "example.com"
            ],
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "is_shared": {
            "description": "Whether this object is available to all Open Systems customers",
            "examples": [
              false
            ],
            "type": "boolean"
          },
          "label": {
            "description": "Human-readable label of the object",
            "examples": [
              "FQDN 'example.com' [123]"
            ],
            "type": "string"
          },
          "version": {
            "description": "Version of the object, incremented after every update",
            "examples": [
              3
            ],
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "label",
          "version",
          "is_shared",
          "domain"
        ],
        "type": "object"
      },
      "FirewallDestinationNATRule": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "description": "NAT action of the rule",
            "enum": [
              "ORIGINAL",
              "HIDE",
              "NAT"
            ],
            "examples": [
              "NAT"
            ],
            "type": "string"
          },
          "comments": {
            "description": "Optional extra comments",
            "examples": [
              "This rule was enabled last week."
            ],
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the rule",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "is_disabled": {
            "description": "Whether the rule is disabled",
            "type": "boolean"
          },
          "label": {
            "description": "Human-readable label of the rule",
            "examples": [
              "DNAT rule 'dnat-web' [123]"
            ],
            "type": "string"
          },
          "log": {
            "description": "Log target of the rule",
            "enum": [
              "NONE",
              "DEBUG",
              "PERMANENT"
            ],
            "examples": [
              "PERMANENT"
            ],
            "type": "string"
          },
          "name": {
            "description": "Name of the rule",
            "examples": [
              "dnat-web"
            ],
            "type": "string"
          },
          "next_id": {
            "description": "ID of the next rule in sequence. Not present if this is the last rule in the section.",
            "examples": [
              "789"
            ],
            "type": "string"
          },
          "original_destination": {
            "$ref": "#/components/schemas/FirewallRuleDestination",
            "description": "Original destination matcher, before translation"
          },
          "original_service": {
            "$ref": "#/components/schemas/FirewallRuleService",
            "description": "Original service matcher, before translation"
          },
          "original_source": {
            "$ref": "#/components/schemas/FirewallRuleSource",
            "description": "Original source matcher, before translation"
          },
          "src_zones": {
            "description": "Source zones",
            "items": {
              "$ref": "#/components/schemas/FirewallZone"
            },
            "type": "array"
          },
          "ticket_ids": {
            "description": "IDs of tickets associated with the rule",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "translated_destination": {
            "$ref": "#/components/schemas/FirewallRuleDestination",
            "description": "Translated destination matcher. Present only for action 'NAT'."
          },
          "translated_service": {
            "$ref": "#/components/schemas/FirewallRuleService",
            "description": "Translated service matcher. When absent, the original service is kept."
          },
          "version": {
            "description": "Version of the rule, incremented after every update",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "label",
          "version",
          "is_disabled",
          "action",
          "log",
          "src_zones",
          "original_source",
          "original_destination",
          "original_service"
        ],
        "type": "object"
      },
      "FirewallDestinationNATSection": {
        "additionalProperties": false,
        "properties": {
          "rules": {
            "description": "Destination NAT rules in this section",
            "items": {
              "$ref": "#/components/schemas/FirewallDestinationNATRule"
            },
            "type": "array"
          },
          "service_id": {
            "description": "Service ID of the section. Not present for global sections.",
            "examples": [
              "123456"
            ],
            "type": "string"
          }
        },
        "required": [
          "rules"
        ],
        "type": "object"
      },
      "FirewallDestinationNATSections": {
        "additionalProperties": false,
        "properties": {
          "global": {
            "$ref": "#/components/schemas/FirewallDestinationNATSection",
            "description": "Global Destination NAT section. Always present."
          },
          "local": {
            "description": "Local Destination NAT sections",
            "items": {
              "$ref": "#/components/schemas/FirewallDestinationNATSection"
            },
            "type": "array"
          },
          "local_override": {
            "description": "Local override Destination NAT sections",
            "items": {
              "$ref": "#/components/schemas/FirewallDestinationNATSection"
            },
            "type": "array"
          }
        },
        "required": [
          "global",
          "local",
          "local_override"
        ],
        "type": "object"
      },
      "FirewallFirewallObjects": {
        "additionalProperties": false,
        "properties": {
          "addr4s": {
            "description": "IPv4 address objects",
            "items": {
              "$ref": "#/components/schemas/FirewallAddr4"
            },
            "type": "array"
          },
          "addr6s": {
            "description": "IPv6 address objects",
            "items": {
              "$ref": "#/components/schemas/FirewallAddr6"
            },
            "type": "array"
          },
          "app_groups": {
            "description": "Application groups",
            "items": {
              "$ref": "#/components/schemas/FirewallApplicationGroup"
            },
            "type": "array"
          },
          "fqdns": {
            "description": "DNS (FQDN) objects",
            "items": {
              "$ref": "#/components/schemas/FirewallDNS"
            },
            "type": "array"
          },
          "ip_groups": {
            "description": "IP groups",
            "items": {
              "$ref": "#/components/schemas/FirewallIPGroup"
            },
            "type": "array"
          },
          "ip_services": {
            "description": "IP service objects",
            "items": {
              "$ref": "#/components/schemas/FirewallIPService"
            },
            "type": "array"
          },
          "net4s": {
            "description": "IPv4 network objects",
            "items": {
              "$ref": "#/components/schemas/FirewallNet4"
            },
            "type": "array"
          },
          "net6s": {
            "description": "IPv6 network objects",
            "items": {
              "$ref": "#/components/schemas/FirewallNet6"
            },
            "type": "array"
          },
          "scoped_ip_groups": {
            "description": "Scoped IP groups",
            "items": {
              "$ref": "#/components/schemas/FirewallScopedIPGroup"
            },
            "type": "array"
          },
          "service_groups": {
            "description": "Service groups",
            "items": {
              "$ref": "#/components/schemas/FirewallServiceGroup"
            },
            "type": "array"
          }
        },
        "required": [
          "addr4s",
          "addr6s",
          "net4s",
          "net6s",
          "fqdns",
          "ip_services",
          "ip_groups",
          "scoped_ip_groups",
          "service_groups",
          "app_groups"
        ],
        "type": "object"
      },
      "FirewallForwardRule": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "description": "Action of the rule",
            "enum": [
              "ACCEPT",
              "REJECT",
              "DROP"
            ],
            "examples": [
              "ACCEPT"
            ],
            "type": "string"
          },
          "application": {
            "$ref": "#/components/schemas/FirewallRuleApplication",
            "description": "Application matcher. Only present for application-based rules."
          },
          "comments": {
            "description": "Optional extra comments",
            "examples": [
              "This rule was enabled last week."
            ],
            "type": "string"
          },
          "destination": {
            "$ref": "#/components/schemas/FirewallRuleDestination",
            "description": "Destination matcher. Not present for application-based rules."
          },
          "id": {
            "description": "Unique ID of the rule",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "is_disabled": {
            "description": "Whether the rule is disabled",
            "examples": [
              false
            ],
            "type": "boolean"
          },
          "label": {
            "description": "Human-readable label of the rule",
            "examples": [
              "Rule 'allow-web' [123]"
            ],
            "type": "string"
          },
          "log": {
            "description": "Log target of the rule",
            "enum": [
              "NONE",
              "DEBUG",
              "PERMANENT"
            ],
            "examples": [
              "PERMANENT"
            ],
            "type": "string"
          },
          "name": {
            "description": "Name of the rule",
            "examples": [
              "allow-web"
            ],
            "type": "string"
          },
          "next_id": {
            "description": "ID of the next rule in sequence. Not present if this is the last rule in the subsection.",
            "examples": [
              "789"
            ],
            "type": "string"
          },
          "sequence_number": {
            "description": "Position of the rule within its subsection",
            "examples": [
              10
            ],
            "format": "int64",
            "type": "integer"
          },
          "service": {
            "$ref": "#/components/schemas/FirewallRuleService",
            "description": "Service matcher. Not present for application-based rules."
          },
          "source": {
            "$ref": "#/components/schemas/FirewallRuleSource",
            "description": "Source matcher"
          },
          "ticket_ids": {
            "description": "IDs of tickets associated with the rule",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "version": {
            "description": "Version of the rule, incremented after every update",
            "examples": [
              3
            ],
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "label",
          "version",
          "action",
          "is_disabled",
          "log",
          "sequence_number",
          "source"
        ],
        "type": "object"
      },
      "FirewallForwardSection": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "description": "Default action if no rule matches",
            "enum": [
              "ACCEPT",
              "REJECT",
              "DROP"
            ],
            "examples": [
              "DROP"
            ],
            "type": "string"
          },
          "dst_zone": {
            "$ref": "#/components/schemas/FirewallZone",
            "description": "Destination zone"
          },
          "global": {
            "$ref": "#/components/schemas/FirewallForwardSubsection",
            "description": "Global rules subsection. Always present."
          },
          "id": {
            "description": "Unique ID of the section",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "label": {
            "description": "Human-readable label of the section",
            "examples": [
              "Section 'LAN -> EXTERNAL' [123]"
            ],
            "type": "string"
          },
          "local": {
            "description": "Local rules subsections",
            "items": {
              "$ref": "#/components/schemas/FirewallForwardSubsection"
            },
            "type": "array"
          },
          "local_override": {
            "description": "Local override rules subsections",
            "items": {
              "$ref": "#/components/schemas/FirewallForwardSubsection"
            },
            "type": "array"
          },
          "log": {
            "description": "Default log target if no rule matches",
            "enum": [
              "NONE",
              "DEBUG",
              "PERMANENT"
            ],
            "examples": [
              "NONE"
            ],
            "type": "string"
          },
          "name": {
            "description": "Name of the section",
            "examples": [
              "LAN -> EXTERNAL"
            ],
            "type": "string"
          },
          "src_zone": {
            "$ref": "#/components/schemas/FirewallZone",
            "description": "Source zone"
          },
          "version": {
            "description": "Version of the section, incremented after every update",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "label",
          "version",
          "action",
          "log",
          "src_zone",
          "dst_zone",
          "global",
          "local",
          "local_override"
        ],
        "type": "object"
      },
      "FirewallForwardSubsection": {
        "additionalProperties": false,
        "properties": {
          "rules": {
            "description": "Forward rules in this subsection",
            "items": {
              "$ref": "#/components/schemas/FirewallForwardRule"
            },
            "type": "array"
          },
          "service_id": {
            "description": "Service ID of this subsection. Not present for global subsections.",
            "examples": [
              "123456"
            ],
            "type": "string"
          }
        },
        "required": [
          "rules"
        ],
        "type": "object"
      },
      "FirewallFullPolicy": {
        "additionalProperties": false,
        "properties": {
          "policy": {
            "$ref": "#/components/schemas/FirewallPolicyDetail",
            "description": "Firewall policy including its rules"
          }
        },
        "required": [
          "policy"
        ],
        "type": "object"
      },
      "FirewallICMPType": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "description": "The official ICMP type name",
            "examples": [
              "Echo"
            ],
            "type": "string"
          },
          "number": {
            "description": "The official ICMP type number",
            "examples": [
              8
            ],
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "number",
          "name"
        ],
        "type": "object"
      },
      "FirewallICMPTypes": {
        "additionalProperties": false,
        "properties": {
          "icmp_types": {
            "description": "IANA ICMP types",
            "items": {
              "$ref": "#/components/schemas/FirewallICMPType"
            },
            "type": "array"
          }
        },
        "required": [
          "icmp_types"
        ],
        "type": "object"
      },
      "FirewallICMPv6Type": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "description": "The official ICMPv6 type name",
            "examples": [
              "Echo Request"
            ],
            "type": "string"
          },
          "number": {
            "description": "The official ICMPv6 type number",
            "examples": [
              128
            ],
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "number",
          "name"
        ],
        "type": "object"
      },
      "FirewallICMPv6Types": {
        "additionalProperties": false,
        "properties": {
          "icmpv6_types": {
            "description": "IANA ICMPv6 types",
            "items": {
              "$ref": "#/components/schemas/FirewallICMPv6Type"
            },
            "type": "array"
          }
        },
        "required": [
          "icmpv6_types"
        ],
        "type": "object"
      },
      "FirewallIPGroup": {
        "additionalProperties": false,
        "properties": {
          "comments": {
            "description": "Optional extra comments",
            "examples": [
              "The webservers in this group are going to be deployed next week."
            ],
            "type": "string"
          },
          "description": {
            "description": "Optional description of the group",
            "examples": [
              "The group of all web servers"
            ],
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "is_shared": {
            "description": "Whether this object is available to all Open Systems customers",
            "examples": [
              false
            ],
            "type": "boolean"
          },
          "label": {
            "description": "Human-readable label of the group",
            "examples": [
              "IP Group 'webservers' [123]"
            ],
            "type": "string"
          },
          "members": {
            "description": "Members of the group",
            "items": {
              "$ref": "#/components/schemas/FirewallIPGroupMember"
            },
            "type": "array"
          },
          "name": {
            "description": "Name of the group",
            "examples": [
              "webservers"
            ],
            "type": "string"
          },
          "version": {
            "description": "Version of the object, incremented after every update",
            "examples": [
              3
            ],
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "label",
          "version",
          "is_shared",
          "members"
        ],
        "type": "object"
      },
      "FirewallIPGroupMember": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique ID of the member object",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "is_subtracted": {
            "description": "Whether the member is subtracted from the group",
            "type": "boolean"
          },
          "scope": {
            "description": "For scoped IP group members; how the scoped IP group is included",
            "examples": [
              "INSTALLATION"
            ],
            "type": "string"
          },
          "service_id": {
            "description": "For scoped IP group members; the service ID when service scope is SPECIFIC",
            "type": "string"
          },
          "type": {
            "description": "Type of the member object",
            "examples": [
              "ADDR4"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "is_subtracted"
        ],
        "type": "object"
      },
      "FirewallIPProtocols": {
        "additionalProperties": false,
        "properties": {
          "ip_protocols": {
            "description": "IANA IP protocols",
            "items": {
              "$ref": "#/components/schemas/FirewallProtocol"
            },
            "type": "array"
          }
        },
        "required": [
          "ip_protocols"
        ],
        "type": "object"
      },
      "FirewallIPService": {
        "additionalProperties": false,
        "properties": {
          "comments": {
            "description": "Optional extra comments",
            "examples": [
              "Use this service instead of the old one."
            ],
            "type": "string"
          },
          "description": {
            "description": "Optional description of the object",
            "examples": [
              "The HTTPS service"
            ],
            "type": "string"
          },
          "icmp6_type": {
            "description": "ICMPv6 type",
            "format": "int64",
            "type": "integer"
          },
          "icmp_code": {
            "description": "ICMP code",
            "format": "int64",
            "type": "integer"
          },
          "icmp_type": {
            "description": "ICMP type",
            "format": "int64",
            "type": "integer"
          },
          "id": {
            "description": "Unique ID of the object",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "is_shared": {
            "description": "Whether this object is available to all Open Systems customers",
            "examples": [
              false
            ],
            "type": "boolean"
          },
          "label": {
            "description": "Human-readable label of the object",
            "examples": [
              "IP Service 'https' [123]"
            ],
            "type": "string"
          },
          "name": {
            "description": "Descriptive name of the object",
            "examples": [
              "https"
            ],
            "type": "string"
          },
          "port_from": {
            "description": "Start of the port range",
            "examples": [
              443
            ],
            "format": "int64",
            "type": "integer"
          },
          "port_to": {
            "description": "End of the port range",
            "examples": [
              443
            ],
            "format": "int64",
            "type": "integer"
          },
          "protocol": {
            "$ref": "#/components/schemas/FirewallProtocol",
            "description": "The IP protocol of the service"
          },
          "version": {
            "description": "Version of the object, incremented after every update",
            "examples": [
              3
            ],
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "label",
          "version",
          "is_shared",
          "protocol"
        ],
        "type": "object"
      },
      "FirewallNATSections": {
        "additionalProperties": false,
        "properties": {
          "dnat": {
            "$ref": "#/components/schemas/FirewallDestinationNATSections",
            "description": "Destination NAT sections"
          },
          "snat": {
            "$ref": "#/components/schemas/FirewallSourceNATSections",
            "description": "Source NAT sections"
          }
        },
        "required": [
          "snat",
          "dnat"
        ],
        "type": "object"
      },
      "FirewallNet4": {
        "additionalProperties": false,
        "properties": {
          "comments": {
            "description": "Optional extra comments",
            "examples": [
              "The network will start being used in a week."
            ],
            "type": "string"
          },
          "description": {
            "description": "Optional description of the object",
            "examples": [
              "The network for the new office"
            ],
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "is_shared": {
            "description": "Whether this object is available to all Open Systems customers",
            "examples": [
              false
            ],
            "type": "boolean"
          },
          "label": {
            "description": "Human-readable label of the object",
            "examples": [
              "Network 'office-net' [123]"
            ],
            "type": "string"
          },
          "name": {
            "description": "Descriptive name of the object",
            "examples": [
              "office-net"
            ],
            "type": "string"
          },
          "network": {
            "description": "The IPv4 network in CIDR notation",
            "examples": [
              "192.0.2.0/24"
            ],
            "type": "string"
          },
          "version": {
            "description": "Version of the object, incremented after every update",
            "examples": [
              3
            ],
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "label",
          "version",
          "is_shared",
          "network"
        ],
        "type": "object"
      },
      "FirewallNet6": {
        "additionalProperties": false,
        "properties": {
          "comments": {
            "description": "Optional extra comments",
            "examples": [
              "The network will start being used in a week."
            ],
            "type": "string"
          },
          "description": {
            "description": "Optional description of the object",
            "examples": [
              "The network for the new office"
            ],
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "is_shared": {
            "description": "Whether this object is available to all Open Systems customers",
            "examples": [
              false
            ],
            "type": "boolean"
          },
          "label": {
            "description": "Human-readable label of the object",
            "examples": [
              "Network 'office-net' [123]"
            ],
            "type": "string"
          },
          "name": {
            "description": "Descriptive name of the object",
            "examples": [
              "office-net"
            ],
            "type": "string"
          },
          "network": {
            "description": "The IPv6 network in CIDR notation",
            "examples": [
              "2001:db8::/32"
            ],
            "type": "string"
          },
          "version": {
            "description": "Version of the object, incremented after every update",
            "examples": [
              3
            ],
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "label",
          "version",
          "is_shared",
          "network"
        ],
        "type": "object"
      },
      "FirewallPolicies": {
        "additionalProperties": false,
        "properties": {
          "policies": {
            "description": "Firewall policies (metadata only)",
            "items": {
              "$ref": "#/components/schemas/FirewallPolicyMetadata"
            },
            "type": "array"
          }
        },
        "required": [
          "policies"
        ],
        "type": "object"
      },
      "FirewallPolicyDetail": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "description": "Optional description of the policy",
            "examples": [
              "The main FW policy"
            ],
            "type": "string"
          },
          "forward_sections": {
            "description": "Forward sections of the policy",
            "items": {
              "$ref": "#/components/schemas/FirewallForwardSection"
            },
            "type": "array"
          },
          "has_app_filtering": {
            "description": "Whether application-based filtering is supported",
            "type": "boolean"
          },
          "id": {
            "description": "Unique ID of the policy",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "is_dpi_enabled": {
            "description": "Whether DPI apps may be used for app filtering",
            "examples": [
              false
            ],
            "type": "boolean"
          },
          "label": {
            "description": "Human-readable label of the policy",
            "examples": [
              "Policy 'my-vpn' [123]"
            ],
            "type": "string"
          },
          "name": {
            "description": "Name of the policy",
            "examples": [
              "my-vpn"
            ],
            "type": "string"
          },
          "nat_sections": {
            "$ref": "#/components/schemas/FirewallNATSections",
            "description": "NAT sections of the policy"
          },
          "version": {
            "description": "Version of the policy, incremented after every update",
            "examples": [
              7
            ],
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "forward_sections",
          "nat_sections",
          "id",
          "name",
          "label",
          "has_app_filtering",
          "is_dpi_enabled",
          "version"
        ],
        "type": "object"
      },
      "FirewallPolicyMetadata": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "description": "Optional description of the policy",
            "examples": [
              "The main FW policy"
            ],
            "type": "string"
          },
          "has_app_filtering": {
            "description": "Whether application-based filtering is supported",
            "type": "boolean"
          },
          "id": {
            "description": "Unique ID of the policy",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "is_dpi_enabled": {
            "description": "Whether DPI apps may be used for app filtering",
            "examples": [
              false
            ],
            "type": "boolean"
          },
          "label": {
            "description": "Human-readable label of the policy",
            "examples": [
              "Policy 'my-vpn' [123]"
            ],
            "type": "string"
          },
          "name": {
            "description": "Name of the policy",
            "examples": [
              "my-vpn"
            ],
            "type": "string"
          },
          "version": {
            "description": "Version of the policy, incremented after every update",
            "examples": [
              7
            ],
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "label",
          "has_app_filtering",
          "is_dpi_enabled",
          "version"
        ],
        "type": "object"
      },
      "FirewallProtocol": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "description": "The official IP protocol name",
            "examples": [
              "tcp"
            ],
            "type": "string"
          },
          "number": {
            "description": "The official IP protocol number",
            "examples": [
              6
            ],
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "number",
          "name"
        ],
        "type": "object"
      },
      "FirewallRuleApplication": {
        "additionalProperties": false,
        "properties": {
          "members": {
            "description": "Application members",
            "items": {
              "$ref": "#/components/schemas/FirewallApplicationGroupMember"
            },
            "type": "array"
          }
        },
        "required": [
          "members"
        ],
        "type": "object"
      },
      "FirewallRuleDestination": {
        "additionalProperties": false,
        "properties": {
          "matching_mode": {
            "description": "How the destination is matched",
            "enum": [
              "MEMBERS",
              "ANY",
              "NEGATE"
            ],
            "examples": [
              "MEMBERS"
            ],
            "type": "string"
          },
          "members": {
            "description": "Destination members",
            "items": {
              "$ref": "#/components/schemas/FirewallIPGroupMember"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "matching_mode",
          "members"
        ],
        "type": "object"
      },
      "FirewallRuleService": {
        "additionalProperties": false,
        "properties": {
          "matching_mode": {
            "description": "How the service is matched",
            "enum": [
              "MEMBERS",
              "ANY"
            ],
            "examples": [
              "MEMBERS"
            ],
            "type": "string"
          },
          "members": {
            "description": "Service members",
            "items": {
              "$ref": "#/components/schemas/FirewallServiceGroupMember"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "matching_mode",
          "members"
        ],
        "type": "object"
      },
      "FirewallRuleSource": {
        "additionalProperties": false,
        "properties": {
          "matching_mode": {
            "description": "How the source is matched",
            "enum": [
              "MEMBERS",
              "ANY",
              "NEGATE"
            ],
            "examples": [
              "MEMBERS"
            ],
            "type": "string"
          },
          "members": {
            "description": "Source members",
            "items": {
              "$ref": "#/components/schemas/FirewallIPGroupMember"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "matching_mode",
          "members"
        ],
        "type": "object"
      },
      "FirewallScopedIPGroup": {
        "additionalProperties": false,
        "properties": {
          "comments": {
            "description": "Optional extra comments",
            "examples": [
              "Use this scoped IP group rather than the webservers IP group."
            ],
            "type": "string"
          },
          "description": {
            "description": "Optional description of the group",
            "examples": [
              "The group of all webservers"
            ],
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "label": {
            "description": "Human-readable label of the group",
            "examples": [
              "Scoped IP Group 'webservers' [123]"
            ],
            "type": "string"
          },
          "name": {
            "description": "Name of the group",
            "examples": [
              "webservers"
            ],
            "type": "string"
          },
          "scopes": {
            "description": "Scopes within this group. One scope per service.",
            "items": {
              "$ref": "#/components/schemas/FirewallScopedIPGroupScope"
            },
            "type": "array"
          },
          "version": {
            "description": "Version of the object, incremented after every update",
            "examples": [
              3
            ],
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "label",
          "version",
          "scopes"
        ],
        "type": "object"
      },
      "FirewallScopedIPGroupScope": {
        "additionalProperties": false,
        "properties": {
          "members": {
            "description": "Members of this scope",
            "items": {
              "$ref": "#/components/schemas/FirewallIPGroupMember"
            },
            "type": "array"
          },
          "service_id": {
            "description": "Service ID for this scope",
            "examples": [
              "123456"
            ],
            "type": "string"
          }
        },
        "required": [
          "service_id",
          "members"
        ],
        "type": "object"
      },
      "FirewallServiceGroup": {
        "additionalProperties": false,
        "properties": {
          "comments": {
            "description": "Optional extra comments",
            "examples": [
              "Use this service group rather than http and https individually."
            ],
            "type": "string"
          },
          "description": {
            "description": "Optional description of the group",
            "examples": [
              "The group of all web services"
            ],
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the object",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "is_shared": {
            "description": "Whether this object is available to all Open Systems customers",
            "examples": [
              false
            ],
            "type": "boolean"
          },
          "label": {
            "description": "Human-readable label of the group",
            "examples": [
              "Service Group 'web-services' [123]"
            ],
            "type": "string"
          },
          "members": {
            "description": "Members of the group",
            "items": {
              "$ref": "#/components/schemas/FirewallServiceGroupMember"
            },
            "type": "array"
          },
          "name": {
            "description": "Name of the group",
            "examples": [
              "web-services"
            ],
            "type": "string"
          },
          "version": {
            "description": "Version of the object, incremented after every update",
            "examples": [
              3
            ],
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "label",
          "version",
          "is_shared",
          "members"
        ],
        "type": "object"
      },
      "FirewallServiceGroupMember": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique ID of the member object",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "type": {
            "description": "Type of the member object",
            "examples": [
              "SERVICE"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "type": "object"
      },
      "FirewallSourceNATRule": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "description": "NAT action of the rule",
            "enum": [
              "ORIGINAL",
              "HIDE",
              "NAT"
            ],
            "examples": [
              "HIDE"
            ],
            "type": "string"
          },
          "comments": {
            "description": "Optional extra comments",
            "examples": [
              "This rule was enabled last week."
            ],
            "type": "string"
          },
          "dst_zones": {
            "description": "Destination zones",
            "items": {
              "$ref": "#/components/schemas/FirewallZone"
            },
            "type": "array"
          },
          "id": {
            "description": "Unique ID of the rule",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "is_disabled": {
            "description": "Whether the rule is disabled",
            "type": "boolean"
          },
          "label": {
            "description": "Human-readable label of the rule",
            "examples": [
              "SNAT rule 'hide-web' [123]"
            ],
            "type": "string"
          },
          "log": {
            "description": "Log target of the rule",
            "enum": [
              "NONE",
              "DEBUG",
              "PERMANENT"
            ],
            "examples": [
              "PERMANENT"
            ],
            "type": "string"
          },
          "name": {
            "description": "Name of the rule",
            "examples": [
              "hide-web"
            ],
            "type": "string"
          },
          "next_id": {
            "description": "ID of the next rule in sequence. Not present if this is the last rule in the section.",
            "examples": [
              "789"
            ],
            "type": "string"
          },
          "original_destination": {
            "$ref": "#/components/schemas/FirewallRuleDestination",
            "description": "Original destination matcher, before translation"
          },
          "original_service": {
            "$ref": "#/components/schemas/FirewallRuleService",
            "description": "Original service matcher, before translation"
          },
          "original_source": {
            "$ref": "#/components/schemas/FirewallRuleSource",
            "description": "Original source matcher, before translation"
          },
          "sequence_number": {
            "description": "Position of the rule within its section",
            "examples": [
              10
            ],
            "format": "int64",
            "type": "integer"
          },
          "src_zones": {
            "description": "Source zones",
            "items": {
              "$ref": "#/components/schemas/FirewallZone"
            },
            "type": "array"
          },
          "ticket_ids": {
            "description": "IDs of tickets associated with the rule",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "translated_source": {
            "$ref": "#/components/schemas/FirewallRuleSource",
            "description": "Translated source matcher. Present only for action 'NAT'."
          },
          "version": {
            "description": "Version of the rule, incremented after every update",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "label",
          "version",
          "sequence_number",
          "is_disabled",
          "action",
          "log",
          "src_zones",
          "dst_zones",
          "original_source",
          "original_destination",
          "original_service"
        ],
        "type": "object"
      },
      "FirewallSourceNATSection": {
        "additionalProperties": false,
        "properties": {
          "rules": {
            "description": "Source NAT rules in this section",
            "items": {
              "$ref": "#/components/schemas/FirewallSourceNATRule"
            },
            "type": "array"
          },
          "service_id": {
            "description": "Service ID of the section. Not present for global sections.",
            "examples": [
              "123456"
            ],
            "type": "string"
          }
        },
        "required": [
          "rules"
        ],
        "type": "object"
      },
      "FirewallSourceNATSections": {
        "additionalProperties": false,
        "properties": {
          "global": {
            "$ref": "#/components/schemas/FirewallSourceNATSection",
            "description": "Global Source NAT section. Always present."
          },
          "local": {
            "description": "Local Source NAT sections",
            "items": {
              "$ref": "#/components/schemas/FirewallSourceNATSection"
            },
            "type": "array"
          },
          "local_override": {
            "description": "Local override Source NAT sections",
            "items": {
              "$ref": "#/components/schemas/FirewallSourceNATSection"
            },
            "type": "array"
          }
        },
        "required": [
          "global",
          "local",
          "local_override"
        ],
        "type": "object"
      },
      "FirewallZone": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "description": "Optional description of the zone",
            "examples": [
              "The LAN zone"
            ],
            "type": "string"
          },
          "id": {
            "description": "Unique ID of the zone",
            "examples": [
              "123"
            ],
            "type": "string"
          },
          "is_shared": {
            "description": "Whether the zone is available to all Open Systems customers",
            "type": "boolean"
          },
          "label": {
            "description": "Human-readable label of the zone",
            "examples": [
              "Zone 'LAN' [123]"
            ],
            "type": "string"
          },
          "name": {
            "description": "Name of the zone",
            "examples": [
              "LAN"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "label",
          "is_shared"
        ],
        "type": "object"
      },
      "FleetCompanyDetail": {
        "additionalProperties": false,
        "properties": {
          "company_id": {
            "description": "ID of the company",
            "examples": [
              "37134"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          },
          "company_legal_name": {
            "description": "Legal Name of the company",
            "examples": [
              "Demo Company Inc."
            ],
            "type": "string"
          },
          "company_name": {
            "description": "Short name of the company",
            "examples": [
              "demo"
            ],
            "type": "string"
          }
        },
        "required": [
          "company_id",
          "company_legal_name",
          "company_name"
        ],
        "type": "object"
      },
      "FleetHost": {
        "additionalProperties": false,
        "properties": {
          "company_id": {
            "description": "ID of the company",
            "examples": [
              "37134"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          },
          "host_id": {
            "description": "ID of the host",
            "examples": [
              "131190"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          },
          "host_name": {
            "description": "Name of the host",
            "examples": [
              "demo-sg000-us-gar-1"
            ],
            "type": "string"
          },
          "service_id": {
            "description": "ID of the service",
            "examples": [
              "59061"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          },
          "site_id": {
            "description": "ID of the site",
            "examples": [
              "50814"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          }
        },
        "required": [
          "host_id",
          "service_id",
          "site_id",
          "company_id",
          "host_name"
        ],
        "type": "object"
      },
      "TicketingHost": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "The unique identifier of the host",
            "examples": [
              "1234"
            ],
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "type": "object"
      },
      "FleetHostDetail": {
        "additionalProperties": false,
        "properties": {
          "company_id": {
            "description": "ID of the company",
            "examples": [
              "37134"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          },
          "host_id": {
            "description": "ID of the host",
            "examples": [
              "131190"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          },
          "host_name": {
            "description": "Name of the host",
            "examples": [
              "demo-sg000-us-gar-1"
            ],
            "type": "string"
          },
          "interfaces": {
            "items": {
              "$ref": "#/components/schemas/FleetHostInterface"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "service_id": {
            "description": "ID of the service",
            "examples": [
              "59061"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          },
          "site_id": {
            "description": "ID of the site",
            "examples": [
              "50814"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          }
        },
        "required": [
          "host_id",
          "service_id",
          "site_id",
          "company_id",
          "host_name",
          "interfaces"
        ],
        "type": "object"
      },
      "FleetHostInterface": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "description": "Name of the interface",
            "examples": [
              "eth0"
            ],
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "FleetService": {
        "additionalProperties": false,
        "properties": {
          "company_id": {
            "description": "ID of the company",
            "examples": [
              "37134"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          },
          "service_id": {
            "description": "ID of the service",
            "examples": [
              "85803"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          },
          "service_name": {
            "description": "Name of the service",
            "examples": [
              "open-swg001-pop-ch-north"
            ],
            "type": "string"
          }
        },
        "required": [
          "service_id",
          "company_id",
          "service_name"
        ],
        "type": "object"
      },
      "FleetServiceDetail": {
        "additionalProperties": false,
        "properties": {
          "company_id": {
            "description": "ID of the company",
            "examples": [
              "37134"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          },
          "service_id": {
            "description": "ID of the service",
            "examples": [
              "85803"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          },
          "service_name": {
            "description": "Name of the service",
            "examples": [
              "open-swg001-pop-ch-north"
            ],
            "type": "string"
          }
        },
        "required": [
          "service_id",
          "company_id",
          "service_name"
        ],
        "type": "object"
      },
      "FleetSite": {
        "additionalProperties": false,
        "properties": {
          "continent_code": {
            "description": "Continent code",
            "examples": [
              "EU"
            ],
            "type": "string"
          },
          "country_iso_alpha2": {
            "description": "Country code (ISO 3166-1 alpha-2)",
            "examples": [
              "CH"
            ],
            "type": "string"
          },
          "site_id": {
            "description": "ID of the site",
            "examples": [
              "50814"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          }
        },
        "required": [
          "site_id",
          "country_iso_alpha2",
          "continent_code"
        ],
        "type": "object"
      },
      "FleetSiteAddress": {
        "additionalProperties": false,
        "properties": {
          "city": {
            "description": "City of the location",
            "examples": [
              "Zurich"
            ],
            "type": "string"
          },
          "street_and_number": {
            "description": "The postal address. Usually street and number. May include company name, building, floor, office etc.",
            "type": [
              "string",
              "null"
            ]
          },
          "zip": {
            "description": "The postal code of the city / address.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "city"
        ],
        "type": "object"
      },
      "FleetSiteDetail": {
        "additionalProperties": false,
        "properties": {
          "address": {
            "$ref": "#/components/schemas/FleetSiteAddress"
          },
          "continent_code": {
            "description": "Continent code",
            "examples": [
              "EU"
            ],
            "type": "string"
          },
          "continent_name_english": {
            "description": "Continent name in English",
            "examples": [
              "Europe"
            ],
            "type": "string"
          },
          "country_iso_alpha2": {
            "description": "Country code (ISO 3166-1 alpha-2)",
            "examples": [
              "CH"
            ],
            "type": "string"
          },
          "country_name_english": {
            "description": "Country name in English",
            "examples": [
              "Switzerland"
            ],
            "type": "string"
          },
          "customer_site_code": {
            "description": "The customer's unique site code.",
            "type": [
              "string",
              "null"
            ]
          },
          "latitude": {
            "description": "GPS latitude in decimal form. Negative values are southern hemisphere.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "longitude": {
            "description": "GPS longitude in decimal form. Negative values are west of Greenwich.",
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "shipping_address": {
            "description": "The shipping address.",
            "type": [
              "string",
              "null"
            ]
          },
          "site_id": {
            "description": "ID of the site",
            "examples": [
              "50814"
            ],
            "minLength": 1,
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          },
          "time_zone": {
            "description": "Time zone of the location",
            "examples": [
              "Europe/Zurich"
            ],
            "type": "string"
          }
        },
        "required": [
          "customer_site_code",
          "longitude",
          "latitude",
          "time_zone",
          "continent_code",
          "continent_name_english",
          "country_iso_alpha2",
          "country_name_english",
          "address",
          "shipping_address"
        ],
        "type": "object"
      },
      "ThreatProtectionPagedBlockEntries": {
        "additionalProperties": false,
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ThreatProtectionThreatProtectionBlockEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "limit": {
            "examples": [
              100
            ],
            "format": "int64",
            "type": "integer"
          },
          "offset": {
            "examples": [
              0
            ],
            "format": "int64",
            "type": "integer"
          },
          "total": {
            "examples": [
              1
            ],
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total",
          "offset",
          "limit"
        ],
        "type": "object"
      },
      "ThreatProtectionPagedExclusionEntries": {
        "additionalProperties": false,
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ThreatProtectionThreatProtectionExclusionEntry"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "limit": {
            "examples": [
              100
            ],
            "format": "int64",
            "type": "integer"
          },
          "offset": {
            "examples": [
              0
            ],
            "format": "int64",
            "type": "integer"
          },
          "total": {
            "examples": [
              1
            ],
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total",
          "offset",
          "limit"
        ],
        "type": "object"
      },
      "ThreatProtectionThreatProtectionBlockEntry": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "examples": [
              "malware"
            ],
            "type": "string"
          },
          "customer_ref": {
            "examples": [
              "SNOW-24567"
            ],
            "type": "string"
          },
          "description": {
            "examples": [
              "Known malware C2 domain"
            ],
            "type": "string"
          },
          "id": {
            "examples": [
              "313"
            ],
            "type": "string"
          },
          "is_shared": {
            "examples": [
              true
            ],
            "type": "boolean"
          },
          "ticket_id": {
            "examples": [
              "1218521"
            ],
            "type": "string"
          },
          "type": {
            "examples": [
              "domain"
            ],
            "type": "string"
          },
          "value": {
            "examples": [
              "malware.example.com"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "value",
          "description",
          "type",
          "category",
          "customer_ref",
          "ticket_id",
          "is_shared"
        ],
        "type": "object"
      },
      "ThreatProtectionThreatProtectionExclusionEntry": {
        "additionalProperties": false,
        "properties": {
          "customer_ref": {
            "examples": [
              "SNOW-24567"
            ],
            "type": "string"
          },
          "description": {
            "examples": [
              "Internal host excluded from scanning"
            ],
            "type": "string"
          },
          "id": {
            "examples": [
              "42"
            ],
            "type": "string"
          },
          "is_shared": {
            "examples": [
              false
            ],
            "type": "boolean"
          },
          "ticket_id": {
            "examples": [
              "1218521"
            ],
            "type": "string"
          },
          "type": {
            "examples": [
              "domain"
            ],
            "type": "string"
          },
          "value": {
            "examples": [
              "trusted.example.com"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "value",
          "description",
          "type",
          "customer_ref",
          "ticket_id",
          "is_shared"
        ],
        "type": "object"
      },
      "TicketingAttachment": {
        "additionalProperties": false,
        "properties": {
          "file_name": {
            "description": "The file name of the attachment",
            "examples": [
              "network-schema.pdf"
            ],
            "type": "string"
          },
          "id": {
            "description": "The UUID of the attachment",
            "examples": [
              "abc-123-def"
            ],
            "type": "string"
          },
          "mime_type": {
            "description": "The mime type of the attachment",
            "examples": [
              "application/pdf"
            ],
            "type": "string"
          },
          "size": {
            "description": "The size of the attachment in bytes",
            "examples": [
              343223
            ],
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "file_name",
          "mime_type",
          "size"
        ],
        "type": "object"
      },
      "TicketingChangeRequest": {
        "additionalProperties": false,
        "properties": {
          "approval_contact": {
            "$ref": "#/components/schemas/TicketingContact",
            "description": "Reference to the contact who approved/denied the change, null if not set"
          },
          "details": {
            "description": "The content of the change request",
            "examples": [
              "Please add port TCP/22 to the firewall rule 2321112"
            ],
            "type": "string"
          },
          "id": {
            "description": "The ID of the change request",
            "examples": [
              "1234512"
            ],
            "type": "string"
          },
          "requesting_contact": {
            "$ref": "#/components/schemas/TicketingContact",
            "description": "Reference to the contact who requested the change"
          },
          "status": {
            "description": "The status the change request is in",
            "enum": [
              "PROPOSED",
              "REQUESTED",
              "APPROVED",
              "IMPLEMENTED",
              "DENIED",
              "ON_HOLD",
              "ABANDONED"
            ],
            "examples": [
              "APPROVED"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "details",
          "status"
        ],
        "type": "object"
      },
      "TicketingChangeRequestStatus": {
        "additionalProperties": false,
        "properties": {
          "status": {
            "description": "The status to set for the change request",
            "examples": [
              "APPROVED"
            ],
            "minLength": 1,
            "pattern": "^(APPROVED|DENIED|ON_HOLD)$",
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "type": "object"
      },
      "TicketingChangeRequestsResult": {
        "additionalProperties": false,
        "properties": {
          "change_requests": {
            "items": {
              "$ref": "#/components/schemas/TicketingChangeRequest"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "change_requests"
        ],
        "type": "object"
      },
      "TicketingContact": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "description": "The contact name",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "TicketingCreateEvent": {
        "additionalProperties": false,
        "properties": {
          "details": {
            "description": "The actual comment to post",
            "examples": [
              "Please help me to fix my problem. I can not access the Internet."
            ],
            "maxLength": 30000,
            "minLength": 4,
            "type": "string"
          },
          "is_emergency": {
            "description": "Set the emergency flag of the ticket. not provided → do not change (default), true → ticket should be emergency, false → ticket should not be emergency (any longer)",
            "examples": [
              false
            ],
            "type": "boolean"
          }
        },
        "required": [
          "details"
        ],
        "type": "object"
      },
      "TicketingCreateTicket": {
        "additionalProperties": false,
        "properties": {
          "customer_reference": {
            "description": "Customer reference",
            "examples": [
              "INC-3432322"
            ],
            "maxLength": 64,
            "type": "string"
          },
          "details": {
            "description": "An initial description of the request",
            "examples": [
              "Please help me to fix my problem. I can not access the Internet."
            ],
            "maxLength": 30000,
            "minLength": 4,
            "type": "string"
          },
          "host_id": {
            "description": "The id of the affected host",
            "examples": [
              "2134"
            ],
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          },
          "is_emergency": {
            "default": false,
            "description": "Whether to flag this ticket as emergency",
            "examples": [
              false
            ],
            "type": "boolean"
          },
          "subject": {
            "description": "The subject of the ticket",
            "examples": [
              "This is my example ticket"
            ],
            "maxLength": 160,
            "minLength": 4,
            "type": "string"
          },
          "type": {
            "description": "The type of the ticket",
            "enum": [
              "incident",
              "change",
              "request",
              "maintenance"
            ],
            "examples": [
              "incident"
            ],
            "type": "string"
          }
        },
        "required": [
          "subject",
          "type",
          "details"
        ],
        "type": "object"
      },
      "TicketingEvent": {
        "additionalProperties": false,
        "properties": {
          "contact": {
            "$ref": "#/components/schemas/TicketingEventContact",
            "description": "The contact who created the event, null if not set"
          },
          "details": {
            "description": "The details of the event",
            "examples": [
              "Please help me to fix my problem."
            ],
            "type": "string"
          },
          "host": {
            "$ref": "#/components/schemas/TicketingEventHost",
            "description": "The host that created the event, null if not set"
          },
          "id": {
            "description": "The ID of the event",
            "examples": [
              "334342223"
            ],
            "type": "string"
          },
          "source": {
            "description": "The event source id",
            "examples": [
              "3"
            ],
            "type": "string"
          },
          "timestamp": {
            "description": "The date of the event",
            "examples": [
              "2019-09-11T12:22:32.322Z"
            ],
            "format": "date-time",
            "type": "string"
          },
          "type": {
            "description": "The type of the event",
            "examples": [
              "incident report"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "source",
          "timestamp"
        ],
        "type": "object"
      },
      "TicketingEventContact": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "description": "The contact name",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "TicketingEventHost": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Id of the host",
            "examples": [
              "1234"
            ],
            "type": "string"
          },
          "name": {
            "description": "Host name",
            "examples": [
              "gco-sg001-ch-zur-1"
            ],
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "TicketingOwner": {
        "additionalProperties": false,
        "properties": {
          "email": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "email"
        ],
        "type": "object"
      },
      "TicketingSearchEventsResult": {
        "additionalProperties": false,
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/TicketingEvent"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "limit": {
            "format": "int64",
            "type": "integer"
          },
          "offset": {
            "format": "int64",
            "type": "integer"
          },
          "total": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "offset",
          "limit",
          "total"
        ],
        "type": "object"
      },
      "TicketingSearchTicketsResult": {
        "additionalProperties": false,
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/TicketingTicket"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "limit": {
            "format": "int64",
            "type": "integer"
          },
          "offset": {
            "format": "int64",
            "type": "integer"
          },
          "total": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "offset",
          "limit",
          "total"
        ],
        "type": "object"
      },
      "TicketingServiceWindow": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "The unique identifier of the service window",
            "examples": [
              "77"
            ],
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "type": "object"
      },
      "TicketingTicket": {
        "additionalProperties": false,
        "properties": {
          "customer_reference": {
            "type": "string"
          },
          "host": {
            "$ref": "#/components/schemas/TicketingHost"
          },
          "id": {
            "description": "The unique identifier of the ticket",
            "examples": [
              "42"
            ],
            "type": "string"
          },
          "is_emergency": {
            "type": "boolean"
          },
          "merge_target": {
            "description": "Identifier of the ticket this ticket has been merged into",
            "examples": [
              "99"
            ],
            "type": "string"
          },
          "owner": {
            "$ref": "#/components/schemas/TicketingOwner"
          },
          "service_window": {
            "$ref": "#/components/schemas/TicketingServiceWindow"
          },
          "subject": {
            "type": "string"
          },
          "ticket_status": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "subject",
          "type",
          "is_emergency",
          "ticket_status"
        ],
        "type": "object"
      },
      "TicketingUpdateTicket": {
        "additionalProperties": false,
        "properties": {
          "customer_reference": {
            "description": "Customer reference",
            "examples": [
              "INC-3432322"
            ],
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "customer_reference"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "Bearer Token": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "opaque"
      }
    }
  },
  "tags": [
    {
      "name": "Auth"
    },
    {
      "name": "Security Investigations"
    },
    {
      "name": "Self Service"
    },
    {
      "name": "Threat Protection"
    },
    {
      "name": "Firewall"
    },
    {
      "name": "Fleet"
    },
    {
      "name": "Ticketing"
    }
  ],
  "externalDocs": {
    "description": "General API usage documentation for the Open Systems API.",
    "url": "https://docs.open-systems.com/api"
  }
}