You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
boundary/internal/event/sink_format.go

30 lines
1002 B

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: BUSL-1.1
package event
import (
"fmt"
)
const (
JSONSinkFormat SinkFormat = "cloudevents-json" // JSONSinkFormat means the event is formatted as JSON
TextSinkFormat SinkFormat = "cloudevents-text" // TextSinkFormat means the event is formmatted as text
TextHclogSinkFormat SinkFormat = "hclog-text" // TextHclogSinkFormat means the event is formatted as an hclog text entry
JSONHclogSinkFormat SinkFormat = "hclog-json" // JSONHclogSinkFormat means the event is formated as an hclog json entry
)
type SinkFormat string // SinkFormat defines the formatting for a sink in a config file stanza (json)
func (f SinkFormat) Validate() error {
const op = "event.(SinkFormat).Validate"
switch f {
case JSONSinkFormat, TextSinkFormat:
return nil
case TextHclogSinkFormat, JSONHclogSinkFormat:
return nil
default:
return fmt.Errorf("%s: '%s' is not a valid sink format: %w", op, f, ErrInvalidParameter)
}
}