@@ -15,7 +15,7 @@ class LinodeInterfacesSettingsDefaultRouteOptions(JSONObject):
15
15
16
16
@dataclass
17
17
class LinodeInterfacesSettingsDefaultRoute (JSONObject ):
18
- put_body = LinodeInterfacesSettingsDefaultRouteOptions
18
+ put_class = LinodeInterfacesSettingsDefaultRouteOptions
19
19
20
20
ipv4_interface_id : Optional [int ] = None
21
21
ipv4_eligible_interface_ids : List [int ] = field (default_factory = list )
@@ -35,6 +35,9 @@ class LinodeInterfacesSettings(Base):
35
35
}
36
36
37
37
38
+ # Interface POST Options
39
+
40
+
38
41
@dataclass
39
42
class LinodeInterfaceDefaultRouteOptions (JSONObject ):
40
43
ipv4 : bool = False
@@ -98,32 +101,113 @@ class LinodeInterfaceVLANOptions(JSONObject):
98
101
ipam_address : Optional [str ] = None
99
102
100
103
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
+
101
175
@dataclass
102
176
class LinodeInterfaceDefaultRoute (JSONObject ):
177
+ put_class = LinodeInterfaceDefaultRouteOptions
178
+
103
179
ipv4 : bool = False
104
180
ipv6 : bool = False
105
181
106
182
107
183
@dataclass
108
184
class LinodeInterfaceVPCIPv4Address (JSONObject ):
185
+ put_class = LinodeInterfaceVPCIPv4AddressOptions
186
+
109
187
address : str = ""
110
188
primary : bool = False
111
189
nat_1_1_address : Optional [str ] = None
112
190
113
191
114
192
@dataclass
115
193
class LinodeInterfaceVPCIPv4Range (JSONObject ):
194
+ put_class = LinodeInterfaceVPCIPv4RangeOptions
195
+
116
196
range : str = ""
117
197
118
198
119
199
@dataclass
120
200
class LinodeInterfaceVPCIPv4 (JSONObject ):
201
+ put_class = LinodeInterfaceVPCIPv4Options
202
+
121
203
addresses : List [LinodeInterfaceVPCIPv4Address ] = field (default_factory = list )
122
204
ranges : List [LinodeInterfaceVPCIPv4Range ] = field (default_factory = list )
123
205
124
206
125
207
@dataclass
126
208
class LinodeInterfaceVPC (JSONObject ):
209
+ put_class = LinodeInterfaceVPCIPv4Options
210
+
127
211
vpc_id : int = 0
128
212
subnet_id : int = 0
129
213
@@ -132,18 +216,24 @@ class LinodeInterfaceVPC(JSONObject):
132
216
133
217
@dataclass
134
218
class LinodeInterfacePublicIPv4Address (JSONObject ):
219
+ put_class = LinodeInterfacePublicIPv4AddressOptions
220
+
135
221
address : str = ""
136
222
primary : bool = False
137
223
138
224
139
225
@dataclass
140
226
class LinodeInterfacePublicIPv4Shared (JSONObject ):
227
+ put_class = LinodeInterfacePublicIPv4Options
228
+
141
229
address : str = ""
142
230
linode_id : int = 0
143
231
144
232
145
233
@dataclass
146
234
class LinodeInterfacePublicIPv4 (JSONObject ):
235
+ put_class = LinodeInterfacePublicIPv4Options
236
+
147
237
addresses : List [LinodeInterfacePublicIPv4Address ] = field (
148
238
default_factory = list
149
239
)
@@ -152,37 +242,49 @@ class LinodeInterfacePublicIPv4(JSONObject):
152
242
153
243
@dataclass
154
244
class LinodeInterfacePublicIPv6SLAAC (JSONObject ):
245
+ put_class = LinodeInterfacePublicIPv6Options
246
+
155
247
address : str = ""
156
248
prefix : int = 0
157
249
158
250
159
251
@dataclass
160
252
class LinodeInterfacePublicIPv6Shared (JSONObject ):
253
+ put_class = LinodeInterfacePublicIPv6Options
254
+
161
255
range : str = ""
162
256
route_target : Optional [str ] = None
163
257
164
258
165
259
@dataclass
166
260
class LinodeInterfacePublicIPv6Range (JSONObject ):
261
+ put_class = LinodeInterfacePublicIPv6Options
262
+
167
263
range : str = ""
168
264
route_target : Optional [str ] = None
169
265
170
266
171
267
@dataclass
172
268
class LinodeInterfacePublicIPv6 (JSONObject ):
269
+ put_class = LinodeInterfacePublicIPv6Options
270
+
173
271
slaac : List [LinodeInterfacePublicIPv6SLAAC ] = field (default_factory = list )
174
272
shared : List [LinodeInterfacePublicIPv6Shared ] = field (default_factory = list )
175
273
ranges : List [LinodeInterfacePublicIPv6Range ] = field (default_factory = list )
176
274
177
275
178
276
@dataclass
179
277
class LinodeInterfacePublic (JSONObject ):
278
+ put_class = LinodeInterfacePublicOptions
279
+
180
280
ipv4 : Optional [LinodeInterfacePublicIPv4 ] = None
181
281
ipv6 : Optional [LinodeInterfacePublicIPv6 ] = None
182
282
183
283
184
284
@dataclass
185
285
class LinodeInterfaceVLAN (JSONObject ):
286
+ put_class = LinodeInterfaceVLANOptions
287
+
186
288
vlan_label : str = ""
187
289
ipam_address : Optional [str ] = None
188
290
0 commit comments