apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: consoleyamlsamples.console.tmax.io
spec:
  conversion:
    strategy: None
  group: console.tmax.io
  names:
    kind: ConsoleYAMLSample
    listKind: ConsoleYAMLSampleList
    plural: consoleyamlsamples
    singular: consoleyamlsample
  preserveUnknownFields: false
  scope: Cluster
  versions:
    - name: v1
      served: true
      storage: true
      schema:
        openAPIV3Schema:
          description: >-
            ConsoleYAMLSample is an extension for customizing HyperCloud web console
            YAML samples.
          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: >-
                ConsoleYAMLSampleSpec is the desired YAML sample configuration.
                Samples will appear with their descriptions in a samples sidebar
                when creating a resources in the web console.
              properties:
                description:
                  description: description of the YAML sample.
                  pattern: ^(.|\s)*\S(.|\s)*$
                  type: string
                snippet:
                  description: >-
                    snippet indicates that the YAML sample is not the full YAML
                    resource definition, but a fragment that can be inserted into
                    the existing YAML document at the user's cursor.
                  type: boolean
                targetResource:
                  description: >-
                    targetResource contains apiVersion and kind of the resource YAML
                    sample is representating.
                  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
                  type: object
                title:
                  description: title of the YAML sample.
                  pattern: ^(.|\s)*\S(.|\s)*$
                  type: string
                yaml:
                  description: yaml is the YAML sample to display.
                  pattern: ^(.|\s)*\S(.|\s)*$
                  type: string
              required:
                - description
                - targetResource
                - title
                - yaml
              type: object
          required:
            - metadata
            - spec
          type: object
