@@ -15,7 +15,7 @@ class LinodeInterfacesSettingsDefaultRouteOptions(JSONObject):
1515
1616@dataclass
1717class LinodeInterfacesSettingsDefaultRoute (JSONObject ):
18- put_body = LinodeInterfacesSettingsDefaultRouteOptions
18+ put_class = LinodeInterfacesSettingsDefaultRouteOptions
1919
2020 ipv4_interface_id : Optional [int ] = None
2121 ipv4_eligible_interface_ids : List [int ] = field (default_factory = list )
@@ -35,6 +35,9 @@ class LinodeInterfacesSettings(Base):
3535 }
3636
3737
38+ # Interface POST Options
39+
40+
3841@dataclass
3942class LinodeInterfaceDefaultRouteOptions (JSONObject ):
4043 ipv4 : bool = False
@@ -98,32 +101,113 @@ class LinodeInterfaceVLANOptions(JSONObject):
98101 ipam_address : Optional [str ] = None
99102
100103
104+ # Interface PUT Options
105+
106+
107+ @dataclass
108+ class LinodeInterfaceDefaultRouteUpdateOptions (JSONObject ):
109+ ipv4 : bool = False
110+ ipv6 : bool = False
111+
112+
113+ @dataclass
114+ class LinodeInterfaceVPCIPv4AddressUpdateOptions (JSONObject ):
115+ address : str = ""
116+ primary : Optional [bool ] = None
117+ nat_1_1_address : Optional [str ] = None
118+
119+
120+ @dataclass
121+ class LinodeInterfaceVPCIPv4RangeUpdateOptions (JSONObject ):
122+ range : str = ""
123+
124+
125+ @dataclass
126+ class LinodeInterfaceVPCIPv4UpdateOptions (JSONObject ):
127+ addresses : Optional [List [LinodeInterfaceVPCIPv4AddressUpdateOptions ]] = None
128+ ranges : Optional [List [LinodeInterfaceVPCIPv4RangeUpdateOptions ]] = None
129+
130+
131+ @dataclass
132+ class LinodeInterfaceVPCUpdateOptions (JSONObject ):
133+ subnet_id : int = 0
134+ ipv4 : Optional [LinodeInterfaceVPCIPv4UpdateOptions ] = None
135+
136+
137+ @dataclass
138+ class LinodeInterfacePublicIPv4AddressUpdateOptions (JSONObject ):
139+ address : str = ""
140+ primary : Optional [bool ] = None
141+
142+
143+ @dataclass
144+ class LinodeInterfacePublicIPv4UpdateOptions (JSONObject ):
145+ addresses : Optional [List [LinodeInterfacePublicIPv4AddressUpdateOptions ]] = (
146+ None
147+ )
148+
149+
150+ @dataclass
151+ class LinodeInterfacePublicIPv6RangeUpdateOptions (JSONObject ):
152+ range : str = ""
153+
154+
155+ @dataclass
156+ class LinodeInterfacePublicIPv6UpdateOptions (JSONObject ):
157+ ranges : Optional [List [LinodeInterfacePublicIPv6RangeUpdateOptions ]] = None
158+
159+
160+ @dataclass
161+ class LinodeInterfacePublicUpdateOptions (JSONObject ):
162+ ipv4 : Optional [LinodeInterfacePublicIPv4UpdateOptions ] = None
163+ ipv6 : Optional [LinodeInterfacePublicIPv6UpdateOptions ] = None
164+
165+
166+ @dataclass
167+ class LinodeInterfaceVLANUpdateOptions (JSONObject ):
168+ vlan_label : str = ""
169+ ipam_address : Optional [str ] = None
170+
171+
172+ # Interface GET Response
173+
174+
101175@dataclass
102176class LinodeInterfaceDefaultRoute (JSONObject ):
177+ put_class = LinodeInterfaceDefaultRouteOptions
178+
103179 ipv4 : bool = False
104180 ipv6 : bool = False
105181
106182
107183@dataclass
108184class LinodeInterfaceVPCIPv4Address (JSONObject ):
185+ put_class = LinodeInterfaceVPCIPv4AddressOptions
186+
109187 address : str = ""
110188 primary : bool = False
111189 nat_1_1_address : Optional [str ] = None
112190
113191
114192@dataclass
115193class LinodeInterfaceVPCIPv4Range (JSONObject ):
194+ put_class = LinodeInterfaceVPCIPv4RangeOptions
195+
116196 range : str = ""
117197
118198
119199@dataclass
120200class LinodeInterfaceVPCIPv4 (JSONObject ):
201+ put_class = LinodeInterfaceVPCIPv4Options
202+
121203 addresses : List [LinodeInterfaceVPCIPv4Address ] = field (default_factory = list )
122204 ranges : List [LinodeInterfaceVPCIPv4Range ] = field (default_factory = list )
123205
124206
125207@dataclass
126208class LinodeInterfaceVPC (JSONObject ):
209+ put_class = LinodeInterfaceVPCIPv4Options
210+
127211 vpc_id : int = 0
128212 subnet_id : int = 0
129213
@@ -132,18 +216,24 @@ class LinodeInterfaceVPC(JSONObject):
132216
133217@dataclass
134218class LinodeInterfacePublicIPv4Address (JSONObject ):
219+ put_class = LinodeInterfacePublicIPv4AddressOptions
220+
135221 address : str = ""
136222 primary : bool = False
137223
138224
139225@dataclass
140226class LinodeInterfacePublicIPv4Shared (JSONObject ):
227+ put_class = LinodeInterfacePublicIPv4Options
228+
141229 address : str = ""
142230 linode_id : int = 0
143231
144232
145233@dataclass
146234class LinodeInterfacePublicIPv4 (JSONObject ):
235+ put_class = LinodeInterfacePublicIPv4Options
236+
147237 addresses : List [LinodeInterfacePublicIPv4Address ] = field (
148238 default_factory = list
149239 )
@@ -152,37 +242,49 @@ class LinodeInterfacePublicIPv4(JSONObject):
152242
153243@dataclass
154244class LinodeInterfacePublicIPv6SLAAC (JSONObject ):
245+ put_class = LinodeInterfacePublicIPv6Options
246+
155247 address : str = ""
156248 prefix : int = 0
157249
158250
159251@dataclass
160252class LinodeInterfacePublicIPv6Shared (JSONObject ):
253+ put_class = LinodeInterfacePublicIPv6Options
254+
161255 range : str = ""
162256 route_target : Optional [str ] = None
163257
164258
165259@dataclass
166260class LinodeInterfacePublicIPv6Range (JSONObject ):
261+ put_class = LinodeInterfacePublicIPv6Options
262+
167263 range : str = ""
168264 route_target : Optional [str ] = None
169265
170266
171267@dataclass
172268class LinodeInterfacePublicIPv6 (JSONObject ):
269+ put_class = LinodeInterfacePublicIPv6Options
270+
173271 slaac : List [LinodeInterfacePublicIPv6SLAAC ] = field (default_factory = list )
174272 shared : List [LinodeInterfacePublicIPv6Shared ] = field (default_factory = list )
175273 ranges : List [LinodeInterfacePublicIPv6Range ] = field (default_factory = list )
176274
177275
178276@dataclass
179277class LinodeInterfacePublic (JSONObject ):
278+ put_class = LinodeInterfacePublicOptions
279+
180280 ipv4 : Optional [LinodeInterfacePublicIPv4 ] = None
181281 ipv6 : Optional [LinodeInterfacePublicIPv6 ] = None
182282
183283
184284@dataclass
185285class LinodeInterfaceVLAN (JSONObject ):
286+ put_class = LinodeInterfaceVLANOptions
287+
186288 vlan_label : str = ""
187289 ipam_address : Optional [str ] = None
188290
0 commit comments