Skip to main content

Application Group

The ApplicationGroup service manages application group objects in Strata Cloud Manager, organizing collections of applications for use in security policies.

Class Overview​

The ApplicationGroup class provides CRUD operations for application group objects. It is accessed through the client.application_group attribute on an initialized Scm instance.

from scm.client import Scm

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

# Access the ApplicationGroup service
app_groups = client.application_group

Key Attributes​

AttributeTypeRequiredDescription
namestrYesName of group (max 31 chars)
idUUIDYes*Unique identifier (*response only)
membersList[str]YesList of application names (min 1, max 1024 entries)
folderstrYes**Folder location (**one container required)
snippetstrYes**Snippet location (**one container required)
devicestrYes**Device location (**one container required)

* Exactly one of folder, snippet, or device is required.

Methods​

List Application Groups​

Retrieves a list of application group objects with optional filtering.

groups = client.application_group.list(
folder="Texas",
members=["ssl"]
)

for group in groups:
print(f"Name: {group.name}, Members: {', '.join(group.members)}")

Fetch an Application Group​

Retrieves a single application group by name and container.

group = client.application_group.fetch(name="web-apps", folder="Texas")
print(f"Found group: {group.name}")

Create an Application Group​

Creates a new application group.

new_group = client.application_group.create({
"name": "web-apps",
"members": ["ssl", "web-browsing"],
"folder": "Texas"
})

Update an Application Group​

Updates an existing application group.

existing = client.application_group.fetch(name="web-apps", folder="Texas")
existing.members = ["ssl", "web-browsing", "dns"]

updated = client.application_group.update(existing)

Delete an Application Group​

Deletes an application group by ID.

client.application_group.delete("123e4567-e89b-12d3-a456-426655440000")

Use Cases​

Organizing Applications by Function​

Group related applications for simplified policy management.

from scm.client import Scm

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

# Microsoft 365 application group
client.application_group.create({
"name": "microsoft-365",
"members": [
"ms-office365",
"ms-exchange-online",
"ms-sharepoint-online"
],
"folder": "Texas"
})

# Basic web applications group
client.application_group.create({
"name": "web-basics",
"members": ["ssl", "web-browsing", "dns"],
"folder": "Texas"
})

Filtering Application Groups​

Use advanced filtering to find specific groups.

# Exact match with exclusions
filtered = client.application_group.list(
folder="Texas",
exact_match=True,
exclude_folders=["All"],
exclude_snippets=["default"],
exclude_devices=["DeviceA"]
)

for group in filtered:
print(f"Group: {group.name} in {group.folder}")

Error Handling​

from scm.client import Scm
from scm.exceptions import (
InvalidObjectError,
MissingQueryParameterError,
NameNotUniqueError,
ObjectNotPresentError,
ReferenceNotZeroError
)

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

try:
new_group = client.application_group.create({
"name": "test_group",
"members": ["ssl", "web-browsing"],
"folder": "Texas"
})
except InvalidObjectError as e:
print(f"Invalid group data: {e.message}")
except NameNotUniqueError as e:
print(f"Group name already exists: {e.message}")
except ObjectNotPresentError as e:
print(f"Group not found: {e.message}")
except ReferenceNotZeroError as e:
print(f"Group still in use: {e.message}")
except MissingQueryParameterError as e:
print(f"Missing parameter: {e.message}")