apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  creationTimestamp: null
  name: activemqartemises.broker.amq.io
spec:
  group: broker.amq.io
  names:
    kind: ActiveMQArtemis
    listKind: ActiveMQArtemisList
    plural: activemqartemises
    singular: activemqartemis
  scope: Namespaced
  subresources:
    scale:
      specReplicasPath: .spec.replicas
      statusReplicasPath: .status.replicas
    status: {}
  validation:
    openAPIV3Schema:
      required:
        - spec
      properties:
        apiVersion:
          type: string
        kind:
          type: string
        metadata:
          type: object
        spec:
          adminUser:
            type: string
            description: User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.
          adminPassword:
            type: string
            description: Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.
          deploymentPlan:
            type: object
            properties:
              image:
                type: string
                description: The image used for the broker deployment
              size:
                type: integer
                minimum: 0
                maximum: 16
                description: The number of broker pods to deploy
              requireLogin:
                type: boolean
                description: If true require user password login credentials for broker protocol ports
              persistenceEnabled:
                type: boolean
                description: If true use persistent volume via persistent volume claim for journal storage
              journalType:
                type: string
                description: If aio use ASYNCIO, if nio use NIO for journal IO
              messageMigration:
                type: boolean
                description: If true migrate messages on scaledown
          acceptors:
            type: array
            description: Configuration of all acceptors
            minItems: 0
            items:
              type: object
              description: A single acceptor configuration
              properties:
                name:
                  type: string
                  description: The name of the acceptor
                port:
                  type: integer
                  description: Port number
                protocols:
                  type: string
                  description: The protocols to enable for this acceptor
                sslEnabled:
                  type: boolean
                  description: Whether or not to enable SSL on this port
                sslSecret:
                  type: string
                  description: Name of the secret to use for ssl information
                enabledCipherSuites:
                  type: string
                  description: Comma separated list of cipher suites used for SSL communication.
                enabledProtocols:
                  type: string
                  description: Comma separated list of protocols used for SSL communication.
                needClientAuth:
                  type: boolean
                  description: Tells a client connecting to this acceptor that 2-way SSL is required. This property takes precedence over wantClientAuth.
                wantClientAuth:
                  type: boolean
                  description: Tells a client connecting to this acceptor that 2-way SSL is requested but not required. Overridden by needClientAuth.
                verifyHost:
                  type: boolean
                  description: The CN of the connecting client's SSL certificate will be compared to its hostname to verify they match. This is useful only for 2-way SSL.
                sslProvider:
                  type: string
                  description: Used to change the SSL Provider between JDK and OPENSSL. The default is JDK.
                sniHost:
                  type: string
                  description: A regular expression used to match the server_name extension on incoming SSL connections. If the name doesn't match then the connection to the acceptor will be rejected.
                expose:
                  type: boolean
                  description: Whether or not to expose this acceptor
                anycastPrefix:
                  type: string
                  description: To indicate which kind of routing type to use.
                multicastPrefix:
                  type: string
                  description: To indicate which kind of routing type to use.
                connectionsAllowed:
                  type: integer
                  description: Limits the number of connections which the acceptor will allow. When this limit is reached a DEBUG level message is issued to the log, and the connection is refused.
          connectors:
            type: array
            description: Configuration of all connectors
            minItems: 0
            items:
              type: object
              description: A single connector configuration
              properties:
                name:
                  type: string
                  description: The name of the acceptor
                type:
                  type: string
                  description: The type either tcp or vm
                host:
                  type: string
                  description: Hostname or IP to connect to
                port:
                  type: integer
                  description: Port number
                sslEnabled:
                  type: boolean
                  description: Whether or not to enable SSL on this port
                sslSecret:
                  type: string
                  description: Name of the secret to use for ssl information
                enabledCipherSuites:
                  type: string
                  description: Comma separated list of cipher suites used for SSL communication.
                enabledProtocols:
                  type: string
                  description: Comma separated list of protocols used for SSL communication.
                needClientAuth:
                  type: boolean
                  description: Tells a client connecting to this acceptor that 2-way SSL is required. This property takes precedence over wantClientAuth.
                wantClientAuth:
                  type: boolean
                  description: Tells a client connecting to this acceptor that 2-way SSL is requested but not required. Overridden by needClientAuth.
                verifyHost:
                  type: boolean
                  description: The CN of the connecting client's SSL certificate will be compared to its hostname to verify they match. This is useful only for 2-way SSL.
                sslProvider:
                  type: string
                  description: Used to change the SSL Provider between JDK and OPENSSL. The default is JDK.
                sniHost:
                  type: string
                  description: A regular expression used to match the server_name extension on incoming SSL connections. If the name doesn't match then the connection to the acceptor will be rejected.
                expose:
                  type: boolean
                  description: Whether or not to expose this connector
          console:
            type: object
            description: Configuration for the embedded web console
            properties:
              expose:
                type: boolean
                description: Whether or not to expose this port
              sslEnabled:
                type: boolean
                description: Whether or not to enable SSL on this port
              sslSecret:
                type: string
                description: Name of the secret to use for ssl information
              useClientAuth:
                type: boolean
                description: If the embedded server requires client authentication
        status:
          properties:
            podStatus:
              properties:
                ready:
                  items:
                    type: string
                  type: array
                starting:
                  items:
                    type: string
                  type: array
                stopped:
                  items:
                    type: string
                  type: array
              type: object
          required:
            - podStatus
          type: object
  version: v2alpha1
  versions:
  - name: v2alpha1
    served: true
    storage: true
  - name: v1alpha1
    served: false
    storage: false
