Source code for netbird.resources.posture_checks
"""
Posture checks resource handler for NetBird API.
"""
from typing import Any, Dict, List
from ..models.posture_check import PostureCheckCreate, PostureCheckUpdate
from .base import BaseResource
[docs]
class PostureChecksResource(BaseResource):
"""Handler for NetBird posture checks API endpoints."""
[docs]
def list(self) -> List[Dict[str, Any]]:
"""List all posture checks.
Returns:
List of posture check dictionaries
"""
data = self.client.get("posture-checks")
return self._parse_list_response(data)
[docs]
def create(self, check_data: PostureCheckCreate) -> Dict[str, Any]:
"""Create a new posture check.
Args:
check_data: Posture check creation data
Returns:
Created posture check dictionary
"""
data = self.client.post(
"posture-checks", data=check_data.model_dump(exclude_unset=True)
)
return self._parse_response(data)
[docs]
def get(self, check_id: str) -> Dict[str, Any]:
"""Retrieve a specific posture check.
Args:
check_id: Unique posture check identifier
Returns:
Posture check dictionary
"""
data = self.client.get(f"posture-checks/{check_id}")
return self._parse_response(data)
[docs]
def update(self, check_id: str, check_data: PostureCheckUpdate) -> Dict[str, Any]:
"""Update a posture check.
Args:
check_id: Unique posture check identifier
check_data: Posture check update data
Returns:
Updated posture check dictionary
"""
data = self.client.put(
f"posture-checks/{check_id}",
data=check_data.model_dump(exclude_unset=True),
)
return self._parse_response(data)
[docs]
def delete(self, check_id: str) -> None:
"""Delete a posture check.
Args:
check_id: Unique posture check identifier
"""
self.client.delete(f"posture-checks/{check_id}")