
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: subscriptions.dapr.io
  labels:
    app.kubernetes.io/part-of: "dapr"
spec:
  group: dapr.io
  conversion:
    strategy: Webhook
    webhook:
      clientConfig:
        service:
          namespace: replaceme # Patched by post-install webhook
          name: dapr-webhook
          path: /convert
        #caBundle: Patched by post-install webhook
      conversionReviewVersions:
      - v1
      - v2alpha1
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Subscription describes an pub/sub event subscription.
        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
          scopes:
            items:
              type: string
            type: array
          spec:
            description: SubscriptionSpec is the spec for an event subscription.
            properties:
              pubsubname:
                type: string
              route:
                type: string
              topic:
                type: string
              deadLetterTopic:
                type: string
              bulkSubscribe:
                description: Represents bulk subscribe properties
                properties:
                  enabled:
                    type: boolean
                  maxMessagesCount:
                    type: integer
                  maxAwaitDurationMs:
                    type: integer
                required:
                  - enabled
                type: object
              metadata:
                additionalProperties:
                  type: string
                type: object
            required:
            - pubsubname
            - route
            - topic
            type: object
        type: object
    served: true
    storage: false
  - name: v2alpha1
    schema:
      openAPIV3Schema:
        description: Subscription describes an pub/sub event subscription.
        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
          scopes:
            items:
              type: string
            type: array
          spec:
            description: SubscriptionSpec is the spec for an event subscription.
            properties:
              metadata:
                additionalProperties:
                  type: string
                description: The optional metadata to provide the subscription.
                type: object
              pubsubname:
                description: The PubSub component name.
                type: string
              routes:
                description: The Routes configuration for this topic.
                properties:
                  default:
                    type: string
                  rules:
                    description: The list of rules for this topic.
                    items:
                      description: Rule is used to specify the condition for sending
                        a message to a specific path.
                      properties:
                        match:
                          description: The optional CEL expression used to match the
                            event. If the match is not specified, then the route is
                            considered the default. The rules are tested in the order
                            specified, so they should be define from most-to-least
                            specific. The default route should appear last in the
                            list.
                          type: string
                        path:
                          description: The path for events that match this rule.
                          type: string
                      required:
                      - match
                      - path
                      type: object
                    type: array
                type: object
              topic:
                description: The topic name to subscribe to.
                type: string
              deadLetterTopic:
                description: The optional dead letter queue for this topic to send events to.
                type: string
              bulkSubscribe:
                description: Represents bulk subscribe properties
                properties:
                  enabled:
                    type: boolean
                  maxMessagesCount:
                    type: integer
                  maxAwaitDurationMs:
                    type: integer
                required:
                  - enabled
                type: object
            required:
            - pubsubname
            - routes
            - topic
            type: object
        type: object
    served: true
    storage: true
  names:
    kind: Subscription
    listKind: SubscriptionList
    plural: subscriptions
    singular: subscription
    categories:
    - all
    - dapr
  scope: Namespaced
