cloudfloordns.models.zone
1# from dataclasses import dataclass, field 2from typing import List, Optional, Union 3 4from pydantic import AliasChoices, BaseModel, Field, StringConstraints 5from typing_extensions import Annotated 6 7DEFAULT_PRIMARY_NS = "ns1.g02.cfdns.net" 8 9 10class DomainDescription(BaseModel): 11 """ 12 Pydantic model 13 """ 14 15 status: Optional[str] 16 status_extended: Optional[str] 17 18 class Config: 19 extra = "allow" 20 21 22class Zone(BaseModel): 23 """ 24 Pydantic model 25 """ 26 27 domainname: Annotated[str, StringConstraints(strip_whitespace=True)] 28 29 id: Optional[str] = None 30 zone: Optional[str] = None 31 registered: Optional[int] = None 32 secondary: Optional[int] = None 33 primary: Optional[int] = None 34 domain_description: Optional[DomainDescription] = None 35 group_ids: Optional[List[str]] = None 36 37 class Config: 38 populate_by_name = True 39 extra = "allow" 40 41 def __hash__(self): 42 return hash(self.domainname) 43 44 def __eq__(self, op): 45 return self.is_same(op) 46 47 def is_same(self, right: Union[str, "Zone"]) -> bool: 48 """ 49 This method check the identity 50 """ 51 if not isinstance(right, (Zone, str)): 52 return NotImplemented 53 if isinstance(right, Zone): 54 right = right.domainname 55 return self.domainname == right 56 57 @property 58 def normalized_name(self) -> Optional[str]: 59 name = self.domainname 60 return ".".join(p.strip() for p in name.lower().split(".")) 61 62 63class Redirect(BaseModel): 64 """ 65 Pydantic model 66 """ 67 68 name: str = Field(validation_alias=AliasChoices("name", "source", "src")) 69 dst: str = Field( 70 validation_alias=AliasChoices( 71 "forwardto", "destination", "dst", "dest", "target" 72 ) 73 ) 74 zone: Optional[str] = None
DEFAULT_PRIMARY_NS =
'ns1.g02.cfdns.net'
class
DomainDescription(pydantic.main.BaseModel):
11class DomainDescription(BaseModel): 12 """ 13 Pydantic model 14 """ 15 16 status: Optional[str] 17 status_extended: Optional[str] 18 19 class Config: 20 extra = "allow"
Pydantic model
class
DomainDescription.Config:
class
Zone(pydantic.main.BaseModel):
23class Zone(BaseModel): 24 """ 25 Pydantic model 26 """ 27 28 domainname: Annotated[str, StringConstraints(strip_whitespace=True)] 29 30 id: Optional[str] = None 31 zone: Optional[str] = None 32 registered: Optional[int] = None 33 secondary: Optional[int] = None 34 primary: Optional[int] = None 35 domain_description: Optional[DomainDescription] = None 36 group_ids: Optional[List[str]] = None 37 38 class Config: 39 populate_by_name = True 40 extra = "allow" 41 42 def __hash__(self): 43 return hash(self.domainname) 44 45 def __eq__(self, op): 46 return self.is_same(op) 47 48 def is_same(self, right: Union[str, "Zone"]) -> bool: 49 """ 50 This method check the identity 51 """ 52 if not isinstance(right, (Zone, str)): 53 return NotImplemented 54 if isinstance(right, Zone): 55 right = right.domainname 56 return self.domainname == right 57 58 @property 59 def normalized_name(self) -> Optional[str]: 60 name = self.domainname 61 return ".".join(p.strip() for p in name.lower().split("."))
Pydantic model
domainname: typing.Annotated[str, StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=None)]
domain_description: Optional[DomainDescription]
48 def is_same(self, right: Union[str, "Zone"]) -> bool: 49 """ 50 This method check the identity 51 """ 52 if not isinstance(right, (Zone, str)): 53 return NotImplemented 54 if isinstance(right, Zone): 55 right = right.domainname 56 return self.domainname == right
This method check the identity
class
Zone.Config:
class
Redirect(pydantic.main.BaseModel):
64class Redirect(BaseModel): 65 """ 66 Pydantic model 67 """ 68 69 name: str = Field(validation_alias=AliasChoices("name", "source", "src")) 70 dst: str = Field( 71 validation_alias=AliasChoices( 72 "forwardto", "destination", "dst", "dest", "target" 73 ) 74 ) 75 zone: Optional[str] = None
Pydantic model