Support for policies (ro)
This commit is contained in:
@ -3,3 +3,4 @@ from .nodes import Node
|
||||
from .users import User
|
||||
from .routes import Route
|
||||
from .preauthkeys import PreAuthKey, v1ListPreAuthKeyRequest
|
||||
from .policies import Policy
|
||||
|
24
hsapi_client/policies.py
Normal file
24
hsapi_client/policies.py
Normal file
@ -0,0 +1,24 @@
|
||||
from pydantic import BaseModel, Field
|
||||
from typing import Optional
|
||||
# from datetime import datetime
|
||||
|
||||
from .model import HSAPICall
|
||||
from .schemas import v1Policy
|
||||
|
||||
|
||||
class v1PutPolicyResponse(BaseModel):
|
||||
policy: str = Field(alias="policy", default=None)
|
||||
|
||||
|
||||
class Policy(HSAPICall):
|
||||
|
||||
objectPath = "policy"
|
||||
|
||||
def get(self) -> v1Policy:
|
||||
response = self.call('get')
|
||||
return v1Policy(**response.json())
|
||||
|
||||
def put(self, data: v1Policy) -> v1Policy:
|
||||
policy_txt = v1PutPolicyResponse(policy=data.json)
|
||||
response = self.call('put', data=policy_txt)
|
||||
return v1Policy(**response.json())
|
@ -1,8 +1,11 @@
|
||||
from typing import Optional, List
|
||||
from pydantic import BaseModel, Field, computed_field
|
||||
from typing import Optional, List, Union
|
||||
from pydantic import BaseModel, Field, computed_field, field_serializer, field_validator, model_serializer
|
||||
from datetime import datetime, timezone, timedelta
|
||||
from enum import Enum
|
||||
|
||||
import json
|
||||
import pyjson5
|
||||
|
||||
|
||||
class v1RegisterMethod(str, Enum):
|
||||
|
||||
@ -58,6 +61,26 @@ class v1User(BaseModel):
|
||||
createdAt: datetime = Field(alias="createdAt", default=None)
|
||||
|
||||
|
||||
class v1Policy(BaseModel):
|
||||
|
||||
policy: dict = Field(alias="policy", default=None)
|
||||
updatedAt: datetime = Field(alias="updatedAt", default=None)
|
||||
|
||||
@field_validator("policy", mode="before")
|
||||
@classmethod
|
||||
def json_to_dict(cls, v: str):
|
||||
pydict = pyjson5.loads(v)
|
||||
return pydict
|
||||
|
||||
@property
|
||||
def minjson(self) -> str:
|
||||
return json.dumps(self.policy)
|
||||
|
||||
@property
|
||||
def json(self) -> str:
|
||||
return json.dumps(self.policy, indent=2)
|
||||
|
||||
|
||||
class v1Node(BaseModel):
|
||||
"""
|
||||
None model
|
||||
|
Reference in New Issue
Block a user