---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.17.2
  labels:
    external-secrets.io/component: controller
  name: pushsecrets.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: PushSecret
    listKind: PushSecretList
    plural: pushsecrets
    shortNames:
      - ps
    singular: pushsecret
  scope: Namespaced
  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:
                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
            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
                refreshTime:
                  format: date-time
                  nullable: true
                  type: string
                syncedPushSecrets:
                  additionalProperties:
                    additionalProperties:
                      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: object
                  type: object
                syncedResourceVersion:
                  type: string
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
