1
1
import string
2
2
import sys
3
- from dataclasses import dataclass
3
+ from dataclasses import dataclass , field
4
4
from datetime import datetime
5
5
from enum import Enum
6
6
from os import urandom
@@ -295,6 +295,24 @@ class ConfigInterfaceIPv4(JSONObject):
295
295
nat_1_1 : str = ""
296
296
297
297
298
+ @dataclass
299
+ class ConfigInterfaceIPv6SLAAC (JSONObject ):
300
+ range : str = ""
301
+ address : str = ""
302
+
303
+
304
+ @dataclass
305
+ class ConfigInterfaceIPv6Range (JSONObject ):
306
+ range : str = ""
307
+
308
+
309
+ @dataclass
310
+ class ConfigInterfaceIPv6 (JSONObject ):
311
+ slaac : List [ConfigInterfaceIPv6SLAAC ] = field (default_factory = lambda : [])
312
+ ranges : List [ConfigInterfaceIPv6Range ] = field (default_factory = lambda : [])
313
+ is_public : bool = False
314
+
315
+
298
316
class NetworkInterface (DerivedBase ):
299
317
"""
300
318
This class represents a Configuration Profile's network interface object.
@@ -320,6 +338,7 @@ class NetworkInterface(DerivedBase):
320
338
"vpc_id" : Property (id_relationship = VPC ),
321
339
"subnet_id" : Property (),
322
340
"ipv4" : Property (mutable = True , json_object = ConfigInterfaceIPv4 ),
341
+ "ipv6" : Property (mutable = True , json_object = ConfigInterfaceIPv6 ),
323
342
"ip_ranges" : Property (mutable = True ),
324
343
}
325
344
@@ -391,7 +410,10 @@ class ConfigInterface(JSONObject):
391
410
# VPC-specific
392
411
vpc_id : Optional [int ] = None
393
412
subnet_id : Optional [int ] = None
413
+
394
414
ipv4 : Optional [Union [ConfigInterfaceIPv4 , Dict [str , Any ]]] = None
415
+ ipv6 : Optional [Union [ConfigInterfaceIPv6 , Dict [str , Any ]]] = None
416
+
395
417
ip_ranges : Optional [List [str ]] = None
396
418
397
419
# Computed
0 commit comments