GlobalProtect Forwarding Profile Models
Pydantic models for GlobalProtect forwarding profiles in Palo Alto Networks Strata Cloud Manager.
Model Hierarchy
| Model | Purpose |
|---|---|
ForwardingProfileBaseModel | Common fields shared across all CRUD operations |
ForwardingProfileCreateModel | Fields for creating new forwarding profiles |
ForwardingProfileUpdateModel | Fields for updating profiles (adds optional id) |
ForwardingProfileResponseModel | Fields returned by the API (adds id) |
Base Model Attributes
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
name | str | Yes | None | Profile name (max 64 chars, pattern ^[0-9a-zA-Z._-]+$) |
description | str | No | None | Description (max 1023 chars) |
definition_method | DefinitionMethod | No | rules | rules or pac-file |
type | Union | No | None | One of the three profile type models below |
Profile Type Models
The type field accepts exactly one of three wrapper models, matching the API's oneOf schema:
| Model | Wrapper key | Config model |
|---|---|---|
ForwardingProfilePacFile | pac_file | BasicForwardingConfig |
ForwardingProfileGlobalProtectProxy | global_protect_proxy | BasicForwardingConfig |
ForwardingProfileZtnaAgent | ztna_agent | ZtnaForwardingConfig |
BasicForwardingConfig / ZtnaForwardingConfig
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
pac_upload | bool | No | False | User upload PAC file |
forwarding_rules | List[ForwardingRule*] | No | None | The forwarding rules |
block_rule | BlockRule* | No | None | The block rule |
BasicForwardingConfig uses ForwardingRuleBasic/BlockRuleBasic; ZtnaForwardingConfig uses ForwardingRuleZtna/BlockRuleZtna.
ForwardingRuleBasic
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
name | str | Yes | None | Rule name (max 64 chars, [0-9a-zA-Z._-]) |
enabled | bool | No | True | Enable the rule |
user_locations | str | No | "Any" | User locations (max 64 chars) |
destinations | str | No | "Any" | Destinations (max 64 chars) |
connectivity | str | No | "direct" | Connectivity method (max 64 chars) |
ForwardingRuleZtna
Adds to the basic rule fields:
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
traffic_type | ZtnaTrafficType | No | dns | dns, dns-and-network-traffic, or network-traffic |
source_applications | str | No | "Any" | Source applications |
BlockRuleBasic
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
enable | bool | No | None | Enable block rule |
allow_tcp | BlockRuleBasicAllowTcp | No | None | Allow-TCP settings |
allow_udp | BlockRuleBasicAllowUdp | No | None | Allow-UDP settings |
BlockRuleZtna
All fields are optional booleans controlling tunnel traffic blocking behavior, e.g.
block_all_other_unmatched_outbound_connections (default False),
allow_icmp_for_troubleshooting (default False),
enforcer_fqdn_dns_resolution_via_dns_servers (default True).
Enums
| Enum | Values |
|---|---|
DefinitionMethod | rules, pac-file |
ZtnaTrafficType | dns, dns-and-network-traffic, network-traffic |
Usage Example
from scm.models.mobile_agent.forwarding_profiles import (
ForwardingProfileCreateModel,
ForwardingProfileZtnaAgent,
ForwardingRuleZtna,
ZtnaForwardingConfig,
ZtnaTrafficType,
)
profile = ForwardingProfileCreateModel(
name="corp-forwarding",
description="Corporate ZTNA forwarding profile",
type=ForwardingProfileZtnaAgent(
ztna_agent=ZtnaForwardingConfig(
forwarding_rules=[
ForwardingRuleZtna(
name="internal-apps",
traffic_type=ZtnaTrafficType.DNS_AND_NETWORK_TRAFFIC,
destinations="internal-destinations",
)
]
)
),
)
payload = profile.model_dump(exclude_unset=True)