apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    api-approved.openshift.io: https://github.com/openshift/api/pull/750
    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"
  name: consolequickstarts.console.openshift.io
spec:
  group: console.openshift.io
  names:
    kind: ConsoleQuickStart
    listKind: ConsoleQuickStartList
    plural: consolequickstarts
    singular: consolequickstart
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          description: "ConsoleQuickStart is an extension for guiding user through various workflows in the OpenShift web console. \n Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer)."
          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
      served: true
      storage: true
