diff --git a/jetstream.nats.io/account_v1beta2.json b/jetstream.nats.io/account_v1beta2.json new file mode 100644 index 00000000..baa2c9bd --- /dev/null +++ b/jetstream.nats.io/account_v1beta2.json @@ -0,0 +1,77 @@ +{ + "properties": { + "spec": { + "properties": { + "creds": { + "description": "The creds to be used to connect to the NATS Service.", + "properties": { + "file": { + "description": "Credentials file, generated with github.com/nats-io/nsc tool.", + "type": "string" + }, + "secret": { + "properties": { + "name": { + "description": "Name of the secret with the creds.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "name": { + "description": "A unique name for the Account.", + "minLength": 1, + "pattern": "^[^.*>]*$", + "type": "string" + }, + "servers": { + "description": "A list of servers to connect.", + "items": { + "minLength": 1, + "type": "string" + }, + "minLength": 1, + "type": "array" + }, + "tls": { + "description": "The TLS certs to be used to connect to the NATS Service.", + "properties": { + "ca": { + "description": "Filename of the Root CA of the TLS cert.", + "type": "string" + }, + "cert": { + "description": "Filename of the TLS cert.", + "type": "string" + }, + "key": { + "description": "Filename of the TLS cert key.", + "type": "string" + }, + "secret": { + "properties": { + "name": { + "description": "Name of the TLS secret with the certs.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" + } + \ No newline at end of file diff --git a/jetstream.nats.io/consumer_v1beta1.json b/jetstream.nats.io/consumer_v1beta1.json new file mode 100644 index 00000000..134bd99d --- /dev/null +++ b/jetstream.nats.io/consumer_v1beta1.json @@ -0,0 +1,138 @@ +{ + "properties": { + "spec": { + "properties": { + "ackPolicy": { + "default": "none", + "description": "How messages should be acknowledged.", + "enum": [ + "none", + "all", + "explicit" + ], + "type": "string" + }, + "ackWait": { + "default": "1ns", + "description": "How long to allow messages to remain un-acknowledged before attempting redelivery.", + "type": "string" + }, + "deliverGroup": { + "description": "The name of a queue group.", + "type": "string" + }, + "deliverPolicy": { + "default": "all", + "enum": [ + "all", + "last", + "new", + "byStartSequence", + "byStartTime" + ], + "type": "string" + }, + "deliverSubject": { + "description": "The subject to deliver observed messages, when not set, a pull-based Consumer is created.", + "type": "string" + }, + "description": { + "description": "The description of the consumer.", + "type": "string" + }, + "durableName": { + "description": "The name of the Consumer.", + "minLength": 1, + "pattern": "^[^.*>]+$", + "type": "string" + }, + "filterSubject": { + "description": "Select only a specific incoming subjects, supports wildcards.", + "type": "string" + }, + "flowControl": { + "default": false, + "description": "Enables flow control.", + "type": "boolean" + }, + "heartbeatInterval": { + "description": "The interval used to deliver idle heartbeats for push-based consumers, in Go's time.Duration format.", + "type": "string" + }, + "maxAckPending": { + "description": "Maximum pending Acks before consumers are paused.", + "type": "integer" + }, + "maxDeliver": { + "minimum": -1, + "type": "integer" + }, + "optStartSeq": { + "minimum": 0, + "type": "integer" + }, + "optStartTime": { + "description": "Time format must be RFC3339.", + "type": "string" + }, + "rateLimitBps": { + "description": "rate at which messages will be delivered to clients, expressed in bit per second.", + "type": "integer" + }, + "replayPolicy": { + "default": "instant", + "description": "How messages are sent.", + "enum": [ + "instant", + "original" + ], + "type": "string" + }, + "sampleFreq": { + "description": "What percentage of acknowledgements should be samples for observability.", + "type": "string" + }, + "streamName": { + "description": "The name of the Stream to create the Consumer in.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "status": { + "properties": { + "conditions": { + "items": { + "properties": { + "lastTransitionTime": { + "type": "string" + }, + "message": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "observedGeneration": { + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" +} diff --git a/jetstream.nats.io/consumer_v1beta2.json b/jetstream.nats.io/consumer_v1beta2.json new file mode 100644 index 00000000..784e1cf4 --- /dev/null +++ b/jetstream.nats.io/consumer_v1beta2.json @@ -0,0 +1,245 @@ +{ + "properties": { + "spec": { + "properties": { + "account": { + "description": "Name of the account to which the Consumer belongs.", + "pattern": "^[^.*>]*$", + "type": "string" + }, + "ackPolicy": { + "default": "none", + "description": "How messages should be acknowledged.", + "enum": [ + "none", + "all", + "explicit" + ], + "type": "string" + }, + "ackWait": { + "default": "1ns", + "description": "How long to allow messages to remain un-acknowledged before attempting redelivery.", + "type": "string" + }, + "backoff": { + "description": "List of durations representing a retry time scale for NaK'd or retried messages", + "items": { + "type": "string" + }, + "type": "array" + }, + "creds": { + "default": "", + "description": "NATS user credentials for connecting to servers. Please make sure your controller has mounted the cerds on its path.", + "type": "string" + }, + "deliverGroup": { + "description": "The name of a queue group.", + "type": "string" + }, + "deliverPolicy": { + "default": "all", + "enum": [ + "all", + "last", + "new", + "byStartSequence", + "byStartTime" + ], + "type": "string" + }, + "deliverSubject": { + "description": "The subject to deliver observed messages, when not set, a pull-based Consumer is created.", + "type": "string" + }, + "description": { + "description": "The description of the consumer.", + "type": "string" + }, + "durableName": { + "description": "The name of the Consumer.", + "minLength": 1, + "pattern": "^[^.*>]+$", + "type": "string" + }, + "filterSubject": { + "description": "Select only a specific incoming subjects, supports wildcards.", + "type": "string" + }, + "filterSubjects": { + "description": "List of incoming subjects, supports wildcards. Available since 2.10.", + "items": { + "type": "string" + }, + "type": "array" + }, + "flowControl": { + "default": false, + "description": "Enables flow control.", + "type": "boolean" + }, + "headersOnly": { + "default": false, + "description": "When set, only the headers of messages in the stream are delivered, and not the bodies. Additionally, Nats-Msg-Size header is added to indicate the size of the removed payload", + "type": "boolean" + }, + "heartbeatInterval": { + "description": "The interval used to deliver idle heartbeats for push-based consumers, in Go's time.Duration format.", + "type": "string" + }, + "maxAckPending": { + "description": "Maximum pending Acks before consumers are paused.", + "type": "integer" + }, + "maxDeliver": { + "minimum": -1, + "type": "integer" + }, + "maxRequestBatch": { + "description": "The largest batch property that may be specified when doing a pull on a Pull Consumer.", + "type": "integer" + }, + "maxRequestExpires": { + "description": "The maximum expires duration that may be set when doing a pull on a Pull Consumer.", + "type": "string" + }, + "maxRequestMaxBytes": { + "description": "The maximum max_bytes value that maybe set when dong a pull on a Pull Consumer.", + "type": "integer" + }, + "maxWaiting": { + "description": "The number of pulls that can be outstanding on a pull consumer, pulls received after this is reached are ignored.", + "type": "integer" + }, + "memStorage": { + "default": false, + "description": "Force the consumer state to be kept in memory rather than inherit the setting from the stream.", + "type": "boolean" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Additional Consumer metadata.", + "type": "object" + }, + "nkey": { + "default": "", + "description": "NATS user NKey for connecting to servers.", + "type": "string" + }, + "optStartSeq": { + "minimum": 0, + "type": "integer" + }, + "optStartTime": { + "description": "Time format must be RFC3339.", + "type": "string" + }, + "preventDelete": { + "default": false, + "description": "When true, the managed Consumer will not be deleted when the resource is deleted", + "type": "boolean" + }, + "preventUpdate": { + "default": false, + "description": "When true, the managed Consumer will not be updated when the resource is updated", + "type": "boolean" + }, + "rateLimitBps": { + "description": "rate at which messages will be delivered to clients, expressed in bit per second.", + "type": "integer" + }, + "replayPolicy": { + "default": "instant", + "description": "How messages are sent.", + "enum": [ + "instant", + "original" + ], + "type": "string" + }, + "replicas": { + "description": "When set do not inherit the replica count from the stream but specifically set it to this amount.", + "type": "integer" + }, + "sampleFreq": { + "description": "What percentage of acknowledgements should be samples for observability.", + "type": "string" + }, + "servers": { + "default": [], + "description": "A list of servers for creating consumer", + "items": { + "type": "string" + }, + "type": "array" + }, + "streamName": { + "description": "The name of the Stream to create the Consumer in.", + "type": "string" + }, + "tls": { + "description": "A client's TLS certs and keys.", + "properties": { + "clientCert": { + "description": "A client's cert filepath. Should be mounted.", + "type": "string" + }, + "clientKey": { + "description": "A client's key filepath. Should be mounted.", + "type": "string" + }, + "rootCas": { + "description": "A list of filepaths to CAs. Should be mounted.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "status": { + "properties": { + "conditions": { + "items": { + "properties": { + "lastTransitionTime": { + "type": "string" + }, + "message": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "observedGeneration": { + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" + } + \ No newline at end of file diff --git a/jetstream.nats.io/stream_v1beta1.json b/jetstream.nats.io/stream_v1beta1.json new file mode 100644 index 00000000..d48aa79d --- /dev/null +++ b/jetstream.nats.io/stream_v1beta1.json @@ -0,0 +1,212 @@ +{ + "properties": { + "spec": { + "properties": { + "description": { + "description": "The description of the stream.", + "type": "string" + }, + "discard": { + "default": "old", + "description": "When a Stream reach it's limits either old messages are deleted or new ones are denied.", + "enum": [ + "old", + "new" + ], + "type": "string" + }, + "duplicateWindow": { + "description": "The duration window to track duplicate messages for.", + "type": "string" + }, + "maxAge": { + "default": "", + "description": "Maximum age of any message in the stream, expressed in Go's time.Duration format. Empty for unlimited.", + "type": "string" + }, + "maxBytes": { + "default": -1, + "description": "How big the Stream may be, when the combined stream size exceeds this old messages are removed. -1 for unlimited.", + "minimum": -1, + "type": "integer" + }, + "maxConsumers": { + "default": -1, + "description": "How many Consumers can be defined for a given Stream. -1 for unlimited.", + "minimum": -1, + "type": "integer" + }, + "maxMsgSize": { + "default": -1, + "description": "The largest message that will be accepted by the Stream. -1 for unlimited.", + "minimum": -1, + "type": "integer" + }, + "maxMsgs": { + "default": -1, + "description": "How many messages may be in a Stream, oldest messages will be removed if the Stream exceeds this size. -1 for unlimited.", + "minimum": -1, + "type": "integer" + }, + "maxMsgsPerSubject": { + "default": 0, + "description": "The maximum of messages per subject.", + "type": "integer" + }, + "mirror": { + "description": "A stream mirror.", + "properties": { + "externalApiPrefix": { + "type": "string" + }, + "externalDeliverPrefix": { + "type": "string" + }, + "filterSubject": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optStartSeq": { + "type": "integer" + }, + "optStartTime": { + "description": "Time format must be RFC3339.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "name": { + "description": "A unique name for the Stream.", + "minLength": 1, + "pattern": "^[^.*>]*$", + "type": "string" + }, + "noAck": { + "default": false, + "description": "Disables acknowledging messages that are received by the Stream.", + "type": "boolean" + }, + "placement": { + "description": "A stream's placement.", + "properties": { + "cluster": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "replicas": { + "default": 1, + "description": "How many replicas to keep for each message.", + "minimum": 1, + "type": "integer" + }, + "retention": { + "default": "limits", + "description": "How messages are retained in the Stream, once this is exceeded old messages are removed.", + "enum": [ + "limits", + "interest", + "workqueue" + ], + "type": "string" + }, + "sources": { + "description": "A stream's sources.", + "items": { + "properties": { + "externalApiPrefix": { + "type": "string" + }, + "externalDeliverPrefix": { + "type": "string" + }, + "filterSubject": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optStartSeq": { + "type": "integer" + }, + "optStartTime": { + "description": "Time format must be RFC3339.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "storage": { + "default": "memory", + "description": "The storage backend to use for the Stream.", + "enum": [ + "file", + "memory" + ], + "type": "string" + }, + "subjects": { + "description": "A list of subjects to consume, supports wildcards.", + "items": { + "minLength": 1, + "type": "string" + }, + "minLength": 1, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "status": { + "properties": { + "conditions": { + "items": { + "properties": { + "lastTransitionTime": { + "type": "string" + }, + "message": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "observedGeneration": { + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" + } + \ No newline at end of file diff --git a/jetstream.nats.io/stream_v1beta2.json b/jetstream.nats.io/stream_v1beta2.json new file mode 100644 index 00000000..6f734b40 --- /dev/null +++ b/jetstream.nats.io/stream_v1beta2.json @@ -0,0 +1,377 @@ +{ + "properties": { + "spec": { + "properties": { + "account": { + "description": "Name of the account to which the Stream belongs.", + "pattern": "^[^.*>]*$", + "type": "string" + }, + "allowDirect": { + "default": false, + "description": "When true, allow higher performance, direct access to get individual messages", + "type": "boolean" + }, + "allowRollup": { + "default": false, + "description": "When true, allows the use of the Nats-Rollup header to replace all contents of a stream, or subject in a stream, with a single new message.", + "type": "boolean" + }, + "compression": { + "default": "", + "description": "Stream specific compression.", + "enum": [ + "s2", + "none", + "" + ], + "type": "string" + }, + "creds": { + "default": "", + "description": "NATS user credentials for connecting to servers. Please make sure your controller has mounted the cerds on its path.", + "type": "string" + }, + "denyDelete": { + "default": false, + "description": "When true, restricts the ability to delete messages from a stream via the API. Cannot be changed once set to true.", + "type": "boolean" + }, + "description": { + "description": "The description of the stream.", + "type": "string" + }, + "discard": { + "default": "old", + "description": "When a Stream reach it's limits either old messages are deleted or new ones are denied.", + "enum": [ + "old", + "new" + ], + "type": "string" + }, + "discardPerSubject": { + "default": false, + "description": "Allows to discard messages on a subject basis.", + "type": "boolean" + }, + "duplicateWindow": { + "description": "The duration window to track duplicate messages for.", + "type": "string" + }, + "firstSequence": { + "default": 0, + "description": "Sequence number from which the Stream will start.", + "type": "number" + }, + "maxAge": { + "default": "", + "description": "Maximum age of any message in the stream, expressed in Go's time.Duration format. Empty for unlimited.", + "type": "string" + }, + "maxBytes": { + "default": -1, + "description": "How big the Stream may be, when the combined stream size exceeds this old messages are removed. -1 for unlimited.", + "minimum": -1, + "type": "integer" + }, + "maxConsumers": { + "default": -1, + "description": "How many Consumers can be defined for a given Stream. -1 for unlimited.", + "minimum": -1, + "type": "integer" + }, + "maxMsgSize": { + "default": -1, + "description": "The largest message that will be accepted by the Stream. -1 for unlimited.", + "minimum": -1, + "type": "integer" + }, + "maxMsgs": { + "default": -1, + "description": "How many messages may be in a Stream, oldest messages will be removed if the Stream exceeds this size. -1 for unlimited.", + "minimum": -1, + "type": "integer" + }, + "maxMsgsPerSubject": { + "default": 0, + "description": "The maximum of messages per subject.", + "type": "integer" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Additional Stream metadata.", + "type": "object" + }, + "mirror": { + "description": "A stream mirror.", + "properties": { + "externalApiPrefix": { + "type": "string" + }, + "externalDeliverPrefix": { + "type": "string" + }, + "filterSubject": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optStartSeq": { + "type": "integer" + }, + "optStartTime": { + "description": "Time format must be RFC3339.", + "type": "string" + }, + "subjectTransforms": { + "description": "List of subject transforms for this mirror.", + "items": { + "description": "A subject transform pair.", + "properties": { + "dest": { + "description": "Destination subject.", + "type": "string" + }, + "source": { + "description": "Source subject.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "name": { + "description": "A unique name for the Stream.", + "minLength": 1, + "pattern": "^[^.*>]*$", + "type": "string" + }, + "nkey": { + "default": "", + "description": "NATS user NKey for connecting to servers.", + "type": "string" + }, + "noAck": { + "default": false, + "description": "Disables acknowledging messages that are received by the Stream.", + "type": "boolean" + }, + "placement": { + "description": "A stream's placement.", + "properties": { + "cluster": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "preventDelete": { + "default": false, + "description": "When true, the managed Stream will not be deleted when the resource is deleted", + "type": "boolean" + }, + "preventUpdate": { + "default": false, + "description": "When true, the managed Stream will not be updated when the resource is updated", + "type": "boolean" + }, + "replicas": { + "default": 1, + "description": "How many replicas to keep for each message.", + "minimum": 1, + "type": "integer" + }, + "republish": { + "description": "Republish configuration of the stream.", + "properties": { + "destination": { + "description": "Messages will be additionally published to that subject.", + "type": "string" + }, + "source": { + "description": "Messages will be published from that subject to the destination subject.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "retention": { + "default": "limits", + "description": "How messages are retained in the Stream, once this is exceeded old messages are removed.", + "enum": [ + "limits", + "interest", + "workqueue" + ], + "type": "string" + }, + "servers": { + "default": [], + "description": "A list of servers for creating stream", + "items": { + "type": "string" + }, + "type": "array" + }, + "sources": { + "description": "A stream's sources.", + "items": { + "properties": { + "externalApiPrefix": { + "type": "string" + }, + "externalDeliverPrefix": { + "type": "string" + }, + "filterSubject": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optStartSeq": { + "type": "integer" + }, + "optStartTime": { + "description": "Time format must be RFC3339.", + "type": "string" + }, + "subjectTransforms": { + "description": "List of subject transforms for this mirror.", + "items": { + "description": "A subject transform pair.", + "properties": { + "dest": { + "description": "Destination subject.", + "type": "string" + }, + "source": { + "description": "Source subject.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "storage": { + "default": "memory", + "description": "The storage backend to use for the Stream.", + "enum": [ + "file", + "memory" + ], + "type": "string" + }, + "subjectTransform": { + "description": "SubjectTransform is for applying a subject transform (to matching messages) when a new message is received", + "properties": { + "dest": { + "description": "Destination subject to transform into", + "type": "string" + }, + "source": { + "description": "Source subject", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "subjects": { + "description": "A list of subjects to consume, supports wildcards.", + "items": { + "minLength": 1, + "type": "string" + }, + "minLength": 1, + "type": "array" + }, + "tls": { + "description": "A client's TLS certs and keys.", + "properties": { + "clientCert": { + "description": "A client's cert filepath. Should be mounted.", + "type": "string" + }, + "clientKey": { + "description": "A client's key filepath. Should be mounted.", + "type": "string" + }, + "rootCas": { + "description": "A list of filepaths to CAs. Should be mounted.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "status": { + "properties": { + "conditions": { + "items": { + "properties": { + "lastTransitionTime": { + "type": "string" + }, + "message": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "observedGeneration": { + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" + } + \ No newline at end of file diff --git a/jetstream.nats.io/streamtemplate_v1beta1.json b/jetstream.nats.io/streamtemplate_v1beta1.json new file mode 100644 index 00000000..7f2bc638 --- /dev/null +++ b/jetstream.nats.io/streamtemplate_v1beta1.json @@ -0,0 +1,138 @@ +{ + "properties": { + "spec": { + "properties": { + "discard": { + "default": "old", + "description": "When a Stream reach it's limits either old messages are deleted or new ones are denied.", + "enum": [ + "old", + "new" + ], + "type": "string" + }, + "duplicateWindow": { + "description": "The duration window to track duplicate messages for.", + "type": "string" + }, + "maxAge": { + "default": "", + "description": "Maximum age of any message in the stream, expressed in Go's time.Duration format. Empty for unlimited.", + "type": "string" + }, + "maxBytes": { + "default": -1, + "description": "How big the Stream may be, when the combined stream size exceeds this old messages are removed. -1 for unlimited.", + "minimum": -1, + "type": "integer" + }, + "maxConsumers": { + "default": -1, + "description": "How many Consumers can be defined for a given Stream. -1 for unlimited.", + "minimum": -1, + "type": "integer" + }, + "maxMsgSize": { + "default": -1, + "description": "The largest message that will be accepted by the Stream. -1 for unlimited.", + "minimum": -1, + "type": "integer" + }, + "maxMsgs": { + "default": -1, + "description": "How many messages may be in a Stream, oldest messages will be removed if the Stream exceeds this size. -1 for unlimited.", + "minimum": -1, + "type": "integer" + }, + "maxStreams": { + "default": -1, + "description": "The maximum number of Streams this Template can create, -1 for unlimited.", + "minimum": -1, + "type": "integer" + }, + "name": { + "description": "A unique name for the Stream Template.", + "minLength": 1, + "pattern": "^[^.*>]*$", + "type": "string" + }, + "noAck": { + "default": false, + "description": "Disables acknowledging messages that are received by the Stream.", + "type": "boolean" + }, + "replicas": { + "default": 1, + "description": "How many replicas to keep for each message.", + "minimum": 1, + "type": "integer" + }, + "retention": { + "default": "limits", + "description": "How messages are retained in the Stream, once this is exceeded old messages are removed.", + "enum": [ + "limits", + "interest", + "workqueue" + ], + "type": "string" + }, + "storage": { + "default": "memory", + "description": "The storage backend to use for the Stream.", + "enum": [ + "file", + "memory" + ], + "type": "string" + }, + "subjects": { + "description": "A list of subjects to consume, supports wildcards.", + "items": { + "minLength": 1, + "type": "string" + }, + "minLength": 1, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "status": { + "properties": { + "conditions": { + "items": { + "properties": { + "lastTransitionTime": { + "type": "string" + }, + "message": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "observedGeneration": { + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" + } + \ No newline at end of file