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¶
| Attribute | Type | Required | Description |
|---|---|---|---|
name |
str |
Yes | Name of group (max 31 chars) |
id |
UUID |
Yes* | Unique identifier (*response only) |
members |
List[str] |
Yes | List of application names (min 1, max 1024 entries) |
folder |
str |
Yes** | Folder location (**one container required) |
snippet |
str |
Yes** | Snippet location (**one container required) |
device |
str |
Yes** | 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.
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}")