Source code for netbird.models.token

"""
Token models for NetBird API.
"""

from datetime import datetime
from typing import Optional

from pydantic import Field

from .common import BaseModel, ResourceId


[docs] class TokenCreate(BaseModel): """Model for creating a new token. Attributes: name: Token name expires_in: Token expiration in days (1-365) """ name: str = Field(..., description="Token name") expires_in: int = Field(..., description="Token expiration in days", ge=1, le=365)
[docs] class Token(BaseModel): """NetBird token model. Attributes: id: Unique token identifier name: Token name creation_date: When the token was created expiration_date: When the token expires created_by: User ID who created the token last_used: When the token was last used """ id: ResourceId = Field(..., description="Unique token identifier") name: str = Field(..., description="Token name") creation_date: datetime = Field(..., description="Token creation date") expiration_date: datetime = Field(..., description="Token expiration date") created_by: ResourceId = Field(..., description="Creator user ID") last_used: Optional[datetime] = Field(None, description="Last used timestamp")