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:
          properties:
            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
          type: object
        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
