package audit // Option type Option func(s *Sink) // WithApp func WithApp(app string) Option { return func(s *Sink) { s.app = app } } // WithUserIP func WithUserIP(ip string) Option { return func(s *Sink) { s.ip = ip } } // WithTenant func WithTenant(tenant string) Option { return func(s *Sink) { s.tenant = tenant } } // WithActor func WithActor(actionBy string) Option { return func(s *Sink) { s.actionBy = actionBy } } // WithIdentifier func WithIdentifier(id string) Option { return func(s *Sink) { s.identifier = id } } // WithAuthProvider func WithAuthProvider(authProvider string) Option { return func(s *Sink) { s.authProvider = authProvider } } // WithRequestURL func WithRequestURL(requestURL string) Option { return func(s *Sink) { s.requestURL = requestURL } } // WithOperationName func WithOperationName(operationName string) Option { return func(s *Sink) { s.operationName = operationName } } // WithUserAgent func WithUserAgent(userAgent string) Option { return func(s *Sink) { s.userAgent = userAgent } } // WithMethod func WithMethod(method string) Option { return func(s *Sink) { s.method = method } } // WithStatus func WithStatus(status string) Option { return func(s *Sink) { s.status = status } } // WithParameters func WithParameters(parameters map[string]interface{}) Option { return func(s *Sink) { params := make([]interface{}, 0) for k, v := range parameters { params = append(params, k, v) } s.parameters = params } } // WithInput func WithInput(input string) Option { return func(s *Sink) { s.input = input } }