mirror of
https://github.com/remnawave/python-sdk.git
synced 2026-05-13 12:16:42 +00:00
feat: Update user models with new fields and types; add support for hwidDeviceLimit and HappCrypto
This commit is contained in:
parent
15ae9e6a20
commit
2b29f74087
4 changed files with 21 additions and 5 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -175,4 +175,5 @@ cython_debug/
|
|||
.pypirc
|
||||
test.py
|
||||
.DS_Store
|
||||
docs/
|
||||
docs/
|
||||
openapi/
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[project]
|
||||
name = "remnawave-api"
|
||||
version = "1.0.7"
|
||||
version = "1.0.8"
|
||||
description = "A Python SDK for interacting with the Remnawave API."
|
||||
authors = [
|
||||
{name = "Artem",email = "sm1ky@forestsnet.com"}
|
||||
|
|
@ -12,6 +12,8 @@ dependencies = [
|
|||
"rapid-api-client (==0.6.0)",
|
||||
"orjson (>=3.10.15,<4.0.0)",
|
||||
"httpx (>=0.27.2,<0.28.0)",
|
||||
"pydantic-core (==2.33.1)",
|
||||
"pydantic[email]",
|
||||
]
|
||||
keywords = ["remnawave", "api", "sdk", "proxy", "httpx", "async", "xray"]
|
||||
classifiers = [
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@ class UserLastConnectedNodeDto(BaseModel):
|
|||
connected_at: datetime = Field(alias="connectedAt")
|
||||
node_name: str = Field(alias="nodeName")
|
||||
|
||||
class HappCrypto(BaseModel):
|
||||
cryptoLink: str
|
||||
|
||||
class CreateUserRequestDto(BaseModel):
|
||||
username: Annotated[
|
||||
|
|
@ -55,6 +57,9 @@ class CreateUserRequestDto(BaseModel):
|
|||
description: Optional[str] = None
|
||||
telegram_id: Optional[int] = Field(None, serialization_alias="telegramId")
|
||||
email: Optional[str] = None
|
||||
hwidDeviceLimit: Optional[int] = Field(
|
||||
None, serialization_alias="hwidDeviceLimit", strict=True, ge=0
|
||||
)
|
||||
activate_all_inbounds: Optional[bool] = Field(
|
||||
None, serialization_alias="activateAllInbounds"
|
||||
)
|
||||
|
|
@ -79,6 +84,9 @@ class UpdateUserRequestDto(BaseModel):
|
|||
description: Optional[str] = None
|
||||
telegram_id: Optional[int] = Field(None, serialization_alias="telegramId")
|
||||
email: Optional[str] = None
|
||||
hwidDeviceLimit: Optional[int] = Field(
|
||||
None, serialization_alias="hwidDeviceLimit", strict=True, ge=0
|
||||
)
|
||||
|
||||
|
||||
class UserResponseDto(BaseModel):
|
||||
|
|
@ -103,15 +111,19 @@ class UserResponseDto(BaseModel):
|
|||
description: Optional[str] = None
|
||||
telegram_id: Optional[int] = Field(None, alias="telegramId")
|
||||
email: Optional[str] = None
|
||||
created_at: datetime = Field(alias="createdAt")
|
||||
updated_at: datetime = Field(alias="updatedAt")
|
||||
hwidDeviceLimit: Optional[int] = Field(
|
||||
None, serialization_alias="hwidDeviceLimit", strict=True, ge=0
|
||||
)
|
||||
active_user_inbounds: List[UserActiveInboundsDto] = Field(
|
||||
alias="activeUserInbounds"
|
||||
)
|
||||
created_at: datetime = Field(alias="createdAt")
|
||||
updated_at: datetime = Field(alias="updatedAt")
|
||||
subscription_url: str = Field(alias="subscriptionUrl")
|
||||
last_connected_node: Optional[UserLastConnectedNodeDto] = Field(
|
||||
None, alias="lastConnectedNode"
|
||||
)
|
||||
happ: Optional[HappCrypto] = Field(None, alias="happ")
|
||||
|
||||
|
||||
class EmailUserResponseDto(BaseModel):
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ from uuid import UUID
|
|||
from pydantic import BaseModel, Field
|
||||
|
||||
from remnawave_api.enums import UserStatus
|
||||
from remnawave_api.enums.users import TrafficLimitStrategy
|
||||
|
||||
|
||||
class BulkUpdateUsersInboundsRequestDto(BaseModel):
|
||||
|
|
@ -17,7 +18,7 @@ class UpdateUserFields(BaseModel):
|
|||
traffic_limit_bytes: Optional[int] = Field(
|
||||
None, serialization_alias="trafficLimitBytes", strict=True, ge=0
|
||||
)
|
||||
traffic_limit_strategy: Optional[str] = Field(
|
||||
traffic_limit_strategy: Optional[TrafficLimitStrategy] = Field(
|
||||
None, serialization_alias="trafficLimitStrategy"
|
||||
)
|
||||
expire_at: Optional[datetime] = Field(None, serialization_alias="expireAt")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue