{
  "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"
}
