acex-devkit 1.14.1__tar.gz → 1.16.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/PKG-INFO +1 -1
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/pyproject.toml +1 -1
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/models/acl_model.py +4 -4
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/models/composed_configuration.py +37 -45
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/models/logging.py +7 -3
- acex_devkit-1.16.0/src/acex_devkit/models/reference.py +37 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/README.md +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/__init__.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/configdiffer/__init__.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/configdiffer/command.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/configdiffer/configdiffer.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/configdiffer/diff.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/configdiffer/old_configdiffer.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/configdiffer/old_diff.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/drivers/__init__.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/drivers/base.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/drivers/base_driver.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/exceptions/__init__.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/models/__init__.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/models/attribute_value.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/models/container_entry.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/models/external_value.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/models/management_connection.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/models/ned.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/models/node_response.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/models/spanning_tree.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/normalizer/__init__.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/normalizer/base.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/normalizer/engine.py +0 -0
- {acex_devkit-1.14.1 → acex_devkit-1.16.0}/src/acex_devkit/types/__init__.py +0 -0
|
@@ -70,14 +70,14 @@ class Ipv4AclAttributes(ContainerEntry, BaseModel):
|
|
|
70
70
|
identity_fields: ClassVar[tuple[str, ...]] = ("name",)
|
|
71
71
|
name: AttributeValue[str]
|
|
72
72
|
type: AttributeValue[str] = "ipv4_acl"
|
|
73
|
-
acl_entries: Optional[Dict[str, Ipv4AclEntryAttributes]] =
|
|
73
|
+
acl_entries: Optional[Dict[str, Ipv4AclEntryAttributes]] = {}
|
|
74
74
|
|
|
75
75
|
class Ipv6AclAttributes(ContainerEntry, BaseModel):
|
|
76
76
|
identity_fields: ClassVar[tuple[str, ...]] = ("name",)
|
|
77
77
|
name: AttributeValue[str]
|
|
78
78
|
type: AttributeValue[str] = "ipv6_acl"
|
|
79
|
-
acl_entries: Optional[Dict[str, Ipv6AclEntryAttributes]] =
|
|
79
|
+
acl_entries: Optional[Dict[str, Ipv6AclEntryAttributes]] = {}
|
|
80
80
|
|
|
81
81
|
class Acl(BaseModel):
|
|
82
|
-
ipv4_acls: Optional[Dict[str, Ipv4AclAttributes]] =
|
|
83
|
-
ipv6_acls: Optional[Dict[str, Ipv6AclAttributes]] =
|
|
82
|
+
ipv4_acls: Optional[Dict[str, Ipv4AclAttributes]] = {}
|
|
83
|
+
ipv6_acls: Optional[Dict[str, Ipv6AclAttributes]] = {}
|
|
@@ -16,32 +16,7 @@ from acex_devkit.models.logging import (
|
|
|
16
16
|
)
|
|
17
17
|
from acex_devkit.models.spanning_tree import SpanningTree
|
|
18
18
|
from acex_devkit.models.acl_model import Acl
|
|
19
|
-
|
|
20
|
-
class MetadataValueType(str, Enum):
|
|
21
|
-
CONCRETE = "concrete"
|
|
22
|
-
EXTERNALVALUE = "externalValue"
|
|
23
|
-
REFERENCE = "reference"
|
|
24
|
-
|
|
25
|
-
class Metadata(BaseModel):
|
|
26
|
-
type: Optional[str] = "str"
|
|
27
|
-
value_source: MetadataValueType = MetadataValueType.CONCRETE
|
|
28
|
-
|
|
29
|
-
class Reference(ContainerEntry, BaseModel):
|
|
30
|
-
identity_fields: ClassVar[tuple[str, ...]] = ("pointer",)
|
|
31
|
-
pointer: str
|
|
32
|
-
metadata: Metadata = Metadata(type="str", value_source="reference")
|
|
33
|
-
|
|
34
|
-
class ReferenceTo(Reference):
|
|
35
|
-
pointer: str
|
|
36
|
-
metadata: Optional[Dict] = {}
|
|
37
|
-
|
|
38
|
-
class ReferenceFrom(Reference):
|
|
39
|
-
pointer: str
|
|
40
|
-
metadata: Optional[Dict] = {}
|
|
41
|
-
|
|
42
|
-
class RenderedReference(BaseModel):
|
|
43
|
-
from_ptr: str
|
|
44
|
-
to_ptr: str
|
|
19
|
+
from acex_devkit.models.reference import MetadataValueType, Metadata, Reference, ReferenceTo, ReferenceFrom, RenderedReference
|
|
45
20
|
|
|
46
21
|
class SystemConfig(BaseModel):
|
|
47
22
|
contact: Optional[AttributeValue[str]] = None
|
|
@@ -441,26 +416,36 @@ class SnmpPrivProtocol(str, Enum):
|
|
|
441
416
|
AES256 = "AES256"
|
|
442
417
|
|
|
443
418
|
|
|
444
|
-
class
|
|
445
|
-
identity_fields: ClassVar[tuple[str, ...]] = ()
|
|
419
|
+
class SnmpConfigAttributes(ContainerEntry, BaseModel):
|
|
420
|
+
identity_fields: ClassVar[tuple[str, ...]] = ("name",)
|
|
421
|
+
name: AttributeValue[str]
|
|
446
422
|
enabled: AttributeValue[bool] = AttributeValue(value=False)
|
|
447
423
|
engine_id: Optional[AttributeValue[str]] = None
|
|
448
424
|
location: Optional[AttributeValue[str]] = None
|
|
449
425
|
contact: Optional[AttributeValue[str]] = None
|
|
450
426
|
|
|
451
427
|
|
|
452
|
-
class
|
|
428
|
+
class SnmpCommunityAttributes(ContainerEntry, Augmentable):
|
|
453
429
|
identity_fields: ClassVar[tuple[str, ...]] = ("name",)
|
|
454
430
|
name: AttributeValue[str]
|
|
455
431
|
community: Optional[AttributeValue[str]] = None # Community string
|
|
456
|
-
access: Optional[AttributeValue[SnmpAccess]] = AttributeValue(value=SnmpAccess.READ_ONLY)
|
|
457
|
-
view: Optional[
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
source_interface: Optional[Reference] = None
|
|
432
|
+
#access: Optional[AttributeValue[SnmpAccess]] = AttributeValue(value=SnmpAccess.READ_ONLY)
|
|
433
|
+
#view: Optional[Reference] = None
|
|
434
|
+
ipv4acl: Optional[Reference] = None # Cisco and similar vendors
|
|
435
|
+
ipv6acl: Optional[Reference] = None
|
|
436
|
+
#source_interface: Optional[Reference] = None
|
|
461
437
|
|
|
438
|
+
class SnmpGroupAttributes(ContainerEntry, BaseModel):
|
|
439
|
+
identity_fields: ClassVar[tuple[str, ...]] = ("name",)
|
|
440
|
+
name: AttributeValue[str]
|
|
441
|
+
access: Optional[AttributeValue[SnmpAccess]] = AttributeValue(value=SnmpAccess.READ_ONLY)
|
|
442
|
+
ipv4acl: Optional[Reference] = None # Cisco and similar vendors
|
|
443
|
+
ipv6acl: Optional[Reference] = None
|
|
444
|
+
#source_interface: Optional[Reference] = None
|
|
445
|
+
users: Optional[Dict[str, Reference]] = {} # Users that belong to this group. Only relevant for SNMPv3.
|
|
446
|
+
views: Optional[Dict[str, Reference]] = {} # Views that this group has access to.
|
|
462
447
|
|
|
463
|
-
class
|
|
448
|
+
class SnmpUserAttributes(ContainerEntry, BaseModel):
|
|
464
449
|
identity_fields: ClassVar[tuple[str, ...]] = ("username",)
|
|
465
450
|
username: AttributeValue[str]
|
|
466
451
|
security_level: Optional[AttributeValue[SnmpSecurityLevel]] = AttributeValue(value=SnmpSecurityLevel.NO_AUTH_NO_PRIV)
|
|
@@ -469,15 +454,19 @@ class SnmpUser(ContainerEntry, BaseModel):
|
|
|
469
454
|
priv_protocol: Optional[AttributeValue[SnmpPrivProtocol]] = None
|
|
470
455
|
priv_password: Optional[AttributeValue[str]] = None
|
|
471
456
|
|
|
457
|
+
class SnmpViewAttributes(ContainerEntry, BaseModel):
|
|
458
|
+
identity_fields: ClassVar[tuple[str, ...]] = ("name",)
|
|
459
|
+
name: AttributeValue[str]
|
|
460
|
+
oids: Optional[Dict[str, SnmpViewOidAttributes]] = {}
|
|
472
461
|
|
|
473
|
-
class
|
|
462
|
+
class SnmpViewOidAttributes(ContainerEntry, BaseModel):
|
|
474
463
|
identity_fields: ClassVar[tuple[str, ...]] = ("name",)
|
|
475
464
|
name: AttributeValue[str]
|
|
476
465
|
oid: AttributeValue[str]
|
|
477
466
|
included: Optional[AttributeValue[bool]] = AttributeValue(value=True)
|
|
467
|
+
view: Optional[AttributeValue[str]] = None
|
|
478
468
|
|
|
479
|
-
|
|
480
|
-
class SnmpServer(ContainerEntry, BaseModel):
|
|
469
|
+
class SnmpServerAttributes(ContainerEntry, BaseModel):
|
|
481
470
|
identity_fields: ClassVar[tuple[str, ...]] = ("address",)
|
|
482
471
|
name: Optional[AttributeValue[str]] = None
|
|
483
472
|
address: Optional[AttributeValue[str]] = None
|
|
@@ -489,6 +478,7 @@ class SnmpServer(ContainerEntry, BaseModel):
|
|
|
489
478
|
security_level: Optional[AttributeValue[SnmpSecurityLevel]] = None
|
|
490
479
|
source_interface: Optional[Reference] = None
|
|
491
480
|
network_instance: Optional[AttributeValue[str]] = None
|
|
481
|
+
group: Optional[Reference] = None # Only relevant for SNMPv3.
|
|
492
482
|
|
|
493
483
|
# ----------------------------
|
|
494
484
|
# Enum-based trap groups
|
|
@@ -605,7 +595,7 @@ class TrapEventOptions(str, Enum):
|
|
|
605
595
|
BULKSTAT_COLLECTION = "bulkstat_collection"
|
|
606
596
|
BULKSTAT_TRANSFER = "bulkstat_transfer"
|
|
607
597
|
|
|
608
|
-
class
|
|
598
|
+
class TrapEventAttributes(ContainerEntry, BaseModel):
|
|
609
599
|
identity_fields: ClassVar[tuple[str, ...]] = ("event_name",)
|
|
610
600
|
name: Optional[AttributeValue[str]] = None
|
|
611
601
|
event_name: Optional[AttributeValue[TrapEventOptions]] = None
|
|
@@ -613,12 +603,14 @@ class TrapEvent(ContainerEntry, BaseModel):
|
|
|
613
603
|
#class SnmpTrap(BaseModel): ...
|
|
614
604
|
|
|
615
605
|
class Snmp(BaseModel):
|
|
616
|
-
config: Optional[Dict[str,
|
|
617
|
-
communities: Optional[Dict[str,
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
606
|
+
config: Optional[Dict[str, SnmpConfigAttributes]] = {}
|
|
607
|
+
communities: Optional[Dict[str, SnmpCommunityAttributes]] = {}
|
|
608
|
+
groups: Optional[Dict[str, SnmpGroupAttributes]] = {}
|
|
609
|
+
users: Optional[Dict[str, SnmpUserAttributes]] = {}
|
|
610
|
+
trap_servers: Optional[Dict[str, SnmpServerAttributes]] = {}
|
|
611
|
+
trap_events: Optional[Dict[str, TrapEventAttributes]] = {}
|
|
612
|
+
views: Optional[Dict[str, SnmpViewAttributes]] = {}
|
|
613
|
+
|
|
622
614
|
|
|
623
615
|
# AAA
|
|
624
616
|
class aaaBaseClass(ContainerEntry, BaseModel):
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from pydantic import BaseModel
|
|
2
2
|
from acex_devkit.models.attribute_value import AttributeValue
|
|
3
3
|
from acex_devkit.models.container_entry import ContainerEntry
|
|
4
|
+
from acex_devkit.models.reference import Reference
|
|
4
5
|
from enum import Enum
|
|
5
6
|
from typing import ClassVar, Optional, Dict
|
|
6
7
|
|
|
@@ -35,8 +36,6 @@ class LoggingFacility(str, Enum):
|
|
|
35
36
|
CHANGELOG = "CHANGELOG"
|
|
36
37
|
INTERACTIVE_COMMANDS = "INTERACTIVE_COMMANDS"
|
|
37
38
|
|
|
38
|
-
class Reference(BaseModel): ...
|
|
39
|
-
|
|
40
39
|
class LoggingConfig(BaseModel):
|
|
41
40
|
rate_limit: Optional[AttributeValue[int]] = None
|
|
42
41
|
severity: Optional[AttributeValue[LoggingSeverity]] = None
|
|
@@ -64,6 +63,10 @@ class VtyLine(ContainerEntry, BaseModel):
|
|
|
64
63
|
line_number: Optional[AttributeValue[int]] = None
|
|
65
64
|
logging_synchronous: Optional[AttributeValue[bool]] = None
|
|
66
65
|
transport_input: Optional[AttributeValue[str]] = None # default is SSH. Mostly used by Cisco.
|
|
66
|
+
ipv4acl: Optional[Reference] = None # reference to an ACL object. Only used by Cisco.
|
|
67
|
+
ipv6acl: Optional[Reference] = None # reference to an ACL object. Only used by Cisco.
|
|
68
|
+
acl_direction: Optional[AttributeValue[str]] = None # direction of ACL, either 'in' or 'out'
|
|
69
|
+
acl_network_instance: Optional[AttributeValue[str]] = None # network instance where ACL is
|
|
67
70
|
|
|
68
71
|
class FileLogging(ContainerEntry, BaseModel):
|
|
69
72
|
identity_fields: ClassVar[tuple[str, ...]] = ("filename",)
|
|
@@ -81,4 +84,5 @@ class LoggingEvent(BaseModel):
|
|
|
81
84
|
|
|
82
85
|
|
|
83
86
|
class LoggingEvents(BaseModel):
|
|
84
|
-
events: Optional[Dict[str, LoggingEvent]] = None
|
|
87
|
+
events: Optional[Dict[str, LoggingEvent]] = None
|
|
88
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
from pydantic import BaseModel
|
|
2
|
+
from typing import Optional, Dict, ClassVar
|
|
3
|
+
from enum import Enum
|
|
4
|
+
|
|
5
|
+
from acex_devkit.models.container_entry import ContainerEntry
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class MetadataValueType(str, Enum):
|
|
9
|
+
CONCRETE = "concrete"
|
|
10
|
+
EXTERNALVALUE = "externalValue"
|
|
11
|
+
REFERENCE = "reference"
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class Metadata(BaseModel):
|
|
15
|
+
type: Optional[str] = "str"
|
|
16
|
+
value_source: MetadataValueType = MetadataValueType.CONCRETE
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class Reference(ContainerEntry, BaseModel):
|
|
20
|
+
identity_fields: ClassVar[tuple[str, ...]] = ("pointer",)
|
|
21
|
+
pointer: str
|
|
22
|
+
metadata: Metadata = Metadata(type="str", value_source="reference")
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class ReferenceTo(Reference):
|
|
26
|
+
pointer: str
|
|
27
|
+
metadata: Optional[Dict] = {}
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class ReferenceFrom(Reference):
|
|
31
|
+
pointer: str
|
|
32
|
+
metadata: Optional[Dict] = {}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class RenderedReference(BaseModel):
|
|
36
|
+
from_ptr: str
|
|
37
|
+
to_ptr: str
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|