> For the complete documentation index, see [llms.txt](https://cortex-docs.paloaltonetworks.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cortex-docs.paloaltonetworks.com/xsiam-api/broker-vm-on-appliance/models.md).

# Models

## The PublicApiSuccessResponse object

```json
{"openapi":"3.0.3","info":{"title":"Cortex Broker Direct Public API (on-appliance)","version":"1.0.0"},"components":{"schemas":{"PublicApiSuccessResponse":{"type":"object","description":"Canonical envelope for every successful (`2xx`) JSON response.\nWraps the per-endpoint payload (or `null` when the operation\ncarries no body content).\n","properties":{"reply":{"nullable":true,"description":"Endpoint-specific payload. Schema varies; see each\noperation's `200.content.schema`.\n"}}}}}}
```

## The PublicApiErrorResponse object

```json
{"openapi":"3.0.3","info":{"title":"Cortex Broker Direct Public API (on-appliance)","version":"1.0.0"},"components":{"schemas":{"PublicApiErrorResponse":{"type":"object","description":"Canonical envelope for every error (`4xx`/`5xx`) JSON response.\n","required":["error"],"properties":{"error":{"type":"string","description":"Human-readable error message. Pydantic validation failures\nare rendered as `\"<field>: <message>; <field>: <message>; ...\"`\n(semicolon-separated) by `format_pydantic_errors`.\n"},"reply":{"nullable":true,"description":"Always `null` on error responses. Present in the envelope to\nkeep the JSON shape consistent with success responses.\n"}}}}}}
```

## The ResetInitialPasswordRequest object

```json
{"openapi":"3.0.3","info":{"title":"Cortex Broker Direct Public API (on-appliance)","version":"1.0.0"},"components":{"schemas":{"ResetInitialPasswordRequest":{"description":"Body for `resetInitialPassword`. The `current_password` must match the factory default; the `new_password` is validated against Django's password policy server-side.\n","type":"object","required":["current_password","new_password"],"properties":{"current_password":{"type":"string","format":"password","minLength":1,"description":"The factory-default admin password."},"new_password":{"type":"string","format":"password","minLength":1,"description":"New admin password. Structural minimum is one character;\nDjango's `AUTH_PASSWORD_VALIDATORS` enforce real strength\nrules and surface their failures as `400`.\n"}}}}}}
```

## The GenerateTokenRequest object

```json
{"openapi":"3.0.3","info":{"title":"Cortex Broker Direct Public API (on-appliance)","version":"1.0.0"},"components":{"schemas":{"GenerateTokenRequest":{"description":"Body for `generateToken`. The `password` is the current admin password (post-reset).\n","type":"object","required":["password"],"properties":{"password":{"type":"string","format":"password","minLength":1,"description":"Current admin password (set via [`resetInitialPassword`](#operation/resetInitialPassword))."}}}}}}
```

## The GenerateTokenReply object

```json
{"openapi":"3.0.3","info":{"title":"Cortex Broker Direct Public API (on-appliance)","version":"1.0.0"},"components":{"schemas":{"GenerateTokenReply":{"description":"Payload of the `generateToken` success response. The `api_key` is returned exactly once.\n","type":"object","required":["api_key"],"properties":{"api_key":{"type":"string","description":"Opaque short-lived (10-minute TTL) Bearer token. **Returned\nonce** — store it immediately.\n"}}}}}}
```

## The GenerateTokenSuccessResponse object

```json
{"openapi":"3.0.3","info":{"title":"Cortex Broker Direct Public API (on-appliance)","version":"1.0.0"},"components":{"schemas":{"GenerateTokenSuccessResponse":{"type":"object","description":"Success envelope for [`generateToken`](#operation/generateToken).","properties":{"reply":{"$ref":"#/components/schemas/GenerateTokenReply"}}},"GenerateTokenReply":{"description":"Payload of the `generateToken` success response. The `api_key` is returned exactly once.\n","type":"object","required":["api_key"],"properties":{"api_key":{"type":"string","description":"Opaque short-lived (10-minute TTL) Bearer token. **Returned\nonce** — store it immediately.\n"}}}}}}
```

## The RegisterRequest object

```json
{"openapi":"3.0.3","info":{"title":"Cortex Broker Direct Public API (on-appliance)","version":"1.0.0"},"components":{"schemas":{"RegisterRequest":{"description":"Body for `registerBroker`. The `token` is opaque to the broker — pass through verbatim from the tenant-side `generateRegistrationToken`.\n","type":"object","required":["token"],"properties":{"token":{"type":"string","minLength":1,"description":"Registration token previously issued by the tenant-side\n`POST /public_api/v1/brokers/registration_token/`.\n"}}}}}}
```

## The RegisterReply object

```json
{"openapi":"3.0.3","info":{"title":"Cortex Broker Direct Public API (on-appliance)","version":"1.0.0"},"components":{"schemas":{"RegisterReply":{"description":"Payload of the `registerBroker` success response. The `device_id` is the broker's `PLATFORM_ID` used by the tenant inventory.\n","type":"object","required":["device_id"],"properties":{"device_id":{"type":"string","description":"Broker's `PLATFORM_ID` — the identifier the broker is known\nby in the tenant inventory. Use this with the tenant-side\nAPI to manage the broker from the cloud.\n"}}}}}}
```

## The RegisterSuccessResponse object

```json
{"openapi":"3.0.3","info":{"title":"Cortex Broker Direct Public API (on-appliance)","version":"1.0.0"},"components":{"schemas":{"RegisterSuccessResponse":{"type":"object","description":"Success envelope for [`registerBroker`](#operation/registerBroker).","properties":{"reply":{"$ref":"#/components/schemas/RegisterReply"}}},"RegisterReply":{"description":"Payload of the `registerBroker` success response. The `device_id` is the broker's `PLATFORM_ID` used by the tenant inventory.\n","type":"object","required":["device_id"],"properties":{"device_id":{"type":"string","description":"Broker's `PLATFORM_ID` — the identifier the broker is known\nby in the tenant inventory. Use this with the tenant-side\nAPI to manage the broker from the cloud.\n"}}}}}}
```

## The SetNetworkInterfaceRequest object

```json
{"openapi":"3.0.3","info":{"title":"Cortex Broker Direct Public API (on-appliance)","version":"1.0.0"},"components":{"schemas":{"SetNetworkInterfaceRequest":{"type":"object","required":["interface_type","name"],"description":"When `interface_type='static'`, both `address` and `netmask`\nmust additionally be non-empty (enforced by Pydantic's\n`_static_requires_address` model validator).\n","properties":{"interface_type":{"type":"string","enum":["","dhcp","static"],"description":"`''` disables the interface. `'dhcp'` enables DHCP. `'static'`\nrequires `address` and `netmask`.\n"},"name":{"type":"string","minLength":1,"maxLength":64,"description":"Interface name (e.g., `eth0`, `eth1`)."},"address":{"type":"string","default":"","description":"IPv4 address. Required when `interface_type='static'`."},"netmask":{"type":"string","default":"","description":"IPv4 netmask. Required when `interface_type='static'`."},"gateway":{"type":"string","default":"","description":"Default gateway. Optional; at most one gateway is allowed across all interfaces."},"dns":{"type":"array","maxItems":8,"default":[],"items":{"type":"string"},"description":"DNS servers (up to 8 entries)."},"is_admin":{"type":"boolean","default":false,"description":"Whether this interface serves the broker's admin UI."}}}}}}
```

## The SetInternalSubnetRequest object

```json
{"openapi":"3.0.3","info":{"title":"Cortex Broker Direct Public API (on-appliance)","version":"1.0.0"},"components":{"schemas":{"SetInternalSubnetRequest":{"description":"Body for `setInternalSubnet`. The `docker_subnet` is the parent address pool, not a single bridge subnet — see the endpoint description for pool semantics.\n","type":"object","required":["docker_subnet"],"properties":{"docker_subnet":{"type":"string","minLength":1,"maxLength":64,"description":"Parent address pool CIDR. Per-network bridges are carved\nfrom this pool at `parent_prefix + 2` width (e.g., a `/18`\nyields `/20` bridges).\n"}}}}}}
```

## The SetProxyRequest object

```json
{"openapi":"3.0.3","info":{"title":"Cortex Broker Direct Public API (on-appliance)","version":"1.0.0"},"components":{"schemas":{"SetProxyRequest":{"type":"object","required":["proxy_type"],"description":"`pwd` follows tristate semantics — omit (`null`) to preserve\nthe stored password, set to `\"\"` to clear it, set to a value\nto replace it. When `proxy_type` is non-empty, both `host` and\n`port` are required (cross-field rule, enforced server-side).\n","properties":{"proxy_type":{"type":"string","enum":["","http","socks4","socks5"]},"host":{"type":"string","default":""},"port":{"type":"integer","nullable":true,"minimum":1,"maximum":65535},"user":{"type":"string","default":""},"pwd":{"type":"string","format":"password","nullable":true,"description":"Tristate: `null`/absent = keep existing, `\"\"` = clear,\n`\"value\"` = set.\n"}}}}}}
```

## The SetNtpRequest object

```json
{"openapi":"3.0.3","info":{"title":"Cortex Broker Direct Public API (on-appliance)","version":"1.0.0"},"components":{"schemas":{"SetNtpRequest":{"description":"Body for `setNtp`. Replaces the broker's NTP server list (between 1 and 10 entries).\n","type":"object","required":["ntp"],"properties":{"ntp":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"string","description":"Hostname or IP of an NTP server."}}}}}}}
```

## The SetSslCertificateRequest object

```json
{"openapi":"3.0.3","info":{"title":"Cortex Broker Direct Public API (on-appliance)","version":"1.0.0"},"components":{"schemas":{"SetSslCertificateRequest":{"description":"Body for `setSslCertificate`. The `ssl_key` and `ssl_cert` are base64-encoded PEM payloads, each capped at ~1.4 MiB encoded.\n","type":"object","required":["ssl_key","ssl_cert"],"properties":{"ssl_key":{"type":"string","format":"password","minLength":1,"maxLength":1500000,"description":"Base64-encoded PEM private key (capped at ~1.4 MiB encoded)."},"ssl_cert":{"type":"string","minLength":1,"maxLength":1500000,"description":"Base64-encoded PEM certificate chain (capped at ~1.4 MiB encoded)."},"ssl_key_name":{"type":"string","default":"","maxLength":128,"description":"Optional display name for the certificate (max 128 chars)."}}}}}}
```

## The SetTrustedCaRequest object

```json
{"openapi":"3.0.3","info":{"title":"Cortex Broker Direct Public API (on-appliance)","version":"1.0.0"},"components":{"schemas":{"SetTrustedCaRequest":{"description":"Body for `setTrustedCa`. The `file` is a base64-encoded PEM CA bundle, capped at ~1.4 MiB encoded.\n","type":"object","required":["file"],"properties":{"file":{"type":"string","minLength":1,"maxLength":1500000,"description":"Base64-encoded PEM CA bundle (capped at ~1.4 MiB encoded)."}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://cortex-docs.paloaltonetworks.com/xsiam-api/broker-vm-on-appliance/models.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
