Remnawave_python-sdk/remnawave/models/subscriptions_template.py
Artem 9e2822774a
feat: Enhance subscription and external squad management
- Updated NodeUsageDto to include node_uuid and changed date to datetime.
- Changed total fields in subscription and subscription request history models from float to int.
- Introduced response rules and conditions for subscription settings, including new models for response modifications.
- Added external squads management with CRUD operations and associated models.
- Implemented passkey management with registration and verification endpoints.
- Enhanced snippets management with full CRUD operations and validation.
- Added OAuth2 provider enum for better authentication handling.
2025-10-28 00:44:15 +01:00

76 lines
No EOL
2.3 KiB
Python

from typing import Annotated, Any, List, Optional
from uuid import UUID
from pydantic import BaseModel, Field, StringConstraints
from remnawave.enums import TemplateType
class TemplateResponseDto(BaseModel):
uuid: UUID
name: str
template_type: TemplateType = Field(alias="templateType")
template_json: Optional[Any] = Field(None, alias="templateJson")
encoded_template_yaml: Optional[str] = Field(None, alias="encodedTemplateYaml")
class TemplateInfoDto(BaseModel):
"""Template info without content - used in list responses"""
uuid: UUID
name: str
template_type: TemplateType = Field(alias="templateType")
template_json: Optional[Any] = Field(None, alias="templateJson")
encoded_template_yaml: Optional[str] = Field(None, alias="encodedTemplateYaml")
class GetTemplateResponseDto(TemplateResponseDto):
pass
class GetTemplatesData(BaseModel):
total: int
templates: List[TemplateInfoDto]
class GetTemplatesResponseDto(GetTemplatesData):
pass
class CreateSubscriptionTemplateRequestDto(BaseModel):
name: Annotated[str, StringConstraints(min_length=2, max_length=255, pattern=r"^[A-Za-z0-9_\s-]+$")]
template_type: TemplateType = Field(serialization_alias="templateType")
class CreateSubscriptionTemplateResponseDto(TemplateResponseDto):
pass
class UpdateTemplateRequestDto(BaseModel):
uuid: UUID
name: Optional[Annotated[str, StringConstraints(min_length=2, max_length=255, pattern=r"^[A-Za-z0-9_\s-]+$")]] = None
template_json: Optional[dict] = Field(None, serialization_alias="templateJson")
encoded_template_yaml: Optional[str] = Field(
None, serialization_alias="encodedTemplateYaml"
)
class UpdateTemplateResponseDto(TemplateResponseDto):
pass
class DeleteTemplateData(BaseModel):
is_deleted: bool = Field(alias="isDeleted")
class DeleteSubscriptionTemplateResponseDto(DeleteTemplateData):
pass
# Legacy aliases for backward compatibility
class UpdateTemplateRequestDtoLegacy(BaseModel):
template_type: TemplateType = Field(serialization_alias="templateType")
template_json: Optional[dict] = Field(None, serialization_alias="templateJson")
encoded_template_yaml: Optional[str] = Field(
None, serialization_alias="encodedTemplateYaml"
)
class UpdateTemplateResponseDtoLegacy(TemplateResponseDto):
pass