apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: consolequickstarts.console.openshift.io
  annotations:
    description: Extension for guiding user through various workflows in the OpenShift
      web console.
    displayName: ConsoleQuickStart
    include.release.openshift.io/ibm-cloud-managed: "true"
    include.release.openshift.io/self-managed-high-availability: "true"
    include.release.openshift.io/single-node-developer: "true"
spec:
  scope: Cluster
  group: console.openshift.io
  names:
    plural: consolequickstarts
    singular: consolequickstart
    kind: ConsoleQuickStart
    listKind: ConsoleQuickStartList
  versions:
  - name: v1
    served: true
    storage: true
    schema:
      openAPIV3Schema:
        description: ConsoleQuickStart is an extension for guiding user through various
          workflows in the OpenShift web console.
        type: object
        required:
        - spec
        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: ConsoleQuickStartSpec is the desired quick start configuration.
            type: object
            required:
            - description
            - displayName
            - durationMinutes
            - introduction
            - tasks
            properties:
              accessReviewResources:
                description: accessReviewResources contains a list of resources that
                  the user's access will be reviewed against in order for the user
                  to complete the Quick Start. The Quick Start will be hidden if any
                  of the access reviews fail.
                type: array
                items:
                  description: ResourceAttributes includes the authorization attributes
                    available for resource requests to the Authorizer interface
                  type: object
                  properties:
                    group:
                      description: Group is the API Group of the Resource.  "*" means
                        all.
                      type: string
                    name:
                      description: Name is the name of the resource being requested
                        for a "get" or deleted for a "delete". "" (empty) means all.
                      type: string
                    namespace:
                      description: Namespace is the namespace of the action being
                        requested.  Currently, there is no distinction between no
                        namespace and all namespaces "" (empty) is defaulted for LocalSubjectAccessReviews
                        "" (empty) is empty for cluster-scoped resources "" (empty)
                        means "all" for namespace scoped resources from a SubjectAccessReview
                        or SelfSubjectAccessReview
                      type: string
                    resource:
                      description: Resource is one of the existing resource types.  "*"
                        means all.
                      type: string
                    subresource:
                      description: Subresource is one of the existing resource types.  ""
                        means none.
                      type: string
                    verb:
                      description: 'Verb is a kubernetes resource API verb, like:
                        get, list, watch, create, update, delete, proxy.  "*" means
                        all.'
                      type: string
                    version:
                      description: Version is the API Version of the Resource.  "*"
                        means all.
                      type: string
              conclusion:
                description: conclusion sums up the Quick Start and suggests the possible
                  next steps. (includes markdown)
                type: string
              description:
                description: description is the description of the Quick Start. (includes
                  markdown)
                type: string
                maxLength: 256
                minLength: 1
              displayName:
                description: displayName is the display name of the Quick Start.
                type: string
                minLength: 1
              durationMinutes:
                description: durationMinutes describes approximately how many minutes
                  it will take to complete the Quick Start.
                type: integer
                minimum: 1
              icon:
                description: icon is a base64 encoded image that will be displayed
                  beside the Quick Start display name. The icon should be an vector
                  image for easy scaling. The size of the icon should be 40x40.
                type: string
              introduction:
                description: introduction describes the purpose of the Quick Start.
                  (includes markdown)
                type: string
                minLength: 1
              nextQuickStart:
                description: nextQuickStart is a list of the following Quick Starts,
                  suggested for the user to try.
                type: array
                items:
                  type: string
              prerequisites:
                description: prerequisites contains all prerequisites that need to
                  be met before taking a Quick Start. (includes markdown)
                type: array
                items:
                  type: string
              tags:
                description: tags is a list of strings that describe the Quick Start.
                type: array
                items:
                  type: string
              tasks:
                description: tasks is the list of steps the user has to perform to
                  complete the Quick Start.
                type: array
                minItems: 1
                items:
                  description: ConsoleQuickStartTask is a single step in a Quick Start.
                  type: object
                  required:
                  - description
                  - title
                  properties:
                    description:
                      description: description describes the steps needed to complete
                        the task. (includes markdown)
                      type: string
                      minLength: 1
                    review:
                      description: review contains instructions to validate the task
                        is complete. The user will select 'Yes' or 'No'. using a radio
                        button, which indicates whether the step was completed successfully.
                      type: object
                      required:
                      - failedTaskHelp
                      - instructions
                      properties:
                        failedTaskHelp:
                          description: failedTaskHelp contains suggestions for a failed
                            task review and is shown at the end of task. (includes
                            markdown)
                          type: string
                          minLength: 1
                        instructions:
                          description: instructions contains steps that user needs
                            to take in order to validate his work after going through
                            a task. (includes markdown)
                          type: string
                          minLength: 1
                    summary:
                      description: summary contains information about the passed step.
                      type: object
                      required:
                      - failed
                      - success
                      properties:
                        failed:
                          description: failed briefly describes the unsuccessfully
                            passed task. (includes markdown)
                          type: string
                          maxLength: 128
                          minLength: 1
                        success:
                          description: success describes the succesfully passed task.
                          type: string
                          minLength: 1
                    title:
                      description: title describes the task and is displayed as a
                        step heading.
                      type: string
                      minLength: 1
