acex-devkit 1.15.0__tar.gz → 1.16.1__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.
Files changed (30) hide show
  1. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/PKG-INFO +1 -1
  2. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/pyproject.toml +1 -1
  3. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/models/composed_configuration.py +36 -19
  4. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/README.md +0 -0
  5. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/__init__.py +0 -0
  6. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/configdiffer/__init__.py +0 -0
  7. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/configdiffer/command.py +0 -0
  8. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/configdiffer/configdiffer.py +0 -0
  9. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/configdiffer/diff.py +0 -0
  10. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/configdiffer/old_configdiffer.py +0 -0
  11. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/configdiffer/old_diff.py +0 -0
  12. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/drivers/__init__.py +0 -0
  13. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/drivers/base.py +0 -0
  14. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/drivers/base_driver.py +0 -0
  15. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/exceptions/__init__.py +0 -0
  16. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/models/__init__.py +0 -0
  17. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/models/acl_model.py +0 -0
  18. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/models/attribute_value.py +0 -0
  19. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/models/container_entry.py +0 -0
  20. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/models/external_value.py +0 -0
  21. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/models/logging.py +0 -0
  22. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/models/management_connection.py +0 -0
  23. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/models/ned.py +0 -0
  24. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/models/node_response.py +0 -0
  25. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/models/reference.py +0 -0
  26. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/models/spanning_tree.py +0 -0
  27. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/normalizer/__init__.py +0 -0
  28. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/normalizer/base.py +0 -0
  29. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/normalizer/engine.py +0 -0
  30. {acex_devkit-1.15.0 → acex_devkit-1.16.1}/src/acex_devkit/types/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: acex-devkit
3
- Version: 1.15.0
3
+ Version: 1.16.1
4
4
  Summary: ACE-X DevKit - Development kit for building ACE-X drivers and plugins
5
5
  License: AGPL-3.0
6
6
  Keywords: automation,devkit,sdk,drivers,plugins
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "acex-devkit"
3
- version = "1.15.0"
3
+ version = "1.16.1"
4
4
  description = "ACE-X DevKit - Development kit for building ACE-X drivers and plugins"
5
5
  authors = ["Johan Lahti <johan.lahti@acebit.se>"]
6
6
  readme = "README.md"
@@ -416,26 +416,36 @@ class SnmpPrivProtocol(str, Enum):
416
416
  AES256 = "AES256"
417
417
 
418
418
 
419
- class SnmpConfig(ContainerEntry, BaseModel):
420
- identity_fields: ClassVar[tuple[str, ...]] = ()
419
+ class SnmpConfigAttributes(ContainerEntry, BaseModel):
420
+ identity_fields: ClassVar[tuple[str, ...]] = ("name",)
421
+ name: AttributeValue[str]
421
422
  enabled: AttributeValue[bool] = AttributeValue(value=False)
422
423
  engine_id: Optional[AttributeValue[str]] = None
423
424
  location: Optional[AttributeValue[str]] = None
424
425
  contact: Optional[AttributeValue[str]] = None
425
426
 
426
427
 
427
- class SnmpCommunity(ContainerEntry, Augmentable):
428
+ class SnmpCommunityAttributes(ContainerEntry, Augmentable):
428
429
  identity_fields: ClassVar[tuple[str, ...]] = ("name",)
429
430
  name: AttributeValue[str]
430
431
  community: Optional[AttributeValue[str]] = None # Community string
431
- access: Optional[AttributeValue[SnmpAccess]] = AttributeValue(value=SnmpAccess.READ_ONLY)
432
- view: Optional[AttributeValue[str]] = None
433
- ipv4_acl: Optional[AttributeValue[str]] = None # Cisco and "liknande" vendors
434
- ipv6_acl: Optional[AttributeValue[str]] = None
435
- 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
436
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.
437
447
 
438
- class SnmpUser(ContainerEntry, BaseModel):
448
+ class SnmpUserAttributes(ContainerEntry, BaseModel):
439
449
  identity_fields: ClassVar[tuple[str, ...]] = ("username",)
440
450
  username: AttributeValue[str]
441
451
  security_level: Optional[AttributeValue[SnmpSecurityLevel]] = AttributeValue(value=SnmpSecurityLevel.NO_AUTH_NO_PRIV)
@@ -444,15 +454,19 @@ class SnmpUser(ContainerEntry, BaseModel):
444
454
  priv_protocol: Optional[AttributeValue[SnmpPrivProtocol]] = None
445
455
  priv_password: Optional[AttributeValue[str]] = None
446
456
 
447
-
448
- class SnmpView(ContainerEntry, BaseModel):
457
+ class SnmpViewOidAttributes(ContainerEntry, BaseModel):
449
458
  identity_fields: ClassVar[tuple[str, ...]] = ("name",)
450
459
  name: AttributeValue[str]
451
460
  oid: AttributeValue[str]
452
461
  included: Optional[AttributeValue[bool]] = AttributeValue(value=True)
462
+ view: Optional[AttributeValue[str]] = None
453
463
 
464
+ class SnmpViewAttributes(ContainerEntry, BaseModel):
465
+ identity_fields: ClassVar[tuple[str, ...]] = ("name",)
466
+ name: AttributeValue[str]
467
+ oids: Optional[Dict[str, SnmpViewOidAttributes]] = {}
454
468
 
455
- class SnmpServer(ContainerEntry, BaseModel):
469
+ class SnmpServerAttributes(ContainerEntry, BaseModel):
456
470
  identity_fields: ClassVar[tuple[str, ...]] = ("address",)
457
471
  name: Optional[AttributeValue[str]] = None
458
472
  address: Optional[AttributeValue[str]] = None
@@ -464,6 +478,7 @@ class SnmpServer(ContainerEntry, BaseModel):
464
478
  security_level: Optional[AttributeValue[SnmpSecurityLevel]] = None
465
479
  source_interface: Optional[Reference] = None
466
480
  network_instance: Optional[AttributeValue[str]] = None
481
+ group: Optional[Reference] = None # Only relevant for SNMPv3.
467
482
 
468
483
  # ----------------------------
469
484
  # Enum-based trap groups
@@ -580,7 +595,7 @@ class TrapEventOptions(str, Enum):
580
595
  BULKSTAT_COLLECTION = "bulkstat_collection"
581
596
  BULKSTAT_TRANSFER = "bulkstat_transfer"
582
597
 
583
- class TrapEvent(ContainerEntry, BaseModel):
598
+ class TrapEventAttributes(ContainerEntry, BaseModel):
584
599
  identity_fields: ClassVar[tuple[str, ...]] = ("event_name",)
585
600
  name: Optional[AttributeValue[str]] = None
586
601
  event_name: Optional[AttributeValue[TrapEventOptions]] = None
@@ -588,12 +603,14 @@ class TrapEvent(ContainerEntry, BaseModel):
588
603
  #class SnmpTrap(BaseModel): ...
589
604
 
590
605
  class Snmp(BaseModel):
591
- config: Optional[Dict[str, SnmpConfig]] = {}
592
- communities: Optional[Dict[str, SnmpCommunity]] = {}
593
- users: Optional[Dict[str, SnmpUser]] = {}
594
- trap_servers: Optional[Dict[str, SnmpServer]] = {}
595
- trap_events: Optional[Dict[str, TrapEvent]] = {}
596
- views: Optional[Dict[str, SnmpView]] = {}
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
+
597
614
 
598
615
  # AAA
599
616
  class aaaBaseClass(ContainerEntry, BaseModel):
File without changes