github.com/Jeffail/benthos/v3@v3.65.0/lib/input/nats_jetstream.go (about)

     1  package input
     2  
     3  import (
     4  	"github.com/Jeffail/benthos/v3/internal/impl/nats/auth"
     5  	"github.com/Jeffail/benthos/v3/lib/util/tls"
     6  	"github.com/nats-io/nats.go"
     7  )
     8  
     9  // NATSJetStreamConfig contains configuration fields for the NATS Jetstream
    10  // input type.
    11  type NATSJetStreamConfig struct {
    12  	URLs          []string    `json:"urls" yaml:"urls"`
    13  	Subject       string      `json:"subject" yaml:"subject"`
    14  	Queue         string      `json:"queue" yaml:"queue"`
    15  	Durable       string      `json:"durable" yaml:"durable"`
    16  	Deliver       string      `json:"deliver" yaml:"deliver"`
    17  	AckWait       string      `json:"ack_wait" yaml:"ack_wait"`
    18  	MaxAckPending int         `json:"max_ack_pending" yaml:"max_ack_pending"`
    19  	TLS           tls.Config  `json:"tls" yaml:"tls"`
    20  	Auth          auth.Config `json:"auth" yaml:"auth"`
    21  }
    22  
    23  // NewNATSJetStreamConfig creates a new NATSJetstreamConfig with default values.
    24  func NewNATSJetStreamConfig() NATSJetStreamConfig {
    25  	return NATSJetStreamConfig{
    26  		URLs:          []string{nats.DefaultURL},
    27  		Subject:       "",
    28  		AckWait:       "30s",
    29  		MaxAckPending: 1024,
    30  		Deliver:       "all",
    31  		TLS:           tls.NewConfig(),
    32  		Auth:          auth.New(),
    33  	}
    34  }