---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: decryptors.jiemi.cr
spec:
  group: jiemi.cr
  names:
    categories: []
    kind: Decryptor
    plural: decryptors
    shortNames: []
    singular: decryptor
  scope: Namespaced
  versions:
    - additionalPrinterColumns: []
      name: v1alpha1
      schema:
        openAPIV3Schema:
          description: "Auto-generated derived type for DecryptorSpec via `CustomResource`"
          properties:
            spec:
              properties:
                provider:
                  properties:
                    aws:
                      nullable: true
                      properties:
                        accessKey:
                          properties:
                            key:
                              nullable: true
                              type: string
                            literal:
                              nullable: true
                              type: string
                            secretName:
                              nullable: true
                              type: string
                          type: object
                        keyId:
                          properties:
                            key:
                              nullable: true
                              type: string
                            literal:
                              nullable: true
                              type: string
                            secretName:
                              nullable: true
                              type: string
                          type: object
                        region:
                          properties:
                            key:
                              nullable: true
                              type: string
                            literal:
                              nullable: true
                              type: string
                            secretName:
                              nullable: true
                              type: string
                          type: object
                      required:
                        - accessKey
                        - keyId
                        - region
                      type: object
                    gcp:
                      nullable: true
                      properties:
                        serviceAccount:
                          properties:
                            key:
                              nullable: true
                              type: string
                            literal:
                              nullable: true
                              type: string
                            secretName:
                              nullable: true
                              type: string
                          type: object
                      required:
                        - serviceAccount
                      type: object
                    pgp:
                      nullable: true
                      properties:
                        privateKey:
                          properties:
                            key:
                              nullable: true
                              type: string
                            literal:
                              nullable: true
                              type: string
                            secretName:
                              nullable: true
                              type: string
                          type: object
                      required:
                        - privateKey
                      type: object
                    vault:
                      nullable: true
                      properties:
                        token:
                          properties:
                            key:
                              nullable: true
                              type: string
                            literal:
                              nullable: true
                              type: string
                            secretName:
                              nullable: true
                              type: string
                          type: object
                      required:
                        - token
                      type: object
                  type: object
                source:
                  properties:
                    fileToDecrypt:
                      type: string
                    repository:
                      properties:
                        credentials:
                          nullable: true
                          properties:
                            ssh:
                              nullable: true
                              properties:
                                key:
                                  nullable: true
                                  type: string
                                literal:
                                  nullable: true
                                  type: string
                                secretName:
                                  nullable: true
                                  type: string
                              type: object
                            token:
                              nullable: true
                              properties:
                                key:
                                  nullable: true
                                  type: string
                                literal:
                                  nullable: true
                                  type: string
                                secretName:
                                  nullable: true
                                  type: string
                              type: object
                            username:
                              nullable: true
                              properties:
                                key:
                                  nullable: true
                                  type: string
                                literal:
                                  nullable: true
                                  type: string
                                secretName:
                                  nullable: true
                                  type: string
                              type: object
                          type: object
                        url:
                          type: string
                      required:
                        - url
                      type: object
                    sopsPath:
                      type: string
                  required:
                    - fileToDecrypt
                    - repository
                    - sopsPath
                  type: object
              required:
                - provider
                - source
              type: object
            status:
              description: "Status field of the CRD. It represent the Sync status of the CRD. See below to see how it looks\n\n# Example Status: Current: deployed_at:      2022-03-03T20:37:59.024362965+00:00 error_message:    <nil> file_to_decrypt:  pgp/secret.enc.yaml Id:               1 Revision:         a888f02e1111beb2c543d729faa5d516ecaa9e12 Status:  Sync History: List of previous statuses..."
              nullable: true
              properties:
                current:
                  properties:
                    deployed_at:
                      type: string
                    error_message:
                      nullable: true
                      type: string
                    file_to_decrypt:
                      type: string
                    id:
                      format: uint64
                      minimum: 0.0
                      type: integer
                    revision:
                      type: string
                    status:
                      enum:
                        - Sync
                        - NotSync
                      type: string
                  required:
                    - deployed_at
                    - file_to_decrypt
                    - id
                    - revision
                    - status
                  type: object
                history:
                  items:
                    properties:
                      deployed_at:
                        type: string
                      error_message:
                        nullable: true
                        type: string
                      file_to_decrypt:
                        type: string
                      id:
                        format: uint64
                        minimum: 0.0
                        type: integer
                      revision:
                        type: string
                      status:
                        enum:
                          - Sync
                          - NotSync
                        type: string
                    required:
                      - deployed_at
                      - file_to_decrypt
                      - id
                      - revision
                      - status
                    type: object
                  nullable: true
                  type: array
              required:
                - current
              type: object
          required:
            - spec
          title: Decryptor
          type: object
      served: true
      storage: true
      subresources:
        status: {}
