Skip to content

Commit 9ab5ffb

Browse files
committed
Adding back the initial attributes classes for builtin schema
1 parent e0fa5d7 commit 9ab5ffb

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed

infrahub_sdk/protocols_base.py

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,97 @@ class Attribute(Protocol):
2828
is_protected: Optional[bool]
2929

3030

31+
# TODO: Consolidate them into on single set of classes
32+
# Classes for builtin schema attribute
33+
class String(Attribute):
34+
value: str
35+
36+
37+
class StringOptional(Attribute):
38+
value: Optional[str]
39+
40+
41+
class Integer(Attribute):
42+
value: int
43+
44+
45+
class IntegerOptional(Attribute):
46+
value: Optional[int]
47+
48+
49+
class Boolean(Attribute):
50+
value: bool
51+
52+
53+
class BooleanOptional(Attribute):
54+
value: Optional[bool]
55+
56+
57+
class DateTime(Attribute):
58+
value: str
59+
60+
61+
class DateTimeOptional(Attribute):
62+
value: Optional[str]
63+
64+
65+
class Enum(Attribute):
66+
value: str
67+
68+
69+
class EnumOptional(Attribute):
70+
value: Optional[str]
71+
72+
73+
class URL(Attribute):
74+
value: str
75+
76+
77+
class URLOptional(Attribute):
78+
value: Optional[str]
79+
80+
81+
class Dropdown(Attribute):
82+
value: str
83+
84+
85+
class DropdownOptional(Attribute):
86+
value: Optional[str]
87+
88+
89+
class IPNetwork(Attribute):
90+
value: Union[ipaddress.IPv4Network, ipaddress.IPv6Network]
91+
92+
93+
class IPNetworkOptional(Attribute):
94+
value: Optional[Union[ipaddress.IPv4Network, ipaddress.IPv6Network]]
95+
96+
97+
class IPHost(Attribute):
98+
value: Union[ipaddress.IPv4Address, ipaddress.IPv6Address]
99+
100+
101+
class IPHostOptional(Attribute):
102+
value: Optional[Union[ipaddress.IPv4Address, ipaddress.IPv6Address]]
103+
104+
105+
class HashedPassword(Attribute):
106+
value: str
107+
108+
109+
class HashedPasswordOptional(Attribute):
110+
value: Any
111+
112+
113+
class JSONAttribute(Attribute):
114+
value: Any
115+
116+
117+
class JSONAttributeOptional(Attribute):
118+
value: Optional[Any]
119+
120+
121+
# Classes for user defined schema attribute
31122
class IDAttribute(Attribute):
32123
value: int
33124

0 commit comments

Comments
 (0)