Skip to content

GlobalProtect Forwarding Profile Regional and Custom Proxy Models

Overview

The Forwarding Profile Regional and Custom Proxy models provide a structured way to manage proxy servers, connectivity preferences, and Prisma Access locations for GlobalProtect forwarding profiles in Palo Alto Networks' Strata Cloud Manager. The models handle validation of inputs and outputs when interacting with the SCM API.

Models

The module provides the following Pydantic models:

  • ForwardingProfileRegionalAndCustomProxyBaseModel: Base model with fields common to all operations
  • ForwardingProfileRegionalAndCustomProxyCreateModel: Model for creating new proxies
  • ForwardingProfileRegionalAndCustomProxyUpdateModel: Model for updating existing proxies (adds id)
  • ForwardingProfileRegionalAndCustomProxyResponseModel: Response model for proxy operations (adds id)
  • RegionalProxyServer: A proxy server definition (fqdn, port, location)
  • RegionalProxyConnectivityPreference: A connectivity preference entry (name, enabled)
  • RegionalProxyPrismaAccessLocation: A Prisma Access location entry (name, locations)
  • RegionalProxyType: Enum for proxy types
  • RegionalProxyConnectivityName: Enum for connectivity preference names
  • RegionalProxyFallbackOption: Enum for fallback options
  • RegionalProxyLocationPreference: Enum for location preferences

Request models use extra="forbid" configuration, which rejects any fields not explicitly defined in the model. The response model uses extra="ignore" for forward compatibility.

Attributes

Attribute Type Required Default Description
name str Yes None Name of the proxy. Max length: 64 chars. Pattern: ^[0-9a-zA-Z._-]+$
type RegionalProxyType No gp-and-pac Proxy type
description str No None Description of the proxy. Max length: 1023 chars
proxy_1 RegionalProxyServer No None Primary proxy server
proxy_2 RegionalProxyServer No None Secondary proxy server
connectivity_preference List[RegionalProxyConnectivityPreference] No None Connectivity preference entries
fallback_option RegionalProxyFallbackOption No None Fallback option
location_preference RegionalProxyLocationPreference No None Location preference
prisma_access_locations List[RegionalProxyPrismaAccessLocation] No None Prisma Access locations (Americas, Europe, and Asia-Pacific)
id UUID Yes* None UUID of the proxy

* Present in UpdateModel and ResponseModel only

RegionalProxyServer

Attribute Type Required Description
fqdn str No Fully qualified domain name. Max length: 255 chars
port int No Proxy port (1-65535)
location str No Proxy location

RegionalProxyConnectivityPreference

Attribute Type Required Description
name RegionalProxyConnectivityName Yes Connectivity preference name
enabled bool No Whether the preference is enabled

RegionalProxyPrismaAccessLocation

Attribute Type Required Description
name str Yes Region name (one of 'americas', 'europe', 'apac')
locations List[str] No List of locations in that region

Enumerations

RegionalProxyType

Value Description
GP_AND_PAC GlobalProtect and PAC file proxy
ZTNA_AGENT ZTNA agent proxy

RegionalProxyConnectivityName

Value Description
TUNNEL Tunnel
PROXY Proxy
ADNS ADNS
MASQUE MASQUE

RegionalProxyFallbackOption

Value Description
FAIL_OPEN Fail open
FAIL_SAFE Fail safe

RegionalProxyLocationPreference

Value Description
BEST_AVAILABLE Best available Prisma Access location
SPECIFIC Specific Prisma Access location

Usage Example

from scm.client import Scm
from scm.models.mobile_agent import (
    ForwardingProfileRegionalAndCustomProxyCreateModel,
)

client = Scm(
    client_id="your_client_id",
    client_secret="your_client_secret",
    tsg_id="your_tsg_id"
)

# Create a regional and custom proxy using a model
proxy = ForwardingProfileRegionalAndCustomProxyCreateModel(
    name="emea-proxy",
    type="gp-and-pac",
    proxy_1={"fqdn": "proxy1.example.com", "port": 8080, "location": "Frankfurt"},
    fallback_option="fail-open",
)

# Convert the model to a dictionary for the API call
payload = proxy.model_dump(exclude_unset=True)
result = client.forwarding_profile_regional_and_custom_proxy.create(payload)
print(f"Created proxy: {result.id}")