---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.17.2
  labels:
    external-secrets.io/component: controller
  name: clusterpushsecrets.external-secrets.io
spec:
  conversion:
    strategy: Webhook
    webhook:
      clientConfig:
        service:
          name: external-secrets-webhook
          namespace: external-secrets
          path: /convert
      conversionReviewVersions:
        - v1
  group: external-secrets.io
  names:
    categories:
      - external-secrets
    kind: ClusterPushSecret
    listKind: ClusterPushSecretList
    plural: clusterpushsecrets
    singular: clusterpushsecret
  scope: Cluster
  versions:
    - additionalPrinterColumns:
        - jsonPath: .metadata.creationTimestamp
          name: AGE
          type: date
        - jsonPath: .status.conditions[?(@.type=="Ready")].reason
          name: Status
          type: string
      name: v1alpha1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                namespaceSelectors:
                  items:
                    properties:
                      matchExpressions:
                        items:
                          properties:
                            key:
                              type: string
                            operator:
                              type: string
                            values:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                          required:
                            - key
                            - operator
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      matchLabels:
                        additionalProperties:
                          type: string
                        type: object
                    type: object
                    x-kubernetes-map-type: atomic
                  type: array
                pushSecretMetadata:
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      type: object
                  type: object
                pushSecretName:
                  maxLength: 253
                  minLength: 1
                  pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                  type: string
                pushSecretSpec:
                  properties:
                    data:
                      items:
                        properties:
                          conversionStrategy:
                            default: None
                            enum:
                              - None
                              - ReverseUnicode
                            type: string
                          match:
                            properties:
                              remoteRef:
                                properties:
                                  property:
                                    type: string
                                  remoteKey:
                                    type: string
                                required:
                                  - remoteKey
                                type: object
                              secretKey:
                                type: string
                            required:
                              - remoteRef
                            type: object
                          metadata:
                            x-kubernetes-preserve-unknown-fields: true
                        required:
                          - match
                        type: object
                      type: array
                    deletionPolicy:
                      default: None
                      enum:
                        - Delete
                        - None
                      type: string
                    refreshInterval:
                      default: 1h
                      type: string
                    secretStoreRefs:
                      items:
                        properties:
                          kind:
                            default: SecretStore
                            enum:
                              - SecretStore
                              - ClusterSecretStore
                            type: string
                          labelSelector:
                            properties:
                              matchExpressions:
                                items:
                                  properties:
                                    key:
                                      type: string
                                    operator:
                                      type: string
                                    values:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  required:
                                    - key
                                    - operator
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              matchLabels:
                                additionalProperties:
                                  type: string
                                type: object
                            type: object
                            x-kubernetes-map-type: atomic
                          name:
                            maxLength: 253
                            minLength: 1
                            pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                            type: string
                        type: object
                      type: array
                    selector:
                      maxProperties: 1
                      minProperties: 1
                      properties:
                        generatorRef:
                          properties:
                            apiVersion:
                              default: generators.external-secrets.io/v1alpha1
                              type: string
                            kind:
                              enum:
                                - ACRAccessToken
                                - ClusterGenerator
                                - ECRAuthorizationToken
                                - Fake
                                - GCRAccessToken
                                - GithubAccessToken
                                - QuayAccessToken
                                - Password
                                - STSSessionToken
                                - UUID
                                - VaultDynamicSecret
                                - Webhook
                                - Grafana
                              type: string
                            name:
                              maxLength: 253
                              minLength: 1
                              pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                              type: string
                          required:
                            - kind
                            - name
                          type: object
                        secret:
                          properties:
                            name:
                              maxLength: 253
                              minLength: 1
                              pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                              type: string
                            selector:
                              properties:
                                matchExpressions:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      operator:
                                        type: string
                                      values:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                      - key
                                      - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                          type: object
                      type: object
                    template:
                      properties:
                        data:
                          additionalProperties:
                            type: string
                          type: object
                        engineVersion:
                          default: v2
                          enum:
                            - v1
                            - v2
                          type: string
                        mergePolicy:
                          default: Replace
                          enum:
                            - Replace
                            - Merge
                          type: string
                        metadata:
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                          type: object
                        templateFrom:
                          items:
                            properties:
                              configMap:
                                properties:
                                  items:
                                    items:
                                      properties:
                                        key:
                                          maxLength: 253
                                          minLength: 1
                                          pattern: ^[-._a-zA-Z0-9]+$
                                          type: string
                                        templateAs:
                                          default: Values
                                          enum:
                                            - Values
                                            - KeysAndValues
                                          type: string
                                      required:
                                        - key
                                      type: object
                                    type: array
                                  name:
                                    maxLength: 253
                                    minLength: 1
                                    pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                                    type: string
                                required:
                                  - items
                                  - name
                                type: object
                              literal:
                                type: string
                              secret:
                                properties:
                                  items:
                                    items:
                                      properties:
                                        key:
                                          maxLength: 253
                                          minLength: 1
                                          pattern: ^[-._a-zA-Z0-9]+$
                                          type: string
                                        templateAs:
                                          default: Values
                                          enum:
                                            - Values
                                            - KeysAndValues
                                          type: string
                                      required:
                                        - key
                                      type: object
                                    type: array
                                  name:
                                    maxLength: 253
                                    minLength: 1
                                    pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
                                    type: string
                                required:
                                  - items
                                  - name
                                type: object
                              target:
                                default: Data
                                enum:
                                  - Data
                                  - Annotations
                                  - Labels
                                type: string
                            type: object
                          type: array
                        type:
                          type: string
                      type: object
                    updatePolicy:
                      default: Replace
                      enum:
                        - Replace
                        - IfNotExists
                      type: string
                  required:
                    - secretStoreRefs
                    - selector
                  type: object
                refreshTime:
                  type: string
              required:
                - pushSecretSpec
              type: object
            status:
              properties:
                conditions:
                  items:
                    properties:
                      lastTransitionTime:
                        format: date-time
                        type: string
                      message:
                        type: string
                      reason:
                        type: string
                      status:
                        type: string
                      type:
                        type: string
                    required:
                      - status
                      - type
                    type: object
                  type: array
                failedNamespaces:
                  items:
                    properties:
                      namespace:
                        type: string
                      reason:
                        type: string
                    required:
                      - namespace
                    type: object
                  type: array
                provisionedNamespaces:
                  items:
                    type: string
                  type: array
                pushSecretName:
                  type: string
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
