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