Quarantined Devices
The QuarantinedDevices
class provides methods to manage quarantined devices in Palo Alto Networks' Strata Cloud Manager.
Class Definition
class QuarantinedDevices(BaseObject):
"""
Manages Quarantined Devices in Palo Alto Networks' Strata Cloud Manager.
Args:
api_client: The API client instance
"""
Usage
Initialization
from scm.client import Scm
from scm.config.objects import QuarantinedDevices
# Initialize the API client
client = Scm(
client_id="your_client_id",
client_secret="your_client_secret",
tsg_id="your_tsg_id"
)
# Initialize using the unified client approach (recommended)
quarantined_devices_service = client.quarantined_devices
# Or initialize using the traditional approach
quarantined_devices_service = QuarantinedDevices(client)
Methods
create
Creates a new quarantined device.
def create(
self,
data: Dict[str, Any],
) -> QuarantinedDevicesResponseModel:
"""
Creates a new quarantined device.
Args:
data: Dictionary containing the quarantined device data
Returns:
QuarantinedDevicesResponseModel: The created quarantined device
Raises:
InvalidObjectError: If the request payload is invalid
"""
Example
# Create a new quarantined device
quarantined_device_data = {
"host_id": "abc123",
"serial_number": "PA-123456789"
}
# Create the quarantined device
new_device = quarantined_devices_service.create(quarantined_device_data)
print(f"Created quarantined device with host ID: {new_device.host_id}")
list
Lists quarantined devices with optional filtering.
def list(
self,
host_id: Optional[str] = None,
serial_number: Optional[str] = None,
) -> List[QuarantinedDevicesResponseModel]:
"""
Lists quarantined devices with optional filtering.
Args:
host_id: Filter by device host ID
serial_number: Filter by device serial number
Returns:
List[QuarantinedDevicesResponseModel]: A list of quarantined devices matching the filters
Raises:
InvalidObjectError: If the response format is invalid
"""
Example
# List all quarantined devices
all_devices = quarantined_devices_service.list()
print(f"Found {len(all_devices)} quarantined devices")
# List quarantined devices with a specific host ID
filtered_by_host = quarantined_devices_service.list(host_id="abc123")
print(f"Found {len(filtered_by_host)} devices with host ID 'abc123'")
# List quarantined devices with a specific serial number
filtered_by_serial = quarantined_devices_service.list(serial_number="PA-123456789")
print(f"Found {len(filtered_by_serial)} devices with serial number 'PA-123456789'")
# List with both filters applied
filtered_devices = quarantined_devices_service.list(
host_id="abc123",
serial_number="PA-123456789"
)
print(f"Found {len(filtered_devices)} devices matching both filters")
delete
Deletes a quarantined device by host ID.
def delete(
self,
host_id: str,
) -> None:
"""
Deletes a quarantined device by host ID.
Args:
host_id: The host ID of the quarantined device to delete
Raises:
MissingQueryParameterError: If host_id is empty or None
"""
Example
# Delete a quarantined device by host ID
try:
quarantined_devices_service.delete("abc123")
print("Device deleted successfully")
except Exception as e:
print(f"Error deleting device: {e}")
Complete Example
from scm.client import Scm
# Initialize the unified client
client = Scm(
client_id="your_client_id",
client_secret="your_client_secret",
tsg_id="your_tsg_id"
)
# Create a new quarantined device
new_device_data = {
"host_id": "device-12345",
"serial_number": "PA-987654321"
}
try:
# Create the device
new_device = client.quarantined_devices.create(new_device_data)
print(f"Created quarantined device: {new_device.host_id}")
# List all quarantined devices
all_devices = client.quarantined_devices.list()
print(f"Total quarantined devices: {len(all_devices)}")
# List devices with filters
filtered_devices = client.quarantined_devices.list(serial_number="PA-987654321")
print(f"Found {len(filtered_devices)} devices with specified serial number")
# Delete the device we just created
client.quarantined_devices.delete(new_device.host_id)
print(f"Deleted quarantined device: {new_device.host_id}")
# Verify deletion
remaining_devices = client.quarantined_devices.list(host_id=new_device.host_id)
print(f"Devices remaining after deletion: {len(remaining_devices)}")
except Exception as e:
print(f"Error: {e}")