---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.10.0
  creationTimestamp: null
  name: clustertriggerauthentications.keda.sh
spec:
  group: keda.sh
  names:
    kind: ClusterTriggerAuthentication
    listKind: ClusterTriggerAuthenticationList
    plural: clustertriggerauthentications
    shortNames:
    - cta
    - clustertriggerauth
    singular: clustertriggerauthentication
  scope: Cluster
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.podIdentity.provider
      name: PodIdentity
      type: string
    - jsonPath: .spec.secretTargetRef[*].name
      name: Secret
      type: string
    - jsonPath: .spec.env[*].name
      name: Env
      type: string
    - jsonPath: .spec.hashiCorpVault.address
      name: VaultAddress
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: ClusterTriggerAuthentication defines how a trigger can authenticate
          globally
        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: TriggerAuthenticationSpec defines the various ways to authenticate
            properties:
              azureKeyVault:
                description: AzureKeyVault is used to authenticate using Azure Key
                  Vault
                properties:
                  cloud:
                    properties:
                      activeDirectoryEndpoint:
                        type: string
                      keyVaultResourceURL:
                        type: string
                      type:
                        type: string
                    required:
                    - type
                    type: object
                  credentials:
                    properties:
                      clientId:
                        type: string
                      clientSecret:
                        properties:
                          valueFrom:
                            properties:
                              secretKeyRef:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - key
                                - name
                                type: object
                            required:
                            - secretKeyRef
                            type: object
                        required:
                        - valueFrom
                        type: object
                      tenantId:
                        type: string
                    required:
                    - clientId
                    - clientSecret
                    - tenantId
                    type: object
                  podIdentity:
                    description: AuthPodIdentity allows users to select the platform
                      native identity mechanism
                    properties:
                      identityId:
                        type: string
                      provider:
                        description: PodIdentityProvider contains the list of providers
                        type: string
                    required:
                    - provider
                    type: object
                  secrets:
                    items:
                      properties:
                        name:
                          type: string
                        parameter:
                          type: string
                        version:
                          type: string
                      required:
                      - name
                      - parameter
                      type: object
                    type: array
                  vaultUri:
                    type: string
                required:
                - secrets
                - vaultUri
                type: object
              env:
                items:
                  description: AuthEnvironment is used to authenticate using environment
                    variables in the destination ScaleTarget spec
                  properties:
                    containerName:
                      type: string
                    name:
                      type: string
                    parameter:
                      type: string
                  required:
                  - name
                  - parameter
                  type: object
                type: array
              hashiCorpVault:
                description: HashiCorpVault is used to authenticate using Hashicorp
                  Vault
                properties:
                  address:
                    type: string
                  authentication:
                    description: VaultAuthentication contains the list of Hashicorp
                      Vault authentication methods
                    type: string
                  credential:
                    description: Credential defines the Hashicorp Vault credentials
                      depending on the authentication method
                    properties:
                      serviceAccount:
                        type: string
                      token:
                        type: string
                    type: object
                  mount:
                    type: string
                  namespace:
                    type: string
                  role:
                    type: string
                  secrets:
                    items:
                      description: VaultSecret defines the mapping between the path
                        of the secret in Vault to the parameter
                      properties:
                        key:
                          type: string
                        parameter:
                          type: string
                        path:
                          type: string
                      required:
                      - key
                      - parameter
                      - path
                      type: object
                    type: array
                required:
                - address
                - authentication
                - secrets
                type: object
              podIdentity:
                description: AuthPodIdentity allows users to select the platform native
                  identity mechanism
                properties:
                  identityId:
                    type: string
                  provider:
                    description: PodIdentityProvider contains the list of providers
                    type: string
                required:
                - provider
                type: object
              secretTargetRef:
                items:
                  description: AuthSecretTargetRef is used to authenticate using a
                    reference to a secret
                  properties:
                    key:
                      type: string
                    name:
                      type: string
                    parameter:
                      type: string
                  required:
                  - key
                  - name
                  - parameter
                  type: object
                type: array
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
    subresources: {}
