diff --git a/README.md b/README.md index 7920d65e..28c02cf0 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ ## Overview -This is a library for managing and interacting with JetStream. +This is a library for managing and interacting with the JetStream API and various other NATS APIs and event sources. -This library provides API access to all the JetStream related abilities of the `nats` CLI utility. - -**NOTE** For general access to JetStream no special libraries are needed, the standard language specific NATS client can be used. These are optional helpers. +This library provides API accesses to all the JetStream related abilities of the `nats` CLI utility. To support API access +it provides a rich set of functions related to validation, documenting and detecting event types using a set of JSON +Schema documents. ## Stability diff --git a/api/example_validate_event_test.go b/api/example_validate_event_test.go deleted file mode 100644 index c35795d9..00000000 --- a/api/example_validate_event_test.go +++ /dev/null @@ -1,23 +0,0 @@ -package api - -import ( - "fmt" - "sort" - "strings" -) - -func ExampleValidateStruct() { - event := StreamConfig{} - - ok, errs := ValidateStruct(event, event.SchemaType()) - if !ok { - sort.Strings(errs) - fmt.Println("Event Validation Failed:") - fmt.Printf(" %s\n", strings.Join(errs, "\n ")) - } - - // Output: - // Event Validation Failed: - // (root): subjects is required - // num_replicas: Must be greater than or equal to 1 -} diff --git a/api/gen.go b/api/gen.go index cd84511f..b05de5b3 100644 --- a/api/gen.go +++ b/api/gen.go @@ -58,8 +58,12 @@ var schemaTypes = map[string]func() interface{}{ {{- range . }} {{- if .ShouldAddValidator }} // Validate performs a JSON Schema validation of the configuration -func (t {{ .St }}) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t {{ .St }}) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type {{ .T }} diff --git a/api/schemas.go b/api/schemas.go index d8cdc06e..cc668a99 100644 --- a/api/schemas.go +++ b/api/schemas.go @@ -10,8 +10,6 @@ import ( "strings" "text/template" "time" - - "github.com/xeipuuv/gojsonschema" ) // SchemasRepo is the repository holding NATS Schemas @@ -30,6 +28,11 @@ type Event interface { EventTemplate(kind string) (*template.Template, error) } +// StructValidator is used to validate API structures +type StructValidator interface { + ValidateStruct(data interface{}, schemaType string) (ok bool, errs []string) +} + // RenderFormat indicates the format to render templates in type RenderFormat string @@ -155,33 +158,6 @@ func NewMessage(schemaType string) (interface{}, bool) { return gf(), ok } -// ValidateStruct validates data matches schemaType like io.nats.jetstream.advisory.v1.api_audit -func ValidateStruct(data interface{}, schemaType string) (ok bool, errs []string) { - // other more basic types can be validated directly against their schemaType - s, err := Schema(schemaType) - if err != nil { - return false, []string{"unknown schema type %s", schemaType} - } - - ls := gojsonschema.NewBytesLoader(s) - ld := gojsonschema.NewGoLoader(data) - result, err := gojsonschema.Validate(ls, ld) - if err != nil { - return false, []string{fmt.Sprintf("validation failed: %s", err)} - } - - if result.Valid() { - return true, nil - } - - errors := make([]string, len(result.Errors())) - for i, verr := range result.Errors() { - errors[i] = verr.String() - } - - return false, errors -} - // ParseMessage parses a typed message m and returns event as for example *api.ConsumerAckMetric, all unknown // event schemas will be of type *UnknownMessage func ParseMessage(m []byte) (schemaType string, msg interface{}, err error) { diff --git a/api/schemas_generated.go b/api/schemas_generated.go index 7941b687..8641d01a 100644 --- a/api/schemas_generated.go +++ b/api/schemas_generated.go @@ -1,4 +1,4 @@ -// auto generated 2020-08-21 12:10:22.398178 +0200 CEST m=+12.232438727 +// auto generated 2020-09-24 15:24:27.431285 +0200 CEST m=+12.615765820 package api @@ -63,8 +63,12 @@ var schemaTypes = map[string]func() interface{}{ } // Validate performs a JSON Schema validation of the configuration -func (t ConsumerConfig) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t ConsumerConfig) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.consumer_configuration @@ -83,8 +87,12 @@ func (t ConsumerConfig) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t StreamConfig) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t StreamConfig) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_configuration @@ -103,8 +111,12 @@ func (t StreamConfig) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t StreamTemplateConfig) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t StreamTemplateConfig) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_template_configuration @@ -123,8 +135,12 @@ func (t StreamTemplateConfig) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiAccountInfoResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiAccountInfoResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.account_info_response @@ -143,8 +159,12 @@ func (t JSApiAccountInfoResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiConsumerCreateRequest) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiConsumerCreateRequest) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.consumer_create_request @@ -163,8 +183,12 @@ func (t JSApiConsumerCreateRequest) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiConsumerCreateResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiConsumerCreateResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.consumer_create_response @@ -183,8 +207,12 @@ func (t JSApiConsumerCreateResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiConsumerDeleteResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiConsumerDeleteResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.consumer_delete_response @@ -203,8 +231,12 @@ func (t JSApiConsumerDeleteResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiConsumerInfoResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiConsumerInfoResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.consumer_info_response @@ -223,8 +255,12 @@ func (t JSApiConsumerInfoResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiConsumerListRequest) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiConsumerListRequest) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.consumer_list_request @@ -243,8 +279,12 @@ func (t JSApiConsumerListRequest) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiConsumerListResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiConsumerListResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.consumer_list_response @@ -263,8 +303,12 @@ func (t JSApiConsumerListResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiConsumerNamesRequest) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiConsumerNamesRequest) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.consumer_names_request @@ -283,8 +327,12 @@ func (t JSApiConsumerNamesRequest) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiConsumerNamesResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiConsumerNamesResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.consumer_names_response @@ -303,8 +351,12 @@ func (t JSApiConsumerNamesResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiStreamCreateResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiStreamCreateResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_create_response @@ -323,8 +375,12 @@ func (t JSApiStreamCreateResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiStreamDeleteResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiStreamDeleteResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_delete_response @@ -343,8 +399,12 @@ func (t JSApiStreamDeleteResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiStreamInfoResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiStreamInfoResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_info_response @@ -363,8 +423,12 @@ func (t JSApiStreamInfoResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiStreamListRequest) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiStreamListRequest) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_list_request @@ -383,8 +447,12 @@ func (t JSApiStreamListRequest) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiStreamListResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiStreamListResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_list_response @@ -403,8 +471,12 @@ func (t JSApiStreamListResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiMsgDeleteResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiMsgDeleteResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_msg_delete_response @@ -423,8 +495,12 @@ func (t JSApiMsgDeleteResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiMsgGetRequest) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiMsgGetRequest) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_msg_get_request @@ -443,8 +519,12 @@ func (t JSApiMsgGetRequest) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiMsgGetResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiMsgGetResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_msg_get_response @@ -463,8 +543,12 @@ func (t JSApiMsgGetResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiStreamNamesRequest) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiStreamNamesRequest) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_names_request @@ -483,8 +567,12 @@ func (t JSApiStreamNamesRequest) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiStreamNamesResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiStreamNamesResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_names_response @@ -503,8 +591,12 @@ func (t JSApiStreamNamesResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiStreamPurgeResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiStreamPurgeResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_purge_response @@ -523,8 +615,12 @@ func (t JSApiStreamPurgeResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiStreamSnapshotResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiStreamSnapshotResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_snapshot_response @@ -543,8 +639,12 @@ func (t JSApiStreamSnapshotResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiStreamSnapshotRequest) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiStreamSnapshotRequest) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_snapshot_request @@ -563,8 +663,12 @@ func (t JSApiStreamSnapshotRequest) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiStreamRestoreResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiStreamRestoreResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_restore_response @@ -583,8 +687,12 @@ func (t JSApiStreamRestoreResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiStreamTemplateCreateResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiStreamTemplateCreateResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_template_create_response @@ -603,8 +711,12 @@ func (t JSApiStreamTemplateCreateResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiStreamTemplateDeleteResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiStreamTemplateDeleteResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_template_delete_response @@ -623,8 +735,12 @@ func (t JSApiStreamTemplateDeleteResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiStreamTemplateInfoResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiStreamTemplateInfoResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_template_info_response @@ -643,8 +759,12 @@ func (t JSApiStreamTemplateInfoResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiStreamTemplateNamesResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiStreamTemplateNamesResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_template_names_response @@ -663,8 +783,12 @@ func (t JSApiStreamTemplateNamesResponse) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiStreamTemplateNamesRequest) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiStreamTemplateNamesRequest) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_template_names_request @@ -683,8 +807,12 @@ func (t JSApiStreamTemplateNamesRequest) Schema() []byte { } // Validate performs a JSON Schema validation of the configuration -func (t JSApiStreamUpdateResponse) Validate() (valid bool, errors []string) { - return ValidateStruct(t, t.SchemaType()) +func (t JSApiStreamUpdateResponse) Validate(v ...StructValidator) (valid bool, errors []string) { + if len(v) == 0 || v[0] == nil { + return true, nil + } + + return v[0].ValidateStruct(t, t.SchemaType()) } // SchemaType is the NATS schema type io.nats.jetstream.api.v1.stream_update_response @@ -717,16 +845,16 @@ func init() { schemas["io.nats.jetstream.advisory.v1.restore_create"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYWR2aXNvcnkvdjEvcmVzdG9yZV9jcmVhdGUuanNvbiIsCiAgImRlc2NyaXB0aW9uIjogIkFuIEFkdmlzb3J5IHNlbnQgd2hlbiBhIFN0cmVhbSByZXN0b3JlIGlzIHN0YXJ0ZWQiLAogICJ0aXRsZSI6ICJpby5uYXRzLmpldHN0cmVhbS5hZHZpc29yeS52MS5yZXN0b3JlX2NyZWF0ZSIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAicmVxdWlyZWQiOiBbCiAgICAidHlwZSIsCiAgICAiaWQiLAogICAgInRpbWVzdGFtcCIsCiAgICAic3RyZWFtIiwKICAgICJjbGllbnQiCiAgXSwKICAicHJvcGVydGllcyI6IHsKICAgICJ0eXBlIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiY29uc3QiOiAiaW8ubmF0cy5qZXRzdHJlYW0uYWR2aXNvcnkudjEucmVzdG9yZV9jcmVhdGUiCiAgICB9LAogICAgImlkIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZGVzY3JpcHRpb24iOiAiVW5pcXVlIGNvcnJlbGF0aW9uIElEIGZvciB0aGlzIGV2ZW50IgogICAgfSwKICAgICJ0aW1lc3RhbXAiOiB7CiAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICJmb3JtYXQiOiAiZGF0ZS10aW1lIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB0aW1lIHRoaXMgZXZlbnQgd2FzIGNyZWF0ZWQgaW4gUkZDMzMzOSBmb3JtYXQiCiAgICB9LAogICAgInN0cmVhbSI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBTdHJlYW0gYmVpbmcgcmVzdG9yZWQiCiAgICB9LAogICAgImNsaWVudCI6IHsKICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICJob3N0IiwKICAgICAgICAicG9ydCIsCiAgICAgICAgImNpZCIsCiAgICAgICAgImFjY291bnQiCiAgICAgIF0sCiAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgImhvc3QiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBJUCBhZGRyZXNzIHdoZXJlIHRoZSBjbGllbnQgY29ubmVjdHMgZnJvbSIKICAgICAgICB9LAogICAgICAgICJwb3J0IjogewogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHBvcnQgbnVtYmVyIHdoZXJlIHRoZSBjbGllbnQgY29ubmVjdHMgZnJvbSIKICAgICAgICB9LAogICAgICAgICJjaWQiOiB7CiAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgdW5pcXVlIGNsaWVudCBJRCB0aGUgc2VydmVyIGFzc2lnbmVkIHRvIHRoZSBjb25uZWN0aW9uIgogICAgICAgIH0sCiAgICAgICAgImFjY291bnQiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhY2NvdW50IHRoZSB1c2VyIGJlbG9uZ3MgdG8iCiAgICAgICAgfSwKICAgICAgICAidXNlciI6IHsKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHVzZXJuYW1lIHRoYXQgd2FzIHVzZWQgZHVyaW5nIGF1dGhlbnRpY2F0aW9uLCBpZiBhbnkiCiAgICAgICAgfSwKICAgICAgICAibmFtZSI6IHsKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIG5hbWUgdGhlIGNsaWVudCBhc3NpZ25lZCB0byB0aGUgY29ubmVjdGlvbiBkdXJpbmcgY29ubmVjdGlvbiBuZWdvdGlhdGlvbiIKICAgICAgICB9LAogICAgICAgICJsYW5ndWFnZSI6IHsKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGNsaWVudCBsaWJyYXJ5IGxhbmd1YWdlIHVzZWQgdG8gY3JlYXRlIHRoZSBjb25uZWN0aW9uIgogICAgICAgIH0sCiAgICAgICAgInZlcnNpb24iOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB2ZXJzaW9uIGNsaWVudCBsaWJyYXJ5IHVzZWQgdG8gY3JlYXRlIHRoZSBjb25uZWN0aW9uIgogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KfQo=") schemas["io.nats.jetstream.advisory.v1.restore_complete"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYWR2aXNvcnkvdjEvcmVzdG9yZV9jb21wbGV0ZS5qc29uIiwKICAiZGVzY3JpcHRpb24iOiAiQW4gQWR2aXNvcnkgc2VudCB3aGVuIGEgU3RyZWFtIHJlc3RvcmUgaXMgY29tcGxldGVkIiwKICAidGl0bGUiOiAiaW8ubmF0cy5qZXRzdHJlYW0uYWR2aXNvcnkudjEucmVzdG9yZV9jb21wbGV0ZSIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAicmVxdWlyZWQiOiBbCiAgICAidHlwZSIsCiAgICAiaWQiLAogICAgInRpbWVzdGFtcCIsCiAgICAic3RyZWFtIiwKICAgICJzdGFydCIsCiAgICAiZW5kIiwKICAgICJieXRlcyIsCiAgICAiY2xpZW50IgogIF0sCiAgInByb3BlcnRpZXMiOiB7CiAgICAidHlwZSI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgImNvbnN0IjogImlvLm5hdHMuamV0c3RyZWFtLmFkdmlzb3J5LnYxLnJlc3RvcmVfY29tcGxldGUiCiAgICB9LAogICAgImlkIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZGVzY3JpcHRpb24iOiAiVW5pcXVlIGNvcnJlbGF0aW9uIElEIGZvciB0aGlzIGV2ZW50IgogICAgfSwKICAgICJ0aW1lc3RhbXAiOiB7CiAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICJmb3JtYXQiOiAiZGF0ZS10aW1lIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB0aW1lIHRoaXMgZXZlbnQgd2FzIGNyZWF0ZWQgaW4gUkZDMzMzOSBmb3JtYXQiCiAgICB9LAogICAgInN0cmVhbSI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBTdHJlYW0gYmVpbmcgcmVzdG9yZWQiCiAgICB9LAogICAgInN0YXJ0IjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHRpbWUgdGhlIFJlc3RvcmUgcHJvY2VzcyBzdGFydGVkIiwKICAgICAgImZvcm1hdCI6ICJkYXRlLXRpbWUiCiAgICB9LAogICAgImVuZCI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB0aW1lIHRoZSBSZXN0b3JlIHdhcyBjb21wbGV0ZWQiLAogICAgICAiZm9ybWF0IjogImRhdGUtdGltZSIKICAgIH0sCiAgICAiYnl0ZXMiOiB7CiAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIG51bWJlciBvZiBieXRlcyB0aGF0IHdhcyByZWNlaXZlZCIsCiAgICAgICJtaW5pbXVtIjogMAogICAgfSwKICAgICJjbGllbnQiOiB7CiAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAiaG9zdCIsCiAgICAgICAgInBvcnQiLAogICAgICAgICJjaWQiLAogICAgICAgICJhY2NvdW50IgogICAgICBdLAogICAgICAiYWRkaXRpb25hbEl0ZW1zIjogZmFsc2UsCiAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICJob3N0IjogewogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgSVAgYWRkcmVzcyB3aGVyZSB0aGUgY2xpZW50IGNvbm5lY3RzIGZyb20iCiAgICAgICAgfSwKICAgICAgICAicG9ydCI6IHsKICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBwb3J0IG51bWJlciB3aGVyZSB0aGUgY2xpZW50IGNvbm5lY3RzIGZyb20iCiAgICAgICAgfSwKICAgICAgICAiY2lkIjogewogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHVuaXF1ZSBjbGllbnQgSUQgdGhlIHNlcnZlciBhc3NpZ25lZCB0byB0aGUgY29ubmVjdGlvbiIKICAgICAgICB9LAogICAgICAgICJhY2NvdW50IjogewogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWNjb3VudCB0aGUgdXNlciBiZWxvbmdzIHRvIgogICAgICAgIH0sCiAgICAgICAgInVzZXIiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB1c2VybmFtZSB0aGF0IHdhcyB1c2VkIGR1cmluZyBhdXRoZW50aWNhdGlvbiwgaWYgYW55IgogICAgICAgIH0sCiAgICAgICAgIm5hbWUiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBuYW1lIHRoZSBjbGllbnQgYXNzaWduZWQgdG8gdGhlIGNvbm5lY3Rpb24gZHVyaW5nIGNvbm5lY3Rpb24gbmVnb3RpYXRpb24iCiAgICAgICAgfSwKICAgICAgICAibGFuZ3VhZ2UiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBjbGllbnQgbGlicmFyeSBsYW5ndWFnZSB1c2VkIHRvIGNyZWF0ZSB0aGUgY29ubmVjdGlvbiIKICAgICAgICB9LAogICAgICAgICJ2ZXJzaW9uIjogewogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgdmVyc2lvbiBjbGllbnQgbGlicmFyeSB1c2VkIHRvIGNyZWF0ZSB0aGUgY29ubmVjdGlvbiIKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0K") schemas["io.nats.jetstream.metric.v1.consumer_ack"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vbWV0cmljL3YxL2NvbnN1bWVyX2Fjay5qc29uIiwKICAiZGVzY3JpcHRpb24iOiAiTWV0cmljIHB1Ymxpc2hlZCB3aGVuIGEgbWVzc2FnZSB3YXMgYWNrbm93bGVkZ2VkIHRvIGEgY29uc3VtZXIgd2l0aCBBY2sgU2FtcGxpbmcgZW5hYmxlZCIsCiAgInRpdGxlIjogImlvLm5hdHMuamV0c3RyZWFtLm1ldHJpYy52MS5jb25zdW1lcl9hY2siLAogICJ0eXBlIjogIm9iamVjdCIsCiAgInJlcXVpcmVkIjogWwogICAgInR5cGUiLAogICAgImlkIiwKICAgICJ0aW1lc3RhbXAiLAogICAgInN0cmVhbSIsCiAgICAiY29uc3VtZXIiLAogICAgInN0cmVhbV9zZXEiLAogICAgImNvbnN1bWVyX3NlcSIsCiAgICAiYWNrX3RpbWUiLAogICAgImRlbGl2ZXJpZXMiCiAgXSwKICAiYWRkaXRpb25hbEl0ZW1zIjogZmFsc2UsCiAgInByb3BlcnRpZXMiOiB7CiAgICAidHlwZSI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgImNvbnN0IjogImlvLm5hdHMuamV0c3RyZWFtLm1ldHJpYy52MS5jb25zdW1lcl9hY2siCiAgICB9LAogICAgImlkIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZGVzY3JpcHRpb24iOiAiVW5pcXVlIGNvcnJlbGF0aW9uIElEIGZvciB0aGlzIGV2ZW50IgogICAgfSwKICAgICJ0aW1lc3RhbXAiOiB7CiAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICJmb3JtYXQiOiAiZGF0ZS10aW1lIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB0aW1lIHRoaXMgZXZlbnQgd2FzIGNyZWF0ZWQgaW4gUkZDMzMzOSBmb3JtYXQiCiAgICB9LAogICAgInN0cmVhbSI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBuYW1lIG9mIHRoZSBzdHJlYW0gd2hlcmUgdGhlIG1lc3NhZ2UgaXMgc3RvcmVkIgogICAgfSwKICAgICJjb25zdW1lciI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBuYW1lIG9mIHRoZSBjb25zdW1lciB3aGVyZSB0aGUgbWVzc2FnZSBpcyBoZWxkIgogICAgfSwKICAgICJzdHJlYW1fc2VxIjogewogICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgIm1pbmltdW0iOiAxLAogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHNlcXVlbmNlIG9mIHRoZSBtZXNzYWdlIGluIHRoZSBzdHJlYW0gdGhhdCB3ZXJlIGFja25vd2xlZGdlZCIKICAgIH0sCiAgICAiY29uc3VtZXJfc2VxIjogewogICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgIm1pbmltdW0iOiAxLAogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHNlcXVlbmNlIG9mIHRoZSBtZXNzYWdlIGluIHRoZSBjb25zdW1lciB0aGF0IHdlcmUgYWNrbm93bGVkZ2VkIgogICAgfSwKICAgICJhY2tfdGltZSI6IHsKICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICJtaW5pbXVtIjogMSwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB0aW1lIGl0IHRvb2sgb24gdGhlIGZpbmFsIGRlbGl2ZXJ5IGZvciB0aGUgbWVzc2FnZSB0byBiZSBhY2tub3dsZWRnZWQgaW4gbmFub3NlY29uZHMiCiAgICB9LAogICAgImRlbGl2ZXJpZXMiOiB7CiAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAibWluaW11bSI6IDEsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgbnVtYmVyIG9mIGRlbGl2ZXJpZXMgdGhhdCB3ZXJlIGF0dGVtcHRlZCBiZWZvcmUgYmVpbmcgYWNrbm93bGVkZ2VkIgogICAgfQogIH0KfQo=") - schemas["io.nats.jetstream.api.v1.consumer_configuration"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYXBpL3YxL2NvbnN1bWVyX2NvbmZpZ3VyYXRpb24uanNvbiIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBkYXRhIHN0cnVjdHVyZSB0aGF0IGRlc2NyaWJlIHRoZSBjb25maWd1cmF0aW9uIG9mIGEgTkFUUyBKZXRTdHJlYW0gQ29uc3VtZXIiLAogICJ0aXRsZSI6ICJpby5uYXRzLmpldHN0cmVhbS5hcGkudjEuY29uc3VtZXJfY29uZmlndXJhdGlvbiIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAicmVxdWlyZWQiOiBbCiAgICAiZGVsaXZlcl9wb2xpY3kiLAogICAgImFja19wb2xpY3kiLAogICAgInJlcGxheV9wb2xpY3kiCiAgXSwKICAiYWxsT2YiOiBbCiAgICB7CiAgICAgICJvbmVPZiI6IFsKICAgICAgICB7CiAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIKICAgICAgICAgIF0sCiAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAiYWxsIgogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiCiAgICAgICAgICBdLAogICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgImxhc3QiCiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIKICAgICAgICAgIF0sCiAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAibmV3IgogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiLAogICAgICAgICAgICAib3B0X3N0YXJ0X3NlcSIKICAgICAgICAgIF0sCiAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAiYnlfc3RhcnRfc2VxdWVuY2UiCiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9LAogICAgICAgICAgICAib3B0X3N0YXJ0X3NlcSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiLAogICAgICAgICAgICAib3B0X3N0YXJ0X3RpbWUiCiAgICAgICAgICBdLAogICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgImJ5X3N0YXJ0X3RpbWUiCiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9LAogICAgICAgICAgICAib3B0X3N0YXJ0X3RpbWUiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAiZm9ybWF0IjogImRhdGUtdGltZSIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXQogICAgfQogIF0sCiAgInByb3BlcnRpZXMiOiB7CiAgICAiZHVyYWJsZV9uYW1lIjogewogICAgICAiZGVzY3JpcHRpb24iOiAiQSB1bmlxdWUgbmFtZSBmb3IgYSBkdXJhYmxlIGNvbnN1bWVyIiwKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgInBhdHRlcm4iOiAiXlteLio+XSskIiwKICAgICAgIm1pbkxlbmd0aCI6IDEKICAgIH0sCiAgICAiZGVsaXZlcl9zdWJqZWN0IjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAibWluTGVuZ3RoIjogMQogICAgfSwKICAgICJhY2tfcG9saWN5IjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZW51bSI6IFsKICAgICAgICAibm9uZSIsCiAgICAgICAgImFsbCIsCiAgICAgICAgImV4cGxpY2l0IgogICAgICBdCiAgICB9LAogICAgImFja193YWl0IjogewogICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgIm1pbmltdW0iOiAxCiAgICB9LAogICAgIm1heF9kZWxpdmVyIjogewogICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgIm1pbmltdW0iOiAtMQogICAgfSwKICAgICJmaWx0ZXJfc3ViamVjdCI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgfSwKICAgICJyZXBsYXlfcG9saWN5IjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZW51bSI6IFsKICAgICAgICAiaW5zdGFudCIsCiAgICAgICAgIm9yaWdpbmFsIgogICAgICBdCiAgICB9LAogICAgInNhbXBsZV9mcmVxIjogewogICAgICAidHlwZSI6ICJzdHJpbmciCiAgICB9LAogICAgInJhdGVfbGltaXRfYnBzIjogewogICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSByYXRlIGF0IHdoaWNoIG1lc3NhZ2VzIHdpbGwgYmUgZGVsaXZlcmVkIHRvIGNsaWVudHMsIGV4cHJlc3NlZCBpbiBiaXQgcGVyIHNlY29uZCIKICAgIH0KICB9Cn0K") + schemas["io.nats.jetstream.api.v1.consumer_configuration"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYXBpL3YxL2NvbnN1bWVyX2NvbmZpZ3VyYXRpb24uanNvbiIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBkYXRhIHN0cnVjdHVyZSB0aGF0IGRlc2NyaWJlIHRoZSBjb25maWd1cmF0aW9uIG9mIGEgTkFUUyBKZXRTdHJlYW0gQ29uc3VtZXIiLAogICJ0aXRsZSI6ICJpby5uYXRzLmpldHN0cmVhbS5hcGkudjEuY29uc3VtZXJfY29uZmlndXJhdGlvbiIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAicmVxdWlyZWQiOiBbCiAgICAiZGVsaXZlcl9wb2xpY3kiLAogICAgImFja19wb2xpY3kiLAogICAgInJlcGxheV9wb2xpY3kiCiAgXSwKICAiYWxsT2YiOiBbCiAgICB7CiAgICAgICJvbmVPZiI6IFsKICAgICAgICB7CiAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIKICAgICAgICAgIF0sCiAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAiYWxsIgogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiCiAgICAgICAgICBdLAogICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgImxhc3QiCiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIKICAgICAgICAgIF0sCiAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAibmV3IgogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiLAogICAgICAgICAgICAib3B0X3N0YXJ0X3NlcSIKICAgICAgICAgIF0sCiAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAiYnlfc3RhcnRfc2VxdWVuY2UiCiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9LAogICAgICAgICAgICAib3B0X3N0YXJ0X3NlcSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiLAogICAgICAgICAgICAib3B0X3N0YXJ0X3RpbWUiCiAgICAgICAgICBdLAogICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgImJ5X3N0YXJ0X3RpbWUiCiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9LAogICAgICAgICAgICAib3B0X3N0YXJ0X3RpbWUiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAiZm9ybWF0IjogImRhdGUtdGltZSIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgXQogICAgfQogIF0sCiAgInByb3BlcnRpZXMiOiB7CiAgICAiZHVyYWJsZV9uYW1lIjogewogICAgICAiZGVzY3JpcHRpb24iOiAiQSB1bmlxdWUgbmFtZSBmb3IgYSBkdXJhYmxlIGNvbnN1bWVyIiwKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgInBhdHRlcm4iOiAiXlteLio+XSskIiwKICAgICAgIm1pbkxlbmd0aCI6IDEKICAgIH0sCiAgICAiZGVsaXZlcl9zdWJqZWN0IjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAibWluTGVuZ3RoIjogMQogICAgfSwKICAgICJhY2tfcG9saWN5IjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZW51bSI6IFsKICAgICAgICAibm9uZSIsCiAgICAgICAgImFsbCIsCiAgICAgICAgImV4cGxpY2l0IgogICAgICBdCiAgICB9LAogICAgImFja193YWl0IjogewogICAgICAiZGVzY3JpcHRpb24iOiAiSG93IGxvbmcgKGluIG5hbm9zZWNvbmRzKSB0byBhbGxvdyBtZXNzYWdlcyB0byByZW1haW4gdW4tYWNrbm93bGVkZ2VkIGJlZm9yZSBhdHRlbXB0aW5nIHJlZGVsaXZlcnkiLAogICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgIm1pbmltdW0iOiAxCiAgICB9LAogICAgIm1heF9kZWxpdmVyIjogewogICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgIm1pbmltdW0iOiAtMQogICAgfSwKICAgICJmaWx0ZXJfc3ViamVjdCI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgfSwKICAgICJyZXBsYXlfcG9saWN5IjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZW51bSI6IFsKICAgICAgICAiaW5zdGFudCIsCiAgICAgICAgIm9yaWdpbmFsIgogICAgICBdCiAgICB9LAogICAgInNhbXBsZV9mcmVxIjogewogICAgICAidHlwZSI6ICJzdHJpbmciCiAgICB9LAogICAgInJhdGVfbGltaXRfYnBzIjogewogICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSByYXRlIGF0IHdoaWNoIG1lc3NhZ2VzIHdpbGwgYmUgZGVsaXZlcmVkIHRvIGNsaWVudHMsIGV4cHJlc3NlZCBpbiBiaXQgcGVyIHNlY29uZCIKICAgIH0KICB9Cn0K") schemas["io.nats.jetstream.api.v1.stream_configuration"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYXBpL3YxL3N0cmVhbV9jb25maWd1cmF0aW9uLmpzb24iLAogICJkZXNjcmlwdGlvbiI6ICJUaGUgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBkZXNjcmliZSB0aGUgY29uZmlndXJhdGlvbiBvZiBhIE5BVFMgSmV0U3RyZWFtIFN0cmVhbSIsCiAgInRpdGxlIjogImlvLm5hdHMuamV0c3RyZWFtLmFwaS52MS5zdHJlYW1fY29uZmlndXJhdGlvbiIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAicmVxdWlyZWQiOiBbCiAgICAic3ViamVjdHMiLAogICAgInJldGVudGlvbiIsCiAgICAibWF4X2NvbnN1bWVycyIsCiAgICAibWF4X21zZ3MiLAogICAgIm1heF9ieXRlcyIsCiAgICAibWF4X2FnZSIsCiAgICAic3RvcmFnZSIsCiAgICAibnVtX3JlcGxpY2FzIgogIF0sCiAgImFkZGl0aW9uYWxJdGVtcyI6IGZhbHNlLAogICJwcm9wZXJ0aWVzIjogewogICAgIm5hbWUiOiB7CiAgICAgICJkZXNjcmlwdGlvbiI6ICJBIHVuaXF1ZSBuYW1lIGZvciB0aGUgU3RyZWFtLCBlbXB0eSBmb3IgU3RyZWFtIFRlbXBsYXRlcy4iLAogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAicGF0dGVybiI6ICJeW14uKj5dKiQiLAogICAgICAibWluTGVuZ3RoIjogMAogICAgfSwKICAgICJzdWJqZWN0cyI6IHsKICAgICAgImRlc2NyaXB0aW9uIjogIkEgbGlzdCBvZiBzdWJqZWN0cyB0byBjb25zdW1lLCBzdXBwb3J0cyB3aWxkY2FyZHMuIiwKICAgICAgInR5cGUiOiAiYXJyYXkiLAogICAgICAibWluTGVuZ3RoIjogMSwKICAgICAgIml0ZW1zIjogewogICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgIm1pbkxlbmd0aCI6IDEKICAgICAgfQogICAgfSwKICAgICJyZXRlbnRpb24iOiB7CiAgICAgICJkZXNjcmlwdGlvbiI6ICJIb3cgbWVzc2FnZXMgYXJlIHJldGFpbmVkIGluIHRoZSBTdHJlYW0sIG9uY2UgdGhpcyBpcyBleGNlZWRlZCBvbGQgbWVzc2FnZXMgYXJlIHJlbW92ZWQuIiwKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgImVudW0iOiBbCiAgICAgICAgImxpbWl0cyIsCiAgICAgICAgImludGVyZXN0IiwKICAgICAgICAid29ya3F1ZXVlIgogICAgICBdLAogICAgICAiZGVmYXVsdCI6ICJsaW1pdHMiCiAgICB9LAogICAgIm1heF9jb25zdW1lcnMiOiB7CiAgICAgICJkZXNjcmlwdGlvbiI6ICJIb3cgbWFueSBDb25zdW1lcnMgY2FuIGJlIGRlZmluZWQgZm9yIGEgZ2l2ZW4gU3RyZWFtLiAtMSBmb3IgdW5saW1pdGVkLiIsCiAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAibWluaW11bSI6IC0xLAogICAgICAiZGVmYXVsdCI6IC0xCiAgICB9LAogICAgIm1heF9tc2dzIjogewogICAgICAiZGVzY3JpcHRpb24iOiAiSG93IG1hbnkgbWVzc2FnZXMgbWF5IGJlIGluIGEgU3RyZWFtLCBvbGRlc3QgbWVzc2FnZXMgd2lsbCBiZSByZW1vdmVkIGlmIHRoZSBTdHJlYW0gZXhjZWVkcyB0aGlzIHNpemUuIC0xIGZvciB1bmxpbWl0ZWQuIiwKICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICJtaW5pbXVtIjogLTEsCiAgICAgICJkZWZhdWx0IjogLTEKICAgIH0sCiAgICAibWF4X2J5dGVzIjogewogICAgICAiZGVzY3JpcHRpb24iOiAiSG93IGJpZyB0aGUgU3RyZWFtIG1heSBiZSwgd2hlbiB0aGUgY29tYmluZWQgc3RyZWFtIHNpemUgZXhjZWVkcyB0aGlzIG9sZCBtZXNzYWdlcyBhcmUgcmVtb3ZlZC4gLTEgZm9yIHVubGltaXRlZC4iLAogICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgIm1pbmltdW0iOiAtMSwKICAgICAgImRlZmF1bHQiOiAtMQogICAgfSwKICAgICJtYXhfYWdlIjogewogICAgICAiZGVzY3JpcHRpb24iOiAiTWF4aW11bSBhZ2Ugb2YgYW55IG1lc3NhZ2UgaW4gdGhlIHN0cmVhbSwgZXhwcmVzc2VkIGluIG1pY3Jvc2Vjb25kcy4gMCBmb3IgdW5saW1pdGVkLiIsCiAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAibWluaW11bSI6IDAsCiAgICAgICJkZWZhdWx0IjogMAogICAgfSwKICAgICJtYXhfbXNnX3NpemUiOiB7CiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgbGFyZ2VzdCBtZXNzYWdlIHRoYXQgd2lsbCBiZSBhY2NlcHRlZCBieSB0aGUgU3RyZWFtLiAtMSBmb3IgdW5saW1pdGVkLiIsCiAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAibWluaW11bSI6IC0xLAogICAgICAiZGVmYXVsdCI6IC0xCiAgICB9LAogICAgInN0b3JhZ2UiOiB7CiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgc3RvcmFnZSBiYWNrZW5kIHRvIHVzZSBmb3IgdGhlIFN0cmVhbS4iLAogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZW51bSI6IFsKICAgICAgICAiZmlsZSIsCiAgICAgICAgIm1lbW9yeSIKICAgICAgXSwKICAgICAgImRlZmF1bHQiOiAibWVtb3J5IgogICAgfSwKICAgICJudW1fcmVwbGljYXMiOiB7CiAgICAgICJkZXNjcmlwdGlvbiI6ICJIb3cgbWFueSByZXBsaWNhcyB0byBrZWVwIGZvciBlYWNoIG1lc3NhZ2UuIiwKICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICJtaW5pbXVtIjogMSwKICAgICAgImRlZmF1bHQiOiAxCiAgICB9LAogICAgIm5vX2FjayI6IHsKICAgICAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIGFja25vd2xlZGdpbmcgbWVzc2FnZXMgdGhhdCBhcmUgcmVjZWl2ZWQgYnkgdGhlIFN0cmVhbS4iLAogICAgICAidHlwZSI6ICJib29sZWFuIiwKICAgICAgImRlZmF1bHQiOiBmYWxzZQogICAgfSwKICAgICJ0ZW1wbGF0ZV9vd25lciI6IHsKICAgICAgImRlc2NyaXB0aW9uIjogIldoZW4gdGhlIFN0cmVhbSBpcyBtYW5hZ2VkIGJ5IGEgU3RyZWFtIFRlbXBsYXRlIHRoaXMgaWRlbnRpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBtYW5hZ2VzIHRoZSBTdHJlYW0uIiwKICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgfSwKICAgICJkaXNjYXJkIjogewogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiBhIFN0cmVhbSByZWFjaCBpdCdzIGxpbWl0cyBlaXRoZXIgb2xkIG1lc3NhZ2VzIGFyZSBkZWxldGVkIG9yIG5ldyBvbmVzIGFyZSBkZW5pZWQiLAogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiZW51bSI6IFsKICAgICAgICAib2xkIiwKICAgICAgICAibmV3IgogICAgICBdLAogICAgICAiZGVmYXVsdCI6ICJvbGQiCiAgICB9LAogICAgImR1cGxpY2F0ZV93aW5kb3ciOiB7CiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgdGltZSB3aW5kb3cgdG8gdHJhY2sgZHVwbGljYXRlIG1lc3NhZ2VzIGZvciwgZXhwcmVzc2VkIGluIG1pY3Jvc2Vjb25kcy4gMCBmb3IgZGVmYXVsdCIsCiAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAibWluaW11bSI6IDAsCiAgICAgICJkZWZhdWx0IjogMAogICAgfQogIH0KfQo=") schemas["io.nats.jetstream.api.v1.stream_template_configuration"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYXBpL3YxL3N0cmVhbV90ZW1wbGF0ZV9jb25maWd1cmF0aW9uLmpzb24iLAogICJkZXNjcmlwdGlvbiI6ICJUaGUgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBkZXNjcmliZSB0aGUgY29uZmlndXJhdGlvbiBvZiBhIE5BVFMgSmV0U3RyZWFtIFN0cmVhbSBUZW1wbGF0ZSIsCiAgInRpdGxlIjogImlvLm5hdHMuamV0c3RyZWFtLmFwaS52MS5zdHJlYW1fdGVtcGxhdGVfY29uZmlndXJhdGlvbiIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAicmVxdWlyZWQiOiBbCiAgICAibmFtZSIsCiAgICAiY29uZmlnIiwKICAgICJtYXhfc3RyZWFtcyIKICBdLAogICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAicHJvcGVydGllcyI6IHsKICAgICJuYW1lIjogewogICAgICAiZGVzY3JpcHRpb24iOiAiQSB1bmlxdWUgbmFtZSBmb3IgdGhlIFN0cmVhbSBUZW1wbGF0ZS4iLAogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAicGF0dGVybiI6ICJeW14uKj5dKyQiLAogICAgICAibWluTGVuZ3RoIjogMQogICAgfSwKICAgICJtYXhfc3RyZWFtcyI6IHsKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBtYXhpbXVtIG51bWJlciBvZiBTdHJlYW1zIHRoaXMgVGVtcGxhdGUgY2FuIGNyZWF0ZSwgLTEgZm9yIHVubGltaXRlZC4iLAogICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgIm1pbmltdW0iOiAtMSwKICAgICAgImRlZmF1bHQiOiAtMQogICAgfSwKICAgICJjb25maWciOiB7CiAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAic3ViamVjdHMiLAogICAgICAgICJyZXRlbnRpb24iLAogICAgICAgICJtYXhfY29uc3VtZXJzIiwKICAgICAgICAibWF4X21zZ3MiLAogICAgICAgICJtYXhfYnl0ZXMiLAogICAgICAgICJtYXhfYWdlIiwKICAgICAgICAic3RvcmFnZSIsCiAgICAgICAgIm51bV9yZXBsaWNhcyIKICAgICAgXSwKICAgICAgImFkZGl0aW9uYWxJdGVtcyI6IGZhbHNlLAogICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAibmFtZSI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIHVuaXF1ZSBuYW1lIGZvciB0aGUgU3RyZWFtLCBlbXB0eSBmb3IgU3RyZWFtIFRlbXBsYXRlcy4iLAogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJwYXR0ZXJuIjogIl5bXi4qPl0qJCIsCiAgICAgICAgICAibWluTGVuZ3RoIjogMAogICAgICAgIH0sCiAgICAgICAgInN1YmplY3RzIjogewogICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgbGlzdCBvZiBzdWJqZWN0cyB0byBjb25zdW1lLCBzdXBwb3J0cyB3aWxkY2FyZHMuIiwKICAgICAgICAgICJ0eXBlIjogImFycmF5IiwKICAgICAgICAgICJtaW5MZW5ndGgiOiAxLAogICAgICAgICAgIml0ZW1zIjogewogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAibWluTGVuZ3RoIjogMQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgInJldGVudGlvbiI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIb3cgbWVzc2FnZXMgYXJlIHJldGFpbmVkIGluIHRoZSBTdHJlYW0sIG9uY2UgdGhpcyBpcyBleGNlZWRlZCBvbGQgbWVzc2FnZXMgYXJlIHJlbW92ZWQuIiwKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAiZW51bSI6IFsKICAgICAgICAgICAgImxpbWl0cyIsCiAgICAgICAgICAgICJpbnRlcmVzdCIsCiAgICAgICAgICAgICJ3b3JrcXVldWUiCiAgICAgICAgICBdLAogICAgICAgICAgImRlZmF1bHQiOiAibGltaXRzIgogICAgICAgIH0sCiAgICAgICAgIm1heF9jb25zdW1lcnMiOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSG93IG1hbnkgQ29uc3VtZXJzIGNhbiBiZSBkZWZpbmVkIGZvciBhIGdpdmVuIFN0cmVhbS4gLTEgZm9yIHVubGltaXRlZC4iLAogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAibWluaW11bSI6IC0xLAogICAgICAgICAgImRlZmF1bHQiOiAtMQogICAgICAgIH0sCiAgICAgICAgIm1heF9tc2dzIjogewogICAgICAgICAgImRlc2NyaXB0aW9uIjogIkhvdyBtYW55IG1lc3NhZ2VzIG1heSBiZSBpbiBhIFN0cmVhbSwgb2xkZXN0IG1lc3NhZ2VzIHdpbGwgYmUgcmVtb3ZlZCBpZiB0aGUgU3RyZWFtIGV4Y2VlZHMgdGhpcyBzaXplLiAtMSBmb3IgdW5saW1pdGVkLiIsCiAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICJtaW5pbXVtIjogLTEsCiAgICAgICAgICAiZGVmYXVsdCI6IC0xCiAgICAgICAgfSwKICAgICAgICAibWF4X2J5dGVzIjogewogICAgICAgICAgImRlc2NyaXB0aW9uIjogIkhvdyBiaWcgdGhlIFN0cmVhbSBtYXkgYmUsIHdoZW4gdGhlIGNvbWJpbmVkIHN0cmVhbSBzaXplIGV4Y2VlZHMgdGhpcyBvbGQgbWVzc2FnZXMgYXJlIHJlbW92ZWQuIC0xIGZvciB1bmxpbWl0ZWQuIiwKICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgIm1pbmltdW0iOiAtMSwKICAgICAgICAgICJkZWZhdWx0IjogLTEKICAgICAgICB9LAogICAgICAgICJtYXhfYWdlIjogewogICAgICAgICAgImRlc2NyaXB0aW9uIjogIk1heGltdW0gYWdlIG9mIGFueSBtZXNzYWdlIGluIHRoZSBzdHJlYW0sIGV4cHJlc3NlZCBpbiBtaWNyb3NlY29uZHMuIDAgZm9yIHVubGltaXRlZC4iLAogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAibWluaW11bSI6IDAsCiAgICAgICAgICAiZGVmYXVsdCI6IDAKICAgICAgICB9LAogICAgICAgICJtYXhfbXNnX3NpemUiOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGxhcmdlc3QgbWVzc2FnZSB0aGF0IHdpbGwgYmUgYWNjZXB0ZWQgYnkgdGhlIFN0cmVhbS4gLTEgZm9yIHVubGltaXRlZC4iLAogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAibWluaW11bSI6IC0xLAogICAgICAgICAgImRlZmF1bHQiOiAtMQogICAgICAgIH0sCiAgICAgICAgInN0b3JhZ2UiOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHN0b3JhZ2UgYmFja2VuZCB0byB1c2UgZm9yIHRoZSBTdHJlYW0uIiwKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAiZW51bSI6IFsKICAgICAgICAgICAgImZpbGUiLAogICAgICAgICAgICAibWVtb3J5IgogICAgICAgICAgXSwKICAgICAgICAgICJkZWZhdWx0IjogIm1lbW9yeSIKICAgICAgICB9LAogICAgICAgICJudW1fcmVwbGljYXMiOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSG93IG1hbnkgcmVwbGljYXMgdG8ga2VlcCBmb3IgZWFjaCBtZXNzYWdlLiIsCiAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICJtaW5pbXVtIjogMSwKICAgICAgICAgICJkZWZhdWx0IjogMQogICAgICAgIH0sCiAgICAgICAgIm5vX2FjayI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNhYmxlcyBhY2tub3dsZWRnaW5nIG1lc3NhZ2VzIHRoYXQgYXJlIHJlY2VpdmVkIGJ5IHRoZSBTdHJlYW0uIiwKICAgICAgICAgICJ0eXBlIjogImJvb2xlYW4iLAogICAgICAgICAgImRlZmF1bHQiOiBmYWxzZQogICAgICAgIH0sCiAgICAgICAgInRlbXBsYXRlX293bmVyIjogewogICAgICAgICAgImRlc2NyaXB0aW9uIjogIldoZW4gdGhlIFN0cmVhbSBpcyBtYW5hZ2VkIGJ5IGEgU3RyZWFtIFRlbXBsYXRlIHRoaXMgaWRlbnRpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBtYW5hZ2VzIHRoZSBTdHJlYW0uIiwKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICB9LAogICAgICAgICJkaXNjYXJkIjogewogICAgICAgICAgImRlc2NyaXB0aW9uIjogIldoZW4gYSBTdHJlYW0gcmVhY2ggaXQncyBsaW1pdHMgZWl0aGVyIG9sZCBtZXNzYWdlcyBhcmUgZGVsZXRlZCBvciBuZXcgb25lcyBhcmUgZGVuaWVkIiwKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAiZW51bSI6IFsKICAgICAgICAgICAgIm9sZCIsCiAgICAgICAgICAgICJuZXciCiAgICAgICAgICBdLAogICAgICAgICAgImRlZmF1bHQiOiAib2xkIgogICAgICAgIH0sCiAgICAgICAgImR1cGxpY2F0ZV93aW5kb3ciOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHRpbWUgd2luZG93IHRvIHRyYWNrIGR1cGxpY2F0ZSBtZXNzYWdlcyBmb3IsIGV4cHJlc3NlZCBpbiBtaWNyb3NlY29uZHMuIDAgZm9yIGRlZmF1bHQiLAogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAibWluaW11bSI6IDAsCiAgICAgICAgICAiZGVmYXVsdCI6IDAKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0K") schemas["io.nats.jetstream.api.v1.account_info_response"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYXBpL3YxL2FjY291bnRfaW5mb19yZXNwb25zZS5qc29uIiwKICAiZGVzY3JpcHRpb24iOiAiQSByZXNwb25zZSBmcm9tIHRoZSBKZXRTdHJlYW0gJEpTLkFQSS5JTkZPIEFQSSIsCiAgInRpdGxlIjogImlvLm5hdHMuamV0c3RyZWFtLmFwaS52MS5hY2NvdW50X2luZm9fcmVzcG9uc2UiLAogICJ0eXBlIjogIm9iamVjdCIsCiAgInJlcXVpcmVkIjogWwogICAgInR5cGUiCiAgXSwKICAib25lT2YiOiBbCiAgICB7CiAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICJtZW1vcnkiLAogICAgICAgICJzdG9yYWdlIiwKICAgICAgICAic3RyZWFtcyIsCiAgICAgICAgImxpbWl0cyIKICAgICAgXSwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgIm1lbW9yeSI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJNZW1vcnkgU3RvcmFnZSBiZWluZyB1c2VkIGZvciBTdHJlYW0gTWVzc2FnZSBzdG9yYWdlIiwKICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgfSwKICAgICAgICAic3RvcmFnZSI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaWxlIFN0b3JhZ2UgYmVpbmcgdXNlZCBmb3IgU3RyZWFtIE1lc3NhZ2Ugc3RvcmFnZSIsCiAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgIH0sCiAgICAgICAgInN0cmVhbXMiOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGFjdGl2ZSBTdHJlYW1zIiwKICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgfSwKICAgICAgICAibGltaXRzIjogewogICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgIm1heF9jb25zdW1lcnMiLAogICAgICAgICAgICAibWF4X21lbW9yeSIsCiAgICAgICAgICAgICJtYXhfc3RvcmFnZSIsCiAgICAgICAgICAgICJtYXhfc3RyZWFtcyIKICAgICAgICAgIF0sCiAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgIm1heF9tZW1vcnkiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBtYXhpbXVtIGFtb3VudCBvZiBNZW1vcnkgc3RvcmFnZSBTdHJlYW0gTWVzc2FnZXMgbWF5IGNvbnN1bWUiLAogICAgICAgICAgICAgICJtaW5pbXVtIjogLTEKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm1heF9zdG9yYWdlIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgbWF4aW11bSBhbW91bnQgb2YgRmlsZSBzdG9yYWdlIFN0cmVhbSBNZXNzYWdlcyBtYXkgY29uc3VtZSIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAtMQogICAgICAgICAgICB9LAogICAgICAgICAgICAibWF4X3N0cmVhbXMiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBtYXhpbXVtIG51bWJlciBvZiBTdHJlYW1zIGFuIGFjY291bnQgY2FuIGNyZWF0ZSIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAtMQogICAgICAgICAgICB9LAogICAgICAgICAgICAibWF4X2NvbnN1bWVycyI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIG1heGltdW0gbnVtYmVyIG9mIENvbnN1bWVyIGFuIGFjY291bnQgY2FuIGNyZWF0ZSIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAtMQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgewogICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAiYWRkaXRpb25hbEl0ZW1zIjogZmFsc2UsCiAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAiZXJyb3IiCiAgICAgIF0sCiAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICJlcnJvciI6IHsKICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAiYWRkaXRpb25hbEl0ZW1zIjogZmFsc2UsCiAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICJjb2RlIgogICAgICAgICAgXSwKICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAiY29kZSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSFRUUCBsaWtlIGVycm9yIGNvZGUgaW4gdGhlIDMwMCB0byA1MDAgcmFuZ2UiLAogICAgICAgICAgICAgICJtaW5pbXVtIjogMzAwLAogICAgICAgICAgICAgICJtYXhpbXVtIjogNjk5CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIGh1bWFuIGZyaWVuZGx5IGRlc2NyaXB0aW9uIG9mIHRoZSBlcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogIF0sCiAgInByb3BlcnRpZXMiOiB7CiAgICAidHlwZSI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgImNvbnN0IjogImlvLm5hdHMuamV0c3RyZWFtLmFwaS52MS5hY2NvdW50X2luZm9fcmVzcG9uc2UiCiAgICB9CiAgfQp9Cg==") - schemas["io.nats.jetstream.api.v1.consumer_create_request"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYXBpL3YxL2NvbnN1bWVyX2NyZWF0ZV9yZXF1ZXN0Lmpzb24iLAogICJkZXNjcmlwdGlvbiI6ICJBIHJlcXVlc3QgdG8gdGhlIEpldFN0cmVhbSAkSlMuQVBJLkNPTlNVTUVSLkNSRUFURSBhbmQgJEpTLkFQSS5DT05TVU1FUi5EVVJBQkxFLkNSRUFURSBBUElzIiwKICAidGl0bGUiOiAiaW8ubmF0cy5qZXRzdHJlYW0uYXBpLnYxLmNvbnN1bWVyX2NyZWF0ZV9yZXF1ZXN0IiwKICAidHlwZSI6ICJvYmplY3QiLAogICJyZXF1aXJlZCI6IFsKICAgICJzdHJlYW1fbmFtZSIsCiAgICAiY29uZmlnIgogIF0sCiAgInByb3BlcnRpZXMiOiB7CiAgICAic3RyZWFtX25hbWUiOiB7CiAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgbmFtZSBvZiB0aGUgc3RyZWFtIHRvIGNyZWF0ZSB0aGUgY29uc3VtZXIgaW4iCiAgICB9LAogICAgImNvbmZpZyI6IHsKICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBjb25zdW1lciBjb25maWd1cmF0aW9uIiwKICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICJkZWxpdmVyX3BvbGljeSIsCiAgICAgICAgImFja19wb2xpY3kiLAogICAgICAgICJyZXBsYXlfcG9saWN5IgogICAgICBdLAogICAgICAiYWxsT2YiOiBbCiAgICAgICAgewogICAgICAgICAgIm9uZU9mIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IgogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiOiB7CiAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgICAgICJhbGwiCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiCiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSI6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAgICAgImxhc3QiCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiCiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSI6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAgICAgIm5ldyIKICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIsCiAgICAgICAgICAgICAgICAib3B0X3N0YXJ0X3NlcSIKICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAiZW51bSI6IFsKICAgICAgICAgICAgICAgICAgICAiYnlfc3RhcnRfc2VxdWVuY2UiCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAib3B0X3N0YXJ0X3NlcSI6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIsCiAgICAgICAgICAgICAgICAib3B0X3N0YXJ0X3RpbWUiCiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSI6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAgICAgImJ5X3N0YXJ0X3RpbWUiCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAib3B0X3N0YXJ0X3RpbWUiOiB7CiAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgICAgICJmb3JtYXQiOiAiZGF0ZS10aW1lIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgXQogICAgICAgIH0KICAgICAgXSwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgImR1cmFibGVfbmFtZSI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIHVuaXF1ZSBuYW1lIGZvciBhIGR1cmFibGUgY29uc3VtZXIiLAogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJwYXR0ZXJuIjogIl5bXi4qPl0rJCIsCiAgICAgICAgICAibWluTGVuZ3RoIjogMQogICAgICAgIH0sCiAgICAgICAgImRlbGl2ZXJfc3ViamVjdCI6IHsKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAibWluTGVuZ3RoIjogMQogICAgICAgIH0sCiAgICAgICAgImFja19wb2xpY3kiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICJub25lIiwKICAgICAgICAgICAgImFsbCIsCiAgICAgICAgICAgICJleHBsaWNpdCIKICAgICAgICAgIF0KICAgICAgICB9LAogICAgICAgICJhY2tfd2FpdCI6IHsKICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgIm1pbmltdW0iOiAxCiAgICAgICAgfSwKICAgICAgICAibWF4X2RlbGl2ZXIiOiB7CiAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICJtaW5pbXVtIjogLTEKICAgICAgICB9LAogICAgICAgICJmaWx0ZXJfc3ViamVjdCI6IHsKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICB9LAogICAgICAgICJyZXBsYXlfcG9saWN5IjogewogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAiaW5zdGFudCIsCiAgICAgICAgICAgICJvcmlnaW5hbCIKICAgICAgICAgIF0KICAgICAgICB9LAogICAgICAgICJzYW1wbGVfZnJlcSI6IHsKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICB9LAogICAgICAgICJyYXRlX2xpbWl0X2JwcyI6IHsKICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSByYXRlIGF0IHdoaWNoIG1lc3NhZ2VzIHdpbGwgYmUgZGVsaXZlcmVkIHRvIGNsaWVudHMsIGV4cHJlc3NlZCBpbiBiaXQgcGVyIHNlY29uZCIKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0K") - schemas["io.nats.jetstream.api.v1.consumer_create_response"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYXBpL3YxL2NvbnN1bWVyX2NyZWF0ZV9yZXNwb25zZS5qc29uIiwKICAiZGVzY3JpcHRpb24iOiAiQSByZXNwb25zZSBmcm9tIHRoZSBKZXRTdHJlYW0gJEpTLkFQSS5DT05TVU1FUi5DUkVBVEUgQVBJIiwKICAidGl0bGUiOiAiaW8ubmF0cy5qZXRzdHJlYW0uYXBpLnYxLmNvbnN1bWVyX2NyZWF0ZV9yZXNwb25zZSIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAicmVxdWlyZWQiOiBbCiAgICAidHlwZSIKICBdLAogICJvbmVPZiI6IFsKICAgIHsKICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICJzdHJlYW1fbmFtZSIsCiAgICAgICAgIm5hbWUiLAogICAgICAgICJjb25maWciLAogICAgICAgICJjcmVhdGVkIiwKICAgICAgICAiZGVsaXZlcmVkIiwKICAgICAgICAiYWNrX2Zsb29yIiwKICAgICAgICAibnVtX3BlbmRpbmciLAogICAgICAgICJudW1fcmVkZWxpdmVyZWQiCiAgICAgIF0sCiAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgInN0cmVhbV9uYW1lIjogewogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgU3RyZWFtIHRoZSBjb25zdW1lciBiZWxvbmdzIHRvIgogICAgICAgIH0sCiAgICAgICAgIm5hbWUiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgdW5pcXVlIG5hbWUgZm9yIHRoZSBjb25zdW1lciwgZWl0aGVyIG1hY2hpbmUgZ2VuZXJhdGVkIG9yIHRoZSBkdXJhYmxlIG5hbWUiCiAgICAgICAgfSwKICAgICAgICAiY29uZmlnIjogewogICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiLAogICAgICAgICAgICAiYWNrX3BvbGljeSIsCiAgICAgICAgICAgICJyZXBsYXlfcG9saWN5IgogICAgICAgICAgXSwKICAgICAgICAgICJhbGxPZiI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICJvbmVPZiI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgICAgICAgICAiYWxsIgogICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgICAgICAgICAibGFzdCIKICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiCiAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAiZW51bSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgIm5ldyIKICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiLAogICAgICAgICAgICAgICAgICAgICJvcHRfc3RhcnRfc2VxIgogICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiOiB7CiAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICJieV9zdGFydF9zZXF1ZW5jZSIKICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJvcHRfc3RhcnRfc2VxIjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiLAogICAgICAgICAgICAgICAgICAgICJvcHRfc3RhcnRfdGltZSIKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgICAgICAgICAiYnlfc3RhcnRfdGltZSIKICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJvcHRfc3RhcnRfdGltZSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAiZm9ybWF0IjogImRhdGUtdGltZSIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KICAgICAgICAgIF0sCiAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgImR1cmFibGVfbmFtZSI6IHsKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSB1bmlxdWUgbmFtZSBmb3IgYSBkdXJhYmxlIGNvbnN1bWVyIiwKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICJwYXR0ZXJuIjogIl5bXi4qPl0rJCIsCiAgICAgICAgICAgICAgIm1pbkxlbmd0aCI6IDEKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImRlbGl2ZXJfc3ViamVjdCI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICJtaW5MZW5ndGgiOiAxCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJhY2tfcG9saWN5IjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAibm9uZSIsCiAgICAgICAgICAgICAgICAiYWxsIiwKICAgICAgICAgICAgICAgICJleHBsaWNpdCIKICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJhY2tfd2FpdCI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAibWluaW11bSI6IDEKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm1heF9kZWxpdmVyIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJtaW5pbXVtIjogLTEKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImZpbHRlcl9zdWJqZWN0IjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInJlcGxheV9wb2xpY3kiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAiZW51bSI6IFsKICAgICAgICAgICAgICAgICJpbnN0YW50IiwKICAgICAgICAgICAgICAgICJvcmlnaW5hbCIKICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzYW1wbGVfZnJlcSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJyYXRlX2xpbWl0X2JwcyI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHJhdGUgYXQgd2hpY2ggbWVzc2FnZXMgd2lsbCBiZSBkZWxpdmVyZWQgdG8gY2xpZW50cywgZXhwcmVzc2VkIGluIGJpdCBwZXIgc2Vjb25kIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiY3JlYXRlZCI6IHsKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAiZm9ybWF0IjogImRhdGUtdGltZSIKICAgICAgICB9LAogICAgICAgICJkZWxpdmVyZWQiOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGxhc3QgbWVzc2FnZSBkZWxpdmVyZWQgZnJvbSB0aGlzIENvbnN1bWVyIiwKICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAiYWRkaXRpb25hbEl0ZW1zIjogZmFsc2UsCiAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICJjb25zdW1lcl9zZXEiLAogICAgICAgICAgICAic3RyZWFtX3NlcSIKICAgICAgICAgIF0sCiAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgImNvbnN1bWVyX3NlcSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHNlcXVlbmNlIG51bWJlciBvZiB0aGUgQ29uc3VtZXIiLAogICAgICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgICAgICB9LAogICAgICAgICAgICAic3RyZWFtX3NlcSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHNlcXVlbmNlIG51bWJlciBvZiB0aGUgU3RyZWFtIiwKICAgICAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgImFja19mbG9vciI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgaGlnaGVzdCBjb250aWd1b3VzIGFja25vd2xlZGdlZCBtZXNzYWdlIiwKICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAiYWRkaXRpb25hbEl0ZW1zIjogZmFsc2UsCiAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICJjb25zdW1lcl9zZXEiLAogICAgICAgICAgICAic3RyZWFtX3NlcSIKICAgICAgICAgIF0sCiAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgImNvbnN1bWVyX3NlcSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHNlcXVlbmNlIG51bWJlciBvZiB0aGUgQ29uc3VtZXIiLAogICAgICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgICAgICB9LAogICAgICAgICAgICAic3RyZWFtX3NlcSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHNlcXVlbmNlIG51bWJlciBvZiB0aGUgU3RyZWFtIiwKICAgICAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgIm51bV9wZW5kaW5nIjogewogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBudW1iZXIgb2YgbWVzc2FnZXMgcGVuZGluZyBhY2tub3dsZWRnZW1lbnQiLAogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICB9LAogICAgICAgICJudW1fcmVkZWxpdmVyZWQiOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIG51bWJlciBvZiByZWRlbGl2ZXJpZXMgdGhhdCBoYXZlIGJlZW4gcGVyZm9ybWVkIiwKICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgewogICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAiYWRkaXRpb25hbEl0ZW1zIjogZmFsc2UsCiAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAiZXJyb3IiCiAgICAgIF0sCiAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICJlcnJvciI6IHsKICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAiYWRkaXRpb25hbEl0ZW1zIjogZmFsc2UsCiAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICJjb2RlIgogICAgICAgICAgXSwKICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAiY29kZSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSFRUUCBsaWtlIGVycm9yIGNvZGUgaW4gdGhlIDMwMCB0byA1MDAgcmFuZ2UiLAogICAgICAgICAgICAgICJtaW5pbXVtIjogMzAwLAogICAgICAgICAgICAgICJtYXhpbXVtIjogNjk5CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIGh1bWFuIGZyaWVuZGx5IGRlc2NyaXB0aW9uIG9mIHRoZSBlcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogIF0sCiAgInByb3BlcnRpZXMiOiB7CiAgICAidHlwZSI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgImNvbnN0IjogImlvLm5hdHMuamV0c3RyZWFtLmFwaS52MS5jb25zdW1lcl9jcmVhdGVfcmVzcG9uc2UiCiAgICB9CiAgfQp9Cg==") + schemas["io.nats.jetstream.api.v1.consumer_create_request"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYXBpL3YxL2NvbnN1bWVyX2NyZWF0ZV9yZXF1ZXN0Lmpzb24iLAogICJkZXNjcmlwdGlvbiI6ICJBIHJlcXVlc3QgdG8gdGhlIEpldFN0cmVhbSAkSlMuQVBJLkNPTlNVTUVSLkNSRUFURSBhbmQgJEpTLkFQSS5DT05TVU1FUi5EVVJBQkxFLkNSRUFURSBBUElzIiwKICAidGl0bGUiOiAiaW8ubmF0cy5qZXRzdHJlYW0uYXBpLnYxLmNvbnN1bWVyX2NyZWF0ZV9yZXF1ZXN0IiwKICAidHlwZSI6ICJvYmplY3QiLAogICJyZXF1aXJlZCI6IFsKICAgICJzdHJlYW1fbmFtZSIsCiAgICAiY29uZmlnIgogIF0sCiAgInByb3BlcnRpZXMiOiB7CiAgICAic3RyZWFtX25hbWUiOiB7CiAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgbmFtZSBvZiB0aGUgc3RyZWFtIHRvIGNyZWF0ZSB0aGUgY29uc3VtZXIgaW4iCiAgICB9LAogICAgImNvbmZpZyI6IHsKICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBjb25zdW1lciBjb25maWd1cmF0aW9uIiwKICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICJkZWxpdmVyX3BvbGljeSIsCiAgICAgICAgImFja19wb2xpY3kiLAogICAgICAgICJyZXBsYXlfcG9saWN5IgogICAgICBdLAogICAgICAiYWxsT2YiOiBbCiAgICAgICAgewogICAgICAgICAgIm9uZU9mIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IgogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiOiB7CiAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgICAgICJhbGwiCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiCiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSI6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAgICAgImxhc3QiCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiCiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSI6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAgICAgIm5ldyIKICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIsCiAgICAgICAgICAgICAgICAib3B0X3N0YXJ0X3NlcSIKICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAiZW51bSI6IFsKICAgICAgICAgICAgICAgICAgICAiYnlfc3RhcnRfc2VxdWVuY2UiCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAib3B0X3N0YXJ0X3NlcSI6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIsCiAgICAgICAgICAgICAgICAib3B0X3N0YXJ0X3RpbWUiCiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSI6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAgICAgImJ5X3N0YXJ0X3RpbWUiCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAib3B0X3N0YXJ0X3RpbWUiOiB7CiAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgICAgICJmb3JtYXQiOiAiZGF0ZS10aW1lIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgXQogICAgICAgIH0KICAgICAgXSwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgImR1cmFibGVfbmFtZSI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIHVuaXF1ZSBuYW1lIGZvciBhIGR1cmFibGUgY29uc3VtZXIiLAogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJwYXR0ZXJuIjogIl5bXi4qPl0rJCIsCiAgICAgICAgICAibWluTGVuZ3RoIjogMQogICAgICAgIH0sCiAgICAgICAgImRlbGl2ZXJfc3ViamVjdCI6IHsKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAibWluTGVuZ3RoIjogMQogICAgICAgIH0sCiAgICAgICAgImFja19wb2xpY3kiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICJub25lIiwKICAgICAgICAgICAgImFsbCIsCiAgICAgICAgICAgICJleHBsaWNpdCIKICAgICAgICAgIF0KICAgICAgICB9LAogICAgICAgICJhY2tfd2FpdCI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIb3cgbG9uZyAoaW4gbmFub3NlY29uZHMpIHRvIGFsbG93IG1lc3NhZ2VzIHRvIHJlbWFpbiB1bi1hY2tub3dsZWRnZWQgYmVmb3JlIGF0dGVtcHRpbmcgcmVkZWxpdmVyeSIsCiAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICJtaW5pbXVtIjogMQogICAgICAgIH0sCiAgICAgICAgIm1heF9kZWxpdmVyIjogewogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAibWluaW11bSI6IC0xCiAgICAgICAgfSwKICAgICAgICAiZmlsdGVyX3N1YmplY3QiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgfSwKICAgICAgICAicmVwbGF5X3BvbGljeSI6IHsKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAiZW51bSI6IFsKICAgICAgICAgICAgImluc3RhbnQiLAogICAgICAgICAgICAib3JpZ2luYWwiCiAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICAic2FtcGxlX2ZyZXEiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgfSwKICAgICAgICAicmF0ZV9saW1pdF9icHMiOiB7CiAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgcmF0ZSBhdCB3aGljaCBtZXNzYWdlcyB3aWxsIGJlIGRlbGl2ZXJlZCB0byBjbGllbnRzLCBleHByZXNzZWQgaW4gYml0IHBlciBzZWNvbmQiCiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfQp9Cg==") + schemas["io.nats.jetstream.api.v1.consumer_create_response"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYXBpL3YxL2NvbnN1bWVyX2NyZWF0ZV9yZXNwb25zZS5qc29uIiwKICAiZGVzY3JpcHRpb24iOiAiQSByZXNwb25zZSBmcm9tIHRoZSBKZXRTdHJlYW0gJEpTLkFQSS5DT05TVU1FUi5DUkVBVEUgQVBJIiwKICAidGl0bGUiOiAiaW8ubmF0cy5qZXRzdHJlYW0uYXBpLnYxLmNvbnN1bWVyX2NyZWF0ZV9yZXNwb25zZSIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAicmVxdWlyZWQiOiBbCiAgICAidHlwZSIKICBdLAogICJvbmVPZiI6IFsKICAgIHsKICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICJzdHJlYW1fbmFtZSIsCiAgICAgICAgIm5hbWUiLAogICAgICAgICJjb25maWciLAogICAgICAgICJjcmVhdGVkIiwKICAgICAgICAiZGVsaXZlcmVkIiwKICAgICAgICAiYWNrX2Zsb29yIiwKICAgICAgICAibnVtX3BlbmRpbmciLAogICAgICAgICJudW1fcmVkZWxpdmVyZWQiCiAgICAgIF0sCiAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgInN0cmVhbV9uYW1lIjogewogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgU3RyZWFtIHRoZSBjb25zdW1lciBiZWxvbmdzIHRvIgogICAgICAgIH0sCiAgICAgICAgIm5hbWUiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgdW5pcXVlIG5hbWUgZm9yIHRoZSBjb25zdW1lciwgZWl0aGVyIG1hY2hpbmUgZ2VuZXJhdGVkIG9yIHRoZSBkdXJhYmxlIG5hbWUiCiAgICAgICAgfSwKICAgICAgICAiY29uZmlnIjogewogICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiLAogICAgICAgICAgICAiYWNrX3BvbGljeSIsCiAgICAgICAgICAgICJyZXBsYXlfcG9saWN5IgogICAgICAgICAgXSwKICAgICAgICAgICJhbGxPZiI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICJvbmVPZiI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgICAgICAgICAiYWxsIgogICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgICAgICAgICAibGFzdCIKICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiCiAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAiZW51bSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgIm5ldyIKICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiLAogICAgICAgICAgICAgICAgICAgICJvcHRfc3RhcnRfc2VxIgogICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiOiB7CiAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICJieV9zdGFydF9zZXF1ZW5jZSIKICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJvcHRfc3RhcnRfc2VxIjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiLAogICAgICAgICAgICAgICAgICAgICJvcHRfc3RhcnRfdGltZSIKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgICAgICAgICAiYnlfc3RhcnRfdGltZSIKICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJvcHRfc3RhcnRfdGltZSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAiZm9ybWF0IjogImRhdGUtdGltZSIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KICAgICAgICAgIF0sCiAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgImR1cmFibGVfbmFtZSI6IHsKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSB1bmlxdWUgbmFtZSBmb3IgYSBkdXJhYmxlIGNvbnN1bWVyIiwKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICJwYXR0ZXJuIjogIl5bXi4qPl0rJCIsCiAgICAgICAgICAgICAgIm1pbkxlbmd0aCI6IDEKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImRlbGl2ZXJfc3ViamVjdCI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICJtaW5MZW5ndGgiOiAxCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJhY2tfcG9saWN5IjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAibm9uZSIsCiAgICAgICAgICAgICAgICAiYWxsIiwKICAgICAgICAgICAgICAgICJleHBsaWNpdCIKICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJhY2tfd2FpdCI6IHsKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSG93IGxvbmcgKGluIG5hbm9zZWNvbmRzKSB0byBhbGxvdyBtZXNzYWdlcyB0byByZW1haW4gdW4tYWNrbm93bGVkZ2VkIGJlZm9yZSBhdHRlbXB0aW5nIHJlZGVsaXZlcnkiLAogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJtaW5pbXVtIjogMQogICAgICAgICAgICB9LAogICAgICAgICAgICAibWF4X2RlbGl2ZXIiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAtMQogICAgICAgICAgICB9LAogICAgICAgICAgICAiZmlsdGVyX3N1YmplY3QiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICB9LAogICAgICAgICAgICAicmVwbGF5X3BvbGljeSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgImluc3RhbnQiLAogICAgICAgICAgICAgICAgIm9yaWdpbmFsIgogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgInNhbXBsZV9mcmVxIjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInJhdGVfbGltaXRfYnBzIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgcmF0ZSBhdCB3aGljaCBtZXNzYWdlcyB3aWxsIGJlIGRlbGl2ZXJlZCB0byBjbGllbnRzLCBleHByZXNzZWQgaW4gYml0IHBlciBzZWNvbmQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJjcmVhdGVkIjogewogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJmb3JtYXQiOiAiZGF0ZS10aW1lIgogICAgICAgIH0sCiAgICAgICAgImRlbGl2ZXJlZCI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgbGFzdCBtZXNzYWdlIGRlbGl2ZXJlZCBmcm9tIHRoaXMgQ29uc3VtZXIiLAogICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgImNvbnN1bWVyX3NlcSIsCiAgICAgICAgICAgICJzdHJlYW1fc2VxIgogICAgICAgICAgXSwKICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAiY29uc3VtZXJfc2VxIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgc2VxdWVuY2UgbnVtYmVyIG9mIHRoZSBDb25zdW1lciIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzdHJlYW1fc2VxIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgc2VxdWVuY2UgbnVtYmVyIG9mIHRoZSBTdHJlYW0iLAogICAgICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiYWNrX2Zsb29yIjogewogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBoaWdoZXN0IGNvbnRpZ3VvdXMgYWNrbm93bGVkZ2VkIG1lc3NhZ2UiLAogICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgImNvbnN1bWVyX3NlcSIsCiAgICAgICAgICAgICJzdHJlYW1fc2VxIgogICAgICAgICAgXSwKICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAiY29uc3VtZXJfc2VxIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgc2VxdWVuY2UgbnVtYmVyIG9mIHRoZSBDb25zdW1lciIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzdHJlYW1fc2VxIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgc2VxdWVuY2UgbnVtYmVyIG9mIHRoZSBTdHJlYW0iLAogICAgICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAibnVtX3BlbmRpbmciOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIG51bWJlciBvZiBtZXNzYWdlcyBwZW5kaW5nIGFja25vd2xlZGdlbWVudCIsCiAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgIH0sCiAgICAgICAgIm51bV9yZWRlbGl2ZXJlZCI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgbnVtYmVyIG9mIHJlZGVsaXZlcmllcyB0aGF0IGhhdmUgYmVlbiBwZXJmb3JtZWQiLAogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICJlcnJvciIKICAgICAgXSwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgImVycm9yIjogewogICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgImNvZGUiCiAgICAgICAgICBdLAogICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICJjb2RlIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIVFRQIGxpa2UgZXJyb3IgY29kZSBpbiB0aGUgMzAwIHRvIDUwMCByYW5nZSIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAzMDAsCiAgICAgICAgICAgICAgIm1heGltdW0iOiA2OTkKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgaHVtYW4gZnJpZW5kbHkgZGVzY3JpcHRpb24gb2YgdGhlIGVycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgXSwKICAicHJvcGVydGllcyI6IHsKICAgICJ0eXBlIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiY29uc3QiOiAiaW8ubmF0cy5qZXRzdHJlYW0uYXBpLnYxLmNvbnN1bWVyX2NyZWF0ZV9yZXNwb25zZSIKICAgIH0KICB9Cn0K") schemas["io.nats.jetstream.api.v1.consumer_delete_response"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYXBpL3YxL2NvbnN1bWVyX2RlbGV0ZV9yZXNwb25zZS5qc29uIiwKICAiZGVzY3JpcHRpb24iOiAiQSByZXNwb25zZSBmcm9tIHRoZSBKZXRTdHJlYW0gJEpTLkFQSS5DT05TVU1FUi5ERUxFVEUgQVBJIiwKICAidGl0bGUiOiAiaW8ubmF0cy5qZXRzdHJlYW0uYXBpLnYxLmNvbnN1bWVyX2RlbGV0ZV9yZXNwb25zZSIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAicmVxdWlyZWQiOiBbCiAgICAidHlwZSIKICBdLAogICJvbmVPZiI6IFsKICAgIHsKICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgImFkZGl0aW9uYWxJdGVtcyI6IGZhbHNlLAogICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgImVycm9yIgogICAgICBdLAogICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAiZXJyb3IiOiB7CiAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgImFkZGl0aW9uYWxJdGVtcyI6IGZhbHNlLAogICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAiY29kZSIKICAgICAgICAgIF0sCiAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgImNvZGUiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkhUVFAgbGlrZSBlcnJvciBjb2RlIGluIHRoZSAzMDAgdG8gNTAwIHJhbmdlIiwKICAgICAgICAgICAgICAibWluaW11bSI6IDMwMCwKICAgICAgICAgICAgICAibWF4aW11bSI6IDY5OQogICAgICAgICAgICB9LAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBodW1hbiBmcmllbmRseSBkZXNjcmlwdGlvbiBvZiB0aGUgZXJyb3IiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAic3VjY2VzcyIKICAgICAgXSwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgInN1Y2Nlc3MiOiB7CiAgICAgICAgICAidHlwZSI6ICJib29sZWFuIgogICAgICAgIH0KICAgICAgfQogICAgfQogIF0sCiAgInByb3BlcnRpZXMiOiB7CiAgICAidHlwZSI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgImNvbnN0IjogImlvLm5hdHMuamV0c3RyZWFtLmFwaS52MS5jb25zdW1lcl9kZWxldGVfcmVzcG9uc2UiCiAgICB9CiAgfQp9Cg==") - schemas["io.nats.jetstream.api.v1.consumer_info_response"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYXBpL3YxL2NvbnN1bWVyX2luZm9fcmVzcG9uc2UuanNvbiIsCiAgImRlc2NyaXB0aW9uIjogIkEgcmVzcG9uc2UgZnJvbSB0aGUgSmV0U3RyZWFtICRKUy5BUEkuQ09OU1VNRVIuSU5GTyBBUEkiLAogICJ0aXRsZSI6ICJpby5uYXRzLmpldHN0cmVhbS5hcGkudjEuY29uc3VtZXJfaW5mb19yZXNwb25zZSIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAicmVxdWlyZWQiOiBbCiAgICAidHlwZSIKICBdLAogICJvbmVPZiI6IFsKICAgIHsKICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICJzdHJlYW1fbmFtZSIsCiAgICAgICAgIm5hbWUiLAogICAgICAgICJjb25maWciLAogICAgICAgICJjcmVhdGVkIiwKICAgICAgICAiZGVsaXZlcmVkIiwKICAgICAgICAiYWNrX2Zsb29yIiwKICAgICAgICAibnVtX3BlbmRpbmciLAogICAgICAgICJudW1fcmVkZWxpdmVyZWQiCiAgICAgIF0sCiAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgInN0cmVhbV9uYW1lIjogewogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgU3RyZWFtIHRoZSBjb25zdW1lciBiZWxvbmdzIHRvIgogICAgICAgIH0sCiAgICAgICAgIm5hbWUiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgdW5pcXVlIG5hbWUgZm9yIHRoZSBjb25zdW1lciwgZWl0aGVyIG1hY2hpbmUgZ2VuZXJhdGVkIG9yIHRoZSBkdXJhYmxlIG5hbWUiCiAgICAgICAgfSwKICAgICAgICAiY29uZmlnIjogewogICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiLAogICAgICAgICAgICAiYWNrX3BvbGljeSIsCiAgICAgICAgICAgICJyZXBsYXlfcG9saWN5IgogICAgICAgICAgXSwKICAgICAgICAgICJhbGxPZiI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICJvbmVPZiI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgICAgICAgICAiYWxsIgogICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgICAgICAgICAibGFzdCIKICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiCiAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAiZW51bSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgIm5ldyIKICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiLAogICAgICAgICAgICAgICAgICAgICJvcHRfc3RhcnRfc2VxIgogICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiOiB7CiAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICJieV9zdGFydF9zZXF1ZW5jZSIKICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJvcHRfc3RhcnRfc2VxIjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiLAogICAgICAgICAgICAgICAgICAgICJvcHRfc3RhcnRfdGltZSIKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgICAgICAgICAiYnlfc3RhcnRfdGltZSIKICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJvcHRfc3RhcnRfdGltZSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAiZm9ybWF0IjogImRhdGUtdGltZSIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KICAgICAgICAgIF0sCiAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgImR1cmFibGVfbmFtZSI6IHsKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSB1bmlxdWUgbmFtZSBmb3IgYSBkdXJhYmxlIGNvbnN1bWVyIiwKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICJwYXR0ZXJuIjogIl5bXi4qPl0rJCIsCiAgICAgICAgICAgICAgIm1pbkxlbmd0aCI6IDEKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImRlbGl2ZXJfc3ViamVjdCI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICJtaW5MZW5ndGgiOiAxCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJhY2tfcG9saWN5IjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAibm9uZSIsCiAgICAgICAgICAgICAgICAiYWxsIiwKICAgICAgICAgICAgICAgICJleHBsaWNpdCIKICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJhY2tfd2FpdCI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAibWluaW11bSI6IDEKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm1heF9kZWxpdmVyIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJtaW5pbXVtIjogLTEKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImZpbHRlcl9zdWJqZWN0IjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInJlcGxheV9wb2xpY3kiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAiZW51bSI6IFsKICAgICAgICAgICAgICAgICJpbnN0YW50IiwKICAgICAgICAgICAgICAgICJvcmlnaW5hbCIKICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzYW1wbGVfZnJlcSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJyYXRlX2xpbWl0X2JwcyI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHJhdGUgYXQgd2hpY2ggbWVzc2FnZXMgd2lsbCBiZSBkZWxpdmVyZWQgdG8gY2xpZW50cywgZXhwcmVzc2VkIGluIGJpdCBwZXIgc2Vjb25kIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiY3JlYXRlZCI6IHsKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAiZm9ybWF0IjogImRhdGUtdGltZSIKICAgICAgICB9LAogICAgICAgICJkZWxpdmVyZWQiOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGxhc3QgbWVzc2FnZSBkZWxpdmVyZWQgZnJvbSB0aGlzIENvbnN1bWVyIiwKICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAiYWRkaXRpb25hbEl0ZW1zIjogZmFsc2UsCiAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICJjb25zdW1lcl9zZXEiLAogICAgICAgICAgICAic3RyZWFtX3NlcSIKICAgICAgICAgIF0sCiAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgImNvbnN1bWVyX3NlcSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHNlcXVlbmNlIG51bWJlciBvZiB0aGUgQ29uc3VtZXIiLAogICAgICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgICAgICB9LAogICAgICAgICAgICAic3RyZWFtX3NlcSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHNlcXVlbmNlIG51bWJlciBvZiB0aGUgU3RyZWFtIiwKICAgICAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgImFja19mbG9vciI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgaGlnaGVzdCBjb250aWd1b3VzIGFja25vd2xlZGdlZCBtZXNzYWdlIiwKICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAiYWRkaXRpb25hbEl0ZW1zIjogZmFsc2UsCiAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICJjb25zdW1lcl9zZXEiLAogICAgICAgICAgICAic3RyZWFtX3NlcSIKICAgICAgICAgIF0sCiAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgImNvbnN1bWVyX3NlcSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHNlcXVlbmNlIG51bWJlciBvZiB0aGUgQ29uc3VtZXIiLAogICAgICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgICAgICB9LAogICAgICAgICAgICAic3RyZWFtX3NlcSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHNlcXVlbmNlIG51bWJlciBvZiB0aGUgU3RyZWFtIiwKICAgICAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgIm51bV9wZW5kaW5nIjogewogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBudW1iZXIgb2YgbWVzc2FnZXMgcGVuZGluZyBhY2tub3dsZWRnZW1lbnQiLAogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICB9LAogICAgICAgICJudW1fcmVkZWxpdmVyZWQiOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIG51bWJlciBvZiByZWRlbGl2ZXJpZXMgdGhhdCBoYXZlIGJlZW4gcGVyZm9ybWVkIiwKICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgewogICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAiYWRkaXRpb25hbEl0ZW1zIjogZmFsc2UsCiAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAiZXJyb3IiCiAgICAgIF0sCiAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICJlcnJvciI6IHsKICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAiYWRkaXRpb25hbEl0ZW1zIjogZmFsc2UsCiAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICJjb2RlIgogICAgICAgICAgXSwKICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAiY29kZSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSFRUUCBsaWtlIGVycm9yIGNvZGUgaW4gdGhlIDMwMCB0byA1MDAgcmFuZ2UiLAogICAgICAgICAgICAgICJtaW5pbXVtIjogMzAwLAogICAgICAgICAgICAgICJtYXhpbXVtIjogNjk5CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIGh1bWFuIGZyaWVuZGx5IGRlc2NyaXB0aW9uIG9mIHRoZSBlcnJvciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogIF0sCiAgInByb3BlcnRpZXMiOiB7CiAgICAidHlwZSI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgImNvbnN0IjogImlvLm5hdHMuamV0c3RyZWFtLmFwaS52MS5jb25zdW1lcl9pbmZvX3Jlc3BvbnNlIgogICAgfQogIH0KfQo=") + schemas["io.nats.jetstream.api.v1.consumer_info_response"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYXBpL3YxL2NvbnN1bWVyX2luZm9fcmVzcG9uc2UuanNvbiIsCiAgImRlc2NyaXB0aW9uIjogIkEgcmVzcG9uc2UgZnJvbSB0aGUgSmV0U3RyZWFtICRKUy5BUEkuQ09OU1VNRVIuSU5GTyBBUEkiLAogICJ0aXRsZSI6ICJpby5uYXRzLmpldHN0cmVhbS5hcGkudjEuY29uc3VtZXJfaW5mb19yZXNwb25zZSIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAicmVxdWlyZWQiOiBbCiAgICAidHlwZSIKICBdLAogICJvbmVPZiI6IFsKICAgIHsKICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICJzdHJlYW1fbmFtZSIsCiAgICAgICAgIm5hbWUiLAogICAgICAgICJjb25maWciLAogICAgICAgICJjcmVhdGVkIiwKICAgICAgICAiZGVsaXZlcmVkIiwKICAgICAgICAiYWNrX2Zsb29yIiwKICAgICAgICAibnVtX3BlbmRpbmciLAogICAgICAgICJudW1fcmVkZWxpdmVyZWQiCiAgICAgIF0sCiAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgInN0cmVhbV9uYW1lIjogewogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgU3RyZWFtIHRoZSBjb25zdW1lciBiZWxvbmdzIHRvIgogICAgICAgIH0sCiAgICAgICAgIm5hbWUiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgdW5pcXVlIG5hbWUgZm9yIHRoZSBjb25zdW1lciwgZWl0aGVyIG1hY2hpbmUgZ2VuZXJhdGVkIG9yIHRoZSBkdXJhYmxlIG5hbWUiCiAgICAgICAgfSwKICAgICAgICAiY29uZmlnIjogewogICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiLAogICAgICAgICAgICAiYWNrX3BvbGljeSIsCiAgICAgICAgICAgICJyZXBsYXlfcG9saWN5IgogICAgICAgICAgXSwKICAgICAgICAgICJhbGxPZiI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICJvbmVPZiI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgICAgICAgICAiYWxsIgogICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgICAgICAgICAibGFzdCIKICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiCiAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAiZW51bSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgIm5ldyIKICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiLAogICAgICAgICAgICAgICAgICAgICJvcHRfc3RhcnRfc2VxIgogICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiOiB7CiAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICJieV9zdGFydF9zZXF1ZW5jZSIKICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJvcHRfc3RhcnRfc2VxIjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiLAogICAgICAgICAgICAgICAgICAgICJvcHRfc3RhcnRfdGltZSIKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgICAgICAgICAiYnlfc3RhcnRfdGltZSIKICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJvcHRfc3RhcnRfdGltZSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAiZm9ybWF0IjogImRhdGUtdGltZSIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KICAgICAgICAgIF0sCiAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgImR1cmFibGVfbmFtZSI6IHsKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSB1bmlxdWUgbmFtZSBmb3IgYSBkdXJhYmxlIGNvbnN1bWVyIiwKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICJwYXR0ZXJuIjogIl5bXi4qPl0rJCIsCiAgICAgICAgICAgICAgIm1pbkxlbmd0aCI6IDEKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImRlbGl2ZXJfc3ViamVjdCI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICJtaW5MZW5ndGgiOiAxCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJhY2tfcG9saWN5IjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAibm9uZSIsCiAgICAgICAgICAgICAgICAiYWxsIiwKICAgICAgICAgICAgICAgICJleHBsaWNpdCIKICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJhY2tfd2FpdCI6IHsKICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSG93IGxvbmcgKGluIG5hbm9zZWNvbmRzKSB0byBhbGxvdyBtZXNzYWdlcyB0byByZW1haW4gdW4tYWNrbm93bGVkZ2VkIGJlZm9yZSBhdHRlbXB0aW5nIHJlZGVsaXZlcnkiLAogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJtaW5pbXVtIjogMQogICAgICAgICAgICB9LAogICAgICAgICAgICAibWF4X2RlbGl2ZXIiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAtMQogICAgICAgICAgICB9LAogICAgICAgICAgICAiZmlsdGVyX3N1YmplY3QiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICB9LAogICAgICAgICAgICAicmVwbGF5X3BvbGljeSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgImluc3RhbnQiLAogICAgICAgICAgICAgICAgIm9yaWdpbmFsIgogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgInNhbXBsZV9mcmVxIjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInJhdGVfbGltaXRfYnBzIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgcmF0ZSBhdCB3aGljaCBtZXNzYWdlcyB3aWxsIGJlIGRlbGl2ZXJlZCB0byBjbGllbnRzLCBleHByZXNzZWQgaW4gYml0IHBlciBzZWNvbmQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJjcmVhdGVkIjogewogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJmb3JtYXQiOiAiZGF0ZS10aW1lIgogICAgICAgIH0sCiAgICAgICAgImRlbGl2ZXJlZCI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgbGFzdCBtZXNzYWdlIGRlbGl2ZXJlZCBmcm9tIHRoaXMgQ29uc3VtZXIiLAogICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgImNvbnN1bWVyX3NlcSIsCiAgICAgICAgICAgICJzdHJlYW1fc2VxIgogICAgICAgICAgXSwKICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAiY29uc3VtZXJfc2VxIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgc2VxdWVuY2UgbnVtYmVyIG9mIHRoZSBDb25zdW1lciIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzdHJlYW1fc2VxIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgc2VxdWVuY2UgbnVtYmVyIG9mIHRoZSBTdHJlYW0iLAogICAgICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiYWNrX2Zsb29yIjogewogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBoaWdoZXN0IGNvbnRpZ3VvdXMgYWNrbm93bGVkZ2VkIG1lc3NhZ2UiLAogICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgImNvbnN1bWVyX3NlcSIsCiAgICAgICAgICAgICJzdHJlYW1fc2VxIgogICAgICAgICAgXSwKICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAiY29uc3VtZXJfc2VxIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgc2VxdWVuY2UgbnVtYmVyIG9mIHRoZSBDb25zdW1lciIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzdHJlYW1fc2VxIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgc2VxdWVuY2UgbnVtYmVyIG9mIHRoZSBTdHJlYW0iLAogICAgICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAibnVtX3BlbmRpbmciOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIG51bWJlciBvZiBtZXNzYWdlcyBwZW5kaW5nIGFja25vd2xlZGdlbWVudCIsCiAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgIH0sCiAgICAgICAgIm51bV9yZWRlbGl2ZXJlZCI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgbnVtYmVyIG9mIHJlZGVsaXZlcmllcyB0aGF0IGhhdmUgYmVlbiBwZXJmb3JtZWQiLAogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICJlcnJvciIKICAgICAgXSwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgImVycm9yIjogewogICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgImNvZGUiCiAgICAgICAgICBdLAogICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICJjb2RlIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIVFRQIGxpa2UgZXJyb3IgY29kZSBpbiB0aGUgMzAwIHRvIDUwMCByYW5nZSIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAzMDAsCiAgICAgICAgICAgICAgIm1heGltdW0iOiA2OTkKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgaHVtYW4gZnJpZW5kbHkgZGVzY3JpcHRpb24gb2YgdGhlIGVycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgXSwKICAicHJvcGVydGllcyI6IHsKICAgICJ0eXBlIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiY29uc3QiOiAiaW8ubmF0cy5qZXRzdHJlYW0uYXBpLnYxLmNvbnN1bWVyX2luZm9fcmVzcG9uc2UiCiAgICB9CiAgfQp9Cg==") schemas["io.nats.jetstream.api.v1.consumer_list_request"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYXBpL3YxL2NvbnN1bWVyX2xpc3RfcmVxdWVzdC5qc29uIiwKICAiZGVzY3JpcHRpb24iOiAiQSByZXF1ZXN0IHRvIHRoZSBKZXRTdHJlYW0gJEpTLkFQSS5DT05TVU1FUi5MSVNUIEFQSSIsCiAgInRpdGxlIjogImlvLm5hdHMuamV0c3RyZWFtLmFwaS52MS5jb25zdW1lcl9saXN0X3JlcXVlc3QiLAogICJ0eXBlIjogIm9iamVjdCIsCiAgImFsbE9mIjogWwogICAgewogICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAiYWRkaXRpb25hbEl0ZW1zIjogZmFsc2UsCiAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAib2Zmc2V0IgogICAgICBdLAogICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAib2Zmc2V0IjogewogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICB9CiAgICAgIH0KICAgIH0KICBdCn0K") - schemas["io.nats.jetstream.api.v1.consumer_list_response"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYXBpL3YxL2NvbnN1bWVyX2xpc3RfcmVzcG9uc2UuanNvbiIsCiAgImRlc2NyaXB0aW9uIjogIkEgcmVzcG9uc2UgZnJvbSB0aGUgSmV0U3RyZWFtICRKUy5BUEkuQ09OU1VNRVIuTElTVCBBUEkiLAogICJ0aXRsZSI6ICJpby5uYXRzLmpldHN0cmVhbS5hcGkudjEuY29uc3VtZXJfbGlzdF9yZXNwb25zZSIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAicmVxdWlyZWQiOiBbCiAgICAidHlwZSIKICBdLAogICJhbGxPZiI6IFsKICAgIHsKICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgImFkZGl0aW9uYWxJdGVtcyI6IGZhbHNlLAogICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgInRvdGFsIiwKICAgICAgICAib2Zmc2V0IiwKICAgICAgICAibGltaXQiCiAgICAgIF0sCiAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICJ0b3RhbCI6IHsKICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgfSwKICAgICAgICAib2Zmc2V0IjogewogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICB9LAogICAgICAgICJsaW1pdCI6IHsKICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgfQogICAgICB9CiAgICB9CiAgXSwKICAib25lT2YiOiBbCiAgICB7CiAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICJlcnJvciIKICAgICAgXSwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgImVycm9yIjogewogICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgImNvZGUiCiAgICAgICAgICBdLAogICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICJjb2RlIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIVFRQIGxpa2UgZXJyb3IgY29kZSBpbiB0aGUgMzAwIHRvIDUwMCByYW5nZSIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAzMDAsCiAgICAgICAgICAgICAgIm1heGltdW0iOiA2OTkKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgaHVtYW4gZnJpZW5kbHkgZGVzY3JpcHRpb24gb2YgdGhlIGVycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgewogICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgInN0cmVhbV9uYW1lIiwKICAgICAgICAibmFtZSIsCiAgICAgICAgImNvbmZpZyIsCiAgICAgICAgImNyZWF0ZWQiLAogICAgICAgICJkZWxpdmVyZWQiLAogICAgICAgICJhY2tfZmxvb3IiLAogICAgICAgICJudW1fcGVuZGluZyIsCiAgICAgICAgIm51bV9yZWRlbGl2ZXJlZCIKICAgICAgXSwKICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgImFkZGl0aW9uYWxJdGVtcyI6IGZhbHNlLAogICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAic3RyZWFtX25hbWUiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBTdHJlYW0gdGhlIGNvbnN1bWVyIGJlbG9uZ3MgdG8iCiAgICAgICAgfSwKICAgICAgICAibmFtZSI6IHsKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSB1bmlxdWUgbmFtZSBmb3IgdGhlIGNvbnN1bWVyLCBlaXRoZXIgbWFjaGluZSBnZW5lcmF0ZWQgb3IgdGhlIGR1cmFibGUgbmFtZSIKICAgICAgICB9LAogICAgICAgICJjb25maWciOiB7CiAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIsCiAgICAgICAgICAgICJhY2tfcG9saWN5IiwKICAgICAgICAgICAgInJlcGxheV9wb2xpY3kiCiAgICAgICAgICBdLAogICAgICAgICAgImFsbE9mIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIm9uZU9mIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IgogICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiOiB7CiAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICJhbGwiCiAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IgogICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiOiB7CiAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICJsYXN0IgogICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgICAgICAgICAibmV3IgogICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIsCiAgICAgICAgICAgICAgICAgICAgIm9wdF9zdGFydF9zZXEiCiAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAiZW51bSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgImJ5X3N0YXJ0X3NlcXVlbmNlIgogICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgIm9wdF9zdGFydF9zZXEiOiB7CiAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIsCiAgICAgICAgICAgICAgICAgICAgIm9wdF9zdGFydF90aW1lIgogICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiOiB7CiAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICJieV9zdGFydF90aW1lIgogICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgIm9wdF9zdGFydF90aW1lIjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICJmb3JtYXQiOiAiZGF0ZS10aW1lIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgXSwKICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAiZHVyYWJsZV9uYW1lIjogewogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIHVuaXF1ZSBuYW1lIGZvciBhIGR1cmFibGUgY29uc3VtZXIiLAogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgInBhdHRlcm4iOiAiXlteLio+XSskIiwKICAgICAgICAgICAgICAibWluTGVuZ3RoIjogMQogICAgICAgICAgICB9LAogICAgICAgICAgICAiZGVsaXZlcl9zdWJqZWN0IjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgIm1pbkxlbmd0aCI6IDEKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImFja19wb2xpY3kiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAiZW51bSI6IFsKICAgICAgICAgICAgICAgICJub25lIiwKICAgICAgICAgICAgICAgICJhbGwiLAogICAgICAgICAgICAgICAgImV4cGxpY2l0IgogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgImFja193YWl0IjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJtaW5pbXVtIjogMQogICAgICAgICAgICB9LAogICAgICAgICAgICAibWF4X2RlbGl2ZXIiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAtMQogICAgICAgICAgICB9LAogICAgICAgICAgICAiZmlsdGVyX3N1YmplY3QiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICB9LAogICAgICAgICAgICAicmVwbGF5X3BvbGljeSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgImluc3RhbnQiLAogICAgICAgICAgICAgICAgIm9yaWdpbmFsIgogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgInNhbXBsZV9mcmVxIjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInJhdGVfbGltaXRfYnBzIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgcmF0ZSBhdCB3aGljaCBtZXNzYWdlcyB3aWxsIGJlIGRlbGl2ZXJlZCB0byBjbGllbnRzLCBleHByZXNzZWQgaW4gYml0IHBlciBzZWNvbmQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJjcmVhdGVkIjogewogICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICJmb3JtYXQiOiAiZGF0ZS10aW1lIgogICAgICAgIH0sCiAgICAgICAgImRlbGl2ZXJlZCI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgbGFzdCBtZXNzYWdlIGRlbGl2ZXJlZCBmcm9tIHRoaXMgQ29uc3VtZXIiLAogICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgImNvbnN1bWVyX3NlcSIsCiAgICAgICAgICAgICJzdHJlYW1fc2VxIgogICAgICAgICAgXSwKICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAiY29uc3VtZXJfc2VxIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgc2VxdWVuY2UgbnVtYmVyIG9mIHRoZSBDb25zdW1lciIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzdHJlYW1fc2VxIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgc2VxdWVuY2UgbnVtYmVyIG9mIHRoZSBTdHJlYW0iLAogICAgICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiYWNrX2Zsb29yIjogewogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBoaWdoZXN0IGNvbnRpZ3VvdXMgYWNrbm93bGVkZ2VkIG1lc3NhZ2UiLAogICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgImNvbnN1bWVyX3NlcSIsCiAgICAgICAgICAgICJzdHJlYW1fc2VxIgogICAgICAgICAgXSwKICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAiY29uc3VtZXJfc2VxIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgc2VxdWVuY2UgbnVtYmVyIG9mIHRoZSBDb25zdW1lciIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzdHJlYW1fc2VxIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgc2VxdWVuY2UgbnVtYmVyIG9mIHRoZSBTdHJlYW0iLAogICAgICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAibnVtX3BlbmRpbmciOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIG51bWJlciBvZiBtZXNzYWdlcyBwZW5kaW5nIGFja25vd2xlZGdlbWVudCIsCiAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgIH0sCiAgICAgICAgIm51bV9yZWRlbGl2ZXJlZCI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgbnVtYmVyIG9mIHJlZGVsaXZlcmllcyB0aGF0IGhhdmUgYmVlbiBwZXJmb3JtZWQiLAogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICB9CiAgICAgIH0KICAgIH0KICBdLAogICJwcm9wZXJ0aWVzIjogewogICAgInR5cGUiOiB7CiAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICJjb25zdCI6ICJpby5uYXRzLmpldHN0cmVhbS5hcGkudjEuY29uc3VtZXJfbGlzdF9yZXNwb25zZSIKICAgIH0KICB9Cn0K") + schemas["io.nats.jetstream.api.v1.consumer_list_response"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYXBpL3YxL2NvbnN1bWVyX2xpc3RfcmVzcG9uc2UuanNvbiIsCiAgImRlc2NyaXB0aW9uIjogIkEgcmVzcG9uc2UgZnJvbSB0aGUgSmV0U3RyZWFtICRKUy5BUEkuQ09OU1VNRVIuTElTVCBBUEkiLAogICJ0aXRsZSI6ICJpby5uYXRzLmpldHN0cmVhbS5hcGkudjEuY29uc3VtZXJfbGlzdF9yZXNwb25zZSIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAicmVxdWlyZWQiOiBbCiAgICAidHlwZSIKICBdLAogICJhbGxPZiI6IFsKICAgIHsKICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgImFkZGl0aW9uYWxJdGVtcyI6IGZhbHNlLAogICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgInRvdGFsIiwKICAgICAgICAib2Zmc2V0IiwKICAgICAgICAibGltaXQiCiAgICAgIF0sCiAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICJ0b3RhbCI6IHsKICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgfSwKICAgICAgICAib2Zmc2V0IjogewogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICB9LAogICAgICAgICJsaW1pdCI6IHsKICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgfQogICAgICB9CiAgICB9CiAgXSwKICAib25lT2YiOiBbCiAgICB7CiAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICJlcnJvciIKICAgICAgXSwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgImVycm9yIjogewogICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgImNvZGUiCiAgICAgICAgICBdLAogICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICJjb2RlIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIVFRQIGxpa2UgZXJyb3IgY29kZSBpbiB0aGUgMzAwIHRvIDUwMCByYW5nZSIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAzMDAsCiAgICAgICAgICAgICAgIm1heGltdW0iOiA2OTkKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgaHVtYW4gZnJpZW5kbHkgZGVzY3JpcHRpb24gb2YgdGhlIGVycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgewogICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgInN0cmVhbV9uYW1lIiwKICAgICAgICAibmFtZSIsCiAgICAgICAgImNvbmZpZyIsCiAgICAgICAgImNyZWF0ZWQiLAogICAgICAgICJkZWxpdmVyZWQiLAogICAgICAgICJhY2tfZmxvb3IiLAogICAgICAgICJudW1fcGVuZGluZyIsCiAgICAgICAgIm51bV9yZWRlbGl2ZXJlZCIKICAgICAgXSwKICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgImFkZGl0aW9uYWxJdGVtcyI6IGZhbHNlLAogICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAic3RyZWFtX25hbWUiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBTdHJlYW0gdGhlIGNvbnN1bWVyIGJlbG9uZ3MgdG8iCiAgICAgICAgfSwKICAgICAgICAibmFtZSI6IHsKICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSB1bmlxdWUgbmFtZSBmb3IgdGhlIGNvbnN1bWVyLCBlaXRoZXIgbWFjaGluZSBnZW5lcmF0ZWQgb3IgdGhlIGR1cmFibGUgbmFtZSIKICAgICAgICB9LAogICAgICAgICJjb25maWciOiB7CiAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIsCiAgICAgICAgICAgICJhY2tfcG9saWN5IiwKICAgICAgICAgICAgInJlcGxheV9wb2xpY3kiCiAgICAgICAgICBdLAogICAgICAgICAgImFsbE9mIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIm9uZU9mIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IgogICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiOiB7CiAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICJhbGwiCiAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IgogICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiOiB7CiAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICJsYXN0IgogICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgImRlbGl2ZXJfcG9saWN5IjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICJlbnVtIjogWwogICAgICAgICAgICAgICAgICAgICAgICAibmV3IgogICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIsCiAgICAgICAgICAgICAgICAgICAgIm9wdF9zdGFydF9zZXEiCiAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAiZW51bSI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgImJ5X3N0YXJ0X3NlcXVlbmNlIgogICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgIm9wdF9zdGFydF9zZXEiOiB7CiAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAgICAgICAgICJkZWxpdmVyX3BvbGljeSIsCiAgICAgICAgICAgICAgICAgICAgIm9wdF9zdGFydF90aW1lIgogICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAgICAiZGVsaXZlcl9wb2xpY3kiOiB7CiAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICJieV9zdGFydF90aW1lIgogICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgIm9wdF9zdGFydF90aW1lIjogewogICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICJmb3JtYXQiOiAiZGF0ZS10aW1lIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgXSwKICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAiZHVyYWJsZV9uYW1lIjogewogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIHVuaXF1ZSBuYW1lIGZvciBhIGR1cmFibGUgY29uc3VtZXIiLAogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgInBhdHRlcm4iOiAiXlteLio+XSskIiwKICAgICAgICAgICAgICAibWluTGVuZ3RoIjogMQogICAgICAgICAgICB9LAogICAgICAgICAgICAiZGVsaXZlcl9zdWJqZWN0IjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgIm1pbkxlbmd0aCI6IDEKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImFja19wb2xpY3kiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAiZW51bSI6IFsKICAgICAgICAgICAgICAgICJub25lIiwKICAgICAgICAgICAgICAgICJhbGwiLAogICAgICAgICAgICAgICAgImV4cGxpY2l0IgogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgImFja193YWl0IjogewogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIb3cgbG9uZyAoaW4gbmFub3NlY29uZHMpIHRvIGFsbG93IG1lc3NhZ2VzIHRvIHJlbWFpbiB1bi1hY2tub3dsZWRnZWQgYmVmb3JlIGF0dGVtcHRpbmcgcmVkZWxpdmVyeSIsCiAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAxCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJtYXhfZGVsaXZlciI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAibWluaW11bSI6IC0xCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJmaWx0ZXJfc3ViamVjdCI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJyZXBsYXlfcG9saWN5IjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAiaW5zdGFudCIsCiAgICAgICAgICAgICAgICAib3JpZ2luYWwiCiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9LAogICAgICAgICAgICAic2FtcGxlX2ZyZXEiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICB9LAogICAgICAgICAgICAicmF0ZV9saW1pdF9icHMiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSByYXRlIGF0IHdoaWNoIG1lc3NhZ2VzIHdpbGwgYmUgZGVsaXZlcmVkIHRvIGNsaWVudHMsIGV4cHJlc3NlZCBpbiBiaXQgcGVyIHNlY29uZCIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgImNyZWF0ZWQiOiB7CiAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgImZvcm1hdCI6ICJkYXRlLXRpbWUiCiAgICAgICAgfSwKICAgICAgICAiZGVsaXZlcmVkIjogewogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBsYXN0IG1lc3NhZ2UgZGVsaXZlcmVkIGZyb20gdGhpcyBDb25zdW1lciIsCiAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgImFkZGl0aW9uYWxJdGVtcyI6IGZhbHNlLAogICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAiY29uc3VtZXJfc2VxIiwKICAgICAgICAgICAgInN0cmVhbV9zZXEiCiAgICAgICAgICBdLAogICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICJjb25zdW1lcl9zZXEiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBzZXF1ZW5jZSBudW1iZXIgb2YgdGhlIENvbnN1bWVyIiwKICAgICAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInN0cmVhbV9zZXEiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBzZXF1ZW5jZSBudW1iZXIgb2YgdGhlIFN0cmVhbSIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJhY2tfZmxvb3IiOiB7CiAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGhpZ2hlc3QgY29udGlndW91cyBhY2tub3dsZWRnZWQgbWVzc2FnZSIsCiAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgImFkZGl0aW9uYWxJdGVtcyI6IGZhbHNlLAogICAgICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICAgICAiY29uc3VtZXJfc2VxIiwKICAgICAgICAgICAgInN0cmVhbV9zZXEiCiAgICAgICAgICBdLAogICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICJjb25zdW1lcl9zZXEiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBzZXF1ZW5jZSBudW1iZXIgb2YgdGhlIENvbnN1bWVyIiwKICAgICAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInN0cmVhbV9zZXEiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBzZXF1ZW5jZSBudW1iZXIgb2YgdGhlIFN0cmVhbSIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJudW1fcGVuZGluZyI6IHsKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgbnVtYmVyIG9mIG1lc3NhZ2VzIHBlbmRpbmcgYWNrbm93bGVkZ2VtZW50IiwKICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgfSwKICAgICAgICAibnVtX3JlZGVsaXZlcmVkIjogewogICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBudW1iZXIgb2YgcmVkZWxpdmVyaWVzIHRoYXQgaGF2ZSBiZWVuIHBlcmZvcm1lZCIsCiAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgIH0KICAgICAgfQogICAgfQogIF0sCiAgInByb3BlcnRpZXMiOiB7CiAgICAidHlwZSI6IHsKICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgImNvbnN0IjogImlvLm5hdHMuamV0c3RyZWFtLmFwaS52MS5jb25zdW1lcl9saXN0X3Jlc3BvbnNlIgogICAgfQogIH0KfQo=") schemas["io.nats.jetstream.api.v1.consumer_names_request"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYXBpL3YxL2NvbnN1bWVyX25hbWVzX3JlcXVlc3QuanNvbiIsCiAgImRlc2NyaXB0aW9uIjogIkEgcmVxdWVzdCB0byB0aGUgSmV0U3RyZWFtICRKUy5BUEkuQ09OU1VNRVIuTkFNRVMgQVBJIiwKICAidGl0bGUiOiAiaW8ubmF0cy5qZXRzdHJlYW0uYXBpLnYxLmNvbnN1bWVyX25hbWVzX3JlcXVlc3QiLAogICJ0eXBlIjogIm9iamVjdCIsCiAgImFsbE9mIjogWwogICAgewogICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAiYWRkaXRpb25hbEl0ZW1zIjogZmFsc2UsCiAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAib2Zmc2V0IgogICAgICBdLAogICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAib2Zmc2V0IjogewogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICB9CiAgICAgIH0KICAgIH0KICBdCn0K") schemas["io.nats.jetstream.api.v1.consumer_names_response"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYXBpL3YxL2NvbnN1bWVyX25hbWVzX3Jlc3BvbnNlLmpzb24iLAogICJkZXNjcmlwdGlvbiI6ICJBIHJlc3BvbnNlIGZyb20gdGhlIEpldFN0cmVhbSAkSlMuQVBJLkNPTlNVTUVSLk5BTUVTIEFQSSIsCiAgInRpdGxlIjogImlvLm5hdHMuamV0c3RyZWFtLmFwaS52MS5jb25zdW1lcl9uYW1lc19yZXNwb25zZSIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAicmVxdWlyZWQiOiBbCiAgICAidHlwZSIKICBdLAogICJhbGxPZiI6IFsKICAgIHsKICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgImFkZGl0aW9uYWxJdGVtcyI6IGZhbHNlLAogICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgInRvdGFsIiwKICAgICAgICAib2Zmc2V0IiwKICAgICAgICAibGltaXQiCiAgICAgIF0sCiAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICJ0b3RhbCI6IHsKICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgfSwKICAgICAgICAib2Zmc2V0IjogewogICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICB9LAogICAgICAgICJsaW1pdCI6IHsKICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgfQogICAgICB9CiAgICB9CiAgXSwKICAib25lT2YiOiBbCiAgICB7CiAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICJlcnJvciIKICAgICAgXSwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgImVycm9yIjogewogICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgImNvZGUiCiAgICAgICAgICBdLAogICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICJjb2RlIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIVFRQIGxpa2UgZXJyb3IgY29kZSBpbiB0aGUgMzAwIHRvIDUwMCByYW5nZSIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAzMDAsCiAgICAgICAgICAgICAgIm1heGltdW0iOiA2OTkKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgaHVtYW4gZnJpZW5kbHkgZGVzY3JpcHRpb24gb2YgdGhlIGVycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgewogICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAiYWRkaXRpb25hbEl0ZW1zIjogZmFsc2UsCiAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAiY29uc3VtZXJzIgogICAgICBdLAogICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAiY29uc3VtZXJzIjogewogICAgICAgICAgInR5cGUiOiAiYXJyYXkiLAogICAgICAgICAgIml0ZW1zIjogewogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgXSwKICAicHJvcGVydGllcyI6IHsKICAgICJ0eXBlIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiY29uc3QiOiAiaW8ubmF0cy5qZXRzdHJlYW0uYXBpLnYxLmNvbnN1bWVyX25hbWVzX3Jlc3BvbnNlIgogICAgfQogIH0KfQo=") schemas["io.nats.jetstream.api.v1.stream_create_response"], _ = base64.StdEncoding.DecodeString("ewogICIkc2NoZW1hIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyIsCiAgIiRpZCI6ICJodHRwczovL25hdHMuaW8vc2NoZW1hcy9qZXRzdHJlYW0vYXBpL3YxL3N0cmVhbV9jcmVhdGVfcmVzcG9uc2UuanNvbiIsCiAgImRlc2NyaXB0aW9uIjogIkEgcmVzcG9uc2UgZnJvbSB0aGUgSmV0U3RyZWFtICRKUy5BUEkuU1RSRUFNLkNSRUFURSBBUEkiLAogICJ0aXRsZSI6ICJpby5uYXRzLmpldHN0cmVhbS5hcGkudjEuc3RyZWFtX2NyZWF0ZV9yZXNwb25zZSIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAicmVxdWlyZWQiOiBbCiAgICAidHlwZSIKICBdLAogICJvbmVPZiI6IFsKICAgIHsKICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICJjb25maWciLAogICAgICAgICJzdGF0ZSIKICAgICAgXSwKICAgICAgImFkZGl0aW9uYWxJdGVtcyI6IGZhbHNlLAogICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAiY29uZmlnIjogewogICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWN0aXZlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBTdHJlYW0iLAogICAgICAgICAgImFsbE9mIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICAgICAic3ViamVjdHMiLAogICAgICAgICAgICAgICAgInJldGVudGlvbiIsCiAgICAgICAgICAgICAgICAibWF4X2NvbnN1bWVycyIsCiAgICAgICAgICAgICAgICAibWF4X21zZ3MiLAogICAgICAgICAgICAgICAgIm1heF9ieXRlcyIsCiAgICAgICAgICAgICAgICAibWF4X2FnZSIsCiAgICAgICAgICAgICAgICAic3RvcmFnZSIsCiAgICAgICAgICAgICAgICAibnVtX3JlcGxpY2FzIgogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgImFkZGl0aW9uYWxJdGVtcyI6IGZhbHNlLAogICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAgIm5hbWUiOiB7CiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIHVuaXF1ZSBuYW1lIGZvciB0aGUgU3RyZWFtLCBlbXB0eSBmb3IgU3RyZWFtIFRlbXBsYXRlcy4iLAogICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAicGF0dGVybiI6ICJeW14uKj5dKiQiLAogICAgICAgICAgICAgICAgICAibWluTGVuZ3RoIjogMAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJzdWJqZWN0cyI6IHsKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgbGlzdCBvZiBzdWJqZWN0cyB0byBjb25zdW1lLCBzdXBwb3J0cyB3aWxkY2FyZHMuIiwKICAgICAgICAgICAgICAgICAgInR5cGUiOiAiYXJyYXkiLAogICAgICAgICAgICAgICAgICAibWluTGVuZ3RoIjogMSwKICAgICAgICAgICAgICAgICAgIml0ZW1zIjogewogICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgIm1pbkxlbmd0aCI6IDEKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJyZXRlbnRpb24iOiB7CiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIb3cgbWVzc2FnZXMgYXJlIHJldGFpbmVkIGluIHRoZSBTdHJlYW0sIG9uY2UgdGhpcyBpcyBleGNlZWRlZCBvbGQgbWVzc2FnZXMgYXJlIHJlbW92ZWQuIiwKICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgImVudW0iOiBbCiAgICAgICAgICAgICAgICAgICAgImxpbWl0cyIsCiAgICAgICAgICAgICAgICAgICAgImludGVyZXN0IiwKICAgICAgICAgICAgICAgICAgICAid29ya3F1ZXVlIgogICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAiZGVmYXVsdCI6ICJsaW1pdHMiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIm1heF9jb25zdW1lcnMiOiB7CiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIb3cgbWFueSBDb25zdW1lcnMgY2FuIGJlIGRlZmluZWQgZm9yIGEgZ2l2ZW4gU3RyZWFtLiAtMSBmb3IgdW5saW1pdGVkLiIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICAgICAibWluaW11bSI6IC0xLAogICAgICAgICAgICAgICAgICAiZGVmYXVsdCI6IC0xCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIm1heF9tc2dzIjogewogICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSG93IG1hbnkgbWVzc2FnZXMgbWF5IGJlIGluIGEgU3RyZWFtLCBvbGRlc3QgbWVzc2FnZXMgd2lsbCBiZSByZW1vdmVkIGlmIHRoZSBTdHJlYW0gZXhjZWVkcyB0aGlzIHNpemUuIC0xIGZvciB1bmxpbWl0ZWQuIiwKICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICJtaW5pbXVtIjogLTEsCiAgICAgICAgICAgICAgICAgICJkZWZhdWx0IjogLTEKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAibWF4X2J5dGVzIjogewogICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSG93IGJpZyB0aGUgU3RyZWFtIG1heSBiZSwgd2hlbiB0aGUgY29tYmluZWQgc3RyZWFtIHNpemUgZXhjZWVkcyB0aGlzIG9sZCBtZXNzYWdlcyBhcmUgcmVtb3ZlZC4gLTEgZm9yIHVubGltaXRlZC4iLAogICAgICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAgICAgIm1pbmltdW0iOiAtMSwKICAgICAgICAgICAgICAgICAgImRlZmF1bHQiOiAtMQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJtYXhfYWdlIjogewogICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTWF4aW11bSBhZ2Ugb2YgYW55IG1lc3NhZ2UgaW4gdGhlIHN0cmVhbSwgZXhwcmVzc2VkIGluIG1pY3Jvc2Vjb25kcy4gMCBmb3IgdW5saW1pdGVkLiIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICAgICAibWluaW11bSI6IDAsCiAgICAgICAgICAgICAgICAgICJkZWZhdWx0IjogMAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJtYXhfbXNnX3NpemUiOiB7CiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgbGFyZ2VzdCBtZXNzYWdlIHRoYXQgd2lsbCBiZSBhY2NlcHRlZCBieSB0aGUgU3RyZWFtLiAtMSBmb3IgdW5saW1pdGVkLiIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICAgICAibWluaW11bSI6IC0xLAogICAgICAgICAgICAgICAgICAiZGVmYXVsdCI6IC0xCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgInN0b3JhZ2UiOiB7CiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgc3RvcmFnZSBiYWNrZW5kIHRvIHVzZSBmb3IgdGhlIFN0cmVhbS4iLAogICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAiZW51bSI6IFsKICAgICAgICAgICAgICAgICAgICAiZmlsZSIsCiAgICAgICAgICAgICAgICAgICAgIm1lbW9yeSIKICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgImRlZmF1bHQiOiAibWVtb3J5IgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJudW1fcmVwbGljYXMiOiB7CiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIb3cgbWFueSByZXBsaWNhcyB0byBrZWVwIGZvciBlYWNoIG1lc3NhZ2UuIiwKICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICJtaW5pbXVtIjogMSwKICAgICAgICAgICAgICAgICAgImRlZmF1bHQiOiAxCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIm5vX2FjayI6IHsKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIGFja25vd2xlZGdpbmcgbWVzc2FnZXMgdGhhdCBhcmUgcmVjZWl2ZWQgYnkgdGhlIFN0cmVhbS4iLAogICAgICAgICAgICAgICAgICAidHlwZSI6ICJib29sZWFuIiwKICAgICAgICAgICAgICAgICAgImRlZmF1bHQiOiBmYWxzZQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJ0ZW1wbGF0ZV9vd25lciI6IHsKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIldoZW4gdGhlIFN0cmVhbSBpcyBtYW5hZ2VkIGJ5IGEgU3RyZWFtIFRlbXBsYXRlIHRoaXMgaWRlbnRpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBtYW5hZ2VzIHRoZSBTdHJlYW0uIiwKICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJkaXNjYXJkIjogewogICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiBhIFN0cmVhbSByZWFjaCBpdCdzIGxpbWl0cyBlaXRoZXIgb2xkIG1lc3NhZ2VzIGFyZSBkZWxldGVkIG9yIG5ldyBvbmVzIGFyZSBkZW5pZWQiLAogICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAiZW51bSI6IFsKICAgICAgICAgICAgICAgICAgICAib2xkIiwKICAgICAgICAgICAgICAgICAgICAibmV3IgogICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAiZGVmYXVsdCI6ICJvbGQiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgImR1cGxpY2F0ZV93aW5kb3ciOiB7CiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgdGltZSB3aW5kb3cgdG8gdHJhY2sgZHVwbGljYXRlIG1lc3NhZ2VzIGZvciwgZXhwcmVzc2VkIGluIG1pY3Jvc2Vjb25kcy4gMCBmb3IgZGVmYXVsdCIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICAgICAibWluaW11bSI6IDAsCiAgICAgICAgICAgICAgICAgICJkZWZhdWx0IjogMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgXQogICAgICAgIH0sCiAgICAgICAgInN0YXRlIjogewogICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEZXRhaWwgYWJvdXQgdGhlIGN1cnJlbnQgU3RhdGUgb2YgdGhlIFN0cmVhbSIsCiAgICAgICAgICAiYWxsT2YiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgICAgICAgICAicmVxdWlyZWQiOiBbCiAgICAgICAgICAgICAgICAibWVzc2FnZXMiLAogICAgICAgICAgICAgICAgImJ5dGVzIiwKICAgICAgICAgICAgICAgICJmaXJzdF9zZXEiLAogICAgICAgICAgICAgICAgImxhc3Rfc2VxIiwKICAgICAgICAgICAgICAgICJjb25zdW1lcl9jb3VudCIKICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAgIm1lc3NhZ2VzIjogewogICAgICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBtZXNzYWdlcyBzdG9yZWQgaW4gdGhlIFN0cmVhbSIsCiAgICAgICAgICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJieXRlcyI6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDb21iaW5lZCBzaXplIG9mIGFsbCBtZXNzYWdlcyBpbiB0aGUgU3RyZWFtIiwKICAgICAgICAgICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgImZpcnN0X3NlcSI6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTZXF1ZW5jZSBudW1iZXIgb2YgdGhlIGZpcnN0IG1lc3NhZ2UgaW4gdGhlIFN0cmVhbSIsCiAgICAgICAgICAgICAgICAgICJtaW5pbXVtIjogMAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJmaXJzdF90cyI6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB0aW1lc3RhbXAgb2YgdGhlIGZpcnN0IG1lc3NhZ2UgaW4gdGhlIFN0cmVhbSIsCiAgICAgICAgICAgICAgICAgICJmb3JtYXQiOiAiZGF0ZS10aW1lIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJsYXN0X3NlcSI6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTZXF1ZW5jZSBudW1iZXIgb2YgdGhlIGxhc3QgbWVzc2FnZSBpbiB0aGUgU3RyZWFtIiwKICAgICAgICAgICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgImxhc3RfdHMiOiB7CiAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgdGltZXN0YW1wIG9mIHRoZSBsYXN0IG1lc3NhZ2UgaW4gdGhlIFN0cmVhbSIsCiAgICAgICAgICAgICAgICAgICJmb3JtYXQiOiAiZGF0ZS10aW1lIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJjb25zdW1lcl9jb3VudCI6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgQ29uc3VtZXJzIGF0dGFjaGVkIHRvIHRoZSBTdHJlYW0iLAogICAgICAgICAgICAgICAgICAibWluaW11bSI6IDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIF0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgInJlcXVpcmVkIjogWwogICAgICAgICJlcnJvciIKICAgICAgXSwKICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgImVycm9yIjogewogICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiBmYWxzZSwKICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgImNvZGUiCiAgICAgICAgICBdLAogICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICJjb2RlIjogewogICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIVFRQIGxpa2UgZXJyb3IgY29kZSBpbiB0aGUgMzAwIHRvIDUwMCByYW5nZSIsCiAgICAgICAgICAgICAgIm1pbmltdW0iOiAzMDAsCiAgICAgICAgICAgICAgIm1heGltdW0iOiA2OTkKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogewogICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgaHVtYW4gZnJpZW5kbHkgZGVzY3JpcHRpb24gb2YgdGhlIGVycm9yIgogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgXSwKICAicHJvcGVydGllcyI6IHsKICAgICJ0eXBlIjogewogICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAiY29uc3QiOiAiaW8ubmF0cy5qZXRzdHJlYW0uYXBpLnYxLnN0cmVhbV9jcmVhdGVfcmVzcG9uc2UiCiAgICB9CiAgfQp9Cg==") diff --git a/api/schemas_test.go b/api/schemas_test.go index bf0fd4c3..dd15f85f 100644 --- a/api/schemas_test.go +++ b/api/schemas_test.go @@ -4,7 +4,6 @@ import ( "encoding/json" "reflect" "testing" - "time" jsadvisory "github.com/nats-io/jsm.go/api/jetstream/advisory" ) @@ -27,10 +26,6 @@ const jetStreamAPIAuditEvent = `{ "response": "[\n \"ORDERS\"\n]" }` -type validator interface { - Validate() (bool, []string) -} - func checkErr(t *testing.T, err error, m string) { t.Helper() if err == nil { @@ -39,67 +34,6 @@ func checkErr(t *testing.T, err error, m string) { t.Fatal(m + ": " + err.Error()) } -func validateExpectSuccess(t *testing.T, cfg validator) { - t.Helper() - - ok, errs := cfg.Validate() - if !ok { - t.Fatalf("expected success but got: %v", errs) - } -} - -func validateExpectFailure(t *testing.T, cfg validator) { - t.Helper() - - ok, errs := cfg.Validate() - if ok { - t.Fatalf("expected success but got: %v", errs) - } -} - -func TestValidateStruct(t *testing.T) { - sc := StreamConfig{ - Name: "BASIC", - Subjects: []string{"BASIC"}, - Retention: LimitsPolicy, - MaxConsumers: -1, - MaxAge: 0, - MaxBytes: -1, - MaxMsgs: -1, - Storage: FileStorage, - Replicas: 1, - } - - ok, errs := ValidateStruct(sc, sc.SchemaType()) - if !ok { - t.Fatalf("expected no errors got %v", errs) - } - - sc.MaxMsgs = -2 - ok, errs = ValidateStruct(sc, sc.SchemaType()) - if ok || len(errs) != 1 { - t.Fatal("expected errors got none") - } - - ja := jsadvisory.JetStreamAPIAuditV1{} - err := json.Unmarshal([]byte(jetStreamAPIAuditEvent), &ja) - if err != nil { - t.Fatalf("could not unmarshal event: %s", err) - } - - ok, errs = ValidateStruct(ja, "io.nats.jetstream.advisory.v1.api_audit") - if !ok { - t.Fatalf("expected no errors got %v", errs) - } - - ja.Type = "" - ok, errs = ValidateStruct(ja, "io.nats.jetstream.advisory.v1.api_audit") - if ok || len(errs) != 1 { - t.Fatal("expected errors got none") - } - -} - func TestToCloudEvent(t *testing.T) { SchemasRepo = "https://nats.io/schemas" @@ -155,191 +89,6 @@ func TestToCloudEvent(t *testing.T) { } } -func TestStreamConfiguration(t *testing.T) { - reset := func() StreamConfig { - return StreamConfig{ - Name: "BASIC", - Subjects: []string{"BASIC"}, - Retention: LimitsPolicy, - MaxConsumers: -1, - MaxAge: 0, - MaxBytes: -1, - MaxMsgs: -1, - Storage: FileStorage, - Replicas: 1, - } - } - - cfg := reset() - validateExpectSuccess(t, cfg) - - // invalid names - cfg = reset() - cfg.Name = "X.X" - validateExpectFailure(t, cfg) - - // empty subject list not allowed but no subject list is allowed - cfg = reset() - cfg.Subjects = []string{""} - validateExpectFailure(t, cfg) - - // valid subject - cfg.Subjects = []string{"bob"} - validateExpectSuccess(t, cfg) - - // invalid retention - cfg.Retention = 10 - validateExpectFailure(t, cfg) - - // max consumers >= -1 - cfg = reset() - cfg.MaxConsumers = -2 - validateExpectFailure(t, cfg) - cfg.MaxConsumers = 10 - validateExpectSuccess(t, cfg) - - // max messages >= -1 - cfg = reset() - cfg.MaxMsgs = -2 - validateExpectFailure(t, cfg) - cfg.MaxMsgs = 10 - validateExpectSuccess(t, cfg) - - // max bytes >= -1 - cfg = reset() - cfg.MaxBytes = -2 - validateExpectFailure(t, cfg) - cfg.MaxBytes = 10 - validateExpectSuccess(t, cfg) - - // max age >= 0 - cfg = reset() - cfg.MaxAge = -1 - validateExpectFailure(t, cfg) - cfg.MaxAge = time.Second - validateExpectSuccess(t, cfg) - - // max msg size >= -1 - cfg = reset() - cfg.MaxMsgSize = -2 - validateExpectFailure(t, cfg) - cfg.MaxMsgSize = 10 - validateExpectSuccess(t, cfg) - - // storage is valid - cfg = reset() - cfg.Storage = 10 - validateExpectFailure(t, cfg) - - // num replicas > 0 - cfg = reset() - cfg.Replicas = -1 - validateExpectFailure(t, cfg) - cfg.Replicas = 0 - validateExpectFailure(t, cfg) -} - -func TestStreamTemplateConfiguration(t *testing.T) { - reset := func() StreamTemplateConfig { - return StreamTemplateConfig{ - Name: "BASIC_T", - MaxStreams: 10, - Config: &StreamConfig{ - Name: "BASIC", - Subjects: []string{"BASIC"}, - Retention: LimitsPolicy, - MaxConsumers: -1, - MaxAge: 0, - MaxBytes: -1, - MaxMsgs: -1, - Storage: FileStorage, - Replicas: 1, - }, - } - } - - cfg := reset() - validateExpectSuccess(t, cfg) - - cfg.Name = "" - validateExpectFailure(t, cfg) - - // should also validate config - cfg = reset() - cfg.Config.Storage = 10 - validateExpectFailure(t, cfg) - - // unlimited managed streams - cfg = reset() - cfg.MaxStreams = 0 - validateExpectSuccess(t, cfg) -} - -func TestConsumerConfiguration(t *testing.T) { - reset := func() ConsumerConfig { - return ConsumerConfig{ - DeliverPolicy: DeliverAll, - AckPolicy: AckExplicit, - ReplayPolicy: ReplayInstant, - } - } - - cfg := reset() - validateExpectSuccess(t, cfg) - - // durable name - cfg = reset() - cfg.Durable = "bob.bob" - validateExpectFailure(t, cfg) - - // last policy - cfg = reset() - cfg.DeliverPolicy = DeliverLast - validateExpectSuccess(t, cfg) - - // new policy - cfg = reset() - cfg.DeliverPolicy = DeliverNew - validateExpectSuccess(t, cfg) - - // start sequence policy - cfg = reset() - cfg.DeliverPolicy = DeliverByStartSequence - cfg.OptStartSeq = 10 - validateExpectSuccess(t, cfg) - cfg.OptStartSeq = 0 - validateExpectFailure(t, cfg) - - // start time policy - cfg = reset() - ts := time.Now() - cfg.DeliverPolicy = DeliverByStartTime - cfg.OptStartTime = &ts - validateExpectSuccess(t, cfg) - cfg.OptStartTime = nil - validateExpectFailure(t, cfg) - - // ack policy - cfg = reset() - cfg.AckPolicy = 10 - validateExpectFailure(t, cfg) - cfg.AckPolicy = AckExplicit - validateExpectSuccess(t, cfg) - cfg.AckPolicy = AckAll - validateExpectSuccess(t, cfg) - cfg.AckPolicy = AckNone - validateExpectSuccess(t, cfg) - - // replay policy - cfg = reset() - cfg.ReplayPolicy = 10 - validateExpectFailure(t, cfg) - cfg.ReplayPolicy = ReplayInstant - validateExpectSuccess(t, cfg) - cfg.ReplayPolicy = ReplayOriginal - validateExpectSuccess(t, cfg) -} - func TestSchemaForEvent(t *testing.T) { s, err := SchemaTypeForMessage([]byte(`{"schema":"io.nats.jetstream.metric.v1.consumer_ack"}`)) checkErr(t, err, "schema extract failed") diff --git a/go.mod b/go.mod index 0bf1bf92..8045e1d0 100644 --- a/go.mod +++ b/go.mod @@ -6,6 +6,5 @@ require ( github.com/dustin/go-humanize v1.0.0 github.com/nats-io/nats-server/v2 v2.1.8-0.20200805175456-400b044ea033 github.com/nats-io/nats.go v1.10.1-0.20200606002146-fc6fed82929a - github.com/xeipuuv/gojsonschema v1.2.0 google.golang.org/protobuf v1.24.0 // indirect ) diff --git a/go.sum b/go.sum index 3e00d569..ed6ff942 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,6 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -51,18 +49,7 @@ github.com/nats-io/nkeys v0.2.0 h1:WXKF7diOaPU9cJdLD7nuzwasQy9vT1tBqzXZZf3AMJM= github.com/nats-io/nkeys v0.2.0/go.mod h1:XdZpAbhgyyODYqjTawOnIOI7VlbKSarI9Gfy1tqEu/s= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= -github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= -github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= -github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= -github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59 h1:3zb4D3T4G8jdExgVU/95+vQXfpEPiMdCaZgmGVxjNHM= diff --git a/jsm.go b/jsm.go index 57b00954..58638f22 100644 --- a/jsm.go +++ b/jsm.go @@ -35,7 +35,7 @@ var timeout = 5 * time.Second var nc *nats.Conn var mu sync.Mutex var trace bool -var validate bool +var validator api.StructValidator // standard api responses with error embedded type jetStreamResponseError interface { @@ -56,27 +56,13 @@ type apiIterableRequest interface { } // all types generated using the api/gen.go which includes all -// the jetstream api types. Validate() will force validate all +// the jetstream api types. Validate() will force validator all // of these on every jsonRequest type apiValidatable interface { - Validate() (valid bool, errors []string) + Validate(...api.StructValidator) (valid bool, errors []string) SchemaType() string } -// Connect connects to NATS and configures it to use the connection in future interactions with JetStream -// Deprecated: Use Request Options to supply the connection -func Connect(servers string, opts ...nats.Option) (err error) { - mu.Lock() - defer mu.Unlock() - - // needed so that interest drops are observed by JetStream to stop - opts = append(opts, nats.UseOldRequestStyle()) - - nc, err = nats.Connect(servers, opts...) - - return err -} - // SetTimeout sets the timeout for requests to JetStream // Deprecated: Use Request Options to supply the timeout func SetTimeout(t time.Duration) { @@ -86,17 +72,10 @@ func SetTimeout(t time.Duration) { timeout = t } -// Validate enables JSON Schema validation of all responses from the Server -func Validate() { - mu.Lock() - validate = true - mu.Unlock() -} - -// NoValidate disables Validate() -func NoValidate() { +// Validate enables JSON Schema validation of all responses from the Server using a supplied validator, setting nil disables +func Validate(v api.StructValidator) { mu.Lock() - validate = false + validator = v mu.Unlock() } @@ -114,16 +93,17 @@ func NoTrace() { mu.Unlock() } -func shouldTrace() bool { +func structValidator() api.StructValidator { mu.Lock() defer mu.Unlock() - return trace + + return validator } -func shouldValidate() bool { +func shouldTrace() bool { mu.Lock() defer mu.Unlock() - return validate + return trace } // SetConnection sets the connection used to perform requests. Will force using old style requests. @@ -316,7 +296,7 @@ func StreamNames(opts ...RequestOption) (names []string, err error) { return names, nil } -// StreamNames is a sorted list of all known consumers within a stream +// ConsumerNames is a sorted list of all known consumers within a stream func ConsumerNames(stream string, opts ...RequestOption) (names []string, err error) { if !IsValidName(stream) { return nil, fmt.Errorf("%q is not a valid stream name", stream) @@ -537,13 +517,13 @@ func jsonRequest(subj string, req interface{}, response interface{}, opts *reqop return jsr.ToError() } - if !opts.apiValidate { - return nil + if opts.validator == nil { + opts.validator = structValidator() } jv, ok := response.(apiValidatable) if ok { - valid, errs := jv.Validate() + valid, errs := jv.Validate(opts.validator) if valid { return nil } diff --git a/jsm_test.go b/jsm_test.go index 953a01ab..81d515b3 100644 --- a/jsm_test.go +++ b/jsm_test.go @@ -27,10 +27,6 @@ import ( "github.com/nats-io/jsm.go" ) -func init() { - jsm.Validate() -} - func startJSServer(t *testing.T) (*natsd.Server, *nats.Conn) { t.Helper() diff --git a/request_options.go b/request_options.go index 5cd20e08..4814890b 100644 --- a/request_options.go +++ b/request_options.go @@ -19,25 +19,27 @@ import ( "time" "github.com/nats-io/nats.go" + + "github.com/nats-io/jsm.go/api" ) // RequestOption is a option to configure the NATS related options type RequestOption func(o *reqoptions) type reqoptions struct { - nc *nats.Conn - timeout time.Duration - ctx context.Context - trace bool - apiValidate bool + nc *nats.Conn + timeout time.Duration + ctx context.Context + trace bool + validator api.StructValidator } func dfltreqoptions() *reqoptions { return &reqoptions{ - nc: Connection(), - timeout: timeout, - trace: shouldTrace(), - apiValidate: shouldValidate(), + nc: Connection(), + timeout: timeout, + trace: shouldTrace(), + validator: nil, } } @@ -55,10 +57,10 @@ func newreqoptions(opts ...RequestOption) (*reqoptions, error) { return ropts, nil } -// WithAPIValidation validates responses sent from the NATS server against a schema -func WithAPIValidation() RequestOption { +// WithAPIValidation validates responses sent from the NATS server using a validator +func WithAPIValidation(v api.StructValidator) RequestOption { return func(o *reqoptions) { - o.apiValidate = true + o.validator = v } } diff --git a/streams.go b/streams.go index 940e6aa6..ddecee0b 100644 --- a/streams.go +++ b/streams.go @@ -81,7 +81,7 @@ func NewStreamFromDefault(name string, dflt api.StreamConfig, opts ...StreamOpti cfg.Name = name - valid, errs := cfg.Validate() + valid, errs := cfg.Validate(structValidator()) if !valid { return nil, fmt.Errorf("configuration validation failed: %s", strings.Join(errs, ", ")) } diff --git a/templates.go b/templates.go index 93e91ffe..6a8267c8 100644 --- a/templates.go +++ b/templates.go @@ -45,7 +45,7 @@ func NewStreamTemplate(name string, maxStreams uint32, config api.StreamConfig, MaxStreams: maxStreams, } - valid, errs := tc.Validate() + valid, errs := tc.Validate(structValidator()) if !valid { return nil, fmt.Errorf("configuration validation failed: %s", strings.Join(errs, ", ")) }