diff --git a/README.md b/README.md index b59e08e..41e2e34 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,8 @@ pip install git+https://github.com/remnawave/python-sdk.git@development | Contract Version | Remnawave Panel Version | | ---------------- | ----------------------- | -| 2.1.1. | >=2.1.1 | +| 2.1.4 | >=2.1.4 | +| 2.1.1 | >=2.1.1, <2.1.4 | | 2.0.0 | >=2.0.0,<2.1.0 | | 1.1.3 | >=1.6.12,<2.0.0 | | 1.1.2 | >=1.6.3,<=1.6.11 | diff --git a/pyproject.toml b/pyproject.toml index 8f0c971..a386ebb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "remnawave" -version = "2.1.1" -description = "A Python SDK for interacting with the Remnawave API v2.1.1." +version = "2.1.4" +description = "A Python SDK for interacting with the Remnawave API v2.1.4." authors = [ {name = "Artem",email = "dev@forestsnet.com"} ] diff --git a/remnawave/controllers/nodes.py b/remnawave/controllers/nodes.py index 7815d97..53de2d4 100644 --- a/remnawave/controllers/nodes.py +++ b/remnawave/controllers/nodes.py @@ -17,6 +17,7 @@ from remnawave.models import ( RestartNodeResponseDto, UpdateNodeRequestDto, UpdateNodeResponseDto, + RestartAllNodesRequestDto, ) from remnawave.rapid import BaseController, delete, get, patch, post @@ -44,7 +45,7 @@ class NodesController(BaseController): ) -> GetOneNodeResponseDto: """Get One Node""" ... - + @delete("/nodes/{uuid}", response_class=DeleteNodeResponseDto) async def delete_node( self, @@ -52,7 +53,7 @@ class NodesController(BaseController): ) -> DeleteNodeResponseDto: """Delete Node""" ... - + @patch("/nodes", response_class=UpdateNodeResponseDto) async def update_node( self, @@ -88,6 +89,7 @@ class NodesController(BaseController): @post("/nodes/actions/restart-all", response_class=RestartAllNodesResponseDto) async def restart_all_nodes( self, + body: Annotated[RestartAllNodesRequestDto, PydanticBody()], ) -> RestartAllNodesResponseDto: """Restart All Nodes""" ... diff --git a/remnawave/models/__init__.py b/remnawave/models/__init__.py index a365f74..885ea4d 100644 --- a/remnawave/models/__init__.py +++ b/remnawave/models/__init__.py @@ -151,6 +151,7 @@ from .nodes import ( RestartNodeResponseDto, UpdateNodeRequestDto, UpdateNodeResponseDto, + RestartAllNodesRequestDto, ) from .nodes_usage_history import ( GetNodeUserUsageByRangeResponseDto, @@ -256,6 +257,9 @@ __all__ = [ "RestartNodeResponseDto", "UpdateNodeRequestDto", "UpdateNodeResponseDto", + "NodeConfigProfileDto", + "NodeConfigProfileRequestDto", + "RestartAllNodesRequestDto", # Hosts models "CreateHostRequestDto", "CreateHostResponseDto", @@ -269,7 +273,11 @@ __all__ = [ "UpdateHostRequestDto", "UpdateHostResponseDto", "GetAllHostTagsResponseDto", + "CreateHostInboundData", + "HostInboundData", + "ReorderHostItem", # Inbounds models + "AllInboundsData", "FullInboundResponseDto", "FullInboundStatistic", "FullInboundsResponseDto", @@ -278,6 +286,7 @@ __all__ = [ "InboundResponseDto", "InboundsResponseDto", # Legacy alias "GetInternalSquadAccessibleNodesResponseDto", + "InboundsByProfileData", # Keygen models "GetPubKeyResponseDto", "PubKeyResponseDto", # Legacy alias @@ -405,6 +414,7 @@ __all__ = [ "InboundDto", "UpdateConfigProfileRequestDto", "UpdateConfigProfileResponseDto", + "GetAllConfigProfilesResponsePaginated", # Infra billing models "CreateInfraBillingNodeRequestDto", "CreateInfraBillingNodeResponseDto", diff --git a/remnawave/models/inbounds.py b/remnawave/models/inbounds.py index 7b3810b..53d3540 100644 --- a/remnawave/models/inbounds.py +++ b/remnawave/models/inbounds.py @@ -13,6 +13,7 @@ class InboundResponseDto(BaseModel): security: Optional[str] = None port: Optional[float] = None raw_inbound: Optional[Any] = Field(None, alias="rawInbound") + active_squads: Optional[list[UUID]] = Field(None, alias="activeSquads") class AllInboundsData(BaseModel): diff --git a/remnawave/models/nodes.py b/remnawave/models/nodes.py index f13e27e..96e6209 100644 --- a/remnawave/models/nodes.py +++ b/remnawave/models/nodes.py @@ -192,3 +192,7 @@ class DeleteNodeResponseDto(BaseModel): def __bool__(self): return self.is_deleted + + +class RestartAllNodesRequestDto(BaseModel): + force_restart: bool = Field(default=False, alias="forceRestart")