apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    service.beta.openshift.io/inject-cabundle: "true"
  labels:
    app.kubernetes.io/name: devworkspace-controller
    app.kubernetes.io/part-of: devworkspace-operator
  name: devworkspaces.workspace.devfile.io
spec:
  conversion:
    strategy: Webhook
    webhook:
      clientConfig:
        caBundle: Cg==
        service:
          name: devworkspace-controller-manager-service
          namespace: devworkspace-controller
          path: /convert
          port: 443
      conversionReviewVersions:
      - v1
  group: workspace.devfile.io
  names:
    kind: DevWorkspace
    listKind: DevWorkspaceList
    plural: devworkspaces
    shortNames:
    - dw
    singular: devworkspace
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: The workspace's unique id
      jsonPath: .status.workspaceId
      name: Workspace ID
      type: string
    - description: The current workspace startup phase
      jsonPath: .status.phase
      name: Phase
      type: string
    - description: Url endpoint for accessing workspace
      jsonPath: .status.ideUrl
      name: URL
      type: string
    deprecated: true
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: DevWorkspace is the Schema for the devworkspaces 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: DevWorkspaceSpec defines the desired state of DevWorkspace
            properties:
              routingClass:
                type: string
              started:
                type: boolean
              template:
                description: Structure of the workspace. This is also the specification
                  of a workspace template.
                properties:
                  commands:
                    description: Predefined, ready-to-use, workspace-related commands
                    items:
                      oneOf:
                      - required:
                        - exec
                      - required:
                        - apply
                      - required:
                        - vscodeTask
                      - required:
                        - vscodeLaunch
                      - required:
                        - composite
                      - required:
                        - custom
                      properties:
                        apply:
                          description: "Command that consists in applying a given
                            component definition, typically bound to a workspace event.
                            \n For example, when an `apply` command is bound to a
                            `preStart` event, and references a `container` component,
                            it will start the container as a K8S initContainer in
                            the workspace POD, unless the component has its `dedicatedPod`
                            field set to `true`. \n When no `apply` command exist
                            for a given component, it is assumed the component will
                            be applied at workspace start by default."
                          properties:
                            attributes:
                              additionalProperties:
                                type: string
                              description: Optional map of free-form additional command
                                attributes
                              type: object
                            component:
                              description: Describes component that will be applied
                              type: string
                            group:
                              description: Defines the group this command is part
                                of
                              properties:
                                isDefault:
                                  description: Identifies the default command for
                                    a given group kind
                                  type: boolean
                                kind:
                                  description: Kind of group the command is part of
                                  enum:
                                  - build
                                  - run
                                  - test
                                  - debug
                                  type: string
                              required:
                              - kind
                              type: object
                            id:
                              description: Mandatory identifier that allows referencing
                                this command in composite commands, from a parent,
                                or in events.
                              type: string
                            label:
                              description: Optional label that provides a label for
                                this command to be used in Editor UI menus for example
                              type: string
                          required:
                          - id
                          type: object
                        commandType:
                          description: Type of workspace command
                          enum:
                          - Exec
                          - Apply
                          - VscodeTask
                          - VscodeLaunch
                          - Composite
                          - Custom
                          type: string
                        composite:
                          description: Composite command that allows executing several
                            sub-commands either sequentially or concurrently
                          properties:
                            attributes:
                              additionalProperties:
                                type: string
                              description: Optional map of free-form additional command
                                attributes
                              type: object
                            commands:
                              description: The commands that comprise this composite
                                command
                              items:
                                type: string
                              type: array
                            group:
                              description: Defines the group this command is part
                                of
                              properties:
                                isDefault:
                                  description: Identifies the default command for
                                    a given group kind
                                  type: boolean
                                kind:
                                  description: Kind of group the command is part of
                                  enum:
                                  - build
                                  - run
                                  - test
                                  - debug
                                  type: string
                              required:
                              - kind
                              type: object
                            id:
                              description: Mandatory identifier that allows referencing
                                this command in composite commands, from a parent,
                                or in events.
                              type: string
                            label:
                              description: Optional label that provides a label for
                                this command to be used in Editor UI menus for example
                              type: string
                            parallel:
                              description: Indicates if the sub-commands should be
                                executed concurrently
                              type: boolean
                          required:
                          - id
                          type: object
                        custom:
                          description: Custom command whose logic is implementation-dependant
                            and should be provided by the user possibly through some
                            dedicated plugin
                          properties:
                            attributes:
                              additionalProperties:
                                type: string
                              description: Optional map of free-form additional command
                                attributes
                              type: object
                            commandClass:
                              description: Class of command that the associated implementation
                                component should use to process this command with
                                the appropriate logic
                              type: string
                            embeddedResource:
                              description: Additional free-form configuration for
                                this custom command that the implementation component
                                will know how to use
                              type: object
                              x-kubernetes-embedded-resource: true
                              x-kubernetes-preserve-unknown-fields: true
                            group:
                              description: Defines the group this command is part
                                of
                              properties:
                                isDefault:
                                  description: Identifies the default command for
                                    a given group kind
                                  type: boolean
                                kind:
                                  description: Kind of group the command is part of
                                  enum:
                                  - build
                                  - run
                                  - test
                                  - debug
                                  type: string
                              required:
                              - kind
                              type: object
                            id:
                              description: Mandatory identifier that allows referencing
                                this command in composite commands, from a parent,
                                or in events.
                              type: string
                            label:
                              description: Optional label that provides a label for
                                this command to be used in Editor UI menus for example
                              type: string
                          required:
                          - commandClass
                          - embeddedResource
                          - id
                          type: object
                        exec:
                          description: CLI Command executed in an existing component
                            container
                          properties:
                            attributes:
                              additionalProperties:
                                type: string
                              description: Optional map of free-form additional command
                                attributes
                              type: object
                            commandLine:
                              description: "The actual command-line string \n Special
                                variables that can be used: \n  - `$PROJECTS_ROOT`:
                                A path where projects sources are mounted \n  - `$PROJECT_SOURCE`:
                                A path to a project source ($PROJECTS_ROOT/<project-name>).
                                If there are multiple projects, this will point to
                                the directory of the first one."
                              type: string
                            component:
                              description: Describes component to which given action
                                relates
                              type: string
                            env:
                              description: Optional list of environment variables
                                that have to be set before running the command
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            group:
                              description: Defines the group this command is part
                                of
                              properties:
                                isDefault:
                                  description: Identifies the default command for
                                    a given group kind
                                  type: boolean
                                kind:
                                  description: Kind of group the command is part of
                                  enum:
                                  - build
                                  - run
                                  - test
                                  - debug
                                  type: string
                              required:
                              - kind
                              type: object
                            hotReloadCapable:
                              description: "Whether the command is capable to reload
                                itself when source code changes. If set to `true`
                                the command won't be restarted and it is expected
                                to handle file changes on its own. \n Default value
                                is `false`"
                              type: boolean
                            id:
                              description: Mandatory identifier that allows referencing
                                this command in composite commands, from a parent,
                                or in events.
                              type: string
                            label:
                              description: Optional label that provides a label for
                                this command to be used in Editor UI menus for example
                              type: string
                            workingDir:
                              description: "Working directory where the command should
                                be executed \n Special variables that can be used:
                                \n  - `${PROJECTS_ROOT}`: A path where projects sources
                                are mounted \n  - `${PROJECT_SOURCE}`: A path to a
                                project source (${PROJECTS_ROOT}/<project-name>).
                                If there are multiple projects, this will point to
                                the directory of the first one."
                              type: string
                          required:
                          - id
                          type: object
                        vscodeLaunch:
                          description: "Command providing the definition of a VsCode
                            launch action \n Deprecated; removed in v1alpha2"
                          oneOf:
                          - required:
                            - uri
                          - required:
                            - inlined
                          properties:
                            attributes:
                              additionalProperties:
                                type: string
                              description: Optional map of free-form additional command
                                attributes
                              type: object
                            group:
                              description: Defines the group this command is part
                                of
                              properties:
                                isDefault:
                                  description: Identifies the default command for
                                    a given group kind
                                  type: boolean
                                kind:
                                  description: Kind of group the command is part of
                                  enum:
                                  - build
                                  - run
                                  - test
                                  - debug
                                  type: string
                              required:
                              - kind
                              type: object
                            id:
                              description: Mandatory identifier that allows referencing
                                this command in composite commands, from a parent,
                                or in events.
                              type: string
                            inlined:
                              description: Inlined content of the VsCode configuration
                              type: string
                            locationType:
                              description: Type of Vscode configuration command location
                              enum:
                              - Uri
                              - Inlined
                              type: string
                            uri:
                              description: Location as an absolute of relative URI
                                the VsCode configuration will be fetched from
                              type: string
                          required:
                          - id
                          type: object
                        vscodeTask:
                          description: "Command providing the definition of a VsCode
                            Task \n Deprecated; removed in v1alpha2"
                          oneOf:
                          - required:
                            - uri
                          - required:
                            - inlined
                          properties:
                            attributes:
                              additionalProperties:
                                type: string
                              description: Optional map of free-form additional command
                                attributes
                              type: object
                            group:
                              description: Defines the group this command is part
                                of
                              properties:
                                isDefault:
                                  description: Identifies the default command for
                                    a given group kind
                                  type: boolean
                                kind:
                                  description: Kind of group the command is part of
                                  enum:
                                  - build
                                  - run
                                  - test
                                  - debug
                                  type: string
                              required:
                              - kind
                              type: object
                            id:
                              description: Mandatory identifier that allows referencing
                                this command in composite commands, from a parent,
                                or in events.
                              type: string
                            inlined:
                              description: Inlined content of the VsCode configuration
                              type: string
                            locationType:
                              description: Type of Vscode configuration command location
                              enum:
                              - Uri
                              - Inlined
                              type: string
                            uri:
                              description: Location as an absolute of relative URI
                                the VsCode configuration will be fetched from
                              type: string
                          required:
                          - id
                          type: object
                      type: object
                    type: array
                  components:
                    description: List of the workspace components, such as editor
                      and plugins, user-provided containers, or other types of components
                    items:
                      oneOf:
                      - required:
                        - container
                      - required:
                        - kubernetes
                      - required:
                        - openshift
                      - required:
                        - volume
                      - required:
                        - plugin
                      - required:
                        - custom
                      properties:
                        componentType:
                          description: Type of component
                          enum:
                          - Container
                          - Kubernetes
                          - Openshift
                          - Volume
                          - Plugin
                          - Custom
                          type: string
                        container:
                          description: Allows adding and configuring workspace-related
                            containers
                          properties:
                            args:
                              description: "The arguments to supply to the command
                                running the dockerimage component. The arguments are
                                supplied either to the default command provided in
                                the image or to the overridden command. \n Defaults
                                to an empty array, meaning use whatever is defined
                                in the image."
                              items:
                                type: string
                              type: array
                            command:
                              description: "The command to run in the dockerimage
                                component instead of the default one provided in the
                                image. \n Defaults to an empty array, meaning use
                                whatever is defined in the image."
                              items:
                                type: string
                              type: array
                            dedicatedPod:
                              description: "Specify if a container should run in its
                                own separated pod, instead of running as part of the
                                main development environment pod. \n Default value
                                is `false`"
                              type: boolean
                            endpoints:
                              items:
                                properties:
                                  attributes:
                                    additionalProperties:
                                      type: string
                                    description: "Map of implementation-dependant
                                      string-based free-form attributes. \n Examples
                                      of Che-specific attributes: \n - cookiesAuthEnabled:
                                      \"true\" / \"false\", \n - type: \"terminal\"
                                      / \"ide\" / \"ide-dev\","
                                    type: object
                                  exposure:
                                    description: "Describes how the endpoint should
                                      be exposed on the network. \n - `public` means
                                      that the endpoint will be exposed on the public
                                      network, typically through a K8S ingress or
                                      an OpenShift route. \n - `internal` means that
                                      the endpoint will be exposed internally outside
                                      of the main workspace POD, typically by K8S
                                      services, to be consumed by other elements running
                                      on the same cloud internal network. \n - `none`
                                      means that the endpoint will not be exposed
                                      and will only be accessible inside the main
                                      workspace POD, on a local address. \n Default
                                      value is `public`"
                                    enum:
                                    - public
                                    - internal
                                    - none
                                    type: string
                                  name:
                                    type: string
                                  path:
                                    description: Path of the endpoint URL
                                    type: string
                                  protocol:
                                    description: "Describes the application and transport
                                      protocols of the traffic that will go through
                                      this endpoint. \n - `http`: Endpoint will have
                                      `http` traffic, typically on a TCP connection.
                                      It will be automaticaly promoted to `https`
                                      when the `secure` field is set to `true`. \n
                                      - `https`: Endpoint will have `https` traffic,
                                      typically on a TCP connection. \n - `ws`: Endpoint
                                      will have `ws` traffic, typically on a TCP connection.
                                      It will be automaticaly promoted to `wss` when
                                      the `secure` field is set to `true`. \n - `wss`:
                                      Endpoint will have `wss` traffic, typically
                                      on a TCP connection. \n - `tcp`: Endpoint will
                                      have traffic on a TCP connection, without specifying
                                      an application protocol. \n - `udp`: Endpoint
                                      will have traffic on an UDP connection, without
                                      specifying an application protocol. \n Default
                                      value is `http`"
                                    type: string
                                  secure:
                                    description: Describes whether the endpoint should
                                      be secured and protected by some authentication
                                      process
                                    type: boolean
                                  targetPort:
                                    type: integer
                                required:
                                - name
                                type: object
                              type: array
                            env:
                              description: Environment variables used in this container
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            image:
                              type: string
                            memoryLimit:
                              type: string
                            mountSources:
                              type: boolean
                            name:
                              type: string
                            sourceMapping:
                              description: Optional specification of the path in the
                                container where project sources should be transferred/mounted
                                when `mountSources` is `true`. When omitted, the value
                                of the `PROJECTS_ROOT` environment variable is used.
                              type: string
                            volumeMounts:
                              description: List of volumes mounts that should be mounted
                                is this container.
                              items:
                                description: Volume that should be mounted to a component
                                  container
                                properties:
                                  name:
                                    description: The volume mount name is the name
                                      of an existing `Volume` component. If several
                                      containers mount the same volume name then they
                                      will reuse the same volume and will be able
                                      to access to the same files.
                                    type: string
                                  path:
                                    description: The path in the component container
                                      where the volume should be mounted. If not path
                                      is mentioned, default path is the is `/<name>`.
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                          required:
                          - name
                          type: object
                        custom:
                          description: Custom component whose logic is implementation-dependant
                            and should be provided by the user possibly through some
                            dedicated controller
                          properties:
                            componentClass:
                              description: Class of component that the associated
                                implementation controller should use to process this
                                command with the appropriate logic
                              type: string
                            embeddedResource:
                              description: Additional free-form configuration for
                                this custom component that the implementation controller
                                will know how to use
                              type: object
                              x-kubernetes-embedded-resource: true
                              x-kubernetes-preserve-unknown-fields: true
                            name:
                              description: Mandatory name that allows referencing
                                the component in commands, or inside a parent
                              type: string
                          required:
                          - componentClass
                          - embeddedResource
                          - name
                          type: object
                        kubernetes:
                          description: Allows importing into the workspace the Kubernetes
                            resources defined in a given manifest. For example this
                            allows reusing the Kubernetes definitions used to deploy
                            some runtime components in production.
                          oneOf:
                          - required:
                            - uri
                          - required:
                            - inlined
                          properties:
                            endpoints:
                              items:
                                properties:
                                  attributes:
                                    additionalProperties:
                                      type: string
                                    description: "Map of implementation-dependant
                                      string-based free-form attributes. \n Examples
                                      of Che-specific attributes: \n - cookiesAuthEnabled:
                                      \"true\" / \"false\", \n - type: \"terminal\"
                                      / \"ide\" / \"ide-dev\","
                                    type: object
                                  exposure:
                                    description: "Describes how the endpoint should
                                      be exposed on the network. \n - `public` means
                                      that the endpoint will be exposed on the public
                                      network, typically through a K8S ingress or
                                      an OpenShift route. \n - `internal` means that
                                      the endpoint will be exposed internally outside
                                      of the main workspace POD, typically by K8S
                                      services, to be consumed by other elements running
                                      on the same cloud internal network. \n - `none`
                                      means that the endpoint will not be exposed
                                      and will only be accessible inside the main
                                      workspace POD, on a local address. \n Default
                                      value is `public`"
                                    enum:
                                    - public
                                    - internal
                                    - none
                                    type: string
                                  name:
                                    type: string
                                  path:
                                    description: Path of the endpoint URL
                                    type: string
                                  protocol:
                                    description: "Describes the application and transport
                                      protocols of the traffic that will go through
                                      this endpoint. \n - `http`: Endpoint will have
                                      `http` traffic, typically on a TCP connection.
                                      It will be automaticaly promoted to `https`
                                      when the `secure` field is set to `true`. \n
                                      - `https`: Endpoint will have `https` traffic,
                                      typically on a TCP connection. \n - `ws`: Endpoint
                                      will have `ws` traffic, typically on a TCP connection.
                                      It will be automaticaly promoted to `wss` when
                                      the `secure` field is set to `true`. \n - `wss`:
                                      Endpoint will have `wss` traffic, typically
                                      on a TCP connection. \n - `tcp`: Endpoint will
                                      have traffic on a TCP connection, without specifying
                                      an application protocol. \n - `udp`: Endpoint
                                      will have traffic on an UDP connection, without
                                      specifying an application protocol. \n Default
                                      value is `http`"
                                    type: string
                                  secure:
                                    description: Describes whether the endpoint should
                                      be secured and protected by some authentication
                                      process
                                    type: boolean
                                  targetPort:
                                    type: integer
                                required:
                                - name
                                type: object
                              type: array
                            inlined:
                              description: Inlined manifest
                              type: string
                            locationType:
                              description: Type of Kubernetes-like location
                              enum:
                              - Uri
                              - Inlined
                              type: string
                            name:
                              description: Mandatory name that allows referencing
                                the component in commands, or inside a parent
                              type: string
                            uri:
                              description: Location in a file fetched from a uri.
                              type: string
                          required:
                          - name
                          type: object
                        openshift:
                          description: Allows importing into the workspace the OpenShift
                            resources defined in a given manifest. For example this
                            allows reusing the OpenShift definitions used to deploy
                            some runtime components in production.
                          oneOf:
                          - required:
                            - uri
                          - required:
                            - inlined
                          properties:
                            endpoints:
                              items:
                                properties:
                                  attributes:
                                    additionalProperties:
                                      type: string
                                    description: "Map of implementation-dependant
                                      string-based free-form attributes. \n Examples
                                      of Che-specific attributes: \n - cookiesAuthEnabled:
                                      \"true\" / \"false\", \n - type: \"terminal\"
                                      / \"ide\" / \"ide-dev\","
                                    type: object
                                  exposure:
                                    description: "Describes how the endpoint should
                                      be exposed on the network. \n - `public` means
                                      that the endpoint will be exposed on the public
                                      network, typically through a K8S ingress or
                                      an OpenShift route. \n - `internal` means that
                                      the endpoint will be exposed internally outside
                                      of the main workspace POD, typically by K8S
                                      services, to be consumed by other elements running
                                      on the same cloud internal network. \n - `none`
                                      means that the endpoint will not be exposed
                                      and will only be accessible inside the main
                                      workspace POD, on a local address. \n Default
                                      value is `public`"
                                    enum:
                                    - public
                                    - internal
                                    - none
                                    type: string
                                  name:
                                    type: string
                                  path:
                                    description: Path of the endpoint URL
                                    type: string
                                  protocol:
                                    description: "Describes the application and transport
                                      protocols of the traffic that will go through
                                      this endpoint. \n - `http`: Endpoint will have
                                      `http` traffic, typically on a TCP connection.
                                      It will be automaticaly promoted to `https`
                                      when the `secure` field is set to `true`. \n
                                      - `https`: Endpoint will have `https` traffic,
                                      typically on a TCP connection. \n - `ws`: Endpoint
                                      will have `ws` traffic, typically on a TCP connection.
                                      It will be automaticaly promoted to `wss` when
                                      the `secure` field is set to `true`. \n - `wss`:
                                      Endpoint will have `wss` traffic, typically
                                      on a TCP connection. \n - `tcp`: Endpoint will
                                      have traffic on a TCP connection, without specifying
                                      an application protocol. \n - `udp`: Endpoint
                                      will have traffic on an UDP connection, without
                                      specifying an application protocol. \n Default
                                      value is `http`"
                                    type: string
                                  secure:
                                    description: Describes whether the endpoint should
                                      be secured and protected by some authentication
                                      process
                                    type: boolean
                                  targetPort:
                                    type: integer
                                required:
                                - name
                                type: object
                              type: array
                            inlined:
                              description: Inlined manifest
                              type: string
                            locationType:
                              description: Type of Kubernetes-like location
                              enum:
                              - Uri
                              - Inlined
                              type: string
                            name:
                              description: Mandatory name that allows referencing
                                the component in commands, or inside a parent
                              type: string
                            uri:
                              description: Location in a file fetched from a uri.
                              type: string
                          required:
                          - name
                          type: object
                        plugin:
                          description: "Allows importing a plugin. \n Plugins are
                            mainly imported devfiles that contribute components, commands
                            and events as a consistent single unit. They are defined
                            in either YAML files following the devfile syntax, or
                            as `DevWorkspaceTemplate` Kubernetes Custom Resources"
                          oneOf:
                          - required:
                            - uri
                          - required:
                            - id
                          - required:
                            - kubernetes
                          properties:
                            commands:
                              description: Overrides of commands encapsulated in a
                                parent devfile or a plugin. Overriding is done using
                                a strategic merge patch
                              items:
                                oneOf:
                                - required:
                                  - exec
                                - required:
                                  - apply
                                - required:
                                  - vscodeTask
                                - required:
                                  - vscodeLaunch
                                - required:
                                  - composite
                                - required:
                                  - custom
                                properties:
                                  apply:
                                    description: "Command that consists in applying
                                      a given component definition, typically bound
                                      to a workspace event. \n For example, when an
                                      `apply` command is bound to a `preStart` event,
                                      and references a `container` component, it will
                                      start the container as a K8S initContainer in
                                      the workspace POD, unless the component has
                                      its `dedicatedPod` field set to `true`. \n When
                                      no `apply` command exist for a given component,
                                      it is assumed the component will be applied
                                      at workspace start by default."
                                    properties:
                                      attributes:
                                        additionalProperties:
                                          type: string
                                        description: Optional map of free-form additional
                                          command attributes
                                        type: object
                                      component:
                                        description: Describes component that will
                                          be applied
                                        type: string
                                      group:
                                        description: Defines the group this command
                                          is part of
                                        properties:
                                          isDefault:
                                            description: Identifies the default command
                                              for a given group kind
                                            type: boolean
                                          kind:
                                            description: Kind of group the command
                                              is part of
                                            enum:
                                            - build
                                            - run
                                            - test
                                            - debug
                                            type: string
                                        required:
                                        - kind
                                        type: object
                                      id:
                                        description: Mandatory identifier that allows
                                          referencing this command in composite commands,
                                          from a parent, or in events.
                                        type: string
                                      label:
                                        description: Optional label that provides
                                          a label for this command to be used in Editor
                                          UI menus for example
                                        type: string
                                    required:
                                    - id
                                    type: object
                                  commandType:
                                    description: Type of workspace command
                                    enum:
                                    - Exec
                                    - Apply
                                    - VscodeTask
                                    - VscodeLaunch
                                    - Composite
                                    - Custom
                                    type: string
                                  composite:
                                    description: Composite command that allows executing
                                      several sub-commands either sequentially or
                                      concurrently
                                    properties:
                                      attributes:
                                        additionalProperties:
                                          type: string
                                        description: Optional map of free-form additional
                                          command attributes
                                        type: object
                                      commands:
                                        description: The commands that comprise this
                                          composite command
                                        items:
                                          type: string
                                        type: array
                                      group:
                                        description: Defines the group this command
                                          is part of
                                        properties:
                                          isDefault:
                                            description: Identifies the default command
                                              for a given group kind
                                            type: boolean
                                          kind:
                                            description: Kind of group the command
                                              is part of
                                            enum:
                                            - build
                                            - run
                                            - test
                                            - debug
                                            type: string
                                        required:
                                        - kind
                                        type: object
                                      id:
                                        description: Mandatory identifier that allows
                                          referencing this command in composite commands,
                                          from a parent, or in events.
                                        type: string
                                      label:
                                        description: Optional label that provides
                                          a label for this command to be used in Editor
                                          UI menus for example
                                        type: string
                                      parallel:
                                        description: Indicates if the sub-commands
                                          should be executed concurrently
                                        type: boolean
                                    required:
                                    - id
                                    type: object
                                  custom:
                                    description: Custom command whose logic is implementation-dependant
                                      and should be provided by the user possibly
                                      through some dedicated plugin
                                    properties:
                                      attributes:
                                        additionalProperties:
                                          type: string
                                        description: Optional map of free-form additional
                                          command attributes
                                        type: object
                                      commandClass:
                                        description: Class of command that the associated
                                          implementation component should use to process
                                          this command with the appropriate logic
                                        type: string
                                      embeddedResource:
                                        description: Additional free-form configuration
                                          for this custom command that the implementation
                                          component will know how to use
                                        type: object
                                        x-kubernetes-embedded-resource: true
                                        x-kubernetes-preserve-unknown-fields: true
                                      group:
                                        description: Defines the group this command
                                          is part of
                                        properties:
                                          isDefault:
                                            description: Identifies the default command
                                              for a given group kind
                                            type: boolean
                                          kind:
                                            description: Kind of group the command
                                              is part of
                                            enum:
                                            - build
                                            - run
                                            - test
                                            - debug
                                            type: string
                                        required:
                                        - kind
                                        type: object
                                      id:
                                        description: Mandatory identifier that allows
                                          referencing this command in composite commands,
                                          from a parent, or in events.
                                        type: string
                                      label:
                                        description: Optional label that provides
                                          a label for this command to be used in Editor
                                          UI menus for example
                                        type: string
                                    required:
                                    - commandClass
                                    - embeddedResource
                                    - id
                                    type: object
                                  exec:
                                    description: CLI Command executed in an existing
                                      component container
                                    properties:
                                      attributes:
                                        additionalProperties:
                                          type: string
                                        description: Optional map of free-form additional
                                          command attributes
                                        type: object
                                      commandLine:
                                        description: "The actual command-line string
                                          \n Special variables that can be used: \n
                                          \ - `$PROJECTS_ROOT`: A path where projects
                                          sources are mounted \n  - `$PROJECT_SOURCE`:
                                          A path to a project source ($PROJECTS_ROOT/<project-name>).
                                          If there are multiple projects, this will
                                          point to the directory of the first one."
                                        type: string
                                      component:
                                        description: Describes component to which
                                          given action relates
                                        type: string
                                      env:
                                        description: Optional list of environment
                                          variables that have to be set before running
                                          the command
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      group:
                                        description: Defines the group this command
                                          is part of
                                        properties:
                                          isDefault:
                                            description: Identifies the default command
                                              for a given group kind
                                            type: boolean
                                          kind:
                                            description: Kind of group the command
                                              is part of
                                            enum:
                                            - build
                                            - run
                                            - test
                                            - debug
                                            type: string
                                        required:
                                        - kind
                                        type: object
                                      hotReloadCapable:
                                        description: "Whether the command is capable
                                          to reload itself when source code changes.
                                          If set to `true` the command won't be restarted
                                          and it is expected to handle file changes
                                          on its own. \n Default value is `false`"
                                        type: boolean
                                      id:
                                        description: Mandatory identifier that allows
                                          referencing this command in composite commands,
                                          from a parent, or in events.
                                        type: string
                                      label:
                                        description: Optional label that provides
                                          a label for this command to be used in Editor
                                          UI menus for example
                                        type: string
                                      workingDir:
                                        description: "Working directory where the
                                          command should be executed \n Special variables
                                          that can be used: \n  - `${PROJECTS_ROOT}`:
                                          A path where projects sources are mounted
                                          \n  - `${PROJECT_SOURCE}`: A path to a project
                                          source (${PROJECTS_ROOT}/<project-name>).
                                          If there are multiple projects, this will
                                          point to the directory of the first one."
                                        type: string
                                    required:
                                    - id
                                    type: object
                                  vscodeLaunch:
                                    description: "Command providing the definition
                                      of a VsCode launch action \n Deprecated; removed
                                      in v1alpha2"
                                    oneOf:
                                    - required:
                                      - uri
                                    - required:
                                      - inlined
                                    properties:
                                      attributes:
                                        additionalProperties:
                                          type: string
                                        description: Optional map of free-form additional
                                          command attributes
                                        type: object
                                      group:
                                        description: Defines the group this command
                                          is part of
                                        properties:
                                          isDefault:
                                            description: Identifies the default command
                                              for a given group kind
                                            type: boolean
                                          kind:
                                            description: Kind of group the command
                                              is part of
                                            enum:
                                            - build
                                            - run
                                            - test
                                            - debug
                                            type: string
                                        required:
                                        - kind
                                        type: object
                                      id:
                                        description: Mandatory identifier that allows
                                          referencing this command in composite commands,
                                          from a parent, or in events.
                                        type: string
                                      inlined:
                                        description: Inlined content of the VsCode
                                          configuration
                                        type: string
                                      locationType:
                                        description: Type of Vscode configuration
                                          command location
                                        enum:
                                        - Uri
                                        - Inlined
                                        type: string
                                      uri:
                                        description: Location as an absolute of relative
                                          URI the VsCode configuration will be fetched
                                          from
                                        type: string
                                    required:
                                    - id
                                    type: object
                                  vscodeTask:
                                    description: "Command providing the definition
                                      of a VsCode Task \n Deprecated; removed in v1alpha2"
                                    oneOf:
                                    - required:
                                      - uri
                                    - required:
                                      - inlined
                                    properties:
                                      attributes:
                                        additionalProperties:
                                          type: string
                                        description: Optional map of free-form additional
                                          command attributes
                                        type: object
                                      group:
                                        description: Defines the group this command
                                          is part of
                                        properties:
                                          isDefault:
                                            description: Identifies the default command
                                              for a given group kind
                                            type: boolean
                                          kind:
                                            description: Kind of group the command
                                              is part of
                                            enum:
                                            - build
                                            - run
                                            - test
                                            - debug
                                            type: string
                                        required:
                                        - kind
                                        type: object
                                      id:
                                        description: Mandatory identifier that allows
                                          referencing this command in composite commands,
                                          from a parent, or in events.
                                        type: string
                                      inlined:
                                        description: Inlined content of the VsCode
                                          configuration
                                        type: string
                                      locationType:
                                        description: Type of Vscode configuration
                                          command location
                                        enum:
                                        - Uri
                                        - Inlined
                                        type: string
                                      uri:
                                        description: Location as an absolute of relative
                                          URI the VsCode configuration will be fetched
                                          from
                                        type: string
                                    required:
                                    - id
                                    type: object
                                type: object
                              type: array
                            components:
                              description: Overrides of components encapsulated in
                                a plugin. Overriding is done using a strategic merge
                                patch. A plugin cannot override embedded plugin components.
                              items:
                                oneOf:
                                - required:
                                  - container
                                - required:
                                  - kubernetes
                                - required:
                                  - openshift
                                - required:
                                  - volume
                                properties:
                                  componentType:
                                    description: Type of component override for a
                                      plugin
                                    enum:
                                    - Container
                                    - Kubernetes
                                    - Openshift
                                    - Volume
                                    type: string
                                  container:
                                    description: Configuration overriding for a Container
                                      component in a plugin
                                    properties:
                                      args:
                                        description: "The arguments to supply to the
                                          command running the dockerimage component.
                                          The arguments are supplied either to the
                                          default command provided in the image or
                                          to the overridden command. \n Defaults to
                                          an empty array, meaning use whatever is
                                          defined in the image."
                                        items:
                                          type: string
                                        type: array
                                      command:
                                        description: "The command to run in the dockerimage
                                          component instead of the default one provided
                                          in the image. \n Defaults to an empty array,
                                          meaning use whatever is defined in the image."
                                        items:
                                          type: string
                                        type: array
                                      dedicatedPod:
                                        description: "Specify if a container should
                                          run in its own separated pod, instead of
                                          running as part of the main development
                                          environment pod. \n Default value is `false`"
                                        type: boolean
                                      endpoints:
                                        items:
                                          properties:
                                            attributes:
                                              additionalProperties:
                                                type: string
                                              description: "Map of implementation-dependant
                                                string-based free-form attributes.
                                                \n Examples of Che-specific attributes:
                                                \n - cookiesAuthEnabled: \"true\"
                                                / \"false\", \n - type: \"terminal\"
                                                / \"ide\" / \"ide-dev\","
                                              type: object
                                            exposure:
                                              description: "Describes how the endpoint
                                                should be exposed on the network.
                                                \n - `public` means that the endpoint
                                                will be exposed on the public network,
                                                typically through a K8S ingress or
                                                an OpenShift route. \n - `internal`
                                                means that the endpoint will be exposed
                                                internally outside of the main workspace
                                                POD, typically by K8S services, to
                                                be consumed by other elements running
                                                on the same cloud internal network.
                                                \n - `none` means that the endpoint
                                                will not be exposed and will only
                                                be accessible inside the main workspace
                                                POD, on a local address. \n Default
                                                value is `public`"
                                              enum:
                                              - public
                                              - internal
                                              - none
                                              type: string
                                            name:
                                              type: string
                                            path:
                                              description: Path of the endpoint URL
                                              type: string
                                            protocol:
                                              description: "Describes the application
                                                and transport protocols of the traffic
                                                that will go through this endpoint.
                                                \n - `http`: Endpoint will have `http`
                                                traffic, typically on a TCP connection.
                                                It will be automaticaly promoted to
                                                `https` when the `secure` field is
                                                set to `true`. \n - `https`: Endpoint
                                                will have `https` traffic, typically
                                                on a TCP connection. \n - `ws`: Endpoint
                                                will have `ws` traffic, typically
                                                on a TCP connection. It will be automaticaly
                                                promoted to `wss` when the `secure`
                                                field is set to `true`. \n - `wss`:
                                                Endpoint will have `wss` traffic,
                                                typically on a TCP connection. \n
                                                - `tcp`: Endpoint will have traffic
                                                on a TCP connection, without specifying
                                                an application protocol. \n - `udp`:
                                                Endpoint will have traffic on an UDP
                                                connection, without specifying an
                                                application protocol. \n Default value
                                                is `http`"
                                              type: string
                                            secure:
                                              description: Describes whether the endpoint
                                                should be secured and protected by
                                                some authentication process
                                              type: boolean
                                            targetPort:
                                              type: integer
                                          required:
                                          - name
                                          type: object
                                        type: array
                                      env:
                                        description: Environment variables used in
                                          this container
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      image:
                                        type: string
                                      memoryLimit:
                                        type: string
                                      mountSources:
                                        type: boolean
                                      name:
                                        type: string
                                      sourceMapping:
                                        description: Optional specification of the
                                          path in the container where project sources
                                          should be transferred/mounted when `mountSources`
                                          is `true`. When omitted, the value of the
                                          `PROJECTS_ROOT` environment variable is
                                          used.
                                        type: string
                                      volumeMounts:
                                        description: List of volumes mounts that should
                                          be mounted is this container.
                                        items:
                                          description: Volume that should be mounted
                                            to a component container
                                          properties:
                                            name:
                                              description: The volume mount name is
                                                the name of an existing `Volume` component.
                                                If several containers mount the same
                                                volume name then they will reuse the
                                                same volume and will be able to access
                                                to the same files.
                                              type: string
                                            path:
                                              description: The path in the component
                                                container where the volume should
                                                be mounted. If not path is mentioned,
                                                default path is the is `/<name>`.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                    required:
                                    - name
                                    type: object
                                  kubernetes:
                                    description: Configuration overriding for a Kubernetes
                                      component in a plugin
                                    oneOf:
                                    - required:
                                      - uri
                                    - required:
                                      - inlined
                                    properties:
                                      endpoints:
                                        items:
                                          properties:
                                            attributes:
                                              additionalProperties:
                                                type: string
                                              description: "Map of implementation-dependant
                                                string-based free-form attributes.
                                                \n Examples of Che-specific attributes:
                                                \n - cookiesAuthEnabled: \"true\"
                                                / \"false\", \n - type: \"terminal\"
                                                / \"ide\" / \"ide-dev\","
                                              type: object
                                            exposure:
                                              description: "Describes how the endpoint
                                                should be exposed on the network.
                                                \n - `public` means that the endpoint
                                                will be exposed on the public network,
                                                typically through a K8S ingress or
                                                an OpenShift route. \n - `internal`
                                                means that the endpoint will be exposed
                                                internally outside of the main workspace
                                                POD, typically by K8S services, to
                                                be consumed by other elements running
                                                on the same cloud internal network.
                                                \n - `none` means that the endpoint
                                                will not be exposed and will only
                                                be accessible inside the main workspace
                                                POD, on a local address. \n Default
                                                value is `public`"
                                              enum:
                                              - public
                                              - internal
                                              - none
                                              type: string
                                            name:
                                              type: string
                                            path:
                                              description: Path of the endpoint URL
                                              type: string
                                            protocol:
                                              description: "Describes the application
                                                and transport protocols of the traffic
                                                that will go through this endpoint.
                                                \n - `http`: Endpoint will have `http`
                                                traffic, typically on a TCP connection.
                                                It will be automaticaly promoted to
                                                `https` when the `secure` field is
                                                set to `true`. \n - `https`: Endpoint
                                                will have `https` traffic, typically
                                                on a TCP connection. \n - `ws`: Endpoint
                                                will have `ws` traffic, typically
                                                on a TCP connection. It will be automaticaly
                                                promoted to `wss` when the `secure`
                                                field is set to `true`. \n - `wss`:
                                                Endpoint will have `wss` traffic,
                                                typically on a TCP connection. \n
                                                - `tcp`: Endpoint will have traffic
                                                on a TCP connection, without specifying
                                                an application protocol. \n - `udp`:
                                                Endpoint will have traffic on an UDP
                                                connection, without specifying an
                                                application protocol. \n Default value
                                                is `http`"
                                              type: string
                                            secure:
                                              description: Describes whether the endpoint
                                                should be secured and protected by
                                                some authentication process
                                              type: boolean
                                            targetPort:
                                              type: integer
                                          required:
                                          - name
                                          type: object
                                        type: array
                                      inlined:
                                        description: Inlined manifest
                                        type: string
                                      locationType:
                                        description: Type of Kubernetes-like location
                                        enum:
                                        - Uri
                                        - Inlined
                                        type: string
                                      name:
                                        description: Mandatory name that allows referencing
                                          the component in commands, or inside a parent
                                        type: string
                                      uri:
                                        description: Location in a file fetched from
                                          a uri.
                                        type: string
                                    required:
                                    - name
                                    type: object
                                  openshift:
                                    description: Configuration overriding for an OpenShift
                                      component in a plugin
                                    oneOf:
                                    - required:
                                      - uri
                                    - required:
                                      - inlined
                                    properties:
                                      endpoints:
                                        items:
                                          properties:
                                            attributes:
                                              additionalProperties:
                                                type: string
                                              description: "Map of implementation-dependant
                                                string-based free-form attributes.
                                                \n Examples of Che-specific attributes:
                                                \n - cookiesAuthEnabled: \"true\"
                                                / \"false\", \n - type: \"terminal\"
                                                / \"ide\" / \"ide-dev\","
                                              type: object
                                            exposure:
                                              description: "Describes how the endpoint
                                                should be exposed on the network.
                                                \n - `public` means that the endpoint
                                                will be exposed on the public network,
                                                typically through a K8S ingress or
                                                an OpenShift route. \n - `internal`
                                                means that the endpoint will be exposed
                                                internally outside of the main workspace
                                                POD, typically by K8S services, to
                                                be consumed by other elements running
                                                on the same cloud internal network.
                                                \n - `none` means that the endpoint
                                                will not be exposed and will only
                                                be accessible inside the main workspace
                                                POD, on a local address. \n Default
                                                value is `public`"
                                              enum:
                                              - public
                                              - internal
                                              - none
                                              type: string
                                            name:
                                              type: string
                                            path:
                                              description: Path of the endpoint URL
                                              type: string
                                            protocol:
                                              description: "Describes the application
                                                and transport protocols of the traffic
                                                that will go through this endpoint.
                                                \n - `http`: Endpoint will have `http`
                                                traffic, typically on a TCP connection.
                                                It will be automaticaly promoted to
                                                `https` when the `secure` field is
                                                set to `true`. \n - `https`: Endpoint
                                                will have `https` traffic, typically
                                                on a TCP connection. \n - `ws`: Endpoint
                                                will have `ws` traffic, typically
                                                on a TCP connection. It will be automaticaly
                                                promoted to `wss` when the `secure`
                                                field is set to `true`. \n - `wss`:
                                                Endpoint will have `wss` traffic,
                                                typically on a TCP connection. \n
                                                - `tcp`: Endpoint will have traffic
                                                on a TCP connection, without specifying
                                                an application protocol. \n - `udp`:
                                                Endpoint will have traffic on an UDP
                                                connection, without specifying an
                                                application protocol. \n Default value
                                                is `http`"
                                              type: string
                                            secure:
                                              description: Describes whether the endpoint
                                                should be secured and protected by
                                                some authentication process
                                              type: boolean
                                            targetPort:
                                              type: integer
                                          required:
                                          - name
                                          type: object
                                        type: array
                                      inlined:
                                        description: Inlined manifest
                                        type: string
                                      locationType:
                                        description: Type of Kubernetes-like location
                                        enum:
                                        - Uri
                                        - Inlined
                                        type: string
                                      name:
                                        description: Mandatory name that allows referencing
                                          the component in commands, or inside a parent
                                        type: string
                                      uri:
                                        description: Location in a file fetched from
                                          a uri.
                                        type: string
                                    required:
                                    - name
                                    type: object
                                  volume:
                                    description: Configuration overriding for a Volume
                                      component in a plugin
                                    properties:
                                      ephemeral:
                                        description: Ephemeral volumes are not stored
                                          persistently across restarts. Defaults to
                                          false
                                        type: boolean
                                      name:
                                        description: Mandatory name that allows referencing
                                          the Volume component in Container volume
                                          mounts or inside a parent
                                        type: string
                                      size:
                                        description: Size of the volume
                                        type: string
                                    required:
                                    - name
                                    type: object
                                type: object
                              type: array
                            id:
                              description: Id in a registry that contains a Devfile
                                yaml file
                              type: string
                            importReferenceType:
                              description: type of location from where the referenced
                                template structure should be retrieved
                              enum:
                              - Uri
                              - Id
                              - Kubernetes
                              type: string
                            kubernetes:
                              description: Reference to a Kubernetes CRD of type DevWorkspaceTemplate
                              properties:
                                name:
                                  type: string
                                namespace:
                                  type: string
                              required:
                              - name
                              type: object
                            name:
                              description: Optional name that allows referencing the
                                component in commands, or inside a parent If omitted
                                it will be infered from the location (uri or registryEntry)
                              type: string
                            registryUrl:
                              type: string
                            uri:
                              description: Uri of a Devfile yaml file
                              type: string
                          type: object
                        volume:
                          description: Allows specifying the definition of a volume
                            shared by several other components
                          properties:
                            ephemeral:
                              description: Ephemeral volumes are not stored persistently
                                across restarts. Defaults to false
                              type: boolean
                            name:
                              description: Mandatory name that allows referencing
                                the Volume component in Container volume mounts or
                                inside a parent
                              type: string
                            size:
                              description: Size of the volume
                              type: string
                          required:
                          - name
                          type: object
                      type: object
                    type: array
                  events:
                    description: Bindings of commands to events. Each command is referred-to
                      by its name.
                    properties:
                      postStart:
                        description: Names of commands that should be executed after
                          the workspace is completely started. In the case of Che-Theia,
                          these commands should be executed after all plugins and
                          extensions have started, including project cloning. This
                          means that those commands are not triggered until the user
                          opens the IDE in his browser.
                        items:
                          type: string
                        type: array
                      postStop:
                        description: Names of commands that should be executed after
                          stopping the workspace.
                        items:
                          type: string
                        type: array
                      preStart:
                        description: Names of commands that should be executed before
                          the workspace start. Kubernetes-wise, these commands would
                          typically be executed in init containers of the workspace
                          POD.
                        items:
                          type: string
                        type: array
                      preStop:
                        description: Names of commands that should be executed before
                          stopping the workspace.
                        items:
                          type: string
                        type: array
                    type: object
                  parent:
                    description: Parent workspace template
                    oneOf:
                    - required:
                      - uri
                    - required:
                      - id
                    - required:
                      - kubernetes
                    properties:
                      commands:
                        description: Overrides of commands encapsulated in a parent
                          devfile or a plugin. Overriding is done using a strategic
                          merge patch
                        items:
                          oneOf:
                          - required:
                            - exec
                          - required:
                            - apply
                          - required:
                            - vscodeTask
                          - required:
                            - vscodeLaunch
                          - required:
                            - composite
                          - required:
                            - custom
                          properties:
                            apply:
                              description: "Command that consists in applying a given
                                component definition, typically bound to a workspace
                                event. \n For example, when an `apply` command is
                                bound to a `preStart` event, and references a `container`
                                component, it will start the container as a K8S initContainer
                                in the workspace POD, unless the component has its
                                `dedicatedPod` field set to `true`. \n When no `apply`
                                command exist for a given component, it is assumed
                                the component will be applied at workspace start by
                                default."
                              properties:
                                attributes:
                                  additionalProperties:
                                    type: string
                                  description: Optional map of free-form additional
                                    command attributes
                                  type: object
                                component:
                                  description: Describes component that will be applied
                                  type: string
                                group:
                                  description: Defines the group this command is part
                                    of
                                  properties:
                                    isDefault:
                                      description: Identifies the default command
                                        for a given group kind
                                      type: boolean
                                    kind:
                                      description: Kind of group the command is part
                                        of
                                      enum:
                                      - build
                                      - run
                                      - test
                                      - debug
                                      type: string
                                  required:
                                  - kind
                                  type: object
                                id:
                                  description: Mandatory identifier that allows referencing
                                    this command in composite commands, from a parent,
                                    or in events.
                                  type: string
                                label:
                                  description: Optional label that provides a label
                                    for this command to be used in Editor UI menus
                                    for example
                                  type: string
                              required:
                              - id
                              type: object
                            commandType:
                              description: Type of workspace command
                              enum:
                              - Exec
                              - Apply
                              - VscodeTask
                              - VscodeLaunch
                              - Composite
                              - Custom
                              type: string
                            composite:
                              description: Composite command that allows executing
                                several sub-commands either sequentially or concurrently
                              properties:
                                attributes:
                                  additionalProperties:
                                    type: string
                                  description: Optional map of free-form additional
                                    command attributes
                                  type: object
                                commands:
                                  description: The commands that comprise this composite
                                    command
                                  items:
                                    type: string
                                  type: array
                                group:
                                  description: Defines the group this command is part
                                    of
                                  properties:
                                    isDefault:
                                      description: Identifies the default command
                                        for a given group kind
                                      type: boolean
                                    kind:
                                      description: Kind of group the command is part
                                        of
                                      enum:
                                      - build
                                      - run
                                      - test
                                      - debug
                                      type: string
                                  required:
                                  - kind
                                  type: object
                                id:
                                  description: Mandatory identifier that allows referencing
                                    this command in composite commands, from a parent,
                                    or in events.
                                  type: string
                                label:
                                  description: Optional label that provides a label
                                    for this command to be used in Editor UI menus
                                    for example
                                  type: string
                                parallel:
                                  description: Indicates if the sub-commands should
                                    be executed concurrently
                                  type: boolean
                              required:
                              - id
                              type: object
                            custom:
                              description: Custom command whose logic is implementation-dependant
                                and should be provided by the user possibly through
                                some dedicated plugin
                              properties:
                                attributes:
                                  additionalProperties:
                                    type: string
                                  description: Optional map of free-form additional
                                    command attributes
                                  type: object
                                commandClass:
                                  description: Class of command that the associated
                                    implementation component should use to process
                                    this command with the appropriate logic
                                  type: string
                                embeddedResource:
                                  description: Additional free-form configuration
                                    for this custom command that the implementation
                                    component will know how to use
                                  type: object
                                  x-kubernetes-embedded-resource: true
                                  x-kubernetes-preserve-unknown-fields: true
                                group:
                                  description: Defines the group this command is part
                                    of
                                  properties:
                                    isDefault:
                                      description: Identifies the default command
                                        for a given group kind
                                      type: boolean
                                    kind:
                                      description: Kind of group the command is part
                                        of
                                      enum:
                                      - build
                                      - run
                                      - test
                                      - debug
                                      type: string
                                  required:
                                  - kind
                                  type: object
                                id:
                                  description: Mandatory identifier that allows referencing
                                    this command in composite commands, from a parent,
                                    or in events.
                                  type: string
                                label:
                                  description: Optional label that provides a label
                                    for this command to be used in Editor UI menus
                                    for example
                                  type: string
                              required:
                              - commandClass
                              - embeddedResource
                              - id
                              type: object
                            exec:
                              description: CLI Command executed in an existing component
                                container
                              properties:
                                attributes:
                                  additionalProperties:
                                    type: string
                                  description: Optional map of free-form additional
                                    command attributes
                                  type: object
                                commandLine:
                                  description: "The actual command-line string \n
                                    Special variables that can be used: \n  - `$PROJECTS_ROOT`:
                                    A path where projects sources are mounted \n  -
                                    `$PROJECT_SOURCE`: A path to a project source
                                    ($PROJECTS_ROOT/<project-name>). If there are
                                    multiple projects, this will point to the directory
                                    of the first one."
                                  type: string
                                component:
                                  description: Describes component to which given
                                    action relates
                                  type: string
                                env:
                                  description: Optional list of environment variables
                                    that have to be set before running the command
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                group:
                                  description: Defines the group this command is part
                                    of
                                  properties:
                                    isDefault:
                                      description: Identifies the default command
                                        for a given group kind
                                      type: boolean
                                    kind:
                                      description: Kind of group the command is part
                                        of
                                      enum:
                                      - build
                                      - run
                                      - test
                                      - debug
                                      type: string
                                  required:
                                  - kind
                                  type: object
                                hotReloadCapable:
                                  description: "Whether the command is capable to
                                    reload itself when source code changes. If set
                                    to `true` the command won't be restarted and it
                                    is expected to handle file changes on its own.
                                    \n Default value is `false`"
                                  type: boolean
                                id:
                                  description: Mandatory identifier that allows referencing
                                    this command in composite commands, from a parent,
                                    or in events.
                                  type: string
                                label:
                                  description: Optional label that provides a label
                                    for this command to be used in Editor UI menus
                                    for example
                                  type: string
                                workingDir:
                                  description: "Working directory where the command
                                    should be executed \n Special variables that can
                                    be used: \n  - `${PROJECTS_ROOT}`: A path where
                                    projects sources are mounted \n  - `${PROJECT_SOURCE}`:
                                    A path to a project source (${PROJECTS_ROOT}/<project-name>).
                                    If there are multiple projects, this will point
                                    to the directory of the first one."
                                  type: string
                              required:
                              - id
                              type: object
                            vscodeLaunch:
                              description: "Command providing the definition of a
                                VsCode launch action \n Deprecated; removed in v1alpha2"
                              oneOf:
                              - required:
                                - uri
                              - required:
                                - inlined
                              properties:
                                attributes:
                                  additionalProperties:
                                    type: string
                                  description: Optional map of free-form additional
                                    command attributes
                                  type: object
                                group:
                                  description: Defines the group this command is part
                                    of
                                  properties:
                                    isDefault:
                                      description: Identifies the default command
                                        for a given group kind
                                      type: boolean
                                    kind:
                                      description: Kind of group the command is part
                                        of
                                      enum:
                                      - build
                                      - run
                                      - test
                                      - debug
                                      type: string
                                  required:
                                  - kind
                                  type: object
                                id:
                                  description: Mandatory identifier that allows referencing
                                    this command in composite commands, from a parent,
                                    or in events.
                                  type: string
                                inlined:
                                  description: Inlined content of the VsCode configuration
                                  type: string
                                locationType:
                                  description: Type of Vscode configuration command
                                    location
                                  enum:
                                  - Uri
                                  - Inlined
                                  type: string
                                uri:
                                  description: Location as an absolute of relative
                                    URI the VsCode configuration will be fetched from
                                  type: string
                              required:
                              - id
                              type: object
                            vscodeTask:
                              description: "Command providing the definition of a
                                VsCode Task \n Deprecated; removed in v1alpha2"
                              oneOf:
                              - required:
                                - uri
                              - required:
                                - inlined
                              properties:
                                attributes:
                                  additionalProperties:
                                    type: string
                                  description: Optional map of free-form additional
                                    command attributes
                                  type: object
                                group:
                                  description: Defines the group this command is part
                                    of
                                  properties:
                                    isDefault:
                                      description: Identifies the default command
                                        for a given group kind
                                      type: boolean
                                    kind:
                                      description: Kind of group the command is part
                                        of
                                      enum:
                                      - build
                                      - run
                                      - test
                                      - debug
                                      type: string
                                  required:
                                  - kind
                                  type: object
                                id:
                                  description: Mandatory identifier that allows referencing
                                    this command in composite commands, from a parent,
                                    or in events.
                                  type: string
                                inlined:
                                  description: Inlined content of the VsCode configuration
                                  type: string
                                locationType:
                                  description: Type of Vscode configuration command
                                    location
                                  enum:
                                  - Uri
                                  - Inlined
                                  type: string
                                uri:
                                  description: Location as an absolute of relative
                                    URI the VsCode configuration will be fetched from
                                  type: string
                              required:
                              - id
                              type: object
                          type: object
                        type: array
                      components:
                        description: Overrides of components encapsulated in a parent
                          devfile. Overriding is done using a strategic merge patch
                        items:
                          oneOf:
                          - required:
                            - container
                          - required:
                            - kubernetes
                          - required:
                            - openshift
                          - required:
                            - volume
                          - required:
                            - plugin
                          - required:
                            - custom
                          properties:
                            componentType:
                              description: Type of component
                              enum:
                              - Container
                              - Kubernetes
                              - Openshift
                              - Volume
                              - Plugin
                              - Custom
                              type: string
                            container:
                              description: Allows adding and configuring workspace-related
                                containers
                              properties:
                                args:
                                  description: "The arguments to supply to the command
                                    running the dockerimage component. The arguments
                                    are supplied either to the default command provided
                                    in the image or to the overridden command. \n
                                    Defaults to an empty array, meaning use whatever
                                    is defined in the image."
                                  items:
                                    type: string
                                  type: array
                                command:
                                  description: "The command to run in the dockerimage
                                    component instead of the default one provided
                                    in the image. \n Defaults to an empty array, meaning
                                    use whatever is defined in the image."
                                  items:
                                    type: string
                                  type: array
                                dedicatedPod:
                                  description: "Specify if a container should run
                                    in its own separated pod, instead of running as
                                    part of the main development environment pod.
                                    \n Default value is `false`"
                                  type: boolean
                                endpoints:
                                  items:
                                    properties:
                                      attributes:
                                        additionalProperties:
                                          type: string
                                        description: "Map of implementation-dependant
                                          string-based free-form attributes. \n Examples
                                          of Che-specific attributes: \n - cookiesAuthEnabled:
                                          \"true\" / \"false\", \n - type: \"terminal\"
                                          / \"ide\" / \"ide-dev\","
                                        type: object
                                      exposure:
                                        description: "Describes how the endpoint should
                                          be exposed on the network. \n - `public`
                                          means that the endpoint will be exposed
                                          on the public network, typically through
                                          a K8S ingress or an OpenShift route. \n
                                          - `internal` means that the endpoint will
                                          be exposed internally outside of the main
                                          workspace POD, typically by K8S services,
                                          to be consumed by other elements running
                                          on the same cloud internal network. \n -
                                          `none` means that the endpoint will not
                                          be exposed and will only be accessible inside
                                          the main workspace POD, on a local address.
                                          \n Default value is `public`"
                                        enum:
                                        - public
                                        - internal
                                        - none
                                        type: string
                                      name:
                                        type: string
                                      path:
                                        description: Path of the endpoint URL
                                        type: string
                                      protocol:
                                        description: "Describes the application and
                                          transport protocols of the traffic that
                                          will go through this endpoint. \n - `http`:
                                          Endpoint will have `http` traffic, typically
                                          on a TCP connection. It will be automaticaly
                                          promoted to `https` when the `secure` field
                                          is set to `true`. \n - `https`: Endpoint
                                          will have `https` traffic, typically on
                                          a TCP connection. \n - `ws`: Endpoint will
                                          have `ws` traffic, typically on a TCP connection.
                                          It will be automaticaly promoted to `wss`
                                          when the `secure` field is set to `true`.
                                          \n - `wss`: Endpoint will have `wss` traffic,
                                          typically on a TCP connection. \n - `tcp`:
                                          Endpoint will have traffic on a TCP connection,
                                          without specifying an application protocol.
                                          \n - `udp`: Endpoint will have traffic on
                                          an UDP connection, without specifying an
                                          application protocol. \n Default value is
                                          `http`"
                                        type: string
                                      secure:
                                        description: Describes whether the endpoint
                                          should be secured and protected by some
                                          authentication process
                                        type: boolean
                                      targetPort:
                                        type: integer
                                    required:
                                    - name
                                    type: object
                                  type: array
                                env:
                                  description: Environment variables used in this
                                    container
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                image:
                                  type: string
                                memoryLimit:
                                  type: string
                                mountSources:
                                  type: boolean
                                name:
                                  type: string
                                sourceMapping:
                                  description: Optional specification of the path
                                    in the container where project sources should
                                    be transferred/mounted when `mountSources` is
                                    `true`. When omitted, the value of the `PROJECTS_ROOT`
                                    environment variable is used.
                                  type: string
                                volumeMounts:
                                  description: List of volumes mounts that should
                                    be mounted is this container.
                                  items:
                                    description: Volume that should be mounted to
                                      a component container
                                    properties:
                                      name:
                                        description: The volume mount name is the
                                          name of an existing `Volume` component.
                                          If several containers mount the same volume
                                          name then they will reuse the same volume
                                          and will be able to access to the same files.
                                        type: string
                                      path:
                                        description: The path in the component container
                                          where the volume should be mounted. If not
                                          path is mentioned, default path is the is
                                          `/<name>`.
                                        type: string
                                    required:
                                    - name
                                    type: object
                                  type: array
                              required:
                              - name
                              type: object
                            custom:
                              description: Custom component whose logic is implementation-dependant
                                and should be provided by the user possibly through
                                some dedicated controller
                              properties:
                                componentClass:
                                  description: Class of component that the associated
                                    implementation controller should use to process
                                    this command with the appropriate logic
                                  type: string
                                embeddedResource:
                                  description: Additional free-form configuration
                                    for this custom component that the implementation
                                    controller will know how to use
                                  type: object
                                  x-kubernetes-embedded-resource: true
                                  x-kubernetes-preserve-unknown-fields: true
                                name:
                                  description: Mandatory name that allows referencing
                                    the component in commands, or inside a parent
                                  type: string
                              required:
                              - componentClass
                              - embeddedResource
                              - name
                              type: object
                            kubernetes:
                              description: Allows importing into the workspace the
                                Kubernetes resources defined in a given manifest.
                                For example this allows reusing the Kubernetes definitions
                                used to deploy some runtime components in production.
                              oneOf:
                              - required:
                                - uri
                              - required:
                                - inlined
                              properties:
                                endpoints:
                                  items:
                                    properties:
                                      attributes:
                                        additionalProperties:
                                          type: string
                                        description: "Map of implementation-dependant
                                          string-based free-form attributes. \n Examples
                                          of Che-specific attributes: \n - cookiesAuthEnabled:
                                          \"true\" / \"false\", \n - type: \"terminal\"
                                          / \"ide\" / \"ide-dev\","
                                        type: object
                                      exposure:
                                        description: "Describes how the endpoint should
                                          be exposed on the network. \n - `public`
                                          means that the endpoint will be exposed
                                          on the public network, typically through
                                          a K8S ingress or an OpenShift route. \n
                                          - `internal` means that the endpoint will
                                          be exposed internally outside of the main
                                          workspace POD, typically by K8S services,
                                          to be consumed by other elements running
                                          on the same cloud internal network. \n -
                                          `none` means that the endpoint will not
                                          be exposed and will only be accessible inside
                                          the main workspace POD, on a local address.
                                          \n Default value is `public`"
                                        enum:
                                        - public
                                        - internal
                                        - none
                                        type: string
                                      name:
                                        type: string
                                      path:
                                        description: Path of the endpoint URL
                                        type: string
                                      protocol:
                                        description: "Describes the application and
                                          transport protocols of the traffic that
                                          will go through this endpoint. \n - `http`:
                                          Endpoint will have `http` traffic, typically
                                          on a TCP connection. It will be automaticaly
                                          promoted to `https` when the `secure` field
                                          is set to `true`. \n - `https`: Endpoint
                                          will have `https` traffic, typically on
                                          a TCP connection. \n - `ws`: Endpoint will
                                          have `ws` traffic, typically on a TCP connection.
                                          It will be automaticaly promoted to `wss`
                                          when the `secure` field is set to `true`.
                                          \n - `wss`: Endpoint will have `wss` traffic,
                                          typically on a TCP connection. \n - `tcp`:
                                          Endpoint will have traffic on a TCP connection,
                                          without specifying an application protocol.
                                          \n - `udp`: Endpoint will have traffic on
                                          an UDP connection, without specifying an
                                          application protocol. \n Default value is
                                          `http`"
                                        type: string
                                      secure:
                                        description: Describes whether the endpoint
                                          should be secured and protected by some
                                          authentication process
                                        type: boolean
                                      targetPort:
                                        type: integer
                                    required:
                                    - name
                                    type: object
                                  type: array
                                inlined:
                                  description: Inlined manifest
                                  type: string
                                locationType:
                                  description: Type of Kubernetes-like location
                                  enum:
                                  - Uri
                                  - Inlined
                                  type: string
                                name:
                                  description: Mandatory name that allows referencing
                                    the component in commands, or inside a parent
                                  type: string
                                uri:
                                  description: Location in a file fetched from a uri.
                                  type: string
                              required:
                              - name
                              type: object
                            openshift:
                              description: Allows importing into the workspace the
                                OpenShift resources defined in a given manifest. For
                                example this allows reusing the OpenShift definitions
                                used to deploy some runtime components in production.
                              oneOf:
                              - required:
                                - uri
                              - required:
                                - inlined
                              properties:
                                endpoints:
                                  items:
                                    properties:
                                      attributes:
                                        additionalProperties:
                                          type: string
                                        description: "Map of implementation-dependant
                                          string-based free-form attributes. \n Examples
                                          of Che-specific attributes: \n - cookiesAuthEnabled:
                                          \"true\" / \"false\", \n - type: \"terminal\"
                                          / \"ide\" / \"ide-dev\","
                                        type: object
                                      exposure:
                                        description: "Describes how the endpoint should
                                          be exposed on the network. \n - `public`
                                          means that the endpoint will be exposed
                                          on the public network, typically through
                                          a K8S ingress or an OpenShift route. \n
                                          - `internal` means that the endpoint will
                                          be exposed internally outside of the main
                                          workspace POD, typically by K8S services,
                                          to be consumed by other elements running
                                          on the same cloud internal network. \n -
                                          `none` means that the endpoint will not
                                          be exposed and will only be accessible inside
                                          the main workspace POD, on a local address.
                                          \n Default value is `public`"
                                        enum:
                                        - public
                                        - internal
                                        - none
                                        type: string
                                      name:
                                        type: string
                                      path:
                                        description: Path of the endpoint URL
                                        type: string
                                      protocol:
                                        description: "Describes the application and
                                          transport protocols of the traffic that
                                          will go through this endpoint. \n - `http`:
                                          Endpoint will have `http` traffic, typically
                                          on a TCP connection. It will be automaticaly
                                          promoted to `https` when the `secure` field
                                          is set to `true`. \n - `https`: Endpoint
                                          will have `https` traffic, typically on
                                          a TCP connection. \n - `ws`: Endpoint will
                                          have `ws` traffic, typically on a TCP connection.
                                          It will be automaticaly promoted to `wss`
                                          when the `secure` field is set to `true`.
                                          \n - `wss`: Endpoint will have `wss` traffic,
                                          typically on a TCP connection. \n - `tcp`:
                                          Endpoint will have traffic on a TCP connection,
                                          without specifying an application protocol.
                                          \n - `udp`: Endpoint will have traffic on
                                          an UDP connection, without specifying an
                                          application protocol. \n Default value is
                                          `http`"
                                        type: string
                                      secure:
                                        description: Describes whether the endpoint
                                          should be secured and protected by some
                                          authentication process
                                        type: boolean
                                      targetPort:
                                        type: integer
                                    required:
                                    - name
                                    type: object
                                  type: array
                                inlined:
                                  description: Inlined manifest
                                  type: string
                                locationType:
                                  description: Type of Kubernetes-like location
                                  enum:
                                  - Uri
                                  - Inlined
                                  type: string
                                name:
                                  description: Mandatory name that allows referencing
                                    the component in commands, or inside a parent
                                  type: string
                                uri:
                                  description: Location in a file fetched from a uri.
                                  type: string
                              required:
                              - name
                              type: object
                            plugin:
                              description: "Allows importing a plugin. \n Plugins
                                are mainly imported devfiles that contribute components,
                                commands and events as a consistent single unit. They
                                are defined in either YAML files following the devfile
                                syntax, or as `DevWorkspaceTemplate` Kubernetes Custom
                                Resources"
                              oneOf:
                              - required:
                                - uri
                              - required:
                                - id
                              - required:
                                - kubernetes
                              properties:
                                commands:
                                  description: Overrides of commands encapsulated
                                    in a parent devfile or a plugin. Overriding is
                                    done using a strategic merge patch
                                  items:
                                    oneOf:
                                    - required:
                                      - exec
                                    - required:
                                      - apply
                                    - required:
                                      - vscodeTask
                                    - required:
                                      - vscodeLaunch
                                    - required:
                                      - composite
                                    - required:
                                      - custom
                                    properties:
                                      apply:
                                        description: "Command that consists in applying
                                          a given component definition, typically
                                          bound to a workspace event. \n For example,
                                          when an `apply` command is bound to a `preStart`
                                          event, and references a `container` component,
                                          it will start the container as a K8S initContainer
                                          in the workspace POD, unless the component
                                          has its `dedicatedPod` field set to `true`.
                                          \n When no `apply` command exist for a given
                                          component, it is assumed the component will
                                          be applied at workspace start by default."
                                        properties:
                                          attributes:
                                            additionalProperties:
                                              type: string
                                            description: Optional map of free-form
                                              additional command attributes
                                            type: object
                                          component:
                                            description: Describes component that
                                              will be applied
                                            type: string
                                          group:
                                            description: Defines the group this command
                                              is part of
                                            properties:
                                              isDefault:
                                                description: Identifies the default
                                                  command for a given group kind
                                                type: boolean
                                              kind:
                                                description: Kind of group the command
                                                  is part of
                                                enum:
                                                - build
                                                - run
                                                - test
                                                - debug
                                                type: string
                                            required:
                                            - kind
                                            type: object
                                          id:
                                            description: Mandatory identifier that
                                              allows referencing this command in composite
                                              commands, from a parent, or in events.
                                            type: string
                                          label:
                                            description: Optional label that provides
                                              a label for this command to be used
                                              in Editor UI menus for example
                                            type: string
                                        required:
                                        - id
                                        type: object
                                      commandType:
                                        description: Type of workspace command
                                        enum:
                                        - Exec
                                        - Apply
                                        - VscodeTask
                                        - VscodeLaunch
                                        - Composite
                                        - Custom
                                        type: string
                                      composite:
                                        description: Composite command that allows
                                          executing several sub-commands either sequentially
                                          or concurrently
                                        properties:
                                          attributes:
                                            additionalProperties:
                                              type: string
                                            description: Optional map of free-form
                                              additional command attributes
                                            type: object
                                          commands:
                                            description: The commands that comprise
                                              this composite command
                                            items:
                                              type: string
                                            type: array
                                          group:
                                            description: Defines the group this command
                                              is part of
                                            properties:
                                              isDefault:
                                                description: Identifies the default
                                                  command for a given group kind
                                                type: boolean
                                              kind:
                                                description: Kind of group the command
                                                  is part of
                                                enum:
                                                - build
                                                - run
                                                - test
                                                - debug
                                                type: string
                                            required:
                                            - kind
                                            type: object
                                          id:
                                            description: Mandatory identifier that
                                              allows referencing this command in composite
                                              commands, from a parent, or in events.
                                            type: string
                                          label:
                                            description: Optional label that provides
                                              a label for this command to be used
                                              in Editor UI menus for example
                                            type: string
                                          parallel:
                                            description: Indicates if the sub-commands
                                              should be executed concurrently
                                            type: boolean
                                        required:
                                        - id
                                        type: object
                                      custom:
                                        description: Custom command whose logic is
                                          implementation-dependant and should be provided
                                          by the user possibly through some dedicated
                                          plugin
                                        properties:
                                          attributes:
                                            additionalProperties:
                                              type: string
                                            description: Optional map of free-form
                                              additional command attributes
                                            type: object
                                          commandClass:
                                            description: Class of command that the
                                              associated implementation component
                                              should use to process this command with
                                              the appropriate logic
                                            type: string
                                          embeddedResource:
                                            description: Additional free-form configuration
                                              for this custom command that the implementation
                                              component will know how to use
                                            type: object
                                            x-kubernetes-embedded-resource: true
                                            x-kubernetes-preserve-unknown-fields: true
                                          group:
                                            description: Defines the group this command
                                              is part of
                                            properties:
                                              isDefault:
                                                description: Identifies the default
                                                  command for a given group kind
                                                type: boolean
                                              kind:
                                                description: Kind of group the command
                                                  is part of
                                                enum:
                                                - build
                                                - run
                                                - test
                                                - debug
                                                type: string
                                            required:
                                            - kind
                                            type: object
                                          id:
                                            description: Mandatory identifier that
                                              allows referencing this command in composite
                                              commands, from a parent, or in events.
                                            type: string
                                          label:
                                            description: Optional label that provides
                                              a label for this command to be used
                                              in Editor UI menus for example
                                            type: string
                                        required:
                                        - commandClass
                                        - embeddedResource
                                        - id
                                        type: object
                                      exec:
                                        description: CLI Command executed in an existing
                                          component container
                                        properties:
                                          attributes:
                                            additionalProperties:
                                              type: string
                                            description: Optional map of free-form
                                              additional command attributes
                                            type: object
                                          commandLine:
                                            description: "The actual command-line
                                              string \n Special variables that can
                                              be used: \n  - `$PROJECTS_ROOT`: A path
                                              where projects sources are mounted \n
                                              \ - `$PROJECT_SOURCE`: A path to a project
                                              source ($PROJECTS_ROOT/<project-name>).
                                              If there are multiple projects, this
                                              will point to the directory of the first
                                              one."
                                            type: string
                                          component:
                                            description: Describes component to which
                                              given action relates
                                            type: string
                                          env:
                                            description: Optional list of environment
                                              variables that have to be set before
                                              running the command
                                            items:
                                              properties:
                                                name:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                          group:
                                            description: Defines the group this command
                                              is part of
                                            properties:
                                              isDefault:
                                                description: Identifies the default
                                                  command for a given group kind
                                                type: boolean
                                              kind:
                                                description: Kind of group the command
                                                  is part of
                                                enum:
                                                - build
                                                - run
                                                - test
                                                - debug
                                                type: string
                                            required:
                                            - kind
                                            type: object
                                          hotReloadCapable:
                                            description: "Whether the command is capable
                                              to reload itself when source code changes.
                                              If set to `true` the command won't be
                                              restarted and it is expected to handle
                                              file changes on its own. \n Default
                                              value is `false`"
                                            type: boolean
                                          id:
                                            description: Mandatory identifier that
                                              allows referencing this command in composite
                                              commands, from a parent, or in events.
                                            type: string
                                          label:
                                            description: Optional label that provides
                                              a label for this command to be used
                                              in Editor UI menus for example
                                            type: string
                                          workingDir:
                                            description: "Working directory where
                                              the command should be executed \n Special
                                              variables that can be used: \n  - `${PROJECTS_ROOT}`:
                                              A path where projects sources are mounted
                                              \n  - `${PROJECT_SOURCE}`: A path to
                                              a project source (${PROJECTS_ROOT}/<project-name>).
                                              If there are multiple projects, this
                                              will point to the directory of the first
                                              one."
                                            type: string
                                        required:
                                        - id
                                        type: object
                                      vscodeLaunch:
                                        description: "Command providing the definition
                                          of a VsCode launch action \n Deprecated;
                                          removed in v1alpha2"
                                        oneOf:
                                        - required:
                                          - uri
                                        - required:
                                          - inlined
                                        properties:
                                          attributes:
                                            additionalProperties:
                                              type: string
                                            description: Optional map of free-form
                                              additional command attributes
                                            type: object
                                          group:
                                            description: Defines the group this command
                                              is part of
                                            properties:
                                              isDefault:
                                                description: Identifies the default
                                                  command for a given group kind
                                                type: boolean
                                              kind:
                                                description: Kind of group the command
                                                  is part of
                                                enum:
                                                - build
                                                - run
                                                - test
                                                - debug
                                                type: string
                                            required:
                                            - kind
                                            type: object
                                          id:
                                            description: Mandatory identifier that
                                              allows referencing this command in composite
                                              commands, from a parent, or in events.
                                            type: string
                                          inlined:
                                            description: Inlined content of the VsCode
                                              configuration
                                            type: string
                                          locationType:
                                            description: Type of Vscode configuration
                                              command location
                                            enum:
                                            - Uri
                                            - Inlined
                                            type: string
                                          uri:
                                            description: Location as an absolute of
                                              relative URI the VsCode configuration
                                              will be fetched from
                                            type: string
                                        required:
                                        - id
                                        type: object
                                      vscodeTask:
                                        description: "Command providing the definition
                                          of a VsCode Task \n Deprecated; removed
                                          in v1alpha2"
                                        oneOf:
                                        - required:
                                          - uri
                                        - required:
                                          - inlined
                                        properties:
                                          attributes:
                                            additionalProperties:
                                              type: string
                                            description: Optional map of free-form
                                              additional command attributes
                                            type: object
                                          group:
                                            description: Defines the group this command
                                              is part of
                                            properties:
                                              isDefault:
                                                description: Identifies the default
                                                  command for a given group kind
                                                type: boolean
                                              kind:
                                                description: Kind of group the command
                                                  is part of
                                                enum:
                                                - build
                                                - run
                                                - test
                                                - debug
                                                type: string
                                            required:
                                            - kind
                                            type: object
                                          id:
                                            description: Mandatory identifier that
                                              allows referencing this command in composite
                                              commands, from a parent, or in events.
                                            type: string
                                          inlined:
                                            description: Inlined content of the VsCode
                                              configuration
                                            type: string
                                          locationType:
                                            description: Type of Vscode configuration
                                              command location
                                            enum:
                                            - Uri
                                            - Inlined
                                            type: string
                                          uri:
                                            description: Location as an absolute of
                                              relative URI the VsCode configuration
                                              will be fetched from
                                            type: string
                                        required:
                                        - id
                                        type: object
                                    type: object
                                  type: array
                                components:
                                  description: Overrides of components encapsulated
                                    in a plugin. Overriding is done using a strategic
                                    merge patch. A plugin cannot override embedded
                                    plugin components.
                                  items:
                                    oneOf:
                                    - required:
                                      - container
                                    - required:
                                      - kubernetes
                                    - required:
                                      - openshift
                                    - required:
                                      - volume
                                    properties:
                                      componentType:
                                        description: Type of component override for
                                          a plugin
                                        enum:
                                        - Container
                                        - Kubernetes
                                        - Openshift
                                        - Volume
                                        type: string
                                      container:
                                        description: Configuration overriding for
                                          a Container component in a plugin
                                        properties:
                                          args:
                                            description: "The arguments to supply
                                              to the command running the dockerimage
                                              component. The arguments are supplied
                                              either to the default command provided
                                              in the image or to the overridden command.
                                              \n Defaults to an empty array, meaning
                                              use whatever is defined in the image."
                                            items:
                                              type: string
                                            type: array
                                          command:
                                            description: "The command to run in the
                                              dockerimage component instead of the
                                              default one provided in the image. \n
                                              Defaults to an empty array, meaning
                                              use whatever is defined in the image."
                                            items:
                                              type: string
                                            type: array
                                          dedicatedPod:
                                            description: "Specify if a container should
                                              run in its own separated pod, instead
                                              of running as part of the main development
                                              environment pod. \n Default value is
                                              `false`"
                                            type: boolean
                                          endpoints:
                                            items:
                                              properties:
                                                attributes:
                                                  additionalProperties:
                                                    type: string
                                                  description: "Map of implementation-dependant
                                                    string-based free-form attributes.
                                                    \n Examples of Che-specific attributes:
                                                    \n - cookiesAuthEnabled: \"true\"
                                                    / \"false\", \n - type: \"terminal\"
                                                    / \"ide\" / \"ide-dev\","
                                                  type: object
                                                exposure:
                                                  description: "Describes how the
                                                    endpoint should be exposed on
                                                    the network. \n - `public` means
                                                    that the endpoint will be exposed
                                                    on the public network, typically
                                                    through a K8S ingress or an OpenShift
                                                    route. \n - `internal` means that
                                                    the endpoint will be exposed internally
                                                    outside of the main workspace
                                                    POD, typically by K8S services,
                                                    to be consumed by other elements
                                                    running on the same cloud internal
                                                    network. \n - `none` means that
                                                    the endpoint will not be exposed
                                                    and will only be accessible inside
                                                    the main workspace POD, on a local
                                                    address. \n Default value is `public`"
                                                  enum:
                                                  - public
                                                  - internal
                                                  - none
                                                  type: string
                                                name:
                                                  type: string
                                                path:
                                                  description: Path of the endpoint
                                                    URL
                                                  type: string
                                                protocol:
                                                  description: "Describes the application
                                                    and transport protocols of the
                                                    traffic that will go through this
                                                    endpoint. \n - `http`: Endpoint
                                                    will have `http` traffic, typically
                                                    on a TCP connection. It will be
                                                    automaticaly promoted to `https`
                                                    when the `secure` field is set
                                                    to `true`. \n - `https`: Endpoint
                                                    will have `https` traffic, typically
                                                    on a TCP connection. \n - `ws`:
                                                    Endpoint will have `ws` traffic,
                                                    typically on a TCP connection.
                                                    It will be automaticaly promoted
                                                    to `wss` when the `secure` field
                                                    is set to `true`. \n - `wss`:
                                                    Endpoint will have `wss` traffic,
                                                    typically on a TCP connection.
                                                    \n - `tcp`: Endpoint will have
                                                    traffic on a TCP connection, without
                                                    specifying an application protocol.
                                                    \n - `udp`: Endpoint will have
                                                    traffic on an UDP connection,
                                                    without specifying an application
                                                    protocol. \n Default value is
                                                    `http`"
                                                  type: string
                                                secure:
                                                  description: Describes whether the
                                                    endpoint should be secured and
                                                    protected by some authentication
                                                    process
                                                  type: boolean
                                                targetPort:
                                                  type: integer
                                              required:
                                              - name
                                              type: object
                                            type: array
                                          env:
                                            description: Environment variables used
                                              in this container
                                            items:
                                              properties:
                                                name:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                          image:
                                            type: string
                                          memoryLimit:
                                            type: string
                                          mountSources:
                                            type: boolean
                                          name:
                                            type: string
                                          sourceMapping:
                                            description: Optional specification of
                                              the path in the container where project
                                              sources should be transferred/mounted
                                              when `mountSources` is `true`. When
                                              omitted, the value of the `PROJECTS_ROOT`
                                              environment variable is used.
                                            type: string
                                          volumeMounts:
                                            description: List of volumes mounts that
                                              should be mounted is this container.
                                            items:
                                              description: Volume that should be mounted
                                                to a component container
                                              properties:
                                                name:
                                                  description: The volume mount name
                                                    is the name of an existing `Volume`
                                                    component. If several containers
                                                    mount the same volume name then
                                                    they will reuse the same volume
                                                    and will be able to access to
                                                    the same files.
                                                  type: string
                                                path:
                                                  description: The path in the component
                                                    container where the volume should
                                                    be mounted. If not path is mentioned,
                                                    default path is the is `/<name>`.
                                                  type: string
                                              required:
                                              - name
                                              type: object
                                            type: array
                                        required:
                                        - name
                                        type: object
                                      kubernetes:
                                        description: Configuration overriding for
                                          a Kubernetes component in a plugin
                                        oneOf:
                                        - required:
                                          - uri
                                        - required:
                                          - inlined
                                        properties:
                                          endpoints:
                                            items:
                                              properties:
                                                attributes:
                                                  additionalProperties:
                                                    type: string
                                                  description: "Map of implementation-dependant
                                                    string-based free-form attributes.
                                                    \n Examples of Che-specific attributes:
                                                    \n - cookiesAuthEnabled: \"true\"
                                                    / \"false\", \n - type: \"terminal\"
                                                    / \"ide\" / \"ide-dev\","
                                                  type: object
                                                exposure:
                                                  description: "Describes how the
                                                    endpoint should be exposed on
                                                    the network. \n - `public` means
                                                    that the endpoint will be exposed
                                                    on the public network, typically
                                                    through a K8S ingress or an OpenShift
                                                    route. \n - `internal` means that
                                                    the endpoint will be exposed internally
                                                    outside of the main workspace
                                                    POD, typically by K8S services,
                                                    to be consumed by other elements
                                                    running on the same cloud internal
                                                    network. \n - `none` means that
                                                    the endpoint will not be exposed
                                                    and will only be accessible inside
                                                    the main workspace POD, on a local
                                                    address. \n Default value is `public`"
                                                  enum:
                                                  - public
                                                  - internal
                                                  - none
                                                  type: string
                                                name:
                                                  type: string
                                                path:
                                                  description: Path of the endpoint
                                                    URL
                                                  type: string
                                                protocol:
                                                  description: "Describes the application
                                                    and transport protocols of the
                                                    traffic that will go through this
                                                    endpoint. \n - `http`: Endpoint
                                                    will have `http` traffic, typically
                                                    on a TCP connection. It will be
                                                    automaticaly promoted to `https`
                                                    when the `secure` field is set
                                                    to `true`. \n - `https`: Endpoint
                                                    will have `https` traffic, typically
                                                    on a TCP connection. \n - `ws`:
                                                    Endpoint will have `ws` traffic,
                                                    typically on a TCP connection.
                                                    It will be automaticaly promoted
                                                    to `wss` when the `secure` field
                                                    is set to `true`. \n - `wss`:
                                                    Endpoint will have `wss` traffic,
                                                    typically on a TCP connection.
                                                    \n - `tcp`: Endpoint will have
                                                    traffic on a TCP connection, without
                                                    specifying an application protocol.
                                                    \n - `udp`: Endpoint will have
                                                    traffic on an UDP connection,
                                                    without specifying an application
                                                    protocol. \n Default value is
                                                    `http`"
                                                  type: string
                                                secure:
                                                  description: Describes whether the
                                                    endpoint should be secured and
                                                    protected by some authentication
                                                    process
                                                  type: boolean
                                                targetPort:
                                                  type: integer
                                              required:
                                              - name
                                              type: object
                                            type: array
                                          inlined:
                                            description: Inlined manifest
                                            type: string
                                          locationType:
                                            description: Type of Kubernetes-like location
                                            enum:
                                            - Uri
                                            - Inlined
                                            type: string
                                          name:
                                            description: Mandatory name that allows
                                              referencing the component in commands,
                                              or inside a parent
                                            type: string
                                          uri:
                                            description: Location in a file fetched
                                              from a uri.
                                            type: string
                                        required:
                                        - name
                                        type: object
                                      openshift:
                                        description: Configuration overriding for
                                          an OpenShift component in a plugin
                                        oneOf:
                                        - required:
                                          - uri
                                        - required:
                                          - inlined
                                        properties:
                                          endpoints:
                                            items:
                                              properties:
                                                attributes:
                                                  additionalProperties:
                                                    type: string
                                                  description: "Map of implementation-dependant
                                                    string-based free-form attributes.
                                                    \n Examples of Che-specific attributes:
                                                    \n - cookiesAuthEnabled: \"true\"
                                                    / \"false\", \n - type: \"terminal\"
                                                    / \"ide\" / \"ide-dev\","
                                                  type: object
                                                exposure:
                                                  description: "Describes how the
                                                    endpoint should be exposed on
                                                    the network. \n - `public` means
                                                    that the endpoint will be exposed
                                                    on the public network, typically
                                                    through a K8S ingress or an OpenShift
                                                    route. \n - `internal` means that
                                                    the endpoint will be exposed internally
                                                    outside of the main workspace
                                                    POD, typically by K8S services,
                                                    to be consumed by other elements
                                                    running on the same cloud internal
                                                    network. \n - `none` means that
                                                    the endpoint will not be exposed
                                                    and will only be accessible inside
                                                    the main workspace POD, on a local
                                                    address. \n Default value is `public`"
                                                  enum:
                                                  - public
                                                  - internal
                                                  - none
                                                  type: string
                                                name:
                                                  type: string
                                                path:
                                                  description: Path of the endpoint
                                                    URL
                                                  type: string
                                                protocol:
                                                  description: "Describes the application
                                                    and transport protocols of the
                                                    traffic that will go through this
                                                    endpoint. \n - `http`: Endpoint
                                                    will have `http` traffic, typically
                                                    on a TCP connection. It will be
                                                    automaticaly promoted to `https`
                                                    when the `secure` field is set
                                                    to `true`. \n - `https`: Endpoint
                                                    will have `https` traffic, typically
                                                    on a TCP connection. \n - `ws`:
                                                    Endpoint will have `ws` traffic,
                                                    typically on a TCP connection.
                                                    It will be automaticaly promoted
                                                    to `wss` when the `secure` field
                                                    is set to `true`. \n - `wss`:
                                                    Endpoint will have `wss` traffic,
                                                    typically on a TCP connection.
                                                    \n - `tcp`: Endpoint will have
                                                    traffic on a TCP connection, without
                                                    specifying an application protocol.
                                                    \n - `udp`: Endpoint will have
                                                    traffic on an UDP connection,
                                                    without specifying an application
                                                    protocol. \n Default value is
                                                    `http`"
                                                  type: string
                                                secure:
                                                  description: Describes whether the
                                                    endpoint should be secured and
                                                    protected by some authentication
                                                    process
                                                  type: boolean
                                                targetPort:
                                                  type: integer
                                              required:
                                              - name
                                              type: object
                                            type: array
                                          inlined:
                                            description: Inlined manifest
                                            type: string
                                          locationType:
                                            description: Type of Kubernetes-like location
                                            enum:
                                            - Uri
                                            - Inlined
                                            type: string
                                          name:
                                            description: Mandatory name that allows
                                              referencing the component in commands,
                                              or inside a parent
                                            type: string
                                          uri:
                                            description: Location in a file fetched
                                              from a uri.
                                            type: string
                                        required:
                                        - name
                                        type: object
                                      volume:
                                        description: Configuration overriding for
                                          a Volume component in a plugin
                                        properties:
                                          ephemeral:
                                            description: Ephemeral volumes are not
                                              stored persistently across restarts.
                                              Defaults to false
                                            type: boolean
                                          name:
                                            description: Mandatory name that allows
                                              referencing the Volume component in
                                              Container volume mounts or inside a
                                              parent
                                            type: string
                                          size:
                                            description: Size of the volume
                                            type: string
                                        required:
                                        - name
                                        type: object
                                    type: object
                                  type: array
                                id:
                                  description: Id in a registry that contains a Devfile
                                    yaml file
                                  type: string
                                importReferenceType:
                                  description: type of location from where the referenced
                                    template structure should be retrieved
                                  enum:
                                  - Uri
                                  - Id
                                  - Kubernetes
                                  type: string
                                kubernetes:
                                  description: Reference to a Kubernetes CRD of type
                                    DevWorkspaceTemplate
                                  properties:
                                    name:
                                      type: string
                                    namespace:
                                      type: string
                                  required:
                                  - name
                                  type: object
                                name:
                                  description: Optional name that allows referencing
                                    the component in commands, or inside a parent
                                    If omitted it will be infered from the location
                                    (uri or registryEntry)
                                  type: string
                                registryUrl:
                                  type: string
                                uri:
                                  description: Uri of a Devfile yaml file
                                  type: string
                              type: object
                            volume:
                              description: Allows specifying the definition of a volume
                                shared by several other components
                              properties:
                                ephemeral:
                                  description: Ephemeral volumes are not stored persistently
                                    across restarts. Defaults to false
                                  type: boolean
                                name:
                                  description: Mandatory name that allows referencing
                                    the Volume component in Container volume mounts
                                    or inside a parent
                                  type: string
                                size:
                                  description: Size of the volume
                                  type: string
                              required:
                              - name
                              type: object
                          type: object
                        type: array
                      id:
                        description: Id in a registry that contains a Devfile yaml
                          file
                        type: string
                      importReferenceType:
                        description: type of location from where the referenced template
                          structure should be retrieved
                        enum:
                        - Uri
                        - Id
                        - Kubernetes
                        type: string
                      kubernetes:
                        description: Reference to a Kubernetes CRD of type DevWorkspaceTemplate
                        properties:
                          name:
                            type: string
                          namespace:
                            type: string
                        required:
                        - name
                        type: object
                      projects:
                        description: Overrides of projects encapsulated in a parent
                          devfile. Overriding is done using a strategic merge patch.
                        items:
                          oneOf:
                          - required:
                            - git
                          - required:
                            - github
                          - required:
                            - zip
                          - required:
                            - custom
                          properties:
                            clonePath:
                              description: Path relative to the root of the projects
                                to which this project should be cloned into. This
                                is a unix-style relative path (i.e. uses forward slashes).
                                The path is invalid if it is absolute or tries to
                                escape the project root through the usage of '..'.
                                If not specified, defaults to the project name.
                              type: string
                            custom:
                              description: Project's Custom source
                              properties:
                                embeddedResource:
                                  type: object
                                  x-kubernetes-embedded-resource: true
                                  x-kubernetes-preserve-unknown-fields: true
                                projectSourceClass:
                                  type: string
                              required:
                              - embeddedResource
                              - projectSourceClass
                              type: object
                            git:
                              description: Project's Git source
                              properties:
                                checkoutFrom:
                                  description: Defines from what the project should
                                    be checked out. Required if there are more than
                                    one remote configured
                                  properties:
                                    remote:
                                      description: The remote name should be used
                                        as init. Required if there are more than one
                                        remote configured
                                      type: string
                                    revision:
                                      description: The revision to checkout from.
                                        Should be branch name, tag or commit id. Default
                                        branch is used if missing or specified revision
                                        is not found.
                                      type: string
                                  type: object
                                remotes:
                                  additionalProperties:
                                    type: string
                                  description: The remotes map which should be initialized
                                    in the git project. Must have at least one remote
                                    configured
                                  type: object
                                sparseCheckoutDir:
                                  description: Part of project to populate in the
                                    working directory.
                                  type: string
                              type: object
                            github:
                              description: Project's GitHub source
                              properties:
                                checkoutFrom:
                                  description: Defines from what the project should
                                    be checked out. Required if there are more than
                                    one remote configured
                                  properties:
                                    remote:
                                      description: The remote name should be used
                                        as init. Required if there are more than one
                                        remote configured
                                      type: string
                                    revision:
                                      description: The revision to checkout from.
                                        Should be branch name, tag or commit id. Default
                                        branch is used if missing or specified revision
                                        is not found.
                                      type: string
                                  type: object
                                remotes:
                                  additionalProperties:
                                    type: string
                                  description: The remotes map which should be initialized
                                    in the git project. Must have at least one remote
                                    configured
                                  type: object
                                sparseCheckoutDir:
                                  description: Part of project to populate in the
                                    working directory.
                                  type: string
                              type: object
                            name:
                              description: Project name
                              type: string
                            sourceType:
                              description: Type of project source
                              enum:
                              - Git
                              - Github
                              - Zip
                              - Custom
                              type: string
                            zip:
                              description: Project's Zip source
                              properties:
                                location:
                                  description: Zip project's source location address.
                                    Should be file path of the archive, e.g. file://$FILE_PATH
                                  type: string
                                sparseCheckoutDir:
                                  description: Part of project to populate in the
                                    working directory.
                                  type: string
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      registryUrl:
                        type: string
                      starterProjects:
                        description: Overrides of starter projects encapsulated in
                          a parent devfile Overriding is done using a strategic merge
                          patch.
                        items:
                          oneOf:
                          - required:
                            - git
                          - required:
                            - github
                          - required:
                            - zip
                          - required:
                            - custom
                          properties:
                            clonePath:
                              description: Path relative to the root of the projects
                                to which this project should be cloned into. This
                                is a unix-style relative path (i.e. uses forward slashes).
                                The path is invalid if it is absolute or tries to
                                escape the project root through the usage of '..'.
                                If not specified, defaults to the project name.
                              type: string
                            custom:
                              description: Project's Custom source
                              properties:
                                embeddedResource:
                                  type: object
                                  x-kubernetes-embedded-resource: true
                                  x-kubernetes-preserve-unknown-fields: true
                                projectSourceClass:
                                  type: string
                              required:
                              - embeddedResource
                              - projectSourceClass
                              type: object
                            description:
                              description: Description of a starter project
                              type: string
                            git:
                              description: Project's Git source
                              properties:
                                checkoutFrom:
                                  description: Defines from what the project should
                                    be checked out. Required if there are more than
                                    one remote configured
                                  properties:
                                    remote:
                                      description: The remote name should be used
                                        as init. Required if there are more than one
                                        remote configured
                                      type: string
                                    revision:
                                      description: The revision to checkout from.
                                        Should be branch name, tag or commit id. Default
                                        branch is used if missing or specified revision
                                        is not found.
                                      type: string
                                  type: object
                                remotes:
                                  additionalProperties:
                                    type: string
                                  description: The remotes map which should be initialized
                                    in the git project. Must have at least one remote
                                    configured
                                  type: object
                                sparseCheckoutDir:
                                  description: Part of project to populate in the
                                    working directory.
                                  type: string
                              type: object
                            github:
                              description: Project's GitHub source
                              properties:
                                checkoutFrom:
                                  description: Defines from what the project should
                                    be checked out. Required if there are more than
                                    one remote configured
                                  properties:
                                    remote:
                                      description: The remote name should be used
                                        as init. Required if there are more than one
                                        remote configured
                                      type: string
                                    revision:
                                      description: The revision to checkout from.
                                        Should be branch name, tag or commit id. Default
                                        branch is used if missing or specified revision
                                        is not found.
                                      type: string
                                  type: object
                                remotes:
                                  additionalProperties:
                                    type: string
                                  description: The remotes map which should be initialized
                                    in the git project. Must have at least one remote
                                    configured
                                  type: object
                                sparseCheckoutDir:
                                  description: Part of project to populate in the
                                    working directory.
                                  type: string
                              type: object
                            name:
                              description: Project name
                              type: string
                            sourceType:
                              description: Type of project source
                              enum:
                              - Git
                              - Github
                              - Zip
                              - Custom
                              type: string
                            zip:
                              description: Project's Zip source
                              properties:
                                location:
                                  description: Zip project's source location address.
                                    Should be file path of the archive, e.g. file://$FILE_PATH
                                  type: string
                                sparseCheckoutDir:
                                  description: Part of project to populate in the
                                    working directory.
                                  type: string
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      uri:
                        description: Uri of a Devfile yaml file
                        type: string
                    type: object
                  projects:
                    description: Projects worked on in the workspace, containing names
                      and sources locations
                    items:
                      oneOf:
                      - required:
                        - git
                      - required:
                        - github
                      - required:
                        - zip
                      - required:
                        - custom
                      properties:
                        clonePath:
                          description: Path relative to the root of the projects to
                            which this project should be cloned into. This is a unix-style
                            relative path (i.e. uses forward slashes). The path is
                            invalid if it is absolute or tries to escape the project
                            root through the usage of '..'. If not specified, defaults
                            to the project name.
                          type: string
                        custom:
                          description: Project's Custom source
                          properties:
                            embeddedResource:
                              type: object
                              x-kubernetes-embedded-resource: true
                              x-kubernetes-preserve-unknown-fields: true
                            projectSourceClass:
                              type: string
                          required:
                          - embeddedResource
                          - projectSourceClass
                          type: object
                        git:
                          description: Project's Git source
                          properties:
                            checkoutFrom:
                              description: Defines from what the project should be
                                checked out. Required if there are more than one remote
                                configured
                              properties:
                                remote:
                                  description: The remote name should be used as init.
                                    Required if there are more than one remote configured
                                  type: string
                                revision:
                                  description: The revision to checkout from. Should
                                    be branch name, tag or commit id. Default branch
                                    is used if missing or specified revision is not
                                    found.
                                  type: string
                              type: object
                            remotes:
                              additionalProperties:
                                type: string
                              description: The remotes map which should be initialized
                                in the git project. Must have at least one remote
                                configured
                              type: object
                            sparseCheckoutDir:
                              description: Part of project to populate in the working
                                directory.
                              type: string
                          type: object
                        github:
                          description: Project's GitHub source
                          properties:
                            checkoutFrom:
                              description: Defines from what the project should be
                                checked out. Required if there are more than one remote
                                configured
                              properties:
                                remote:
                                  description: The remote name should be used as init.
                                    Required if there are more than one remote configured
                                  type: string
                                revision:
                                  description: The revision to checkout from. Should
                                    be branch name, tag or commit id. Default branch
                                    is used if missing or specified revision is not
                                    found.
                                  type: string
                              type: object
                            remotes:
                              additionalProperties:
                                type: string
                              description: The remotes map which should be initialized
                                in the git project. Must have at least one remote
                                configured
                              type: object
                            sparseCheckoutDir:
                              description: Part of project to populate in the working
                                directory.
                              type: string
                          type: object
                        name:
                          description: Project name
                          type: string
                        sourceType:
                          description: Type of project source
                          enum:
                          - Git
                          - Github
                          - Zip
                          - Custom
                          type: string
                        zip:
                          description: Project's Zip source
                          properties:
                            location:
                              description: Zip project's source location address.
                                Should be file path of the archive, e.g. file://$FILE_PATH
                              type: string
                            sparseCheckoutDir:
                              description: Part of project to populate in the working
                                directory.
                              type: string
                          type: object
                      required:
                      - name
                      type: object
                    type: array
                  starterProjects:
                    description: StarterProjects is a project that can be used as
                      a starting point when bootstrapping new projects
                    items:
                      oneOf:
                      - required:
                        - git
                      - required:
                        - github
                      - required:
                        - zip
                      - required:
                        - custom
                      properties:
                        clonePath:
                          description: Path relative to the root of the projects to
                            which this project should be cloned into. This is a unix-style
                            relative path (i.e. uses forward slashes). The path is
                            invalid if it is absolute or tries to escape the project
                            root through the usage of '..'. If not specified, defaults
                            to the project name.
                          type: string
                        custom:
                          description: Project's Custom source
                          properties:
                            embeddedResource:
                              type: object
                              x-kubernetes-embedded-resource: true
                              x-kubernetes-preserve-unknown-fields: true
                            projectSourceClass:
                              type: string
                          required:
                          - embeddedResource
                          - projectSourceClass
                          type: object
                        description:
                          description: Description of a starter project
                          type: string
                        git:
                          description: Project's Git source
                          properties:
                            checkoutFrom:
                              description: Defines from what the project should be
                                checked out. Required if there are more than one remote
                                configured
                              properties:
                                remote:
                                  description: The remote name should be used as init.
                                    Required if there are more than one remote configured
                                  type: string
                                revision:
                                  description: The revision to checkout from. Should
                                    be branch name, tag or commit id. Default branch
                                    is used if missing or specified revision is not
                                    found.
                                  type: string
                              type: object
                            remotes:
                              additionalProperties:
                                type: string
                              description: The remotes map which should be initialized
                                in the git project. Must have at least one remote
                                configured
                              type: object
                            sparseCheckoutDir:
                              description: Part of project to populate in the working
                                directory.
                              type: string
                          type: object
                        github:
                          description: Project's GitHub source
                          properties:
                            checkoutFrom:
                              description: Defines from what the project should be
                                checked out. Required if there are more than one remote
                                configured
                              properties:
                                remote:
                                  description: The remote name should be used as init.
                                    Required if there are more than one remote configured
                                  type: string
                                revision:
                                  description: The revision to checkout from. Should
                                    be branch name, tag or commit id. Default branch
                                    is used if missing or specified revision is not
                                    found.
                                  type: string
                              type: object
                            remotes:
                              additionalProperties:
                                type: string
                              description: The remotes map which should be initialized
                                in the git project. Must have at least one remote
                                configured
                              type: object
                            sparseCheckoutDir:
                              description: Part of project to populate in the working
                                directory.
                              type: string
                          type: object
                        name:
                          description: Project name
                          type: string
                        sourceType:
                          description: Type of project source
                          enum:
                          - Git
                          - Github
                          - Zip
                          - Custom
                          type: string
                        zip:
                          description: Project's Zip source
                          properties:
                            location:
                              description: Zip project's source location address.
                                Should be file path of the archive, e.g. file://$FILE_PATH
                              type: string
                            sparseCheckoutDir:
                              description: Part of project to populate in the working
                                directory.
                              type: string
                          type: object
                      required:
                      - name
                      type: object
                    type: array
                type: object
            required:
            - started
            type: object
          status:
            description: DevWorkspaceStatus defines the observed state of DevWorkspace
            properties:
              conditions:
                description: Conditions represent the latest available observations
                  of an object's state
                items:
                  description: WorkspaceCondition contains details for the current
                    condition of this workspace.
                  properties:
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another.
                      format: date-time
                      type: string
                    message:
                      description: Human-readable message indicating details about
                        last transition.
                      type: string
                    reason:
                      description: Unique, one-word, CamelCase reason for the condition's
                        last transition.
                      type: string
                    status:
                      description: Phase is the status of the condition. Can be True,
                        False, Unknown.
                      type: string
                    type:
                      description: Type is the type of the condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              ideUrl:
                description: URL at which the Worksace Editor can be joined
                type: string
              message:
                description: Message is a short user-readable message giving additional
                  information about an object's state
                type: string
              phase:
                type: string
              workspaceId:
                description: Id of the workspace
                type: string
            required:
            - workspaceId
            type: object
        type: object
    served: false
    storage: false
    subresources:
      status: {}
  - additionalPrinterColumns:
    - description: The devworkspace's unique id
      jsonPath: .status.devworkspaceId
      name: DevWorkspace ID
      type: string
    - description: The current devworkspace startup phase
      jsonPath: .status.phase
      name: Phase
      type: string
    - description: Additional information about the devworkspace
      jsonPath: .status.message
      name: Info
      type: string
    name: v1alpha2
    schema:
      openAPIV3Schema:
        description: DevWorkspace is the Schema for the devworkspaces 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: DevWorkspaceSpec defines the desired state of DevWorkspace
            properties:
              routingClass:
                type: string
              started:
                type: boolean
              template:
                description: Structure of the devworkspace. This is also the specification
                  of a devworkspace template.
                properties:
                  attributes:
                    description: Map of implementation-dependant free-form YAML attributes.
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                  commands:
                    description: Predefined, ready-to-use, devworkspace-related commands
                    items:
                      oneOf:
                      - required:
                        - exec
                      - required:
                        - apply
                      - required:
                        - composite
                      - required:
                        - custom
                      properties:
                        apply:
                          description: "Command that consists in applying a given
                            component definition, typically bound to a devworkspace
                            event. \n For example, when an `apply` command is bound
                            to a `preStart` event, and references a `container` component,
                            it will start the container as a K8S initContainer in
                            the devworkspace POD, unless the component has its `dedicatedPod`
                            field set to `true`. \n When no `apply` command exist
                            for a given component, it is assumed the component will
                            be applied at devworkspace start by default."
                          properties:
                            component:
                              description: Describes component that will be applied
                              type: string
                            group:
                              description: Defines the group this command is part
                                of
                              properties:
                                isDefault:
                                  description: Identifies the default command for
                                    a given group kind
                                  type: boolean
                                kind:
                                  description: Kind of group the command is part of
                                  enum:
                                  - build
                                  - run
                                  - test
                                  - debug
                                  - deploy
                                  type: string
                              required:
                              - kind
                              type: object
                            label:
                              description: Optional label that provides a label for
                                this command to be used in Editor UI menus for example
                              type: string
                          required:
                          - component
                          type: object
                        attributes:
                          description: Map of implementation-dependant free-form YAML
                            attributes.
                          type: object
                          x-kubernetes-preserve-unknown-fields: true
                        commandType:
                          description: Type of devworkspace command
                          enum:
                          - Exec
                          - Apply
                          - Composite
                          - Custom
                          type: string
                        composite:
                          description: Composite command that allows executing several
                            sub-commands either sequentially or concurrently
                          properties:
                            commands:
                              description: The commands that comprise this composite
                                command
                              items:
                                type: string
                              type: array
                            group:
                              description: Defines the group this command is part
                                of
                              properties:
                                isDefault:
                                  description: Identifies the default command for
                                    a given group kind
                                  type: boolean
                                kind:
                                  description: Kind of group the command is part of
                                  enum:
                                  - build
                                  - run
                                  - test
                                  - debug
                                  - deploy
                                  type: string
                              required:
                              - kind
                              type: object
                            label:
                              description: Optional label that provides a label for
                                this command to be used in Editor UI menus for example
                              type: string
                            parallel:
                              description: Indicates if the sub-commands should be
                                executed concurrently
                              type: boolean
                          type: object
                        custom:
                          description: Custom command whose logic is implementation-dependant
                            and should be provided by the user possibly through some
                            dedicated plugin
                          properties:
                            commandClass:
                              description: Class of command that the associated implementation
                                component should use to process this command with
                                the appropriate logic
                              type: string
                            embeddedResource:
                              description: Additional free-form configuration for
                                this custom command that the implementation component
                                will know how to use
                              type: object
                              x-kubernetes-embedded-resource: true
                              x-kubernetes-preserve-unknown-fields: true
                            group:
                              description: Defines the group this command is part
                                of
                              properties:
                                isDefault:
                                  description: Identifies the default command for
                                    a given group kind
                                  type: boolean
                                kind:
                                  description: Kind of group the command is part of
                                  enum:
                                  - build
                                  - run
                                  - test
                                  - debug
                                  - deploy
                                  type: string
                              required:
                              - kind
                              type: object
                            label:
                              description: Optional label that provides a label for
                                this command to be used in Editor UI menus for example
                              type: string
                          required:
                          - commandClass
                          - embeddedResource
                          type: object
                        exec:
                          description: CLI Command executed in an existing component
                            container
                          properties:
                            commandLine:
                              description: "The actual command-line string \n Special
                                variables that can be used: \n  - `$PROJECTS_ROOT`:
                                A path where projects sources are mounted as defined
                                by container component's sourceMapping. \n  - `$PROJECT_SOURCE`:
                                A path to a project source ($PROJECTS_ROOT/<project-name>).
                                If there are multiple projects, this will point to
                                the directory of the first one."
                              type: string
                            component:
                              description: Describes component to which given action
                                relates
                              type: string
                            env:
                              description: Optional list of environment variables
                                that have to be set before running the command
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            group:
                              description: Defines the group this command is part
                                of
                              properties:
                                isDefault:
                                  description: Identifies the default command for
                                    a given group kind
                                  type: boolean
                                kind:
                                  description: Kind of group the command is part of
                                  enum:
                                  - build
                                  - run
                                  - test
                                  - debug
                                  - deploy
                                  type: string
                              required:
                              - kind
                              type: object
                            hotReloadCapable:
                              description: "Whether the command is capable to reload
                                itself when source code changes. If set to `true`
                                the command won't be restarted and it is expected
                                to handle file changes on its own. \n Default value
                                is `false`"
                              type: boolean
                            label:
                              description: Optional label that provides a label for
                                this command to be used in Editor UI menus for example
                              type: string
                            workingDir:
                              description: "Working directory where the command should
                                be executed \n Special variables that can be used:
                                \n  - `$PROJECTS_ROOT`: A path where projects sources
                                are mounted as defined by container component's sourceMapping.
                                \n  - `$PROJECT_SOURCE`: A path to a project source
                                ($PROJECTS_ROOT/<project-name>). If there are multiple
                                projects, this will point to the directory of the
                                first one."
                              type: string
                          required:
                          - commandLine
                          - component
                          type: object
                        id:
                          description: Mandatory identifier that allows referencing
                            this command in composite commands, from a parent, or
                            in events.
                          maxLength: 63
                          pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                          type: string
                      required:
                      - id
                      type: object
                    type: array
                  components:
                    description: List of the devworkspace components, such as editor
                      and plugins, user-provided containers, or other types of components
                    items:
                      oneOf:
                      - required:
                        - container
                      - required:
                        - kubernetes
                      - required:
                        - openshift
                      - required:
                        - volume
                      - required:
                        - image
                      - required:
                        - plugin
                      - required:
                        - custom
                      properties:
                        attributes:
                          description: Map of implementation-dependant free-form YAML
                            attributes.
                          type: object
                          x-kubernetes-preserve-unknown-fields: true
                        componentType:
                          description: Type of component
                          enum:
                          - Container
                          - Kubernetes
                          - Openshift
                          - Volume
                          - Image
                          - Plugin
                          - Custom
                          type: string
                        container:
                          description: Allows adding and configuring devworkspace-related
                            containers
                          properties:
                            args:
                              description: "The arguments to supply to the command
                                running the dockerimage component. The arguments are
                                supplied either to the default command provided in
                                the image or to the overridden command. \n Defaults
                                to an empty array, meaning use whatever is defined
                                in the image."
                              items:
                                type: string
                              type: array
                            command:
                              description: "The command to run in the dockerimage
                                component instead of the default one provided in the
                                image. \n Defaults to an empty array, meaning use
                                whatever is defined in the image."
                              items:
                                type: string
                              type: array
                            cpuLimit:
                              type: string
                            cpuRequest:
                              type: string
                            dedicatedPod:
                              description: "Specify if a container should run in its
                                own separated pod, instead of running as part of the
                                main development environment pod. \n Default value
                                is `false`"
                              type: boolean
                            endpoints:
                              items:
                                properties:
                                  attributes:
                                    description: "Map of implementation-dependant
                                      string-based free-form attributes. \n Examples
                                      of Che-specific attributes: \n - cookiesAuthEnabled:
                                      \"true\" / \"false\", \n - type: \"terminal\"
                                      / \"ide\" / \"ide-dev\","
                                    type: object
                                    x-kubernetes-preserve-unknown-fields: true
                                  exposure:
                                    default: public
                                    description: "Describes how the endpoint should
                                      be exposed on the network. \n - `public` means
                                      that the endpoint will be exposed on the public
                                      network, typically through a K8S ingress or
                                      an OpenShift route. \n - `internal` means that
                                      the endpoint will be exposed internally outside
                                      of the main devworkspace POD, typically by K8S
                                      services, to be consumed by other elements running
                                      on the same cloud internal network. \n - `none`
                                      means that the endpoint will not be exposed
                                      and will only be accessible inside the main
                                      devworkspace POD, on a local address. \n Default
                                      value is `public`"
                                    enum:
                                    - public
                                    - internal
                                    - none
                                    type: string
                                  name:
                                    maxLength: 63
                                    pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                    type: string
                                  path:
                                    description: Path of the endpoint URL
                                    type: string
                                  protocol:
                                    default: http
                                    description: "Describes the application and transport
                                      protocols of the traffic that will go through
                                      this endpoint. \n - `http`: Endpoint will have
                                      `http` traffic, typically on a TCP connection.
                                      It will be automaticaly promoted to `https`
                                      when the `secure` field is set to `true`. \n
                                      - `https`: Endpoint will have `https` traffic,
                                      typically on a TCP connection. \n - `ws`: Endpoint
                                      will have `ws` traffic, typically on a TCP connection.
                                      It will be automaticaly promoted to `wss` when
                                      the `secure` field is set to `true`. \n - `wss`:
                                      Endpoint will have `wss` traffic, typically
                                      on a TCP connection. \n - `tcp`: Endpoint will
                                      have traffic on a TCP connection, without specifying
                                      an application protocol. \n - `udp`: Endpoint
                                      will have traffic on an UDP connection, without
                                      specifying an application protocol. \n Default
                                      value is `http`"
                                    enum:
                                    - http
                                    - https
                                    - ws
                                    - wss
                                    - tcp
                                    - udp
                                    type: string
                                  secure:
                                    description: Describes whether the endpoint should
                                      be secured and protected by some authentication
                                      process. This requires a protocol of `https`
                                      or `wss`.
                                    type: boolean
                                  targetPort:
                                    type: integer
                                required:
                                - name
                                - targetPort
                                type: object
                              type: array
                            env:
                              description: "Environment variables used in this container.
                                \n The following variables are reserved and cannot
                                be overridden via env: \n  - `$PROJECTS_ROOT` \n  -
                                `$PROJECT_SOURCE`"
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            image:
                              type: string
                            memoryLimit:
                              type: string
                            memoryRequest:
                              type: string
                            mountSources:
                              description: "Toggles whether or not the project source
                                code should be mounted in the component. \n Defaults
                                to true for all component types except plugins and
                                components that set `dedicatedPod` to true."
                              type: boolean
                            sourceMapping:
                              default: /projects
                              description: Optional specification of the path in the
                                container where project sources should be transferred/mounted
                                when `mountSources` is `true`. When omitted, the default
                                value of /projects is used.
                              type: string
                            volumeMounts:
                              description: List of volumes mounts that should be mounted
                                is this container.
                              items:
                                description: Volume that should be mounted to a component
                                  container
                                properties:
                                  name:
                                    description: The volume mount name is the name
                                      of an existing `Volume` component. If several
                                      containers mount the same volume name then they
                                      will reuse the same volume and will be able
                                      to access to the same files.
                                    maxLength: 63
                                    pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                    type: string
                                  path:
                                    description: The path in the component container
                                      where the volume should be mounted. If not path
                                      is mentioned, default path is the is `/<name>`.
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                          required:
                          - image
                          type: object
                        custom:
                          description: Custom component whose logic is implementation-dependant
                            and should be provided by the user possibly through some
                            dedicated controller
                          properties:
                            componentClass:
                              description: Class of component that the associated
                                implementation controller should use to process this
                                command with the appropriate logic
                              type: string
                            embeddedResource:
                              description: Additional free-form configuration for
                                this custom component that the implementation controller
                                will know how to use
                              type: object
                              x-kubernetes-embedded-resource: true
                              x-kubernetes-preserve-unknown-fields: true
                          required:
                          - componentClass
                          - embeddedResource
                          type: object
                        image:
                          description: Allows specifying the definition of an image
                            for outer loop builds
                          oneOf:
                          - required:
                            - dockerfile
                          properties:
                            dockerfile:
                              description: Allows specifying dockerfile type build
                              oneOf:
                              - required:
                                - uri
                              - required:
                                - devfileRegistry
                              - required:
                                - git
                              properties:
                                args:
                                  description: The arguments to supply to the dockerfile
                                    build.
                                  items:
                                    type: string
                                  type: array
                                buildContext:
                                  description: Path of source directory to establish
                                    build context. Defaults to ${PROJECT_ROOT} in
                                    the container
                                  type: string
                                devfileRegistry:
                                  description: Dockerfile's Devfile Registry source
                                  properties:
                                    id:
                                      description: Id in a devfile registry that contains
                                        a Dockerfile. The src in the OCI registry
                                        required for the Dockerfile build will be
                                        downloaded for building the image.
                                      type: string
                                    registryUrl:
                                      description: Devfile Registry URL to pull the
                                        Dockerfile from when using the Devfile Registry
                                        as Dockerfile src. To ensure the Dockerfile
                                        gets resolved consistently in different environments,
                                        it is recommended to always specify the `devfileRegistryUrl`
                                        when `Id` is used.
                                      type: string
                                  required:
                                  - id
                                  type: object
                                git:
                                  description: Dockerfile's Git source
                                  properties:
                                    checkoutFrom:
                                      description: Defines from what the project should
                                        be checked out. Required if there are more
                                        than one remote configured
                                      properties:
                                        remote:
                                          description: The remote name should be used
                                            as init. Required if there are more than
                                            one remote configured
                                          type: string
                                        revision:
                                          description: The revision to checkout from.
                                            Should be branch name, tag or commit id.
                                            Default branch is used if missing or specified
                                            revision is not found.
                                          type: string
                                      type: object
                                    fileLocation:
                                      description: Location of the Dockerfile in the
                                        Git repository when using git as Dockerfile
                                        src. Defaults to Dockerfile.
                                      type: string
                                    remotes:
                                      additionalProperties:
                                        type: string
                                      description: The remotes map which should be
                                        initialized in the git project. Projects must
                                        have at least one remote configured while
                                        StarterProjects & Image Component's Git source
                                        can only have at most one remote configured.
                                      type: object
                                  required:
                                  - remotes
                                  type: object
                                rootRequired:
                                  description: "Specify if a privileged builder pod
                                    is required. \n Default value is `false`"
                                  type: boolean
                                srcType:
                                  description: Type of Dockerfile src
                                  enum:
                                  - Uri
                                  - DevfileRegistry
                                  - Git
                                  type: string
                                uri:
                                  description: URI Reference of a Dockerfile. It can
                                    be a full URL or a relative URI from the current
                                    devfile as the base URI.
                                  type: string
                              type: object
                            imageName:
                              description: Name of the image for the resulting outerloop
                                build
                              type: string
                            imageType:
                              description: Type of image
                              enum:
                              - Dockerfile
                              type: string
                          required:
                          - imageName
                          type: object
                        kubernetes:
                          description: Allows importing into the devworkspace the
                            Kubernetes resources defined in a given manifest. For
                            example this allows reusing the Kubernetes definitions
                            used to deploy some runtime components in production.
                          oneOf:
                          - required:
                            - uri
                          - required:
                            - inlined
                          properties:
                            endpoints:
                              items:
                                properties:
                                  attributes:
                                    description: "Map of implementation-dependant
                                      string-based free-form attributes. \n Examples
                                      of Che-specific attributes: \n - cookiesAuthEnabled:
                                      \"true\" / \"false\", \n - type: \"terminal\"
                                      / \"ide\" / \"ide-dev\","
                                    type: object
                                    x-kubernetes-preserve-unknown-fields: true
                                  exposure:
                                    default: public
                                    description: "Describes how the endpoint should
                                      be exposed on the network. \n - `public` means
                                      that the endpoint will be exposed on the public
                                      network, typically through a K8S ingress or
                                      an OpenShift route. \n - `internal` means that
                                      the endpoint will be exposed internally outside
                                      of the main devworkspace POD, typically by K8S
                                      services, to be consumed by other elements running
                                      on the same cloud internal network. \n - `none`
                                      means that the endpoint will not be exposed
                                      and will only be accessible inside the main
                                      devworkspace POD, on a local address. \n Default
                                      value is `public`"
                                    enum:
                                    - public
                                    - internal
                                    - none
                                    type: string
                                  name:
                                    maxLength: 63
                                    pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                    type: string
                                  path:
                                    description: Path of the endpoint URL
                                    type: string
                                  protocol:
                                    default: http
                                    description: "Describes the application and transport
                                      protocols of the traffic that will go through
                                      this endpoint. \n - `http`: Endpoint will have
                                      `http` traffic, typically on a TCP connection.
                                      It will be automaticaly promoted to `https`
                                      when the `secure` field is set to `true`. \n
                                      - `https`: Endpoint will have `https` traffic,
                                      typically on a TCP connection. \n - `ws`: Endpoint
                                      will have `ws` traffic, typically on a TCP connection.
                                      It will be automaticaly promoted to `wss` when
                                      the `secure` field is set to `true`. \n - `wss`:
                                      Endpoint will have `wss` traffic, typically
                                      on a TCP connection. \n - `tcp`: Endpoint will
                                      have traffic on a TCP connection, without specifying
                                      an application protocol. \n - `udp`: Endpoint
                                      will have traffic on an UDP connection, without
                                      specifying an application protocol. \n Default
                                      value is `http`"
                                    enum:
                                    - http
                                    - https
                                    - ws
                                    - wss
                                    - tcp
                                    - udp
                                    type: string
                                  secure:
                                    description: Describes whether the endpoint should
                                      be secured and protected by some authentication
                                      process. This requires a protocol of `https`
                                      or `wss`.
                                    type: boolean
                                  targetPort:
                                    type: integer
                                required:
                                - name
                                - targetPort
                                type: object
                              type: array
                            inlined:
                              description: Inlined manifest
                              type: string
                            locationType:
                              description: Type of Kubernetes-like location
                              enum:
                              - Uri
                              - Inlined
                              type: string
                            uri:
                              description: Location in a file fetched from a uri.
                              type: string
                          type: object
                        name:
                          description: Mandatory name that allows referencing the
                            component from other elements (such as commands) or from
                            an external devfile that may reference this component
                            through a parent or a plugin.
                          maxLength: 63
                          pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                          type: string
                        openshift:
                          description: Allows importing into the devworkspace the
                            OpenShift resources defined in a given manifest. For example
                            this allows reusing the OpenShift definitions used to
                            deploy some runtime components in production.
                          oneOf:
                          - required:
                            - uri
                          - required:
                            - inlined
                          properties:
                            endpoints:
                              items:
                                properties:
                                  attributes:
                                    description: "Map of implementation-dependant
                                      string-based free-form attributes. \n Examples
                                      of Che-specific attributes: \n - cookiesAuthEnabled:
                                      \"true\" / \"false\", \n - type: \"terminal\"
                                      / \"ide\" / \"ide-dev\","
                                    type: object
                                    x-kubernetes-preserve-unknown-fields: true
                                  exposure:
                                    default: public
                                    description: "Describes how the endpoint should
                                      be exposed on the network. \n - `public` means
                                      that the endpoint will be exposed on the public
                                      network, typically through a K8S ingress or
                                      an OpenShift route. \n - `internal` means that
                                      the endpoint will be exposed internally outside
                                      of the main devworkspace POD, typically by K8S
                                      services, to be consumed by other elements running
                                      on the same cloud internal network. \n - `none`
                                      means that the endpoint will not be exposed
                                      and will only be accessible inside the main
                                      devworkspace POD, on a local address. \n Default
                                      value is `public`"
                                    enum:
                                    - public
                                    - internal
                                    - none
                                    type: string
                                  name:
                                    maxLength: 63
                                    pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                    type: string
                                  path:
                                    description: Path of the endpoint URL
                                    type: string
                                  protocol:
                                    default: http
                                    description: "Describes the application and transport
                                      protocols of the traffic that will go through
                                      this endpoint. \n - `http`: Endpoint will have
                                      `http` traffic, typically on a TCP connection.
                                      It will be automaticaly promoted to `https`
                                      when the `secure` field is set to `true`. \n
                                      - `https`: Endpoint will have `https` traffic,
                                      typically on a TCP connection. \n - `ws`: Endpoint
                                      will have `ws` traffic, typically on a TCP connection.
                                      It will be automaticaly promoted to `wss` when
                                      the `secure` field is set to `true`. \n - `wss`:
                                      Endpoint will have `wss` traffic, typically
                                      on a TCP connection. \n - `tcp`: Endpoint will
                                      have traffic on a TCP connection, without specifying
                                      an application protocol. \n - `udp`: Endpoint
                                      will have traffic on an UDP connection, without
                                      specifying an application protocol. \n Default
                                      value is `http`"
                                    enum:
                                    - http
                                    - https
                                    - ws
                                    - wss
                                    - tcp
                                    - udp
                                    type: string
                                  secure:
                                    description: Describes whether the endpoint should
                                      be secured and protected by some authentication
                                      process. This requires a protocol of `https`
                                      or `wss`.
                                    type: boolean
                                  targetPort:
                                    type: integer
                                required:
                                - name
                                - targetPort
                                type: object
                              type: array
                            inlined:
                              description: Inlined manifest
                              type: string
                            locationType:
                              description: Type of Kubernetes-like location
                              enum:
                              - Uri
                              - Inlined
                              type: string
                            uri:
                              description: Location in a file fetched from a uri.
                              type: string
                          type: object
                        plugin:
                          description: "Allows importing a plugin. \n Plugins are
                            mainly imported devfiles that contribute components, commands
                            and events as a consistent single unit. They are defined
                            in either YAML files following the devfile syntax, or
                            as `DevWorkspaceTemplate` Kubernetes Custom Resources"
                          oneOf:
                          - required:
                            - uri
                          - required:
                            - id
                          - required:
                            - kubernetes
                          properties:
                            commands:
                              description: Overrides of commands encapsulated in a
                                parent devfile or a plugin. Overriding is done according
                                to K8S strategic merge patch standard rules.
                              items:
                                oneOf:
                                - required:
                                  - exec
                                - required:
                                  - apply
                                - required:
                                  - composite
                                properties:
                                  apply:
                                    description: "Command that consists in applying
                                      a given component definition, typically bound
                                      to a devworkspace event. \n For example, when
                                      an `apply` command is bound to a `preStart`
                                      event, and references a `container` component,
                                      it will start the container as a K8S initContainer
                                      in the devworkspace POD, unless the component
                                      has its `dedicatedPod` field set to `true`.
                                      \n When no `apply` command exist for a given
                                      component, it is assumed the component will
                                      be applied at devworkspace start by default."
                                    properties:
                                      component:
                                        description: Describes component that will
                                          be applied
                                        type: string
                                      group:
                                        description: Defines the group this command
                                          is part of
                                        properties:
                                          isDefault:
                                            description: Identifies the default command
                                              for a given group kind
                                            type: boolean
                                          kind:
                                            description: Kind of group the command
                                              is part of
                                            enum:
                                            - build
                                            - run
                                            - test
                                            - debug
                                            - deploy
                                            type: string
                                        type: object
                                      label:
                                        description: Optional label that provides
                                          a label for this command to be used in Editor
                                          UI menus for example
                                        type: string
                                    type: object
                                  attributes:
                                    description: Map of implementation-dependant free-form
                                      YAML attributes.
                                    type: object
                                    x-kubernetes-preserve-unknown-fields: true
                                  commandType:
                                    description: Type of devworkspace command
                                    enum:
                                    - Exec
                                    - Apply
                                    - Composite
                                    type: string
                                  composite:
                                    description: Composite command that allows executing
                                      several sub-commands either sequentially or
                                      concurrently
                                    properties:
                                      commands:
                                        description: The commands that comprise this
                                          composite command
                                        items:
                                          type: string
                                        type: array
                                      group:
                                        description: Defines the group this command
                                          is part of
                                        properties:
                                          isDefault:
                                            description: Identifies the default command
                                              for a given group kind
                                            type: boolean
                                          kind:
                                            description: Kind of group the command
                                              is part of
                                            enum:
                                            - build
                                            - run
                                            - test
                                            - debug
                                            - deploy
                                            type: string
                                        type: object
                                      label:
                                        description: Optional label that provides
                                          a label for this command to be used in Editor
                                          UI menus for example
                                        type: string
                                      parallel:
                                        description: Indicates if the sub-commands
                                          should be executed concurrently
                                        type: boolean
                                    type: object
                                  exec:
                                    description: CLI Command executed in an existing
                                      component container
                                    properties:
                                      commandLine:
                                        description: "The actual command-line string
                                          \n Special variables that can be used: \n
                                          \ - `$PROJECTS_ROOT`: A path where projects
                                          sources are mounted as defined by container
                                          component's sourceMapping. \n  - `$PROJECT_SOURCE`:
                                          A path to a project source ($PROJECTS_ROOT/<project-name>).
                                          If there are multiple projects, this will
                                          point to the directory of the first one."
                                        type: string
                                      component:
                                        description: Describes component to which
                                          given action relates
                                        type: string
                                      env:
                                        description: Optional list of environment
                                          variables that have to be set before running
                                          the command
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                      group:
                                        description: Defines the group this command
                                          is part of
                                        properties:
                                          isDefault:
                                            description: Identifies the default command
                                              for a given group kind
                                            type: boolean
                                          kind:
                                            description: Kind of group the command
                                              is part of
                                            enum:
                                            - build
                                            - run
                                            - test
                                            - debug
                                            - deploy
                                            type: string
                                        type: object
                                      hotReloadCapable:
                                        description: "Whether the command is capable
                                          to reload itself when source code changes.
                                          If set to `true` the command won't be restarted
                                          and it is expected to handle file changes
                                          on its own. \n Default value is `false`"
                                        type: boolean
                                      label:
                                        description: Optional label that provides
                                          a label for this command to be used in Editor
                                          UI menus for example
                                        type: string
                                      workingDir:
                                        description: "Working directory where the
                                          command should be executed \n Special variables
                                          that can be used: \n  - `$PROJECTS_ROOT`:
                                          A path where projects sources are mounted
                                          as defined by container component's sourceMapping.
                                          \n  - `$PROJECT_SOURCE`: A path to a project
                                          source ($PROJECTS_ROOT/<project-name>).
                                          If there are multiple projects, this will
                                          point to the directory of the first one."
                                        type: string
                                    type: object
                                  id:
                                    description: Mandatory identifier that allows
                                      referencing this command in composite commands,
                                      from a parent, or in events.
                                    maxLength: 63
                                    pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                    type: string
                                required:
                                - id
                                type: object
                              type: array
                            components:
                              description: Overrides of components encapsulated in
                                a parent devfile or a plugin. Overriding is done according
                                to K8S strategic merge patch standard rules.
                              items:
                                oneOf:
                                - required:
                                  - container
                                - required:
                                  - kubernetes
                                - required:
                                  - openshift
                                - required:
                                  - volume
                                - required:
                                  - image
                                properties:
                                  attributes:
                                    description: Map of implementation-dependant free-form
                                      YAML attributes.
                                    type: object
                                    x-kubernetes-preserve-unknown-fields: true
                                  componentType:
                                    description: Type of component
                                    enum:
                                    - Container
                                    - Kubernetes
                                    - Openshift
                                    - Volume
                                    - Image
                                    type: string
                                  container:
                                    description: Allows adding and configuring devworkspace-related
                                      containers
                                    properties:
                                      args:
                                        description: "The arguments to supply to the
                                          command running the dockerimage component.
                                          The arguments are supplied either to the
                                          default command provided in the image or
                                          to the overridden command. \n Defaults to
                                          an empty array, meaning use whatever is
                                          defined in the image."
                                        items:
                                          type: string
                                        type: array
                                      command:
                                        description: "The command to run in the dockerimage
                                          component instead of the default one provided
                                          in the image. \n Defaults to an empty array,
                                          meaning use whatever is defined in the image."
                                        items:
                                          type: string
                                        type: array
                                      cpuLimit:
                                        type: string
                                      cpuRequest:
                                        type: string
                                      dedicatedPod:
                                        description: "Specify if a container should
                                          run in its own separated pod, instead of
                                          running as part of the main development
                                          environment pod. \n Default value is `false`"
                                        type: boolean
                                      endpoints:
                                        items:
                                          properties:
                                            attributes:
                                              description: "Map of implementation-dependant
                                                string-based free-form attributes.
                                                \n Examples of Che-specific attributes:
                                                \n - cookiesAuthEnabled: \"true\"
                                                / \"false\", \n - type: \"terminal\"
                                                / \"ide\" / \"ide-dev\","
                                              type: object
                                              x-kubernetes-preserve-unknown-fields: true
                                            exposure:
                                              description: "Describes how the endpoint
                                                should be exposed on the network.
                                                \n - `public` means that the endpoint
                                                will be exposed on the public network,
                                                typically through a K8S ingress or
                                                an OpenShift route. \n - `internal`
                                                means that the endpoint will be exposed
                                                internally outside of the main devworkspace
                                                POD, typically by K8S services, to
                                                be consumed by other elements running
                                                on the same cloud internal network.
                                                \n - `none` means that the endpoint
                                                will not be exposed and will only
                                                be accessible inside the main devworkspace
                                                POD, on a local address. \n Default
                                                value is `public`"
                                              enum:
                                              - public
                                              - internal
                                              - none
                                              type: string
                                            name:
                                              maxLength: 63
                                              pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                              type: string
                                            path:
                                              description: Path of the endpoint URL
                                              type: string
                                            protocol:
                                              description: "Describes the application
                                                and transport protocols of the traffic
                                                that will go through this endpoint.
                                                \n - `http`: Endpoint will have `http`
                                                traffic, typically on a TCP connection.
                                                It will be automaticaly promoted to
                                                `https` when the `secure` field is
                                                set to `true`. \n - `https`: Endpoint
                                                will have `https` traffic, typically
                                                on a TCP connection. \n - `ws`: Endpoint
                                                will have `ws` traffic, typically
                                                on a TCP connection. It will be automaticaly
                                                promoted to `wss` when the `secure`
                                                field is set to `true`. \n - `wss`:
                                                Endpoint will have `wss` traffic,
                                                typically on a TCP connection. \n
                                                - `tcp`: Endpoint will have traffic
                                                on a TCP connection, without specifying
                                                an application protocol. \n - `udp`:
                                                Endpoint will have traffic on an UDP
                                                connection, without specifying an
                                                application protocol. \n Default value
                                                is `http`"
                                              enum:
                                              - http
                                              - https
                                              - ws
                                              - wss
                                              - tcp
                                              - udp
                                              type: string
                                            secure:
                                              description: Describes whether the endpoint
                                                should be secured and protected by
                                                some authentication process. This
                                                requires a protocol of `https` or
                                                `wss`.
                                              type: boolean
                                            targetPort:
                                              type: integer
                                          required:
                                          - name
                                          type: object
                                        type: array
                                      env:
                                        description: "Environment variables used in
                                          this container. \n The following variables
                                          are reserved and cannot be overridden via
                                          env: \n  - `$PROJECTS_ROOT` \n  - `$PROJECT_SOURCE`"
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                      image:
                                        type: string
                                      memoryLimit:
                                        type: string
                                      memoryRequest:
                                        type: string
                                      mountSources:
                                        description: "Toggles whether or not the project
                                          source code should be mounted in the component.
                                          \n Defaults to true for all component types
                                          except plugins and components that set `dedicatedPod`
                                          to true."
                                        type: boolean
                                      sourceMapping:
                                        description: Optional specification of the
                                          path in the container where project sources
                                          should be transferred/mounted when `mountSources`
                                          is `true`. When omitted, the default value
                                          of /projects is used.
                                        type: string
                                      volumeMounts:
                                        description: List of volumes mounts that should
                                          be mounted is this container.
                                        items:
                                          description: Volume that should be mounted
                                            to a component container
                                          properties:
                                            name:
                                              description: The volume mount name is
                                                the name of an existing `Volume` component.
                                                If several containers mount the same
                                                volume name then they will reuse the
                                                same volume and will be able to access
                                                to the same files.
                                              maxLength: 63
                                              pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                              type: string
                                            path:
                                              description: The path in the component
                                                container where the volume should
                                                be mounted. If not path is mentioned,
                                                default path is the is `/<name>`.
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                    type: object
                                  image:
                                    description: Allows specifying the definition
                                      of an image for outer loop builds
                                    oneOf:
                                    - required:
                                      - dockerfile
                                    properties:
                                      dockerfile:
                                        description: Allows specifying dockerfile
                                          type build
                                        oneOf:
                                        - required:
                                          - uri
                                        - required:
                                          - devfileRegistry
                                        - required:
                                          - git
                                        properties:
                                          args:
                                            description: The arguments to supply to
                                              the dockerfile build.
                                            items:
                                              type: string
                                            type: array
                                          buildContext:
                                            description: Path of source directory
                                              to establish build context. Defaults
                                              to ${PROJECT_ROOT} in the container
                                            type: string
                                          devfileRegistry:
                                            description: Dockerfile's Devfile Registry
                                              source
                                            properties:
                                              id:
                                                description: Id in a devfile registry
                                                  that contains a Dockerfile. The
                                                  src in the OCI registry required
                                                  for the Dockerfile build will be
                                                  downloaded for building the image.
                                                type: string
                                              registryUrl:
                                                description: Devfile Registry URL
                                                  to pull the Dockerfile from when
                                                  using the Devfile Registry as Dockerfile
                                                  src. To ensure the Dockerfile gets
                                                  resolved consistently in different
                                                  environments, it is recommended
                                                  to always specify the `devfileRegistryUrl`
                                                  when `Id` is used.
                                                type: string
                                            type: object
                                          git:
                                            description: Dockerfile's Git source
                                            properties:
                                              checkoutFrom:
                                                description: Defines from what the
                                                  project should be checked out. Required
                                                  if there are more than one remote
                                                  configured
                                                properties:
                                                  remote:
                                                    description: The remote name should
                                                      be used as init. Required if
                                                      there are more than one remote
                                                      configured
                                                    type: string
                                                  revision:
                                                    description: The revision to checkout
                                                      from. Should be branch name,
                                                      tag or commit id. Default branch
                                                      is used if missing or specified
                                                      revision is not found.
                                                    type: string
                                                type: object
                                              fileLocation:
                                                description: Location of the Dockerfile
                                                  in the Git repository when using
                                                  git as Dockerfile src. Defaults
                                                  to Dockerfile.
                                                type: string
                                              remotes:
                                                additionalProperties:
                                                  type: string
                                                description: The remotes map which
                                                  should be initialized in the git
                                                  project. Projects must have at least
                                                  one remote configured while StarterProjects
                                                  & Image Component's Git source can
                                                  only have at most one remote configured.
                                                type: object
                                            type: object
                                          rootRequired:
                                            description: "Specify if a privileged
                                              builder pod is required. \n Default
                                              value is `false`"
                                            type: boolean
                                          srcType:
                                            description: Type of Dockerfile src
                                            enum:
                                            - Uri
                                            - DevfileRegistry
                                            - Git
                                            type: string
                                          uri:
                                            description: URI Reference of a Dockerfile.
                                              It can be a full URL or a relative URI
                                              from the current devfile as the base
                                              URI.
                                            type: string
                                        type: object
                                      imageName:
                                        description: Name of the image for the resulting
                                          outerloop build
                                        type: string
                                      imageType:
                                        description: Type of image
                                        enum:
                                        - Dockerfile
                                        type: string
                                    type: object
                                  kubernetes:
                                    description: Allows importing into the devworkspace
                                      the Kubernetes resources defined in a given
                                      manifest. For example this allows reusing the
                                      Kubernetes definitions used to deploy some runtime
                                      components in production.
                                    oneOf:
                                    - required:
                                      - uri
                                    - required:
                                      - inlined
                                    properties:
                                      endpoints:
                                        items:
                                          properties:
                                            attributes:
                                              description: "Map of implementation-dependant
                                                string-based free-form attributes.
                                                \n Examples of Che-specific attributes:
                                                \n - cookiesAuthEnabled: \"true\"
                                                / \"false\", \n - type: \"terminal\"
                                                / \"ide\" / \"ide-dev\","
                                              type: object
                                              x-kubernetes-preserve-unknown-fields: true
                                            exposure:
                                              description: "Describes how the endpoint
                                                should be exposed on the network.
                                                \n - `public` means that the endpoint
                                                will be exposed on the public network,
                                                typically through a K8S ingress or
                                                an OpenShift route. \n - `internal`
                                                means that the endpoint will be exposed
                                                internally outside of the main devworkspace
                                                POD, typically by K8S services, to
                                                be consumed by other elements running
                                                on the same cloud internal network.
                                                \n - `none` means that the endpoint
                                                will not be exposed and will only
                                                be accessible inside the main devworkspace
                                                POD, on a local address. \n Default
                                                value is `public`"
                                              enum:
                                              - public
                                              - internal
                                              - none
                                              type: string
                                            name:
                                              maxLength: 63
                                              pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                              type: string
                                            path:
                                              description: Path of the endpoint URL
                                              type: string
                                            protocol:
                                              description: "Describes the application
                                                and transport protocols of the traffic
                                                that will go through this endpoint.
                                                \n - `http`: Endpoint will have `http`
                                                traffic, typically on a TCP connection.
                                                It will be automaticaly promoted to
                                                `https` when the `secure` field is
                                                set to `true`. \n - `https`: Endpoint
                                                will have `https` traffic, typically
                                                on a TCP connection. \n - `ws`: Endpoint
                                                will have `ws` traffic, typically
                                                on a TCP connection. It will be automaticaly
                                                promoted to `wss` when the `secure`
                                                field is set to `true`. \n - `wss`:
                                                Endpoint will have `wss` traffic,
                                                typically on a TCP connection. \n
                                                - `tcp`: Endpoint will have traffic
                                                on a TCP connection, without specifying
                                                an application protocol. \n - `udp`:
                                                Endpoint will have traffic on an UDP
                                                connection, without specifying an
                                                application protocol. \n Default value
                                                is `http`"
                                              enum:
                                              - http
                                              - https
                                              - ws
                                              - wss
                                              - tcp
                                              - udp
                                              type: string
                                            secure:
                                              description: Describes whether the endpoint
                                                should be secured and protected by
                                                some authentication process. This
                                                requires a protocol of `https` or
                                                `wss`.
                                              type: boolean
                                            targetPort:
                                              type: integer
                                          required:
                                          - name
                                          type: object
                                        type: array
                                      inlined:
                                        description: Inlined manifest
                                        type: string
                                      locationType:
                                        description: Type of Kubernetes-like location
                                        enum:
                                        - Uri
                                        - Inlined
                                        type: string
                                      uri:
                                        description: Location in a file fetched from
                                          a uri.
                                        type: string
                                    type: object
                                  name:
                                    description: Mandatory name that allows referencing
                                      the component from other elements (such as commands)
                                      or from an external devfile that may reference
                                      this component through a parent or a plugin.
                                    maxLength: 63
                                    pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                    type: string
                                  openshift:
                                    description: Allows importing into the devworkspace
                                      the OpenShift resources defined in a given manifest.
                                      For example this allows reusing the OpenShift
                                      definitions used to deploy some runtime components
                                      in production.
                                    oneOf:
                                    - required:
                                      - uri
                                    - required:
                                      - inlined
                                    properties:
                                      endpoints:
                                        items:
                                          properties:
                                            attributes:
                                              description: "Map of implementation-dependant
                                                string-based free-form attributes.
                                                \n Examples of Che-specific attributes:
                                                \n - cookiesAuthEnabled: \"true\"
                                                / \"false\", \n - type: \"terminal\"
                                                / \"ide\" / \"ide-dev\","
                                              type: object
                                              x-kubernetes-preserve-unknown-fields: true
                                            exposure:
                                              description: "Describes how the endpoint
                                                should be exposed on the network.
                                                \n - `public` means that the endpoint
                                                will be exposed on the public network,
                                                typically through a K8S ingress or
                                                an OpenShift route. \n - `internal`
                                                means that the endpoint will be exposed
                                                internally outside of the main devworkspace
                                                POD, typically by K8S services, to
                                                be consumed by other elements running
                                                on the same cloud internal network.
                                                \n - `none` means that the endpoint
                                                will not be exposed and will only
                                                be accessible inside the main devworkspace
                                                POD, on a local address. \n Default
                                                value is `public`"
                                              enum:
                                              - public
                                              - internal
                                              - none
                                              type: string
                                            name:
                                              maxLength: 63
                                              pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                              type: string
                                            path:
                                              description: Path of the endpoint URL
                                              type: string
                                            protocol:
                                              description: "Describes the application
                                                and transport protocols of the traffic
                                                that will go through this endpoint.
                                                \n - `http`: Endpoint will have `http`
                                                traffic, typically on a TCP connection.
                                                It will be automaticaly promoted to
                                                `https` when the `secure` field is
                                                set to `true`. \n - `https`: Endpoint
                                                will have `https` traffic, typically
                                                on a TCP connection. \n - `ws`: Endpoint
                                                will have `ws` traffic, typically
                                                on a TCP connection. It will be automaticaly
                                                promoted to `wss` when the `secure`
                                                field is set to `true`. \n - `wss`:
                                                Endpoint will have `wss` traffic,
                                                typically on a TCP connection. \n
                                                - `tcp`: Endpoint will have traffic
                                                on a TCP connection, without specifying
                                                an application protocol. \n - `udp`:
                                                Endpoint will have traffic on an UDP
                                                connection, without specifying an
                                                application protocol. \n Default value
                                                is `http`"
                                              enum:
                                              - http
                                              - https
                                              - ws
                                              - wss
                                              - tcp
                                              - udp
                                              type: string
                                            secure:
                                              description: Describes whether the endpoint
                                                should be secured and protected by
                                                some authentication process. This
                                                requires a protocol of `https` or
                                                `wss`.
                                              type: boolean
                                            targetPort:
                                              type: integer
                                          required:
                                          - name
                                          type: object
                                        type: array
                                      inlined:
                                        description: Inlined manifest
                                        type: string
                                      locationType:
                                        description: Type of Kubernetes-like location
                                        enum:
                                        - Uri
                                        - Inlined
                                        type: string
                                      uri:
                                        description: Location in a file fetched from
                                          a uri.
                                        type: string
                                    type: object
                                  volume:
                                    description: Allows specifying the definition
                                      of a volume shared by several other components
                                    properties:
                                      ephemeral:
                                        description: Ephemeral volumes are not stored
                                          persistently across restarts. Defaults to
                                          false
                                        type: boolean
                                      size:
                                        description: Size of the volume
                                        type: string
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                            id:
                              description: Id in a registry that contains a Devfile
                                yaml file
                              type: string
                            importReferenceType:
                              description: type of location from where the referenced
                                template structure should be retrieved
                              enum:
                              - Uri
                              - Id
                              - Kubernetes
                              type: string
                            kubernetes:
                              description: Reference to a Kubernetes CRD of type DevWorkspaceTemplate
                              properties:
                                name:
                                  type: string
                                namespace:
                                  type: string
                              required:
                              - name
                              type: object
                            registryUrl:
                              description: Registry URL to pull the parent devfile
                                from when using id in the parent reference. To ensure
                                the parent devfile gets resolved consistently in different
                                environments, it is recommended to always specify
                                the `registryUrl` when `id` is used.
                              type: string
                            uri:
                              description: URI Reference of a parent devfile YAML
                                file. It can be a full URL or a relative URI with
                                the current devfile as the base URI.
                              type: string
                          type: object
                        volume:
                          description: Allows specifying the definition of a volume
                            shared by several other components
                          properties:
                            ephemeral:
                              description: Ephemeral volumes are not stored persistently
                                across restarts. Defaults to false
                              type: boolean
                            size:
                              description: Size of the volume
                              type: string
                          type: object
                      required:
                      - name
                      type: object
                    type: array
                  events:
                    description: Bindings of commands to events. Each command is referred-to
                      by its name.
                    properties:
                      postStart:
                        description: IDs of commands that should be executed after
                          the devworkspace is completely started. In the case of Che-Theia,
                          these commands should be executed after all plugins and
                          extensions have started, including project cloning. This
                          means that those commands are not triggered until the user
                          opens the IDE in his browser.
                        items:
                          type: string
                        type: array
                      postStop:
                        description: IDs of commands that should be executed after
                          stopping the devworkspace.
                        items:
                          type: string
                        type: array
                      preStart:
                        description: IDs of commands that should be executed before
                          the devworkspace start. Kubernetes-wise, these commands
                          would typically be executed in init containers of the devworkspace
                          POD.
                        items:
                          type: string
                        type: array
                      preStop:
                        description: IDs of commands that should be executed before
                          stopping the devworkspace.
                        items:
                          type: string
                        type: array
                    type: object
                  parent:
                    description: Parent devworkspace template
                    oneOf:
                    - required:
                      - uri
                    - required:
                      - id
                    - required:
                      - kubernetes
                    properties:
                      attributes:
                        description: Overrides of attributes encapsulated in a parent
                          devfile. Overriding is done according to K8S strategic merge
                          patch standard rules.
                        type: object
                        x-kubernetes-preserve-unknown-fields: true
                      commands:
                        description: Overrides of commands encapsulated in a parent
                          devfile or a plugin. Overriding is done according to K8S
                          strategic merge patch standard rules.
                        items:
                          oneOf:
                          - required:
                            - exec
                          - required:
                            - apply
                          - required:
                            - composite
                          properties:
                            apply:
                              description: "Command that consists in applying a given
                                component definition, typically bound to a devworkspace
                                event. \n For example, when an `apply` command is
                                bound to a `preStart` event, and references a `container`
                                component, it will start the container as a K8S initContainer
                                in the devworkspace POD, unless the component has
                                its `dedicatedPod` field set to `true`. \n When no
                                `apply` command exist for a given component, it is
                                assumed the component will be applied at devworkspace
                                start by default."
                              properties:
                                component:
                                  description: Describes component that will be applied
                                  type: string
                                group:
                                  description: Defines the group this command is part
                                    of
                                  properties:
                                    isDefault:
                                      description: Identifies the default command
                                        for a given group kind
                                      type: boolean
                                    kind:
                                      description: Kind of group the command is part
                                        of
                                      enum:
                                      - build
                                      - run
                                      - test
                                      - debug
                                      - deploy
                                      type: string
                                  type: object
                                label:
                                  description: Optional label that provides a label
                                    for this command to be used in Editor UI menus
                                    for example
                                  type: string
                              type: object
                            attributes:
                              description: Map of implementation-dependant free-form
                                YAML attributes.
                              type: object
                              x-kubernetes-preserve-unknown-fields: true
                            commandType:
                              description: Type of devworkspace command
                              enum:
                              - Exec
                              - Apply
                              - Composite
                              type: string
                            composite:
                              description: Composite command that allows executing
                                several sub-commands either sequentially or concurrently
                              properties:
                                commands:
                                  description: The commands that comprise this composite
                                    command
                                  items:
                                    type: string
                                  type: array
                                group:
                                  description: Defines the group this command is part
                                    of
                                  properties:
                                    isDefault:
                                      description: Identifies the default command
                                        for a given group kind
                                      type: boolean
                                    kind:
                                      description: Kind of group the command is part
                                        of
                                      enum:
                                      - build
                                      - run
                                      - test
                                      - debug
                                      - deploy
                                      type: string
                                  type: object
                                label:
                                  description: Optional label that provides a label
                                    for this command to be used in Editor UI menus
                                    for example
                                  type: string
                                parallel:
                                  description: Indicates if the sub-commands should
                                    be executed concurrently
                                  type: boolean
                              type: object
                            exec:
                              description: CLI Command executed in an existing component
                                container
                              properties:
                                commandLine:
                                  description: "The actual command-line string \n
                                    Special variables that can be used: \n  - `$PROJECTS_ROOT`:
                                    A path where projects sources are mounted as defined
                                    by container component's sourceMapping. \n  -
                                    `$PROJECT_SOURCE`: A path to a project source
                                    ($PROJECTS_ROOT/<project-name>). If there are
                                    multiple projects, this will point to the directory
                                    of the first one."
                                  type: string
                                component:
                                  description: Describes component to which given
                                    action relates
                                  type: string
                                env:
                                  description: Optional list of environment variables
                                    that have to be set before running the command
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    type: object
                                  type: array
                                group:
                                  description: Defines the group this command is part
                                    of
                                  properties:
                                    isDefault:
                                      description: Identifies the default command
                                        for a given group kind
                                      type: boolean
                                    kind:
                                      description: Kind of group the command is part
                                        of
                                      enum:
                                      - build
                                      - run
                                      - test
                                      - debug
                                      - deploy
                                      type: string
                                  type: object
                                hotReloadCapable:
                                  description: "Whether the command is capable to
                                    reload itself when source code changes. If set
                                    to `true` the command won't be restarted and it
                                    is expected to handle file changes on its own.
                                    \n Default value is `false`"
                                  type: boolean
                                label:
                                  description: Optional label that provides a label
                                    for this command to be used in Editor UI menus
                                    for example
                                  type: string
                                workingDir:
                                  description: "Working directory where the command
                                    should be executed \n Special variables that can
                                    be used: \n  - `$PROJECTS_ROOT`: A path where
                                    projects sources are mounted as defined by container
                                    component's sourceMapping. \n  - `$PROJECT_SOURCE`:
                                    A path to a project source ($PROJECTS_ROOT/<project-name>).
                                    If there are multiple projects, this will point
                                    to the directory of the first one."
                                  type: string
                              type: object
                            id:
                              description: Mandatory identifier that allows referencing
                                this command in composite commands, from a parent,
                                or in events.
                              maxLength: 63
                              pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                              type: string
                          required:
                          - id
                          type: object
                        type: array
                      components:
                        description: Overrides of components encapsulated in a parent
                          devfile or a plugin. Overriding is done according to K8S
                          strategic merge patch standard rules.
                        items:
                          oneOf:
                          - required:
                            - container
                          - required:
                            - kubernetes
                          - required:
                            - openshift
                          - required:
                            - volume
                          - required:
                            - image
                          - required:
                            - plugin
                          properties:
                            attributes:
                              description: Map of implementation-dependant free-form
                                YAML attributes.
                              type: object
                              x-kubernetes-preserve-unknown-fields: true
                            componentType:
                              description: Type of component
                              enum:
                              - Container
                              - Kubernetes
                              - Openshift
                              - Volume
                              - Image
                              - Plugin
                              type: string
                            container:
                              description: Allows adding and configuring devworkspace-related
                                containers
                              properties:
                                args:
                                  description: "The arguments to supply to the command
                                    running the dockerimage component. The arguments
                                    are supplied either to the default command provided
                                    in the image or to the overridden command. \n
                                    Defaults to an empty array, meaning use whatever
                                    is defined in the image."
                                  items:
                                    type: string
                                  type: array
                                command:
                                  description: "The command to run in the dockerimage
                                    component instead of the default one provided
                                    in the image. \n Defaults to an empty array, meaning
                                    use whatever is defined in the image."
                                  items:
                                    type: string
                                  type: array
                                cpuLimit:
                                  type: string
                                cpuRequest:
                                  type: string
                                dedicatedPod:
                                  description: "Specify if a container should run
                                    in its own separated pod, instead of running as
                                    part of the main development environment pod.
                                    \n Default value is `false`"
                                  type: boolean
                                endpoints:
                                  items:
                                    properties:
                                      attributes:
                                        description: "Map of implementation-dependant
                                          string-based free-form attributes. \n Examples
                                          of Che-specific attributes: \n - cookiesAuthEnabled:
                                          \"true\" / \"false\", \n - type: \"terminal\"
                                          / \"ide\" / \"ide-dev\","
                                        type: object
                                        x-kubernetes-preserve-unknown-fields: true
                                      exposure:
                                        description: "Describes how the endpoint should
                                          be exposed on the network. \n - `public`
                                          means that the endpoint will be exposed
                                          on the public network, typically through
                                          a K8S ingress or an OpenShift route. \n
                                          - `internal` means that the endpoint will
                                          be exposed internally outside of the main
                                          devworkspace POD, typically by K8S services,
                                          to be consumed by other elements running
                                          on the same cloud internal network. \n -
                                          `none` means that the endpoint will not
                                          be exposed and will only be accessible inside
                                          the main devworkspace POD, on a local address.
                                          \n Default value is `public`"
                                        enum:
                                        - public
                                        - internal
                                        - none
                                        type: string
                                      name:
                                        maxLength: 63
                                        pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                        type: string
                                      path:
                                        description: Path of the endpoint URL
                                        type: string
                                      protocol:
                                        description: "Describes the application and
                                          transport protocols of the traffic that
                                          will go through this endpoint. \n - `http`:
                                          Endpoint will have `http` traffic, typically
                                          on a TCP connection. It will be automaticaly
                                          promoted to `https` when the `secure` field
                                          is set to `true`. \n - `https`: Endpoint
                                          will have `https` traffic, typically on
                                          a TCP connection. \n - `ws`: Endpoint will
                                          have `ws` traffic, typically on a TCP connection.
                                          It will be automaticaly promoted to `wss`
                                          when the `secure` field is set to `true`.
                                          \n - `wss`: Endpoint will have `wss` traffic,
                                          typically on a TCP connection. \n - `tcp`:
                                          Endpoint will have traffic on a TCP connection,
                                          without specifying an application protocol.
                                          \n - `udp`: Endpoint will have traffic on
                                          an UDP connection, without specifying an
                                          application protocol. \n Default value is
                                          `http`"
                                        enum:
                                        - http
                                        - https
                                        - ws
                                        - wss
                                        - tcp
                                        - udp
                                        type: string
                                      secure:
                                        description: Describes whether the endpoint
                                          should be secured and protected by some
                                          authentication process. This requires a
                                          protocol of `https` or `wss`.
                                        type: boolean
                                      targetPort:
                                        type: integer
                                    required:
                                    - name
                                    type: object
                                  type: array
                                env:
                                  description: "Environment variables used in this
                                    container. \n The following variables are reserved
                                    and cannot be overridden via env: \n  - `$PROJECTS_ROOT`
                                    \n  - `$PROJECT_SOURCE`"
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    type: object
                                  type: array
                                image:
                                  type: string
                                memoryLimit:
                                  type: string
                                memoryRequest:
                                  type: string
                                mountSources:
                                  description: "Toggles whether or not the project
                                    source code should be mounted in the component.
                                    \n Defaults to true for all component types except
                                    plugins and components that set `dedicatedPod`
                                    to true."
                                  type: boolean
                                sourceMapping:
                                  description: Optional specification of the path
                                    in the container where project sources should
                                    be transferred/mounted when `mountSources` is
                                    `true`. When omitted, the default value of /projects
                                    is used.
                                  type: string
                                volumeMounts:
                                  description: List of volumes mounts that should
                                    be mounted is this container.
                                  items:
                                    description: Volume that should be mounted to
                                      a component container
                                    properties:
                                      name:
                                        description: The volume mount name is the
                                          name of an existing `Volume` component.
                                          If several containers mount the same volume
                                          name then they will reuse the same volume
                                          and will be able to access to the same files.
                                        maxLength: 63
                                        pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                        type: string
                                      path:
                                        description: The path in the component container
                                          where the volume should be mounted. If not
                                          path is mentioned, default path is the is
                                          `/<name>`.
                                        type: string
                                    required:
                                    - name
                                    type: object
                                  type: array
                              type: object
                            image:
                              description: Allows specifying the definition of an
                                image for outer loop builds
                              oneOf:
                              - required:
                                - dockerfile
                              properties:
                                dockerfile:
                                  description: Allows specifying dockerfile type build
                                  oneOf:
                                  - required:
                                    - uri
                                  - required:
                                    - devfileRegistry
                                  - required:
                                    - git
                                  properties:
                                    args:
                                      description: The arguments to supply to the
                                        dockerfile build.
                                      items:
                                        type: string
                                      type: array
                                    buildContext:
                                      description: Path of source directory to establish
                                        build context. Defaults to ${PROJECT_ROOT}
                                        in the container
                                      type: string
                                    devfileRegistry:
                                      description: Dockerfile's Devfile Registry source
                                      properties:
                                        id:
                                          description: Id in a devfile registry that
                                            contains a Dockerfile. The src in the
                                            OCI registry required for the Dockerfile
                                            build will be downloaded for building
                                            the image.
                                          type: string
                                        registryUrl:
                                          description: Devfile Registry URL to pull
                                            the Dockerfile from when using the Devfile
                                            Registry as Dockerfile src. To ensure
                                            the Dockerfile gets resolved consistently
                                            in different environments, it is recommended
                                            to always specify the `devfileRegistryUrl`
                                            when `Id` is used.
                                          type: string
                                      type: object
                                    git:
                                      description: Dockerfile's Git source
                                      properties:
                                        checkoutFrom:
                                          description: Defines from what the project
                                            should be checked out. Required if there
                                            are more than one remote configured
                                          properties:
                                            remote:
                                              description: The remote name should
                                                be used as init. Required if there
                                                are more than one remote configured
                                              type: string
                                            revision:
                                              description: The revision to checkout
                                                from. Should be branch name, tag or
                                                commit id. Default branch is used
                                                if missing or specified revision is
                                                not found.
                                              type: string
                                          type: object
                                        fileLocation:
                                          description: Location of the Dockerfile
                                            in the Git repository when using git as
                                            Dockerfile src. Defaults to Dockerfile.
                                          type: string
                                        remotes:
                                          additionalProperties:
                                            type: string
                                          description: The remotes map which should
                                            be initialized in the git project. Projects
                                            must have at least one remote configured
                                            while StarterProjects & Image Component's
                                            Git source can only have at most one remote
                                            configured.
                                          type: object
                                      type: object
                                    rootRequired:
                                      description: "Specify if a privileged builder
                                        pod is required. \n Default value is `false`"
                                      type: boolean
                                    srcType:
                                      description: Type of Dockerfile src
                                      enum:
                                      - Uri
                                      - DevfileRegistry
                                      - Git
                                      type: string
                                    uri:
                                      description: URI Reference of a Dockerfile.
                                        It can be a full URL or a relative URI from
                                        the current devfile as the base URI.
                                      type: string
                                  type: object
                                imageName:
                                  description: Name of the image for the resulting
                                    outerloop build
                                  type: string
                                imageType:
                                  description: Type of image
                                  enum:
                                  - Dockerfile
                                  type: string
                              type: object
                            kubernetes:
                              description: Allows importing into the devworkspace
                                the Kubernetes resources defined in a given manifest.
                                For example this allows reusing the Kubernetes definitions
                                used to deploy some runtime components in production.
                              oneOf:
                              - required:
                                - uri
                              - required:
                                - inlined
                              properties:
                                endpoints:
                                  items:
                                    properties:
                                      attributes:
                                        description: "Map of implementation-dependant
                                          string-based free-form attributes. \n Examples
                                          of Che-specific attributes: \n - cookiesAuthEnabled:
                                          \"true\" / \"false\", \n - type: \"terminal\"
                                          / \"ide\" / \"ide-dev\","
                                        type: object
                                        x-kubernetes-preserve-unknown-fields: true
                                      exposure:
                                        description: "Describes how the endpoint should
                                          be exposed on the network. \n - `public`
                                          means that the endpoint will be exposed
                                          on the public network, typically through
                                          a K8S ingress or an OpenShift route. \n
                                          - `internal` means that the endpoint will
                                          be exposed internally outside of the main
                                          devworkspace POD, typically by K8S services,
                                          to be consumed by other elements running
                                          on the same cloud internal network. \n -
                                          `none` means that the endpoint will not
                                          be exposed and will only be accessible inside
                                          the main devworkspace POD, on a local address.
                                          \n Default value is `public`"
                                        enum:
                                        - public
                                        - internal
                                        - none
                                        type: string
                                      name:
                                        maxLength: 63
                                        pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                        type: string
                                      path:
                                        description: Path of the endpoint URL
                                        type: string
                                      protocol:
                                        description: "Describes the application and
                                          transport protocols of the traffic that
                                          will go through this endpoint. \n - `http`:
                                          Endpoint will have `http` traffic, typically
                                          on a TCP connection. It will be automaticaly
                                          promoted to `https` when the `secure` field
                                          is set to `true`. \n - `https`: Endpoint
                                          will have `https` traffic, typically on
                                          a TCP connection. \n - `ws`: Endpoint will
                                          have `ws` traffic, typically on a TCP connection.
                                          It will be automaticaly promoted to `wss`
                                          when the `secure` field is set to `true`.
                                          \n - `wss`: Endpoint will have `wss` traffic,
                                          typically on a TCP connection. \n - `tcp`:
                                          Endpoint will have traffic on a TCP connection,
                                          without specifying an application protocol.
                                          \n - `udp`: Endpoint will have traffic on
                                          an UDP connection, without specifying an
                                          application protocol. \n Default value is
                                          `http`"
                                        enum:
                                        - http
                                        - https
                                        - ws
                                        - wss
                                        - tcp
                                        - udp
                                        type: string
                                      secure:
                                        description: Describes whether the endpoint
                                          should be secured and protected by some
                                          authentication process. This requires a
                                          protocol of `https` or `wss`.
                                        type: boolean
                                      targetPort:
                                        type: integer
                                    required:
                                    - name
                                    type: object
                                  type: array
                                inlined:
                                  description: Inlined manifest
                                  type: string
                                locationType:
                                  description: Type of Kubernetes-like location
                                  enum:
                                  - Uri
                                  - Inlined
                                  type: string
                                uri:
                                  description: Location in a file fetched from a uri.
                                  type: string
                              type: object
                            name:
                              description: Mandatory name that allows referencing
                                the component from other elements (such as commands)
                                or from an external devfile that may reference this
                                component through a parent or a plugin.
                              maxLength: 63
                              pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                              type: string
                            openshift:
                              description: Allows importing into the devworkspace
                                the OpenShift resources defined in a given manifest.
                                For example this allows reusing the OpenShift definitions
                                used to deploy some runtime components in production.
                              oneOf:
                              - required:
                                - uri
                              - required:
                                - inlined
                              properties:
                                endpoints:
                                  items:
                                    properties:
                                      attributes:
                                        description: "Map of implementation-dependant
                                          string-based free-form attributes. \n Examples
                                          of Che-specific attributes: \n - cookiesAuthEnabled:
                                          \"true\" / \"false\", \n - type: \"terminal\"
                                          / \"ide\" / \"ide-dev\","
                                        type: object
                                        x-kubernetes-preserve-unknown-fields: true
                                      exposure:
                                        description: "Describes how the endpoint should
                                          be exposed on the network. \n - `public`
                                          means that the endpoint will be exposed
                                          on the public network, typically through
                                          a K8S ingress or an OpenShift route. \n
                                          - `internal` means that the endpoint will
                                          be exposed internally outside of the main
                                          devworkspace POD, typically by K8S services,
                                          to be consumed by other elements running
                                          on the same cloud internal network. \n -
                                          `none` means that the endpoint will not
                                          be exposed and will only be accessible inside
                                          the main devworkspace POD, on a local address.
                                          \n Default value is `public`"
                                        enum:
                                        - public
                                        - internal
                                        - none
                                        type: string
                                      name:
                                        maxLength: 63
                                        pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                        type: string
                                      path:
                                        description: Path of the endpoint URL
                                        type: string
                                      protocol:
                                        description: "Describes the application and
                                          transport protocols of the traffic that
                                          will go through this endpoint. \n - `http`:
                                          Endpoint will have `http` traffic, typically
                                          on a TCP connection. It will be automaticaly
                                          promoted to `https` when the `secure` field
                                          is set to `true`. \n - `https`: Endpoint
                                          will have `https` traffic, typically on
                                          a TCP connection. \n - `ws`: Endpoint will
                                          have `ws` traffic, typically on a TCP connection.
                                          It will be automaticaly promoted to `wss`
                                          when the `secure` field is set to `true`.
                                          \n - `wss`: Endpoint will have `wss` traffic,
                                          typically on a TCP connection. \n - `tcp`:
                                          Endpoint will have traffic on a TCP connection,
                                          without specifying an application protocol.
                                          \n - `udp`: Endpoint will have traffic on
                                          an UDP connection, without specifying an
                                          application protocol. \n Default value is
                                          `http`"
                                        enum:
                                        - http
                                        - https
                                        - ws
                                        - wss
                                        - tcp
                                        - udp
                                        type: string
                                      secure:
                                        description: Describes whether the endpoint
                                          should be secured and protected by some
                                          authentication process. This requires a
                                          protocol of `https` or `wss`.
                                        type: boolean
                                      targetPort:
                                        type: integer
                                    required:
                                    - name
                                    type: object
                                  type: array
                                inlined:
                                  description: Inlined manifest
                                  type: string
                                locationType:
                                  description: Type of Kubernetes-like location
                                  enum:
                                  - Uri
                                  - Inlined
                                  type: string
                                uri:
                                  description: Location in a file fetched from a uri.
                                  type: string
                              type: object
                            plugin:
                              description: "Allows importing a plugin. \n Plugins
                                are mainly imported devfiles that contribute components,
                                commands and events as a consistent single unit. They
                                are defined in either YAML files following the devfile
                                syntax, or as `DevWorkspaceTemplate` Kubernetes Custom
                                Resources"
                              oneOf:
                              - required:
                                - uri
                              - required:
                                - id
                              - required:
                                - kubernetes
                              properties:
                                commands:
                                  description: Overrides of commands encapsulated
                                    in a parent devfile or a plugin. Overriding is
                                    done according to K8S strategic merge patch standard
                                    rules.
                                  items:
                                    oneOf:
                                    - required:
                                      - exec
                                    - required:
                                      - apply
                                    - required:
                                      - composite
                                    properties:
                                      apply:
                                        description: "Command that consists in applying
                                          a given component definition, typically
                                          bound to a devworkspace event. \n For example,
                                          when an `apply` command is bound to a `preStart`
                                          event, and references a `container` component,
                                          it will start the container as a K8S initContainer
                                          in the devworkspace POD, unless the component
                                          has its `dedicatedPod` field set to `true`.
                                          \n When no `apply` command exist for a given
                                          component, it is assumed the component will
                                          be applied at devworkspace start by default."
                                        properties:
                                          component:
                                            description: Describes component that
                                              will be applied
                                            type: string
                                          group:
                                            description: Defines the group this command
                                              is part of
                                            properties:
                                              isDefault:
                                                description: Identifies the default
                                                  command for a given group kind
                                                type: boolean
                                              kind:
                                                description: Kind of group the command
                                                  is part of
                                                enum:
                                                - build
                                                - run
                                                - test
                                                - debug
                                                - deploy
                                                type: string
                                            type: object
                                          label:
                                            description: Optional label that provides
                                              a label for this command to be used
                                              in Editor UI menus for example
                                            type: string
                                        type: object
                                      attributes:
                                        description: Map of implementation-dependant
                                          free-form YAML attributes.
                                        type: object
                                        x-kubernetes-preserve-unknown-fields: true
                                      commandType:
                                        description: Type of devworkspace command
                                        enum:
                                        - Exec
                                        - Apply
                                        - Composite
                                        type: string
                                      composite:
                                        description: Composite command that allows
                                          executing several sub-commands either sequentially
                                          or concurrently
                                        properties:
                                          commands:
                                            description: The commands that comprise
                                              this composite command
                                            items:
                                              type: string
                                            type: array
                                          group:
                                            description: Defines the group this command
                                              is part of
                                            properties:
                                              isDefault:
                                                description: Identifies the default
                                                  command for a given group kind
                                                type: boolean
                                              kind:
                                                description: Kind of group the command
                                                  is part of
                                                enum:
                                                - build
                                                - run
                                                - test
                                                - debug
                                                - deploy
                                                type: string
                                            type: object
                                          label:
                                            description: Optional label that provides
                                              a label for this command to be used
                                              in Editor UI menus for example
                                            type: string
                                          parallel:
                                            description: Indicates if the sub-commands
                                              should be executed concurrently
                                            type: boolean
                                        type: object
                                      exec:
                                        description: CLI Command executed in an existing
                                          component container
                                        properties:
                                          commandLine:
                                            description: "The actual command-line
                                              string \n Special variables that can
                                              be used: \n  - `$PROJECTS_ROOT`: A path
                                              where projects sources are mounted as
                                              defined by container component's sourceMapping.
                                              \n  - `$PROJECT_SOURCE`: A path to a
                                              project source ($PROJECTS_ROOT/<project-name>).
                                              If there are multiple projects, this
                                              will point to the directory of the first
                                              one."
                                            type: string
                                          component:
                                            description: Describes component to which
                                              given action relates
                                            type: string
                                          env:
                                            description: Optional list of environment
                                              variables that have to be set before
                                              running the command
                                            items:
                                              properties:
                                                name:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - name
                                              type: object
                                            type: array
                                          group:
                                            description: Defines the group this command
                                              is part of
                                            properties:
                                              isDefault:
                                                description: Identifies the default
                                                  command for a given group kind
                                                type: boolean
                                              kind:
                                                description: Kind of group the command
                                                  is part of
                                                enum:
                                                - build
                                                - run
                                                - test
                                                - debug
                                                - deploy
                                                type: string
                                            type: object
                                          hotReloadCapable:
                                            description: "Whether the command is capable
                                              to reload itself when source code changes.
                                              If set to `true` the command won't be
                                              restarted and it is expected to handle
                                              file changes on its own. \n Default
                                              value is `false`"
                                            type: boolean
                                          label:
                                            description: Optional label that provides
                                              a label for this command to be used
                                              in Editor UI menus for example
                                            type: string
                                          workingDir:
                                            description: "Working directory where
                                              the command should be executed \n Special
                                              variables that can be used: \n  - `$PROJECTS_ROOT`:
                                              A path where projects sources are mounted
                                              as defined by container component's
                                              sourceMapping. \n  - `$PROJECT_SOURCE`:
                                              A path to a project source ($PROJECTS_ROOT/<project-name>).
                                              If there are multiple projects, this
                                              will point to the directory of the first
                                              one."
                                            type: string
                                        type: object
                                      id:
                                        description: Mandatory identifier that allows
                                          referencing this command in composite commands,
                                          from a parent, or in events.
                                        maxLength: 63
                                        pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                        type: string
                                    required:
                                    - id
                                    type: object
                                  type: array
                                components:
                                  description: Overrides of components encapsulated
                                    in a parent devfile or a plugin. Overriding is
                                    done according to K8S strategic merge patch standard
                                    rules.
                                  items:
                                    oneOf:
                                    - required:
                                      - container
                                    - required:
                                      - kubernetes
                                    - required:
                                      - openshift
                                    - required:
                                      - volume
                                    - required:
                                      - image
                                    properties:
                                      attributes:
                                        description: Map of implementation-dependant
                                          free-form YAML attributes.
                                        type: object
                                        x-kubernetes-preserve-unknown-fields: true
                                      componentType:
                                        description: Type of component
                                        enum:
                                        - Container
                                        - Kubernetes
                                        - Openshift
                                        - Volume
                                        - Image
                                        type: string
                                      container:
                                        description: Allows adding and configuring
                                          devworkspace-related containers
                                        properties:
                                          args:
                                            description: "The arguments to supply
                                              to the command running the dockerimage
                                              component. The arguments are supplied
                                              either to the default command provided
                                              in the image or to the overridden command.
                                              \n Defaults to an empty array, meaning
                                              use whatever is defined in the image."
                                            items:
                                              type: string
                                            type: array
                                          command:
                                            description: "The command to run in the
                                              dockerimage component instead of the
                                              default one provided in the image. \n
                                              Defaults to an empty array, meaning
                                              use whatever is defined in the image."
                                            items:
                                              type: string
                                            type: array
                                          cpuLimit:
                                            type: string
                                          cpuRequest:
                                            type: string
                                          dedicatedPod:
                                            description: "Specify if a container should
                                              run in its own separated pod, instead
                                              of running as part of the main development
                                              environment pod. \n Default value is
                                              `false`"
                                            type: boolean
                                          endpoints:
                                            items:
                                              properties:
                                                attributes:
                                                  description: "Map of implementation-dependant
                                                    string-based free-form attributes.
                                                    \n Examples of Che-specific attributes:
                                                    \n - cookiesAuthEnabled: \"true\"
                                                    / \"false\", \n - type: \"terminal\"
                                                    / \"ide\" / \"ide-dev\","
                                                  type: object
                                                  x-kubernetes-preserve-unknown-fields: true
                                                exposure:
                                                  description: "Describes how the
                                                    endpoint should be exposed on
                                                    the network. \n - `public` means
                                                    that the endpoint will be exposed
                                                    on the public network, typically
                                                    through a K8S ingress or an OpenShift
                                                    route. \n - `internal` means that
                                                    the endpoint will be exposed internally
                                                    outside of the main devworkspace
                                                    POD, typically by K8S services,
                                                    to be consumed by other elements
                                                    running on the same cloud internal
                                                    network. \n - `none` means that
                                                    the endpoint will not be exposed
                                                    and will only be accessible inside
                                                    the main devworkspace POD, on
                                                    a local address. \n Default value
                                                    is `public`"
                                                  enum:
                                                  - public
                                                  - internal
                                                  - none
                                                  type: string
                                                name:
                                                  maxLength: 63
                                                  pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                                  type: string
                                                path:
                                                  description: Path of the endpoint
                                                    URL
                                                  type: string
                                                protocol:
                                                  description: "Describes the application
                                                    and transport protocols of the
                                                    traffic that will go through this
                                                    endpoint. \n - `http`: Endpoint
                                                    will have `http` traffic, typically
                                                    on a TCP connection. It will be
                                                    automaticaly promoted to `https`
                                                    when the `secure` field is set
                                                    to `true`. \n - `https`: Endpoint
                                                    will have `https` traffic, typically
                                                    on a TCP connection. \n - `ws`:
                                                    Endpoint will have `ws` traffic,
                                                    typically on a TCP connection.
                                                    It will be automaticaly promoted
                                                    to `wss` when the `secure` field
                                                    is set to `true`. \n - `wss`:
                                                    Endpoint will have `wss` traffic,
                                                    typically on a TCP connection.
                                                    \n - `tcp`: Endpoint will have
                                                    traffic on a TCP connection, without
                                                    specifying an application protocol.
                                                    \n - `udp`: Endpoint will have
                                                    traffic on an UDP connection,
                                                    without specifying an application
                                                    protocol. \n Default value is
                                                    `http`"
                                                  enum:
                                                  - http
                                                  - https
                                                  - ws
                                                  - wss
                                                  - tcp
                                                  - udp
                                                  type: string
                                                secure:
                                                  description: Describes whether the
                                                    endpoint should be secured and
                                                    protected by some authentication
                                                    process. This requires a protocol
                                                    of `https` or `wss`.
                                                  type: boolean
                                                targetPort:
                                                  type: integer
                                              required:
                                              - name
                                              type: object
                                            type: array
                                          env:
                                            description: "Environment variables used
                                              in this container. \n The following
                                              variables are reserved and cannot be
                                              overridden via env: \n  - `$PROJECTS_ROOT`
                                              \n  - `$PROJECT_SOURCE`"
                                            items:
                                              properties:
                                                name:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - name
                                              type: object
                                            type: array
                                          image:
                                            type: string
                                          memoryLimit:
                                            type: string
                                          memoryRequest:
                                            type: string
                                          mountSources:
                                            description: "Toggles whether or not the
                                              project source code should be mounted
                                              in the component. \n Defaults to true
                                              for all component types except plugins
                                              and components that set `dedicatedPod`
                                              to true."
                                            type: boolean
                                          sourceMapping:
                                            description: Optional specification of
                                              the path in the container where project
                                              sources should be transferred/mounted
                                              when `mountSources` is `true`. When
                                              omitted, the default value of /projects
                                              is used.
                                            type: string
                                          volumeMounts:
                                            description: List of volumes mounts that
                                              should be mounted is this container.
                                            items:
                                              description: Volume that should be mounted
                                                to a component container
                                              properties:
                                                name:
                                                  description: The volume mount name
                                                    is the name of an existing `Volume`
                                                    component. If several containers
                                                    mount the same volume name then
                                                    they will reuse the same volume
                                                    and will be able to access to
                                                    the same files.
                                                  maxLength: 63
                                                  pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                                  type: string
                                                path:
                                                  description: The path in the component
                                                    container where the volume should
                                                    be mounted. If not path is mentioned,
                                                    default path is the is `/<name>`.
                                                  type: string
                                              required:
                                              - name
                                              type: object
                                            type: array
                                        type: object
                                      image:
                                        description: Allows specifying the definition
                                          of an image for outer loop builds
                                        oneOf:
                                        - required:
                                          - dockerfile
                                        properties:
                                          dockerfile:
                                            description: Allows specifying dockerfile
                                              type build
                                            oneOf:
                                            - required:
                                              - uri
                                            - required:
                                              - devfileRegistry
                                            - required:
                                              - git
                                            properties:
                                              args:
                                                description: The arguments to supply
                                                  to the dockerfile build.
                                                items:
                                                  type: string
                                                type: array
                                              buildContext:
                                                description: Path of source directory
                                                  to establish build context. Defaults
                                                  to ${PROJECT_ROOT} in the container
                                                type: string
                                              devfileRegistry:
                                                description: Dockerfile's Devfile
                                                  Registry source
                                                properties:
                                                  id:
                                                    description: Id in a devfile registry
                                                      that contains a Dockerfile.
                                                      The src in the OCI registry
                                                      required for the Dockerfile
                                                      build will be downloaded for
                                                      building the image.
                                                    type: string
                                                  registryUrl:
                                                    description: Devfile Registry
                                                      URL to pull the Dockerfile from
                                                      when using the Devfile Registry
                                                      as Dockerfile src. To ensure
                                                      the Dockerfile gets resolved
                                                      consistently in different environments,
                                                      it is recommended to always
                                                      specify the `devfileRegistryUrl`
                                                      when `Id` is used.
                                                    type: string
                                                type: object
                                              git:
                                                description: Dockerfile's Git source
                                                properties:
                                                  checkoutFrom:
                                                    description: Defines from what
                                                      the project should be checked
                                                      out. Required if there are more
                                                      than one remote configured
                                                    properties:
                                                      remote:
                                                        description: The remote name
                                                          should be used as init.
                                                          Required if there are more
                                                          than one remote configured
                                                        type: string
                                                      revision:
                                                        description: The revision
                                                          to checkout from. Should
                                                          be branch name, tag or commit
                                                          id. Default branch is used
                                                          if missing or specified
                                                          revision is not found.
                                                        type: string
                                                    type: object
                                                  fileLocation:
                                                    description: Location of the Dockerfile
                                                      in the Git repository when using
                                                      git as Dockerfile src. Defaults
                                                      to Dockerfile.
                                                    type: string
                                                  remotes:
                                                    additionalProperties:
                                                      type: string
                                                    description: The remotes map which
                                                      should be initialized in the
                                                      git project. Projects must have
                                                      at least one remote configured
                                                      while StarterProjects & Image
                                                      Component's Git source can only
                                                      have at most one remote configured.
                                                    type: object
                                                type: object
                                              rootRequired:
                                                description: "Specify if a privileged
                                                  builder pod is required. \n Default
                                                  value is `false`"
                                                type: boolean
                                              srcType:
                                                description: Type of Dockerfile src
                                                enum:
                                                - Uri
                                                - DevfileRegistry
                                                - Git
                                                type: string
                                              uri:
                                                description: URI Reference of a Dockerfile.
                                                  It can be a full URL or a relative
                                                  URI from the current devfile as
                                                  the base URI.
                                                type: string
                                            type: object
                                          imageName:
                                            description: Name of the image for the
                                              resulting outerloop build
                                            type: string
                                          imageType:
                                            description: Type of image
                                            enum:
                                            - Dockerfile
                                            type: string
                                        type: object
                                      kubernetes:
                                        description: Allows importing into the devworkspace
                                          the Kubernetes resources defined in a given
                                          manifest. For example this allows reusing
                                          the Kubernetes definitions used to deploy
                                          some runtime components in production.
                                        oneOf:
                                        - required:
                                          - uri
                                        - required:
                                          - inlined
                                        properties:
                                          endpoints:
                                            items:
                                              properties:
                                                attributes:
                                                  description: "Map of implementation-dependant
                                                    string-based free-form attributes.
                                                    \n Examples of Che-specific attributes:
                                                    \n - cookiesAuthEnabled: \"true\"
                                                    / \"false\", \n - type: \"terminal\"
                                                    / \"ide\" / \"ide-dev\","
                                                  type: object
                                                  x-kubernetes-preserve-unknown-fields: true
                                                exposure:
                                                  description: "Describes how the
                                                    endpoint should be exposed on
                                                    the network. \n - `public` means
                                                    that the endpoint will be exposed
                                                    on the public network, typically
                                                    through a K8S ingress or an OpenShift
                                                    route. \n - `internal` means that
                                                    the endpoint will be exposed internally
                                                    outside of the main devworkspace
                                                    POD, typically by K8S services,
                                                    to be consumed by other elements
                                                    running on the same cloud internal
                                                    network. \n - `none` means that
                                                    the endpoint will not be exposed
                                                    and will only be accessible inside
                                                    the main devworkspace POD, on
                                                    a local address. \n Default value
                                                    is `public`"
                                                  enum:
                                                  - public
                                                  - internal
                                                  - none
                                                  type: string
                                                name:
                                                  maxLength: 63
                                                  pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                                  type: string
                                                path:
                                                  description: Path of the endpoint
                                                    URL
                                                  type: string
                                                protocol:
                                                  description: "Describes the application
                                                    and transport protocols of the
                                                    traffic that will go through this
                                                    endpoint. \n - `http`: Endpoint
                                                    will have `http` traffic, typically
                                                    on a TCP connection. It will be
                                                    automaticaly promoted to `https`
                                                    when the `secure` field is set
                                                    to `true`. \n - `https`: Endpoint
                                                    will have `https` traffic, typically
                                                    on a TCP connection. \n - `ws`:
                                                    Endpoint will have `ws` traffic,
                                                    typically on a TCP connection.
                                                    It will be automaticaly promoted
                                                    to `wss` when the `secure` field
                                                    is set to `true`. \n - `wss`:
                                                    Endpoint will have `wss` traffic,
                                                    typically on a TCP connection.
                                                    \n - `tcp`: Endpoint will have
                                                    traffic on a TCP connection, without
                                                    specifying an application protocol.
                                                    \n - `udp`: Endpoint will have
                                                    traffic on an UDP connection,
                                                    without specifying an application
                                                    protocol. \n Default value is
                                                    `http`"
                                                  enum:
                                                  - http
                                                  - https
                                                  - ws
                                                  - wss
                                                  - tcp
                                                  - udp
                                                  type: string
                                                secure:
                                                  description: Describes whether the
                                                    endpoint should be secured and
                                                    protected by some authentication
                                                    process. This requires a protocol
                                                    of `https` or `wss`.
                                                  type: boolean
                                                targetPort:
                                                  type: integer
                                              required:
                                              - name
                                              type: object
                                            type: array
                                          inlined:
                                            description: Inlined manifest
                                            type: string
                                          locationType:
                                            description: Type of Kubernetes-like location
                                            enum:
                                            - Uri
                                            - Inlined
                                            type: string
                                          uri:
                                            description: Location in a file fetched
                                              from a uri.
                                            type: string
                                        type: object
                                      name:
                                        description: Mandatory name that allows referencing
                                          the component from other elements (such
                                          as commands) or from an external devfile
                                          that may reference this component through
                                          a parent or a plugin.
                                        maxLength: 63
                                        pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                        type: string
                                      openshift:
                                        description: Allows importing into the devworkspace
                                          the OpenShift resources defined in a given
                                          manifest. For example this allows reusing
                                          the OpenShift definitions used to deploy
                                          some runtime components in production.
                                        oneOf:
                                        - required:
                                          - uri
                                        - required:
                                          - inlined
                                        properties:
                                          endpoints:
                                            items:
                                              properties:
                                                attributes:
                                                  description: "Map of implementation-dependant
                                                    string-based free-form attributes.
                                                    \n Examples of Che-specific attributes:
                                                    \n - cookiesAuthEnabled: \"true\"
                                                    / \"false\", \n - type: \"terminal\"
                                                    / \"ide\" / \"ide-dev\","
                                                  type: object
                                                  x-kubernetes-preserve-unknown-fields: true
                                                exposure:
                                                  description: "Describes how the
                                                    endpoint should be exposed on
                                                    the network. \n - `public` means
                                                    that the endpoint will be exposed
                                                    on the public network, typically
                                                    through a K8S ingress or an OpenShift
                                                    route. \n - `internal` means that
                                                    the endpoint will be exposed internally
                                                    outside of the main devworkspace
                                                    POD, typically by K8S services,
                                                    to be consumed by other elements
                                                    running on the same cloud internal
                                                    network. \n - `none` means that
                                                    the endpoint will not be exposed
                                                    and will only be accessible inside
                                                    the main devworkspace POD, on
                                                    a local address. \n Default value
                                                    is `public`"
                                                  enum:
                                                  - public
                                                  - internal
                                                  - none
                                                  type: string
                                                name:
                                                  maxLength: 63
                                                  pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                                                  type: string
                                                path:
                                                  description: Path of the endpoint
                                                    URL
                                                  type: string
                                                protocol:
                                                  description: "Describes the application
                                                    and transport protocols of the
                                                    traffic that will go through this
                                                    endpoint. \n - `http`: Endpoint
                                                    will have `http` traffic, typically
                                                    on a TCP connection. It will be
                                                    automaticaly promoted to `https`
                                                    when the `secure` field is set
                                                    to `true`. \n - `https`: Endpoint
                                                    will have `https` traffic, typically
                                                    on a TCP connection. \n - `ws`:
                                                    Endpoint will have `ws` traffic,
                                                    typically on a TCP connection.
                                                    It will be automaticaly promoted
                                                    to `wss` when the `secure` field
                                                    is set to `true`. \n - `wss`:
                                                    Endpoint will have `wss` traffic,
                                                    typically on a TCP connection.
                                                    \n - `tcp`: Endpoint will have
                                                    traffic on a TCP connection, without
                                                    specifying an application protocol.
                                                    \n - `udp`: Endpoint will have
                                                    traffic on an UDP connection,
                                                    without specifying an application
                                                    protocol. \n Default value is
                                                    `http`"
                                                  enum:
                                                  - http
                                                  - https
                                                  - ws
                                                  - wss
                                                  - tcp
                                                  - udp
                                                  type: string
                                                secure:
                                                  description: Describes whether the
                                                    endpoint should be secured and
                                                    protected by some authentication
                                                    process. This requires a protocol
                                                    of `https` or `wss`.
                                                  type: boolean
                                                targetPort:
                                                  type: integer
                                              required:
                                              - name
                                              type: object
                                            type: array
                                          inlined:
                                            description: Inlined manifest
                                            type: string
                                          locationType:
                                            description: Type of Kubernetes-like location
                                            enum:
                                            - Uri
                                            - Inlined
                                            type: string
                                          uri:
                                            description: Location in a file fetched
                                              from a uri.
                                            type: string
                                        type: object
                                      volume:
                                        description: Allows specifying the definition
                                          of a volume shared by several other components
                                        properties:
                                          ephemeral:
                                            description: Ephemeral volumes are not
                                              stored persistently across restarts.
                                              Defaults to false
                                            type: boolean
                                          size:
                                            description: Size of the volume
                                            type: string
                                        type: object
                                    required:
                                    - name
                                    type: object
                                  type: array
                                id:
                                  description: Id in a registry that contains a Devfile
                                    yaml file
                                  type: string
                                importReferenceType:
                                  description: type of location from where the referenced
                                    template structure should be retrieved
                                  enum:
                                  - Uri
                                  - Id
                                  - Kubernetes
                                  type: string
                                kubernetes:
                                  description: Reference to a Kubernetes CRD of type
                                    DevWorkspaceTemplate
                                  properties:
                                    name:
                                      type: string
                                    namespace:
                                      type: string
                                  type: object
                                registryUrl:
                                  description: Registry URL to pull the parent devfile
                                    from when using id in the parent reference. To
                                    ensure the parent devfile gets resolved consistently
                                    in different environments, it is recommended to
                                    always specify the `registryUrl` when `id` is
                                    used.
                                  type: string
                                uri:
                                  description: URI Reference of a parent devfile YAML
                                    file. It can be a full URL or a relative URI with
                                    the current devfile as the base URI.
                                  type: string
                              type: object
                            volume:
                              description: Allows specifying the definition of a volume
                                shared by several other components
                              properties:
                                ephemeral:
                                  description: Ephemeral volumes are not stored persistently
                                    across restarts. Defaults to false
                                  type: boolean
                                size:
                                  description: Size of the volume
                                  type: string
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      id:
                        description: Id in a registry that contains a Devfile yaml
                          file
                        type: string
                      importReferenceType:
                        description: type of location from where the referenced template
                          structure should be retrieved
                        enum:
                        - Uri
                        - Id
                        - Kubernetes
                        type: string
                      kubernetes:
                        description: Reference to a Kubernetes CRD of type DevWorkspaceTemplate
                        properties:
                          name:
                            type: string
                          namespace:
                            type: string
                        required:
                        - name
                        type: object
                      projects:
                        description: Overrides of projects encapsulated in a parent
                          devfile. Overriding is done according to K8S strategic merge
                          patch standard rules.
                        items:
                          oneOf:
                          - required:
                            - git
                          - required:
                            - zip
                          properties:
                            attributes:
                              description: Map of implementation-dependant free-form
                                YAML attributes.
                              type: object
                              x-kubernetes-preserve-unknown-fields: true
                            clonePath:
                              description: Path relative to the root of the projects
                                to which this project should be cloned into. This
                                is a unix-style relative path (i.e. uses forward slashes).
                                The path is invalid if it is absolute or tries to
                                escape the project root through the usage of '..'.
                                If not specified, defaults to the project name.
                              type: string
                            git:
                              description: Project's Git source
                              properties:
                                checkoutFrom:
                                  description: Defines from what the project should
                                    be checked out. Required if there are more than
                                    one remote configured
                                  properties:
                                    remote:
                                      description: The remote name should be used
                                        as init. Required if there are more than one
                                        remote configured
                                      type: string
                                    revision:
                                      description: The revision to checkout from.
                                        Should be branch name, tag or commit id. Default
                                        branch is used if missing or specified revision
                                        is not found.
                                      type: string
                                  type: object
                                remotes:
                                  additionalProperties:
                                    type: string
                                  description: The remotes map which should be initialized
                                    in the git project. Projects must have at least
                                    one remote configured while StarterProjects &
                                    Image Component's Git source can only have at
                                    most one remote configured.
                                  type: object
                              type: object
                            name:
                              description: Project name
                              maxLength: 63
                              pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                              type: string
                            sourceType:
                              description: Type of project source
                              enum:
                              - Git
                              - Zip
                              type: string
                            zip:
                              description: Project's Zip source
                              properties:
                                location:
                                  description: Zip project's source location address.
                                    Should be file path of the archive, e.g. file://$FILE_PATH
                                  type: string
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      registryUrl:
                        description: Registry URL to pull the parent devfile from
                          when using id in the parent reference. To ensure the parent
                          devfile gets resolved consistently in different environments,
                          it is recommended to always specify the `registryUrl` when
                          `id` is used.
                        type: string
                      starterProjects:
                        description: Overrides of starterProjects encapsulated in
                          a parent devfile. Overriding is done according to K8S strategic
                          merge patch standard rules.
                        items:
                          oneOf:
                          - required:
                            - git
                          - required:
                            - zip
                          properties:
                            attributes:
                              description: Map of implementation-dependant free-form
                                YAML attributes.
                              type: object
                              x-kubernetes-preserve-unknown-fields: true
                            description:
                              description: Description of a starter project
                              type: string
                            git:
                              description: Project's Git source
                              properties:
                                checkoutFrom:
                                  description: Defines from what the project should
                                    be checked out. Required if there are more than
                                    one remote configured
                                  properties:
                                    remote:
                                      description: The remote name should be used
                                        as init. Required if there are more than one
                                        remote configured
                                      type: string
                                    revision:
                                      description: The revision to checkout from.
                                        Should be branch name, tag or commit id. Default
                                        branch is used if missing or specified revision
                                        is not found.
                                      type: string
                                  type: object
                                remotes:
                                  additionalProperties:
                                    type: string
                                  description: The remotes map which should be initialized
                                    in the git project. Projects must have at least
                                    one remote configured while StarterProjects &
                                    Image Component's Git source can only have at
                                    most one remote configured.
                                  type: object
                              type: object
                            name:
                              description: Project name
                              maxLength: 63
                              pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                              type: string
                            sourceType:
                              description: Type of project source
                              enum:
                              - Git
                              - Zip
                              type: string
                            subDir:
                              description: Sub-directory from a starter project to
                                be used as root for starter project.
                              type: string
                            zip:
                              description: Project's Zip source
                              properties:
                                location:
                                  description: Zip project's source location address.
                                    Should be file path of the archive, e.g. file://$FILE_PATH
                                  type: string
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      uri:
                        description: URI Reference of a parent devfile YAML file.
                          It can be a full URL or a relative URI with the current
                          devfile as the base URI.
                        type: string
                      variables:
                        additionalProperties:
                          type: string
                        description: Overrides of variables encapsulated in a parent
                          devfile. Overriding is done according to K8S strategic merge
                          patch standard rules.
                        type: object
                    type: object
                  projects:
                    description: Projects worked on in the devworkspace, containing
                      names and sources locations
                    items:
                      oneOf:
                      - required:
                        - git
                      - required:
                        - zip
                      - required:
                        - custom
                      properties:
                        attributes:
                          description: Map of implementation-dependant free-form YAML
                            attributes.
                          type: object
                          x-kubernetes-preserve-unknown-fields: true
                        clonePath:
                          description: Path relative to the root of the projects to
                            which this project should be cloned into. This is a unix-style
                            relative path (i.e. uses forward slashes). The path is
                            invalid if it is absolute or tries to escape the project
                            root through the usage of '..'. If not specified, defaults
                            to the project name.
                          type: string
                        custom:
                          description: Project's Custom source
                          properties:
                            embeddedResource:
                              type: object
                              x-kubernetes-embedded-resource: true
                              x-kubernetes-preserve-unknown-fields: true
                            projectSourceClass:
                              type: string
                          required:
                          - embeddedResource
                          - projectSourceClass
                          type: object
                        git:
                          description: Project's Git source
                          properties:
                            checkoutFrom:
                              description: Defines from what the project should be
                                checked out. Required if there are more than one remote
                                configured
                              properties:
                                remote:
                                  description: The remote name should be used as init.
                                    Required if there are more than one remote configured
                                  type: string
                                revision:
                                  description: The revision to checkout from. Should
                                    be branch name, tag or commit id. Default branch
                                    is used if missing or specified revision is not
                                    found.
                                  type: string
                              type: object
                            remotes:
                              additionalProperties:
                                type: string
                              description: The remotes map which should be initialized
                                in the git project. Projects must have at least one
                                remote configured while StarterProjects & Image Component's
                                Git source can only have at most one remote configured.
                              type: object
                          required:
                          - remotes
                          type: object
                        name:
                          description: Project name
                          maxLength: 63
                          pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                          type: string
                        sourceType:
                          description: Type of project source
                          enum:
                          - Git
                          - Zip
                          - Custom
                          type: string
                        zip:
                          description: Project's Zip source
                          properties:
                            location:
                              description: Zip project's source location address.
                                Should be file path of the archive, e.g. file://$FILE_PATH
                              type: string
                          type: object
                      required:
                      - name
                      type: object
                    type: array
                  starterProjects:
                    description: StarterProjects is a project that can be used as
                      a starting point when bootstrapping new projects
                    items:
                      oneOf:
                      - required:
                        - git
                      - required:
                        - zip
                      - required:
                        - custom
                      properties:
                        attributes:
                          description: Map of implementation-dependant free-form YAML
                            attributes.
                          type: object
                          x-kubernetes-preserve-unknown-fields: true
                        custom:
                          description: Project's Custom source
                          properties:
                            embeddedResource:
                              type: object
                              x-kubernetes-embedded-resource: true
                              x-kubernetes-preserve-unknown-fields: true
                            projectSourceClass:
                              type: string
                          required:
                          - embeddedResource
                          - projectSourceClass
                          type: object
                        description:
                          description: Description of a starter project
                          type: string
                        git:
                          description: Project's Git source
                          properties:
                            checkoutFrom:
                              description: Defines from what the project should be
                                checked out. Required if there are more than one remote
                                configured
                              properties:
                                remote:
                                  description: The remote name should be used as init.
                                    Required if there are more than one remote configured
                                  type: string
                                revision:
                                  description: The revision to checkout from. Should
                                    be branch name, tag or commit id. Default branch
                                    is used if missing or specified revision is not
                                    found.
                                  type: string
                              type: object
                            remotes:
                              additionalProperties:
                                type: string
                              description: The remotes map which should be initialized
                                in the git project. Projects must have at least one
                                remote configured while StarterProjects & Image Component's
                                Git source can only have at most one remote configured.
                              type: object
                          required:
                          - remotes
                          type: object
                        name:
                          description: Project name
                          maxLength: 63
                          pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
                          type: string
                        sourceType:
                          description: Type of project source
                          enum:
                          - Git
                          - Zip
                          - Custom
                          type: string
                        subDir:
                          description: Sub-directory from a starter project to be
                            used as root for starter project.
                          type: string
                        zip:
                          description: Project's Zip source
                          properties:
                            location:
                              description: Zip project's source location address.
                                Should be file path of the archive, e.g. file://$FILE_PATH
                              type: string
                          type: object
                      required:
                      - name
                      type: object
                    type: array
                  variables:
                    additionalProperties:
                      type: string
                    description: "Map of key-value variables used for string replacement
                      in the devfile. Values can be referenced via {{variable-key}}
                      to replace the corresponding value in string fields in the devfile.
                      Replacement cannot be used for \n  - schemaVersion, metadata,
                      parent source \n  - element identifiers, e.g. command id, component
                      name, endpoint name, project name \n  - references to identifiers,
                      e.g. in events, a command's component, container's volume mount
                      name \n  - string enums, e.g. command group kind, endpoint exposure"
                    type: object
                type: object
            required:
            - started
            type: object
          status:
            description: DevWorkspaceStatus defines the observed state of DevWorkspace
            properties:
              conditions:
                description: Conditions represent the latest available observations
                  of an object's state
                items:
                  description: DevWorkspaceCondition contains details for the current
                    condition of this devworkspace.
                  properties:
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another.
                      format: date-time
                      type: string
                    message:
                      description: Human-readable message indicating details about
                        last transition.
                      type: string
                    reason:
                      description: Unique, one-word, CamelCase reason for the condition's
                        last transition.
                      type: string
                    status:
                      description: Phase is the status of the condition. Can be True,
                        False, Unknown.
                      type: string
                    type:
                      description: Type is the type of the condition.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              devworkspaceId:
                description: Id of the DevWorkspace
                type: string
              mainUrl:
                description: Main URL for this DevWorkspace
                type: string
              message:
                description: Message is a short user-readable message giving additional
                  information about an object's state
                type: string
              phase:
                type: string
            required:
            - devworkspaceId
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
