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
})