package rule

type SecurityRulesList []SecurityRule

// SecurityRule
type SecurityRule struct {
	// Access group ID
	AccessGroupID string `json:"access_group_id"`

	// Action to take (Allow, Deny, etc.)
	Action string `json:"action"`

	// Description
	Description string `json:"description"`

	// Traffic direction (Ingress, Egress)
	Direction string `json:"direction"`

	// Display name
	DisplayName string `json:"display_name"`

	// Enabled flag
	Enabled bool `json:"enabled"`

	// Filter criteria
	Filter Filter `json:"filter"`

	// ID
	ID string `json:"id"`

	// Log enabled flag
	LogEnabled bool `json:"log_enabled"`

	// Log severity level
	LogSeverity string `json:"log_severity"`

	// Priority
	Priority int `json:"priority"`

	// Security policy ID
	SecurityPolicyID string `json:"security_policy_id"`

	// Statistics enabled flag
	StatisticsEnabled bool `json:"statistics_enabled"`

	// Version ID
	VersionID uint64 `json:"version_id"`
}

// Filter represents the filter criteria for the security rule
type Filter struct {
	// Filters map
	Filters map[string]interface{} `json:"filters"`
}
