Skip to main content

Auto Tag Actions Models

Pydantic models for managing auto tag action objects in Strata Cloud Manager.

Overview​

Auto Tag Actions models define the data structures for automated tag assignment based on traffic patterns, security events, and other triggers. These models handle attributes such as:

  • Match criteria for when tags should be applied
  • Action types (add/remove tags)
  • Tag lists to apply
  • Timeout durations for tag application
  • Scope and filtering options

Base Models​

AutoTagActionRequest​

The base request model for creating or updating an auto tag action.

class AutoTagActionRequest(BaseModel):
name: str
folder: str
description: Optional[str] = None
match_criteria: AutoTagMatchCriteria
action: Literal["add", "remove"]
tags: List[str]
timeout: Optional[int] = None # Duration in seconds
scope: Optional[AutoTagScope] = None
enabled: Optional[bool] = True

AutoTagActionResponse​

The response model for auto tag actions.

class AutoTagActionResponse(BaseModel):
id: str
name: str
folder: str
description: Optional[str] = None
match_criteria: AutoTagMatchCriteria
action: Literal["add", "remove"]
tags: List[TagResponse]
timeout: Optional[int] = None
scope: Optional[AutoTagScope] = None
enabled: bool
creation_time: datetime
last_modified_time: datetime
last_hit_time: Optional[datetime] = None
hit_count: Optional[int] = None

Component Models​

AutoTagMatchCriteria​

class AutoTagMatchCriteria(BaseModel):
# Common filters
source_address: Optional[List[str]] = None
destination_address: Optional[List[str]] = None
source_user: Optional[List[str]] = None
source_zone: Optional[List[str]] = None
destination_zone: Optional[List[str]] = None

# Security event criteria
severity: Optional[Union[str, List[str]]] = None
threat_name: Optional[str] = None
threat_id: Optional[str] = None
threat_type: Optional[List[str]] = None
action_taken: Optional[str] = None

# Application criteria
application: Optional[AutoTagApplicationCriteria] = None

# URL/Domain criteria
url_category: Optional[List[str]] = None
destination: Optional[AutoTagDestinationCriteria] = None

# Data patterns
data_pattern: Optional[List[str]] = None

# Custom criteria
custom_criteria: Optional[Dict[str, Any]] = None

AutoTagApplicationCriteria​

class AutoTagApplicationCriteria(BaseModel):
name: Optional[List[str]] = None
category: Optional[List[str]] = None
technology: Optional[List[str]] = None
risk: Optional[List[int]] = None # 1-5 risk levels
characteristic: Optional[List[str]] = None
tag: Optional[List[str]] = None

AutoTagDestinationCriteria​

class AutoTagDestinationCriteria(BaseModel):
region: Optional[List[str]] = None
country: Optional[List[str]] = None
domain: Optional[str] = None
domain_contains: Optional[List[str]] = None

AutoTagScope​

class AutoTagScope(BaseModel):
device_groups: Optional[List[str]] = None
devices: Optional[List[str]] = None
vsys: Optional[List[str]] = None
apply_to: Optional[Literal["source", "destination", "both"]] = "source"

TagReference​

class TagReference(BaseModel):
name: str
id: Optional[str] = None

TagResponse​

class TagResponse(BaseModel):
id: str
name: str
color: Optional[str] = None

AutoTagActionListResponse​

class AutoTagActionListResponse(BaseModel):
data: List[AutoTagActionResponse]
count: int
total: int
limit: Optional[int] = None
offset: Optional[int] = None

Usage Examples​

Creating Auto Tag Action Request​

from scm.models.objects.auto_tag_actions import (
AutoTagActionRequest,
AutoTagMatchCriteria,
AutoTagApplicationCriteria
)

# Define application criteria
app_criteria = AutoTagApplicationCriteria(
risk=[4, 5], # High and critical risk
category=["peer-to-peer", "proxies"]
)

# Define match criteria
match_criteria = AutoTagMatchCriteria(
application=app_criteria,
source_zone=["trust"],
destination_zone=["untrust"]
)

# Create auto tag action request
auto_tag_request = AutoTagActionRequest(
name="high-risk-app-users",
folder="Texas",
description="Tag users of high-risk applications",
match_criteria=match_criteria,
action="add",
tags=["high-risk-user", "excessive-p2p"],
timeout=86400 # 24 hours
)

# Use the model with the SDK
client.auto_tag_actions.create(auto_tag_request)

Parsing Auto Tag Action Response​

from scm.models.objects.auto_tag_actions import AutoTagActionResponse

# Parse API response into Auto Tag Action model
auto_tag_response = AutoTagActionResponse.parse_obj(api_response_json)

# Access model attributes
print(f"Auto Tag Action: {auto_tag_response.name}")
print(f"Action: {auto_tag_response.action}")

# Process tags
for tag in auto_tag_response.tags:
print(f"Tag: {tag.name} (ID: {tag.id})")

# Check match criteria
if auto_tag_response.match_criteria.application:
app_criteria = auto_tag_response.match_criteria.application
if app_criteria.risk:
print(f"Risk levels: {app_criteria.risk}")
if app_criteria.category:
print(f"Categories: {app_criteria.category}")