package server // ClientAPIAudit is for identifying a client who initiated an API call to the system. type ClientAPIAudit struct { Host string `json:"host"` Port int `json:"port"` CID uint64 `json:"cid"` Account string `json:"account"` User string `json:"user,omitempty"` Name string `json:"name,omitempty"` Language string `json:"lang,omitempty"` Version string `json:"version,omitempty"` } // JSAPIAudit is an advisory about administrative actions taken on JetStream type JSAPIAudit struct { TypedEvent Server string `json:"server"` Client ClientAPIAudit `json:"client"` Subject string `json:"subject"` Request string `json:"request,omitempty"` Response string `json:"response"` } const JSAPIAuditType = "io.nats.jetstream.advisory.v1.api_audit" // ActionAdvisoryType indicates which action against a stream, consumer or template triggered an advisory type ActionAdvisoryType string const ( CreateEvent ActionAdvisoryType = "create" DeleteEvent ActionAdvisoryType = "delete" ModifyEvent ActionAdvisoryType = "modify" ) // JSStreamActionAdvisory indicates that a stream was created, edited or deleted type JSStreamActionAdvisory struct { TypedEvent Stream string `json:"stream"` Action ActionAdvisoryType `json:"action"` Template string `json:"template,omitempty"` } const JSStreamActionAdvisoryType = "io.nats.jetstream.advisory.v1.stream_action" // JSConsumerActionAdvisory indicates that a consumer was created or deleted type JSConsumerActionAdvisory struct { TypedEvent Stream string `json:"stream"` Consumer string `json:"consumer"` Action ActionAdvisoryType `json:"action"` } const JSConsumerActionAdvisoryType = "io.nats.jetstream.advisory.v1.consumer_action" // JSConsumerAckMetric is a metric published when a user acknowledges a message, the // number of these that will be published is dependent on SampleFrequency type JSConsumerAckMetric struct { TypedEvent Stream string `json:"stream"` Consumer string `json:"consumer"` ConsumerSeq uint64 `json:"consumer_seq"` StreamSeq uint64 `json:"stream_seq"` Delay int64 `json:"ack_time"` Deliveries uint64 `json:"deliveries"` } // JSConsumerAckMetricType is the schema type for JSConsumerAckMetricType const JSConsumerAckMetricType = "io.nats.jetstream.metric.v1.consumer_ack" // JSConsumerDeliveryExceededAdvisory is an advisory informing that a message hit // its MaxDeliver threshold and so might be a candidate for DLQ handling type JSConsumerDeliveryExceededAdvisory struct { TypedEvent Stream string `json:"stream"` Consumer string `json:"consumer"` StreamSeq uint64 `json:"stream_seq"` Deliveries uint64 `json:"deliveries"` } // JSConsumerDeliveryExceededAdvisoryType is the schema type for JSConsumerDeliveryExceededAdvisory const JSConsumerDeliveryExceededAdvisoryType = "io.nats.jetstream.advisory.v1.max_deliver"