---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.15.0
  name: templates.v2.edp.epam.com
spec:
  group: v2.edp.epam.com
  names:
    kind: Template
    listKind: TemplateList
    plural: templates
    singular: template
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: Template version
      jsonPath: .spec.version
      name: Version
      type: string
    - description: Codebase type
      jsonPath: .spec.type
      name: Type
      type: string
    - description: Framework
      jsonPath: .spec.framework
      name: Framework
      type: string
    - description: Language
      jsonPath: .spec.language
      name: Language
      type: string
    - description: Build tool
      jsonPath: .spec.buildTool
      name: BuildTool
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Template is the Schema for the templates API.
        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: TemplateSpec defines the desired state of Template.
            properties:
              buildTool:
                description: The build tool used to build the component from the template.
                type: string
              category:
                description: Category is the category of the template.
                type: string
              description:
                description: The description of the template.
                type: string
              displayName:
                description: The name of the template.
                type: string
              framework:
                description: The framework used to build the component from the template.
                type: string
              icon:
                description: The icon for this template.
                items:
                  properties:
                    base64data:
                      description: A base64 encoded PNG, JPEG or SVG image.
                      type: string
                    mediatype:
                      description: The media type of the image. E.g image/svg+xml,
                        image/png, image/jpeg.
                      type: string
                  required:
                  - base64data
                  - mediatype
                  type: object
                maxItems: 1
                type: array
              keywords:
                description: A list of keywords describing the template.
                items:
                  type: string
                type: array
              language:
                description: The programming language used to build the component
                  from the template.
                type: string
              maintainers:
                description: A list of organizational entities maintaining the Template.
                items:
                  properties:
                    email:
                      type: string
                    name:
                      type: string
                  required:
                  - email
                  - name
                  type: object
                type: array
              maturity:
                description: The level of maturity the template has achieved at this
                  version. Options include planning, pre-alpha, alpha, beta, stable,
                  mature, inactive, and deprecated.
                enum:
                - planning
                - pre-alpha
                - alpha
                - beta
                - stable
                - mature
                - inactive
                - deprecated
                type: string
              minEDPVersion:
                description: MinEDPVersion is the minimum EDP version that this template
                  is compatible with.
                type: string
              source:
                description: A repository containing the source code for the template.
                type: string
              type:
                description: The type of the template, e.g application, library, autotest,
                  infrastructure, etc.
                type: string
              version:
                description: Version is the version of the template.
                type: string
            required:
            - buildTool
            - description
            - displayName
            - framework
            - language
            - source
            - type
            - version
            type: object
          status:
            description: TemplateStatus defines the observed state of Template.
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
