Skip to main content

Folder Configuration Object

Manages folder objects for organizing resources in a hierarchical structure in Palo Alto Networks Strata Cloud Manager.

Class Overview

The Folder class inherits from BaseObject and provides CRUD operations for folder objects used to organize resources hierarchically.

Methods

MethodDescriptionParametersReturn Type
create()Creates a new folderdata: Dict[str, Any]FolderResponseModel
get()Retrieves a folder by IDfolder_id: Union[str, UUID]FolderResponseModel
update()Updates an existing folderfolder: FolderUpdateModelFolderResponseModel
delete()Deletes a folderfolder_id: Union[str, UUID]None
list()Lists folders with filtering**filtersList[FolderResponseModel]
fetch()Gets a folder by its namename: strFolderResponseModel

Model Attributes

AttributeTypeRequiredDefaultDescription
namestrYesNoneName of the folder
parentstrYesNoneName of the parent folder (not the ID). Empty string for root folders
idUUIDYes*NoneUnique identifier (*response/update only)
descriptionstrNoNoneOptional description of the folder
labelsList[str]NoNoneOptional list of labels
snippetsList[str]NoNoneOptional list of snippet IDs associated with the folder
display_namestrNoNoneDisplay name for the folder/device
modelstrNoNoneDevice model (e.g., 'PA-VM')
serial_numberstrNoNoneDevice serial number
typestrNoNoneFolder or device type (e.g., 'on-prem', 'container', 'cloud')
device_onlyboolNoNoneTrue if this is a device-only entry

* Only required for response and update models

Exceptions

ExceptionHTTP CodeDescription
InvalidObjectError400Invalid folder data or format
ObjectNotPresentError404Requested folder not found
APIErrorVariousGeneral API communication error
AuthenticationError401Authentication failed
ServerError500Internal server error

Basic Configuration

from scm.client import Scm

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

folders = client.folder

Methods

List Folders

all_folders = client.folder.list()

for folder in all_folders:
print(f"Folder: {folder.name}, Parent: {folder.parent}")

Filtering responses:

# Filter by labels (server-side)
eng_folders = client.folder.list(labels=["eng"])

# Filter by type (server-side)
container_folders = client.folder.list(type="container")

# Filter by parent (server-side)
child_folders = client.folder.list(parent="root")

# Filter by snippets (client-side)
snippet_folders = client.folder.list(snippets=["snippet-id"])

Controlling pagination with max_limit:

client.folder.max_limit = 100

all_folders = client.folder.list()

Fetch a Folder

folder = client.folder.fetch("Engineering")
if folder:
print(f"Found folder: {folder.name}, ID: {folder.id}")

Create a Folder

folder_data = {
"name": "Engineering",
"parent": "root",
"description": "Engineering team folder",
"labels": ["team", "eng"],
}
created = client.folder.create(folder_data)
print(f"Created folder: {created.id}")

Update a Folder

existing = client.folder.fetch(name="Engineering")

existing.description = "Updated description"
existing.labels = ["updated", "engineering"]

updated = client.folder.update(existing)

Delete a Folder

client.folder.delete("baf4dc4c-9ea2-4a3d-92bb-6f8a9e60822e")

Get a Folder by ID

folder = client.folder.get("baf4dc4c-9ea2-4a3d-92bb-6f8a9e60822e")
print(f"Folder: {folder.name}, Parent: {folder.parent}")

Error Handling

from scm.exceptions import ObjectNotPresentError, InvalidObjectError

try:
folder = client.folder.get("nonexistent-id")
except ObjectNotPresentError:
print("Folder not found!")

try:
client.folder.create({"name": "", "parent": "root"})
except InvalidObjectError as e:
print(f"Validation error: {e}")