# Source: https://github.com/rabbitmq/messaging-topology-operator/tree/main/config/crd
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.10.0
  creationTimestamp: null
  name: bindings.rabbitmq.com
spec:
  group: rabbitmq.com
  names:
    categories:
    - all
    - rabbitmq
    kind: Binding
    listKind: BindingList
    plural: bindings
    singular: binding
  scope: Namespaced
  versions:
  - name: v1beta1
    schema:
      openAPIV3Schema:
        description: Binding is the Schema for the bindings API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: BindingSpec defines the desired state of Binding
            properties:
              arguments:
                description: Cannot be updated
                type: object
                x-kubernetes-preserve-unknown-fields: true
              destination:
                description: Cannot be updated
                type: string
              destinationType:
                description: Cannot be updated
                enum:
                - exchange
                - queue
                type: string
              rabbitmqClusterReference:
                description: Reference to the RabbitmqCluster that the binding will
                  be created in. Required property.
                properties:
                  connectionSecret:
                    description: Secret contains the http management uri for the RabbitMQ
                      cluster. The Secret must contain the key `uri`, `username` and
                      `password` or operator will error. Have to set either name or
                      connectionSecret, but not both.
                    properties:
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          TODO: Add other useful fields. apiVersion, kind, uid?'
                        type: string
                    type: object
                    x-kubernetes-map-type: atomic
                  name:
                    description: The name of the RabbitMQ cluster to reference. Have
                      to set either name or connectionSecret, but not both.
                    type: string
                  namespace:
                    description: The namespace of the RabbitMQ cluster to reference.
                      Defaults to the namespace of the requested resource if omitted.
                    type: string
                type: object
              routingKey:
                description: Cannot be updated
                type: string
              source:
                description: Cannot be updated
                type: string
              vhost:
                default: /
                description: Default to vhost '/'; cannot be updated
                type: string
            required:
            - rabbitmqClusterReference
            type: object
          status:
            description: BindingStatus defines the observed state of Binding
            properties:
              conditions:
                items:
                  properties:
                    lastTransitionTime:
                      description: The last time this Condition status changed.
                      format: date-time
                      type: string
                    message:
                      description: Full text reason for current status of the condition.
                      type: string
                    reason:
                      description: One word, camel-case reason for current status
                        of the condition.
                      type: string
                    status:
                      description: True, False, or Unknown
                      type: string
                    type:
                      description: Type indicates the scope of the custom resource
                        status addressed by the condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                description: observedGeneration is the most recent successful generation
                  observed for this Binding. It corresponds to the Binding's generation,
                  which is updated on mutation by the API Server.
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.10.0
  creationTimestamp: null
  name: exchanges.rabbitmq.com
spec:
  group: rabbitmq.com
  names:
    categories:
    - all
    - rabbitmq
    kind: Exchange
    listKind: ExchangeList
    plural: exchanges
    singular: exchange
  scope: Namespaced
  versions:
  - name: v1beta1
    schema:
      openAPIV3Schema:
        description: Exchange is the Schema for the exchanges API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: ExchangeSpec defines the desired state of Exchange
            properties:
              arguments:
                type: object
                x-kubernetes-preserve-unknown-fields: true
              autoDelete:
                description: Cannot be updated
                type: boolean
              durable:
                description: Cannot be updated
                type: boolean
              name:
                description: Required property; cannot be updated
                type: string
              rabbitmqClusterReference:
                description: Reference to the RabbitmqCluster that the exchange will
                  be created in. Required property.
                properties:
                  connectionSecret:
                    description: Secret contains the http management uri for the RabbitMQ
                      cluster. The Secret must contain the key `uri`, `username` and
                      `password` or operator will error. Have to set either name or
                      connectionSecret, but not both.
                    properties:
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          TODO: Add other useful fields. apiVersion, kind, uid?'
                        type: string
                    type: object
                    x-kubernetes-map-type: atomic
                  name:
                    description: The name of the RabbitMQ cluster to reference. Have
                      to set either name or connectionSecret, but not both.
                    type: string
                  namespace:
                    description: The namespace of the RabbitMQ cluster to reference.
                      Defaults to the namespace of the requested resource if omitted.
                    type: string
                type: object
              type:
                default: direct
                description: Cannot be updated
                type: string
              vhost:
                default: /
                description: Default to vhost '/'; cannot be updated
                type: string
            required:
            - name
            - rabbitmqClusterReference
            type: object
          status:
            description: ExchangeStatus defines the observed state of Exchange
            properties:
              conditions:
                items:
                  properties:
                    lastTransitionTime:
                      description: The last time this Condition status changed.
                      format: date-time
                      type: string
                    message:
                      description: Full text reason for current status of the condition.
                      type: string
                    reason:
                      description: One word, camel-case reason for current status
                        of the condition.
                      type: string
                    status:
                      description: True, False, or Unknown
                      type: string
                    type:
                      description: Type indicates the scope of the custom resource
                        status addressed by the condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                description: observedGeneration is the most recent successful generation
                  observed for this Exchange. It corresponds to the Exchange's generation,
                  which is updated on mutation by the API Server.
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.10.0
  creationTimestamp: null
  name: federations.rabbitmq.com
spec:
  group: rabbitmq.com
  names:
    categories:
    - all
    - rabbitmq
    kind: Federation
    listKind: FederationList
    plural: federations
    singular: federation
  scope: Namespaced
  versions:
  - name: v1beta1
    schema:
      openAPIV3Schema:
        description: Federation is the Schema for the federations API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: 'FederationSpec defines the desired state of Federation For
              how to configure federation upstreams, see: https://www.rabbitmq.com/federation-reference.html.'
            properties:
              ackMode:
                enum:
                - on-confirm
                - on-publish
                - no-ack
                type: string
              exchange:
                type: string
              expires:
                type: integer
              maxHops:
                type: integer
              messageTTL:
                type: integer
              name:
                description: Required property; cannot be updated
                type: string
              prefetch-count:
                type: integer
              queue:
                type: string
              rabbitmqClusterReference:
                description: Reference to the RabbitmqCluster that this federation
                  upstream will be created in. Required property.
                properties:
                  connectionSecret:
                    description: Secret contains the http management uri for the RabbitMQ
                      cluster. The Secret must contain the key `uri`, `username` and
                      `password` or operator will error. Have to set either name or
                      connectionSecret, but not both.
                    properties:
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          TODO: Add other useful fields. apiVersion, kind, uid?'
                        type: string
                    type: object
                    x-kubernetes-map-type: atomic
                  name:
                    description: The name of the RabbitMQ cluster to reference. Have
                      to set either name or connectionSecret, but not both.
                    type: string
                  namespace:
                    description: The namespace of the RabbitMQ cluster to reference.
                      Defaults to the namespace of the requested resource if omitted.
                    type: string
                type: object
              reconnectDelay:
                type: integer
              trustUserId:
                type: boolean
              uriSecret:
                description: Secret contains the AMQP URI(s) for the upstream. The
                  Secret must contain the key `uri` or operator will error. `uri`
                  should be one or multiple uris separated by ','. Required property.
                properties:
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                      TODO: Add other useful fields. apiVersion, kind, uid?'
                    type: string
                type: object
                x-kubernetes-map-type: atomic
              vhost:
                default: /
                description: Default to vhost '/'; cannot be updated
                type: string
            required:
            - name
            - rabbitmqClusterReference
            - uriSecret
            type: object
          status:
            description: FederationStatus defines the observed state of Federation
            properties:
              conditions:
                items:
                  properties:
                    lastTransitionTime:
                      description: The last time this Condition status changed.
                      format: date-time
                      type: string
                    message:
                      description: Full text reason for current status of the condition.
                      type: string
                    reason:
                      description: One word, camel-case reason for current status
                        of the condition.
                      type: string
                    status:
                      description: True, False, or Unknown
                      type: string
                    type:
                      description: Type indicates the scope of the custom resource
                        status addressed by the condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                description: observedGeneration is the most recent successful generation
                  observed for this Federation. It corresponds to the Federation's
                  generation, which is updated on mutation by the API Server.
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.10.0
  creationTimestamp: null
  name: permissions.rabbitmq.com
spec:
  group: rabbitmq.com
  names:
    categories:
    - all
    - rabbitmq
    kind: Permission
    listKind: PermissionList
    plural: permissions
    singular: permission
  scope: Namespaced
  versions:
  - name: v1beta1
    schema:
      openAPIV3Schema:
        description: Permission is the Schema for the permissions API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: PermissionSpec defines the desired state of Permission
            properties:
              permissions:
                description: 'Permissions to grant to the user in the specific vhost;
                  required property. See RabbitMQ doc for more information: https://www.rabbitmq.com/access-control.html#user-management'
                properties:
                  configure:
                    type: string
                  read:
                    type: string
                  write:
                    type: string
                type: object
              rabbitmqClusterReference:
                description: Reference to the RabbitmqCluster that both the provided
                  user and vhost are. Required property.
                properties:
                  connectionSecret:
                    description: Secret contains the http management uri for the RabbitMQ
                      cluster. The Secret must contain the key `uri`, `username` and
                      `password` or operator will error. Have to set either name or
                      connectionSecret, but not both.
                    properties:
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          TODO: Add other useful fields. apiVersion, kind, uid?'
                        type: string
                    type: object
                    x-kubernetes-map-type: atomic
                  name:
                    description: The name of the RabbitMQ cluster to reference. Have
                      to set either name or connectionSecret, but not both.
                    type: string
                  namespace:
                    description: The namespace of the RabbitMQ cluster to reference.
                      Defaults to the namespace of the requested resource if omitted.
                    type: string
                type: object
              user:
                description: Name of an existing user; must provide user or userReference,
                  else create/update will fail; cannot be updated
                type: string
              userReference:
                description: Reference to an existing user.rabbitmq.com object; must
                  provide user or userReference, else create/update will fail; cannot
                  be updated
                properties:
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                      TODO: Add other useful fields. apiVersion, kind, uid?'
                    type: string
                type: object
                x-kubernetes-map-type: atomic
              vhost:
                description: Name of an existing vhost; required property; cannot
                  be updated
                type: string
            required:
            - permissions
            - rabbitmqClusterReference
            - vhost
            type: object
          status:
            description: PermissionStatus defines the observed state of Permission
            properties:
              conditions:
                items:
                  properties:
                    lastTransitionTime:
                      description: The last time this Condition status changed.
                      format: date-time
                      type: string
                    message:
                      description: Full text reason for current status of the condition.
                      type: string
                    reason:
                      description: One word, camel-case reason for current status
                        of the condition.
                      type: string
                    status:
                      description: True, False, or Unknown
                      type: string
                    type:
                      description: Type indicates the scope of the custom resource
                        status addressed by the condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                description: observedGeneration is the most recent successful generation
                  observed for this Permission. It corresponds to the Permission's
                  generation, which is updated on mutation by the API Server.
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.10.0
  creationTimestamp: null
  name: policies.rabbitmq.com
spec:
  group: rabbitmq.com
  names:
    categories:
    - all
    - rabbitmq
    kind: Policy
    listKind: PolicyList
    plural: policies
    singular: policy
  scope: Namespaced
  versions:
  - name: v1beta1
    schema:
      openAPIV3Schema:
        description: Policy is the Schema for the policies API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: PolicySpec defines the desired state of Policy https://www.rabbitmq.com/parameters.html#policies
            properties:
              applyTo:
                default: all
                description: 'What this policy applies to: ''queues'', ''exchanges'',
                  or ''all''. Default to ''all''.'
                enum:
                - queues
                - exchanges
                - all
                type: string
              definition:
                description: Policy definition. Required property.
                type: object
                x-kubernetes-preserve-unknown-fields: true
              name:
                description: Required property; cannot be updated
                type: string
              pattern:
                description: Regular expression pattern used to match queues and exchanges,
                  e.g. "^amq.". Required property.
                type: string
              priority:
                default: 0
                description: Default to '0'. In the event that more than one policy
                  can match a given exchange or queue, the policy with the greatest
                  priority applies.
                type: integer
              rabbitmqClusterReference:
                description: Reference to the RabbitmqCluster that the exchange will
                  be created in. Required property.
                properties:
                  connectionSecret:
                    description: Secret contains the http management uri for the RabbitMQ
                      cluster. The Secret must contain the key `uri`, `username` and
                      `password` or operator will error. Have to set either name or
                      connectionSecret, but not both.
                    properties:
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          TODO: Add other useful fields. apiVersion, kind, uid?'
                        type: string
                    type: object
                    x-kubernetes-map-type: atomic
                  name:
                    description: The name of the RabbitMQ cluster to reference. Have
                      to set either name or connectionSecret, but not both.
                    type: string
                  namespace:
                    description: The namespace of the RabbitMQ cluster to reference.
                      Defaults to the namespace of the requested resource if omitted.
                    type: string
                type: object
              vhost:
                default: /
                description: Default to vhost '/'; cannot be updated
                type: string
            required:
            - definition
            - name
            - pattern
            - rabbitmqClusterReference
            type: object
          status:
            description: PolicyStatus defines the observed state of Policy
            properties:
              conditions:
                items:
                  properties:
                    lastTransitionTime:
                      description: The last time this Condition status changed.
                      format: date-time
                      type: string
                    message:
                      description: Full text reason for current status of the condition.
                      type: string
                    reason:
                      description: One word, camel-case reason for current status
                        of the condition.
                      type: string
                    status:
                      description: True, False, or Unknown
                      type: string
                    type:
                      description: Type indicates the scope of the custom resource
                        status addressed by the condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                description: observedGeneration is the most recent successful generation
                  observed for this Policy. It corresponds to the Policy's generation,
                  which is updated on mutation by the API Server.
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.10.0
  creationTimestamp: null
  name: queues.rabbitmq.com
spec:
  group: rabbitmq.com
  names:
    categories:
    - all
    - rabbitmq
    kind: Queue
    listKind: QueueList
    plural: queues
    singular: queue
  scope: Namespaced
  versions:
  - name: v1beta1
    schema:
      openAPIV3Schema:
        description: Queue is the Schema for the queues API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: QueueSpec defines the desired state of Queue
            properties:
              arguments:
                description: 'Queue arguments in the format of KEY: VALUE. e.g. x-delivery-limit:
                  10000. Configuring queues through arguments is not recommended because
                  they cannot be updated once set; we recommend configuring queues
                  through policies instead.'
                type: object
                x-kubernetes-preserve-unknown-fields: true
              autoDelete:
                description: when set to true, queues that have had at least one consumer
                  before are deleted after the last consumer unsubscribes.
                type: boolean
              durable:
                description: When set to false queues does not survive server restart.
                type: boolean
              name:
                description: Name of the queue; required property.
                type: string
              rabbitmqClusterReference:
                description: Reference to the RabbitmqCluster that the queue will
                  be created in. Required property.
                properties:
                  connectionSecret:
                    description: Secret contains the http management uri for the RabbitMQ
                      cluster. The Secret must contain the key `uri`, `username` and
                      `password` or operator will error. Have to set either name or
                      connectionSecret, but not both.
                    properties:
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          TODO: Add other useful fields. apiVersion, kind, uid?'
                        type: string
                    type: object
                    x-kubernetes-map-type: atomic
                  name:
                    description: The name of the RabbitMQ cluster to reference. Have
                      to set either name or connectionSecret, but not both.
                    type: string
                  namespace:
                    description: The namespace of the RabbitMQ cluster to reference.
                      Defaults to the namespace of the requested resource if omitted.
                    type: string
                type: object
              type:
                type: string
              vhost:
                default: /
                description: Default to vhost '/'
                type: string
            required:
            - name
            - rabbitmqClusterReference
            type: object
          status:
            description: QueueStatus defines the observed state of Queue
            properties:
              conditions:
                items:
                  properties:
                    lastTransitionTime:
                      description: The last time this Condition status changed.
                      format: date-time
                      type: string
                    message:
                      description: Full text reason for current status of the condition.
                      type: string
                    reason:
                      description: One word, camel-case reason for current status
                        of the condition.
                      type: string
                    status:
                      description: True, False, or Unknown
                      type: string
                    type:
                      description: Type indicates the scope of the custom resource
                        status addressed by the condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                description: observedGeneration is the most recent successful generation
                  observed for this Queue. It corresponds to the Queue's generation,
                  which is updated on mutation by the API Server.
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.10.0
  creationTimestamp: null
  name: schemareplications.rabbitmq.com
spec:
  group: rabbitmq.com
  names:
    kind: SchemaReplication
    listKind: SchemaReplicationList
    plural: schemareplications
    singular: schemareplication
  scope: Namespaced
  versions:
  - name: v1beta1
    schema:
      openAPIV3Schema:
        description: 'SchemaReplication is the Schema for the schemareplications API
          This feature requires Tanzu RabbitMQ with schema replication plugin. For
          more information, see: https://tanzu.vmware.com/rabbitmq and https://www.rabbitmq.com/definitions-standby.html.'
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: SchemaReplicationSpec defines the desired state of SchemaReplication
            properties:
              endpoints:
                description: endpoints should be one or multiple endpoints separated
                  by ','. Must provide either spec.endpoints or endpoints in spec.upstreamSecret.
                  When endpoints are provided in both spec.endpoints and spec.upstreamSecret,
                  spec.endpoints takes precedence.
                type: string
              rabbitmqClusterReference:
                description: Reference to the RabbitmqCluster that schema replication
                  would be set for. Must be an existing cluster.
                properties:
                  connectionSecret:
                    description: Secret contains the http management uri for the RabbitMQ
                      cluster. The Secret must contain the key `uri`, `username` and
                      `password` or operator will error. Have to set either name or
                      connectionSecret, but not both.
                    properties:
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          TODO: Add other useful fields. apiVersion, kind, uid?'
                        type: string
                    type: object
                    x-kubernetes-map-type: atomic
                  name:
                    description: The name of the RabbitMQ cluster to reference. Have
                      to set either name or connectionSecret, but not both.
                    type: string
                  namespace:
                    description: The namespace of the RabbitMQ cluster to reference.
                      Defaults to the namespace of the requested resource if omitted.
                    type: string
                type: object
              secretBackend:
                description: Set to fetch user credentials from K8s external secret
                  stores to be used for schema replication.
                properties:
                  vault:
                    properties:
                      secretPath:
                        description: Path in Vault to access a KV (Key-Value) secret
                          with the fields username and password to be used for replication.
                          For example "secret/data/rabbitmq/config". Optional; if
                          not provided, username and password will come from upstreamSecret
                          instead. Have to set either secretBackend.vault.secretPath
                          or upstreamSecret, but not both.
                        type: string
                    type: object
                type: object
              upstreamSecret:
                description: Defines a Secret which contains credentials to be used
                  for schema replication. The Secret must contain the keys `username`
                  and `password` in its Data field, or operator will error. Have to
                  set either secretBackend.vault.secretPath or spec.upstreamSecret,
                  but not both.
                properties:
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                      TODO: Add other useful fields. apiVersion, kind, uid?'
                    type: string
                type: object
                x-kubernetes-map-type: atomic
            required:
            - rabbitmqClusterReference
            type: object
          status:
            description: SchemaReplicationStatus defines the observed state of SchemaReplication
            properties:
              conditions:
                items:
                  properties:
                    lastTransitionTime:
                      description: The last time this Condition status changed.
                      format: date-time
                      type: string
                    message:
                      description: Full text reason for current status of the condition.
                      type: string
                    reason:
                      description: One word, camel-case reason for current status
                        of the condition.
                      type: string
                    status:
                      description: True, False, or Unknown
                      type: string
                    type:
                      description: Type indicates the scope of the custom resource
                        status addressed by the condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                description: observedGeneration is the most recent successful generation
                  observed for this Queue. It corresponds to the Queue's generation,
                  which is updated on mutation by the API Server.
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.10.0
  creationTimestamp: null
  name: shovels.rabbitmq.com
spec:
  group: rabbitmq.com
  names:
    categories:
    - all
    - rabbitmq
    kind: Shovel
    listKind: ShovelList
    plural: shovels
    singular: shovel
  scope: Namespaced
  versions:
  - name: v1beta1
    schema:
      openAPIV3Schema:
        description: Shovel is the Schema for the shovels API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: 'ShovelSpec defines the desired state of Shovel For how to
              configure Shovel, see: https://www.rabbitmq.com/shovel.html.'
            properties:
              ackMode:
                enum:
                - on-confirm
                - on-publish
                - no-ack
                type: string
              addForwardHeaders:
                type: boolean
              deleteAfter:
                type: string
              destAddForwardHeaders:
                type: boolean
              destAddTimestampHeader:
                type: boolean
              destAddress:
                type: string
              destApplicationProperties:
                type: string
              destExchange:
                type: string
              destExchangeKey:
                type: string
              destProperties:
                type: string
              destProtocol:
                type: string
              destPublishProperties:
                type: string
              destQueue:
                type: string
              name:
                description: Required property; cannot be updated
                type: string
              prefetchCount:
                type: integer
              rabbitmqClusterReference:
                description: Reference to the RabbitmqCluster that this Shovel will
                  be created in. Required property.
                properties:
                  connectionSecret:
                    description: Secret contains the http management uri for the RabbitMQ
                      cluster. The Secret must contain the key `uri`, `username` and
                      `password` or operator will error. Have to set either name or
                      connectionSecret, but not both.
                    properties:
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          TODO: Add other useful fields. apiVersion, kind, uid?'
                        type: string
                    type: object
                    x-kubernetes-map-type: atomic
                  name:
                    description: The name of the RabbitMQ cluster to reference. Have
                      to set either name or connectionSecret, but not both.
                    type: string
                  namespace:
                    description: The namespace of the RabbitMQ cluster to reference.
                      Defaults to the namespace of the requested resource if omitted.
                    type: string
                type: object
              reconnectDelay:
                type: integer
              srcAddress:
                type: string
              srcDeleteAfter:
                type: string
              srcExchange:
                type: string
              srcExchangeKey:
                type: string
              srcPrefetchCount:
                type: integer
              srcProtocol:
                type: string
              srcQueue:
                type: string
              uriSecret:
                description: Secret contains the AMQP URI(s) to configure Shovel destination
                  and source. The Secret must contain the key `destUri` and `srcUri`
                  or operator will error. Both fields should be one or multiple uris
                  separated by ','. Required property.
                properties:
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                      TODO: Add other useful fields. apiVersion, kind, uid?'
                    type: string
                type: object
                x-kubernetes-map-type: atomic
              vhost:
                default: /
                description: Default to vhost '/'; cannot be updated
                type: string
            required:
            - name
            - rabbitmqClusterReference
            - uriSecret
            type: object
          status:
            description: ShovelStatus defines the observed state of Shovel
            properties:
              conditions:
                items:
                  properties:
                    lastTransitionTime:
                      description: The last time this Condition status changed.
                      format: date-time
                      type: string
                    message:
                      description: Full text reason for current status of the condition.
                      type: string
                    reason:
                      description: One word, camel-case reason for current status
                        of the condition.
                      type: string
                    status:
                      description: True, False, or Unknown
                      type: string
                    type:
                      description: Type indicates the scope of the custom resource
                        status addressed by the condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                description: observedGeneration is the most recent successful generation
                  observed for this Shovel. It corresponds to the Shovel's generation,
                  which is updated on mutation by the API Server.
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.10.0
  creationTimestamp: null
  name: superstreams.rabbitmq.com
spec:
  group: rabbitmq.com
  names:
    categories:
    - all
    - rabbitmq
    kind: SuperStream
    listKind: SuperStreamList
    plural: superstreams
    singular: superstream
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: SuperStream is the Schema for the queues API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: SuperStreamSpec defines the desired state of SuperStream
            properties:
              name:
                description: Name of the queue; required property.
                type: string
              partitions:
                default: 3
                description: Number of partitions to create within this super stream.
                  Defaults to '3'.
                type: integer
              rabbitmqClusterReference:
                description: Reference to the RabbitmqCluster that the SuperStream
                  will be created in. Required property.
                properties:
                  connectionSecret:
                    description: Secret contains the http management uri for the RabbitMQ
                      cluster. The Secret must contain the key `uri`, `username` and
                      `password` or operator will error. Have to set either name or
                      connectionSecret, but not both.
                    properties:
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          TODO: Add other useful fields. apiVersion, kind, uid?'
                        type: string
                    type: object
                    x-kubernetes-map-type: atomic
                  name:
                    description: The name of the RabbitMQ cluster to reference. Have
                      to set either name or connectionSecret, but not both.
                    type: string
                  namespace:
                    description: The namespace of the RabbitMQ cluster to reference.
                      Defaults to the namespace of the requested resource if omitted.
                    type: string
                type: object
              routingKeys:
                description: Routing keys to use for each of the partitions in the
                  SuperStream If unset, the routing keys for the partitions will be
                  set to the index of the partitions
                items:
                  type: string
                type: array
              vhost:
                default: /
                description: Default to vhost '/'; cannot be updated
                type: string
            required:
            - name
            - rabbitmqClusterReference
            type: object
          status:
            description: SuperStreamStatus defines the observed state of SuperStream
            properties:
              conditions:
                items:
                  properties:
                    lastTransitionTime:
                      description: The last time this Condition status changed.
                      format: date-time
                      type: string
                    message:
                      description: Full text reason for current status of the condition.
                      type: string
                    reason:
                      description: One word, camel-case reason for current status
                        of the condition.
                      type: string
                    status:
                      description: True, False, or Unknown
                      type: string
                    type:
                      description: Type indicates the scope of the custom resource
                        status addressed by the condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                description: observedGeneration is the most recent successful generation
                  observed for this SuperStream. It corresponds to the SuperStream's
                  generation, which is updated on mutation by the API Server.
                format: int64
                type: integer
              partitions:
                description: Partitions are a list of the stream queue names which
                  form the partitions of this SuperStream.
                items:
                  type: string
                type: array
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.10.0
  creationTimestamp: null
  name: topicpermissions.rabbitmq.com
spec:
  group: rabbitmq.com
  names:
    kind: TopicPermission
    listKind: TopicPermissionList
    plural: topicpermissions
    singular: topicpermission
  scope: Namespaced
  versions:
  - name: v1beta1
    schema:
      openAPIV3Schema:
        description: TopicPermission is the Schema for the topicpermissions API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: TopicPermissionSpec defines the desired state of TopicPermission
            properties:
              permissions:
                description: Permissions to grant to the user to a topic exchange;
                  required property.
                properties:
                  exchange:
                    description: Name of a topic exchange; required property; cannot
                      be updated.
                    type: string
                  read:
                    type: string
                  write:
                    type: string
                type: object
              rabbitmqClusterReference:
                description: Reference to the RabbitmqCluster that both the provided
                  user and vhost are. Required property.
                properties:
                  connectionSecret:
                    description: Secret contains the http management uri for the RabbitMQ
                      cluster. The Secret must contain the key `uri`, `username` and
                      `password` or operator will error. Have to set either name or
                      connectionSecret, but not both.
                    properties:
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          TODO: Add other useful fields. apiVersion, kind, uid?'
                        type: string
                    type: object
                    x-kubernetes-map-type: atomic
                  name:
                    description: The name of the RabbitMQ cluster to reference. Have
                      to set either name or connectionSecret, but not both.
                    type: string
                  namespace:
                    description: The namespace of the RabbitMQ cluster to reference.
                      Defaults to the namespace of the requested resource if omitted.
                    type: string
                type: object
              user:
                description: Name of an existing user; must provide user or userReference,
                  else create/update will fail; cannot be updated.
                type: string
              userReference:
                description: Reference to an existing user.rabbitmq.com object; must
                  provide user or userReference, else create/update will fail; cannot
                  be updated.
                properties:
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                      TODO: Add other useful fields. apiVersion, kind, uid?'
                    type: string
                type: object
                x-kubernetes-map-type: atomic
              vhost:
                description: Name of an existing vhost; required property; cannot
                  be updated.
                type: string
            required:
            - permissions
            - rabbitmqClusterReference
            - vhost
            type: object
          status:
            description: TopicPermissionStatus defines the observed state of TopicPermission
            properties:
              conditions:
                items:
                  properties:
                    lastTransitionTime:
                      description: The last time this Condition status changed.
                      format: date-time
                      type: string
                    message:
                      description: Full text reason for current status of the condition.
                      type: string
                    reason:
                      description: One word, camel-case reason for current status
                        of the condition.
                      type: string
                    status:
                      description: True, False, or Unknown
                      type: string
                    type:
                      description: Type indicates the scope of the custom resource
                        status addressed by the condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                description: observedGeneration is the most recent successful generation
                  observed for this TopicPermission. It corresponds to the TopicPermission's
                  generation, which is updated on mutation by the API Server.
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.10.0
  creationTimestamp: null
  name: users.rabbitmq.com
spec:
  group: rabbitmq.com
  names:
    categories:
    - all
    - rabbitmq
    kind: User
    listKind: UserList
    plural: users
    singular: user
  scope: Namespaced
  versions:
  - name: v1beta1
    schema:
      openAPIV3Schema:
        description: User is the Schema for the users API.
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Spec configures the desired state of the User object.
            properties:
              importCredentialsSecret:
                description: Defines a Secret used to pre-define the username and
                  password set for this User. User objects created with this field
                  set will not have randomly-generated credentials, and will instead
                  import the username/password values from this Secret. The Secret
                  must contain the keys `username` and `password` in its Data field,
                  or the import will fail. Note that this import only occurs at creation
                  time, and is ignored once a password has been set on a User.
                properties:
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                      TODO: Add other useful fields. apiVersion, kind, uid?'
                    type: string
                type: object
                x-kubernetes-map-type: atomic
              rabbitmqClusterReference:
                description: Reference to the RabbitmqCluster that the user will be
                  created for. This cluster must exist for the User object to be created.
                properties:
                  connectionSecret:
                    description: Secret contains the http management uri for the RabbitMQ
                      cluster. The Secret must contain the key `uri`, `username` and
                      `password` or operator will error. Have to set either name or
                      connectionSecret, but not both.
                    properties:
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          TODO: Add other useful fields. apiVersion, kind, uid?'
                        type: string
                    type: object
                    x-kubernetes-map-type: atomic
                  name:
                    description: The name of the RabbitMQ cluster to reference. Have
                      to set either name or connectionSecret, but not both.
                    type: string
                  namespace:
                    description: The namespace of the RabbitMQ cluster to reference.
                      Defaults to the namespace of the requested resource if omitted.
                    type: string
                type: object
              tags:
                description: List of permissions tags to associate with the user.
                  This determines the level of access to the RabbitMQ management UI
                  granted to the user. Omitting this field will lead to a user than
                  can still connect to the cluster through messaging protocols, but
                  cannot perform any management actions. For more information, see
                  https://www.rabbitmq.com/management.html#permissions.
                items:
                  description: UserTag defines the level of access to the management
                    UI allocated to the user. For more information, see https://www.rabbitmq.com/management.html#permissions.
                  enum:
                  - management
                  - policymaker
                  - monitoring
                  - administrator
                  type: string
                type: array
            required:
            - rabbitmqClusterReference
            type: object
          status:
            description: Status exposes the observed state of the User object.
            properties:
              conditions:
                items:
                  properties:
                    lastTransitionTime:
                      description: The last time this Condition status changed.
                      format: date-time
                      type: string
                    message:
                      description: Full text reason for current status of the condition.
                      type: string
                    reason:
                      description: One word, camel-case reason for current status
                        of the condition.
                      type: string
                    status:
                      description: True, False, or Unknown
                      type: string
                    type:
                      description: Type indicates the scope of the custom resource
                        status addressed by the condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              credentials:
                description: Provides a reference to a Secret object containing the
                  user credentials.
                properties:
                  name:
                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                      TODO: Add other useful fields. apiVersion, kind, uid?'
                    type: string
                type: object
                x-kubernetes-map-type: atomic
              observedGeneration:
                description: observedGeneration is the most recent successful generation
                  observed for this User. It corresponds to the User's generation,
                  which is updated on mutation by the API Server.
                format: int64
                type: integer
              username:
                description: Provide rabbitmq Username
                type: string
            required:
            - username
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.10.0
  creationTimestamp: null
  name: vhosts.rabbitmq.com
spec:
  group: rabbitmq.com
  names:
    categories:
    - all
    - rabbitmq
    kind: Vhost
    listKind: VhostList
    plural: vhosts
    singular: vhost
  scope: Namespaced
  versions:
  - name: v1beta1
    schema:
      openAPIV3Schema:
        description: Vhost is the Schema for the vhosts API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: VhostSpec defines the desired state of Vhost
            properties:
              name:
                description: Name of the vhost; see https://www.rabbitmq.com/vhosts.html.
                type: string
              rabbitmqClusterReference:
                description: Reference to the RabbitmqCluster that the vhost will
                  be created in. Required property.
                properties:
                  connectionSecret:
                    description: Secret contains the http management uri for the RabbitMQ
                      cluster. The Secret must contain the key `uri`, `username` and
                      `password` or operator will error. Have to set either name or
                      connectionSecret, but not both.
                    properties:
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          TODO: Add other useful fields. apiVersion, kind, uid?'
                        type: string
                    type: object
                    x-kubernetes-map-type: atomic
                  name:
                    description: The name of the RabbitMQ cluster to reference. Have
                      to set either name or connectionSecret, but not both.
                    type: string
                  namespace:
                    description: The namespace of the RabbitMQ cluster to reference.
                      Defaults to the namespace of the requested resource if omitted.
                    type: string
                type: object
              tags:
                items:
                  type: string
                type: array
              tracing:
                type: boolean
            required:
            - name
            - rabbitmqClusterReference
            type: object
          status:
            description: VhostStatus defines the observed state of Vhost
            properties:
              conditions:
                items:
                  properties:
                    lastTransitionTime:
                      description: The last time this Condition status changed.
                      format: date-time
                      type: string
                    message:
                      description: Full text reason for current status of the condition.
                      type: string
                    reason:
                      description: One word, camel-case reason for current status
                        of the condition.
                      type: string
                    status:
                      description: True, False, or Unknown
                      type: string
                    type:
                      description: Type indicates the scope of the custom resource
                        status addressed by the condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              observedGeneration:
                description: observedGeneration is the most recent successful generation
                  observed for this Vhost. It corresponds to the Vhost's generation,
                  which is updated on mutation by the API Server.
                format: int64
                type: integer
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
