package emailcli import ( "context" "fmt" ) func (c *Client) CreateAuditRule(ctx context.Context, req CreateAuditRuleReq) (*AuditRule, error) { return post[*AuditRule](c, ctx, "/api/v1/audit-rules", req) } func (c *Client) ListAuditRules(ctx context.Context) ([]AuditRule, error) { return get[[]AuditRule](c, ctx, "/api/v1/audit-rules", nil) } func (c *Client) GetAuditRule(ctx context.Context, id uint) (*AuditRule, error) { return get[*AuditRule](c, ctx, fmt.Sprintf("/api/v1/audit-rules/%d", id), nil) } func (c *Client) UpdateAuditRule(ctx context.Context, id uint, req UpdateAuditRuleReq) (*AuditRule, error) { return put[*AuditRule](c, ctx, fmt.Sprintf("/api/v1/audit-rules/%d", id), req) } func (c *Client) DeleteAuditRule(ctx context.Context, id uint) error { _, err := del[any](c, ctx, fmt.Sprintf("/api/v1/audit-rules/%d", id)) return err } func (c *Client) UpdateAuditRuleStatus(ctx context.Context, id uint, status int8) (*AuditRule, error) { return put[*AuditRule](c, ctx, fmt.Sprintf("/api/v1/audit-rules/%d/status", id), map[string]int8{"status": status}) } func (c *Client) TestAuditRule(ctx context.Context, req TestAuditRuleReq) (*TestAuditRuleResp, error) { return post[*TestAuditRuleResp](c, ctx, "/api/v1/audit-rules/test", req) }