Skip to main content

Data Models

Welcome to the Data Models documentation for pan-scm-sdk. This section provides detailed information about the Pydantic models used to validate and structure data when interacting with the Strata Cloud Manager API.

What Are Data Models?​

Data Models are Pydantic classes that define the schema and validation rules for configuration objects. They ensure that data passed to and received from the API conforms to expected formats, types, and constraints.

Use this section when you need to:

  • Understand field constraints - Learn what values are allowed for each field (patterns, lengths, enums)
  • Validate configurations - Pre-validate data before sending to the API
  • Type annotations - Get proper IDE autocompletion and type checking
  • Build configuration dictionaries - Know exactly what fields are required vs optional

Model Types​

Each resource has three model types:

Model TypePurposeExample
CreateModelValidates data for creating new resourcesAddressCreateModel
UpdateModelValidates data for updating existing resources (includes id)AddressUpdateModel
ResponseModelRepresents data returned from the APIAddressResponseModel

Example Usage​

from scm.models.objects.address import AddressCreateModel

# Validate configuration before API call
try:
config = AddressCreateModel(
name="web-server",
ip_netmask="10.0.1.100/32",
folder="Texas",
description="Primary web server"
)
print(f"Valid config: {config.model_dump()}")
except ValueError as e:
print(f"Validation error: {e}")

Categories​

Deployment​

Models for Prisma Access deployment configuration:

Mobile Agent​

Models for GlobalProtect mobile agent configuration:

Network​

Models for network infrastructure:

Objects​

Models for reusable policy objects:

Operations​

Models for operational tasks:

Security Services​

Models for security profiles and policies:

Setup​

Models for organizational containers:

Insights​

Models for Prisma Access Insights:


Relationship to Services​

The Data Models define what data looks like, while the Services documentation covers how to perform operations. For example:

  • Use AddressCreateModel (Data Models) to understand required fields
  • Use client.address.create() (Services) to actually create the address
from scm.client import Scm

client = Scm(client_id="...", client_secret="...", tsg_id="...")

# The dictionary you pass follows AddressCreateModel schema
client.address.create({
"name": "web-server", # Required: str, max 63 chars
"ip_netmask": "10.0.1.100", # One of: ip_netmask, ip_range, ip_wildcard, fqdn
"folder": "Texas", # Required: one container type
})