Source code for netbird.models.group
"""
Group models for NetBird API.
"""
from typing import Any, Dict, List, Optional
from pydantic import Field
from .common import BaseModel, ResourceId
[docs]
class GroupCreate(BaseModel):
"""Model for creating a group.
Attributes:
name: Group name
peers: List of peer IDs to include
resources: List of network resources
"""
name: str = Field(..., description="Group name")
peers: Optional[List[ResourceId]] = Field(None, description="Peer IDs in group")
resources: Optional[List[Dict[str, Any]]] = Field(
None, description="Network resources"
)
[docs]
class GroupUpdate(BaseModel):
"""Model for updating a group.
Attributes:
name: Group name
peers: List of peer IDs to include
resources: List of network resources
"""
name: Optional[str] = Field(None, description="Group name")
peers: Optional[List[ResourceId]] = Field(None, description="Peer IDs in group")
resources: Optional[List[Dict[str, Any]]] = Field(
None, description="Network resources"
)
[docs]
class Group(BaseModel):
"""NetBird group model.
Attributes:
id: Unique group identifier
name: Group name
peers_count: Number of peers in group
peers: List of peer objects with details
resources: List of network resource objects
resources_count: Number of resources in group
issued: Creation timestamp
"""
id: ResourceId = Field(..., description="Unique group identifier")
name: str = Field(..., description="Group name")
peers_count: int = Field(..., description="Number of peers in group")
peers: Optional[List[Dict[str, Any]]] = Field(
None, description="Peer objects with details"
)
resources: Optional[List[Dict[str, Any]]] = Field(
None, description="Network resource objects"
)
resources_count: Optional[int] = Field(
None, description="Number of resources in group"
)
issued: Optional[str] = Field(None, description="Creation timestamp")