enums.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import enum
  2. import strawberry
  3. from extras.choices import *
  4. from netbox.event_rules import get_event_rule_action_choices
  5. from utilities.string import enum_key
  6. __all__ = (
  7. 'CustomFieldChoiceColorEnum',
  8. 'CustomFieldChoiceSetBaseEnum',
  9. 'CustomFieldFilterLogicEnum',
  10. 'CustomFieldStatusEnum',
  11. 'CustomFieldTypeEnum',
  12. 'CustomFieldUIEditableEnum',
  13. 'CustomFieldUIVisibleEnum',
  14. 'CustomLinkButtonClassEnum',
  15. 'EventRuleActionEnum',
  16. 'JournalEntryKindEnum',
  17. 'WebhookHttpMethodEnum',
  18. )
  19. CustomFieldChoiceColorEnum = strawberry.enum(CustomFieldChoiceColorChoices.as_enum())
  20. CustomFieldChoiceSetBaseEnum = strawberry.enum(CustomFieldChoiceSetBaseChoices.as_enum())
  21. CustomFieldFilterLogicEnum = strawberry.enum(CustomFieldFilterLogicChoices.as_enum(prefix='filter'))
  22. CustomFieldStatusEnum = strawberry.enum(CustomFieldStatusChoices.as_enum(prefix='status'))
  23. CustomFieldTypeEnum = strawberry.enum(CustomFieldTypeChoices.as_enum(prefix='type'))
  24. CustomFieldUIEditableEnum = strawberry.enum(CustomFieldUIEditableChoices.as_enum())
  25. CustomFieldUIVisibleEnum = strawberry.enum(CustomFieldUIVisibleChoices.as_enum())
  26. CustomLinkButtonClassEnum = strawberry.enum(CustomLinkButtonClassChoices.as_enum())
  27. # Built from the event_rule_actions registry, which is fully populated by the time the schema is
  28. # assembled. Fixed for the process's lifetime, as any Strawberry enum is.
  29. EventRuleActionEnum = strawberry.enum(enum.Enum('EventRuleActionEnum', {
  30. enum_key(choice.value): choice.value for choice in get_event_rule_action_choices()
  31. }))
  32. JournalEntryKindEnum = strawberry.enum(JournalEntryKindChoices.as_enum(prefix='kind'))
  33. WebhookHttpMethodEnum = strawberry.enum(WebhookHttpMethodChoices.as_enum())