{
  "description": "Pipeline describes a list of Tasks to execute. It expresses how outputs\nof tasks feed into inputs of subsequent tasks.\n\nDeprecated: Please use v1.Pipeline instead.",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": [
        "string",
        "null"
      ]
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": [
        "string",
        "null"
      ]
    },
    "metadata": {
      "type": [
        "object",
        "null"
      ]
    },
    "spec": {
      "additionalProperties": false,
      "description": "Spec holds the desired state of the Pipeline from the client",
      "properties": {
        "description": {
          "description": "Description is a user-facing description of the pipeline that may be\nused to populate a UI.",
          "type": [
            "string",
            "null"
          ]
        },
        "displayName": {
          "description": "DisplayName is a user-facing name of the pipeline that may be\nused to populate a UI.",
          "type": [
            "string",
            "null"
          ]
        },
        "finally": {
          "description": "Finally declares the list of Tasks that execute just before leaving the Pipeline\ni.e. either after all Tasks are finished executing successfully\nor after a failure which would result in ending the Pipeline",
          "items": {
            "additionalProperties": false,
            "description": "PipelineTask defines a task in a Pipeline, passing inputs from both\nParams and from the output of previous tasks.",
            "properties": {
              "description": {
                "description": "Description is the description of this task within the context of a Pipeline.\nThis description may be used to populate a UI.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "displayName": {
                "description": "DisplayName is the display name of this task within the context of a Pipeline.\nThis display name may be used to populate a UI.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "matrix": {
                "additionalProperties": false,
                "description": "Matrix declares parameters used to fan out this task.",
                "properties": {
                  "include": {
                    "description": "Include is a list of IncludeParams which allows passing in specific combinations of Parameters into the Matrix.",
                    "items": {
                      "additionalProperties": false,
                      "description": "IncludeParams allows passing in a specific combinations of Parameters into the Matrix.",
                      "properties": {
                        "name": {
                          "description": "Name the specified combination",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "params": {
                          "description": "Params takes only `Parameters` of type `\"string\"`\nThe names of the `params` must match the names of the `params` in the underlying `Task`",
                          "items": {
                            "additionalProperties": false,
                            "description": "Param declares an ParamValues to use for the parameter called name.",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "value": {
                                "x-kubernetes-preserve-unknown-fields": true
                              }
                            },
                            "required": [
                              "name",
                              "value"
                            ],
                            "type": "object"
                          },
                          "type": [
                            "array",
                            "null"
                          ],
                          "x-kubernetes-list-type": "atomic"
                        }
                      },
                      "type": "object"
                    },
                    "type": [
                      "array",
                      "null"
                    ],
                    "x-kubernetes-list-type": "atomic"
                  },
                  "params": {
                    "description": "Params is a list of parameters used to fan out the pipelineTask\nParams takes only `Parameters` of type `\"array\"`\nEach array element is supplied to the `PipelineTask` by substituting `params` of type `\"string\"` in the underlying `Task`.\nThe names of the `params` in the `Matrix` must match the names of the `params` in the underlying `Task` that they will be substituting.",
                    "items": {
                      "additionalProperties": false,
                      "description": "Param declares an ParamValues to use for the parameter called name.",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "value": {
                          "x-kubernetes-preserve-unknown-fields": true
                        }
                      },
                      "required": [
                        "name",
                        "value"
                      ],
                      "type": "object"
                    },
                    "type": [
                      "array",
                      "null"
                    ],
                    "x-kubernetes-list-type": "atomic"
                  }
                },
                "type": [
                  "object",
                  "null"
                ]
              },
              "name": {
                "description": "Name is the name of this task within the context of a Pipeline. Name is\nused as a coordinate with the `from` and `runAfter` fields to establish\nthe execution order of tasks relative to one another.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "onError": {
                "description": "OnError defines the exiting behavior of a PipelineRun on error\ncan be set to [ continue | stopAndFail ]",
                "type": [
                  "string",
                  "null"
                ]
              },
              "params": {
                "description": "Parameters declares parameters passed to this task.",
                "items": {
                  "additionalProperties": false,
                  "description": "Param declares an ParamValues to use for the parameter called name.",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "value": {
                      "x-kubernetes-preserve-unknown-fields": true
                    }
                  },
                  "required": [
                    "name",
                    "value"
                  ],
                  "type": "object"
                },
                "type": [
                  "array",
                  "null"
                ],
                "x-kubernetes-list-type": "atomic"
              },
              "pipelineRef": {
                "additionalProperties": false,
                "description": "PipelineRef is a reference to a pipeline definition\nNote: PipelineRef is in preview mode and not yet supported",
                "properties": {
                  "apiVersion": {
                    "description": "API version of the referent",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "bundle": {
                    "description": "Bundle url reference to a Tekton Bundle.\n\nDeprecated: Please use ResolverRef with the bundles resolver instead.\nThe field is staying there for go client backward compatibility, but is not used/allowed anymore.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": {
                    "description": "Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "params": {
                    "description": "Params contains the parameters used to identify the\nreferenced Tekton resource. Example entries might include\n\"repo\" or \"path\" but the set of params ultimately depends on\nthe chosen resolver.",
                    "items": {
                      "additionalProperties": false,
                      "description": "Param declares an ParamValues to use for the parameter called name.",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "value": {
                          "x-kubernetes-preserve-unknown-fields": true
                        }
                      },
                      "required": [
                        "name",
                        "value"
                      ],
                      "type": "object"
                    },
                    "type": [
                      "array",
                      "null"
                    ],
                    "x-kubernetes-list-type": "atomic"
                  },
                  "resolver": {
                    "description": "Resolver is the name of the resolver that should perform\nresolution of the referenced Tekton resource, such as \"git\".",
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "type": [
                  "object",
                  "null"
                ]
              },
              "pipelineSpec": {
                "description": "PipelineSpec is a specification of a pipeline\nNote: PipelineSpec is in preview mode and not yet supported\nSpecifying PipelineSpec can be disabled by setting\n`disable-inline-spec` feature flag.\nSee Pipeline.spec (API version: tekton.dev/v1beta1)",
                "x-kubernetes-preserve-unknown-fields": true
              },
              "resources": {
                "additionalProperties": false,
                "description": "Deprecated: Unused, preserved only for backwards compatibility",
                "properties": {
                  "inputs": {
                    "description": "Inputs holds the mapping from the PipelineResources declared in\nDeclaredPipelineResources to the input PipelineResources required by the Task.",
                    "items": {
                      "additionalProperties": false,
                      "description": "PipelineTaskInputResource maps the name of a declared PipelineResource input\ndependency in a Task to the resource in the Pipeline's DeclaredPipelineResources\nthat should be used. This input may come from a previous task.\n\nDeprecated: Unused, preserved only for backwards compatibility",
                      "properties": {
                        "from": {
                          "description": "From is the list of PipelineTask names that the resource has to come from.\n(Implies an ordering in the execution graph.)",
                          "items": {
                            "type": "string"
                          },
                          "type": [
                            "array",
                            "null"
                          ],
                          "x-kubernetes-list-type": "atomic"
                        },
                        "name": {
                          "description": "Name is the name of the PipelineResource as declared by the Task.",
                          "type": "string"
                        },
                        "resource": {
                          "description": "Resource is the name of the DeclaredPipelineResource to use.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "resource"
                      ],
                      "type": "object"
                    },
                    "type": [
                      "array",
                      "null"
                    ],
                    "x-kubernetes-list-type": "atomic"
                  },
                  "outputs": {
                    "description": "Outputs holds the mapping from the PipelineResources declared in\nDeclaredPipelineResources to the input PipelineResources required by the Task.",
                    "items": {
                      "additionalProperties": false,
                      "description": "PipelineTaskOutputResource maps the name of a declared PipelineResource output\ndependency in a Task to the resource in the Pipeline's DeclaredPipelineResources\nthat should be used.\n\nDeprecated: Unused, preserved only for backwards compatibility",
                      "properties": {
                        "name": {
                          "description": "Name is the name of the PipelineResource as declared by the Task.",
                          "type": "string"
                        },
                        "resource": {
                          "description": "Resource is the name of the DeclaredPipelineResource to use.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "resource"
                      ],
                      "type": "object"
                    },
                    "type": [
                      "array",
                      "null"
                    ],
                    "x-kubernetes-list-type": "atomic"
                  }
                },
                "type": [
                  "object",
                  "null"
                ]
              },
              "retries": {
                "description": "Retries represents how many times this task should be retried in case of task failure: ConditionSucceeded set to False",
                "type": [
                  "integer",
                  "null"
                ]
              },
              "runAfter": {
                "description": "RunAfter is the list of PipelineTask names that should be executed before\nthis Task executes. (Used to force a specific ordering in graph execution.)",
                "items": {
                  "type": "string"
                },
                "type": [
                  "array",
                  "null"
                ],
                "x-kubernetes-list-type": "atomic"
              },
              "taskRef": {
                "additionalProperties": false,
                "description": "TaskRef is a reference to a task definition.",
                "properties": {
                  "apiVersion": {
                    "description": "API version of the referent\nNote: A Task with non-empty APIVersion and Kind is considered a Custom Task",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "bundle": {
                    "description": "Bundle url reference to a Tekton Bundle.\n\nDeprecated: Please use ResolverRef with the bundles resolver instead.\nThe field is staying there for go client backward compatibility, but is not used/allowed anymore.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "kind": {
                    "description": "TaskKind indicates the Kind of the Task:\n1. Namespaced Task when Kind is set to \"Task\". If Kind is \"\", it defaults to \"Task\".\n2. Custom Task when Kind is non-empty and APIVersion is non-empty",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": {
                    "description": "Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "params": {
                    "description": "Params contains the parameters used to identify the\nreferenced Tekton resource. Example entries might include\n\"repo\" or \"path\" but the set of params ultimately depends on\nthe chosen resolver.",
                    "items": {
                      "additionalProperties": false,
                      "description": "Param declares an ParamValues to use for the parameter called name.",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "value": {
                          "x-kubernetes-preserve-unknown-fields": true
                        }
                      },
                      "required": [
                        "name",
                        "value"
                      ],
                      "type": "object"
                    },
                    "type": [
                      "array",
                      "null"
                    ],
                    "x-kubernetes-list-type": "atomic"
                  },
                  "resolver": {
                    "description": "Resolver is the name of the resolver that should perform\nresolution of the referenced Tekton resource, such as \"git\".",
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "type": [
                  "object",
                  "null"
                ]
              },
              "taskSpec": {
                "description": "TaskSpec is a specification of a task\nSpecifying TaskSpec can be disabled by setting\n`disable-inline-spec` feature flag.\nSee Task.spec (API version: tekton.dev/v1beta1)",
                "x-kubernetes-preserve-unknown-fields": true
              },
              "timeout": {
                "description": "Duration after which the TaskRun times out. Defaults to 1 hour.\nRefer Go's ParseDuration documentation for expected format: https://golang.org/pkg/time/#ParseDuration",
                "type": [
                  "string",
                  "null"
                ]
              },
              "when": {
                "description": "WhenExpressions is a list of when expressions that need to be true for the task to run",
                "items": {
                  "additionalProperties": false,
                  "description": "WhenExpression allows a PipelineTask to declare expressions to be evaluated before the Task is run\nto determine whether the Task should be executed or skipped",
                  "properties": {
                    "cel": {
                      "description": "CEL is a string of Common Language Expression, which can be used to conditionally execute\nthe task based on the result of the expression evaluation\nMore info about CEL syntax: https://github.com/google/cel-spec/blob/master/doc/langdef.md",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "input": {
                      "description": "Input is the string for guard checking which can be a static input or an output from a parent Task",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "operator": {
                      "description": "Operator that represents an Input's relationship to the values",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "values": {
                      "description": "Values is an array of strings, which is compared against the input, for guard checking\nIt must be non-empty",
                      "items": {
                        "type": "string"
                      },
                      "type": [
                        "array",
                        "null"
                      ],
                      "x-kubernetes-list-type": "atomic"
                    }
                  },
                  "type": "object"
                },
                "type": [
                  "array",
                  "null"
                ]
              },
              "workspaces": {
                "description": "Workspaces maps workspaces from the pipeline spec to the workspaces\ndeclared in the Task.",
                "items": {
                  "additionalProperties": false,
                  "description": "WorkspacePipelineTaskBinding describes how a workspace passed into the pipeline should be\nmapped to a task's declared workspace.",
                  "properties": {
                    "name": {
                      "description": "Name is the name of the workspace as declared by the task",
                      "type": "string"
                    },
                    "subPath": {
                      "description": "SubPath is optionally a directory on the volume which should be used\nfor this binding (i.e. the volume will be mounted at this sub directory).",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "workspace": {
                      "description": "Workspace is the name of the workspace declared by the pipeline",
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "type": "object"
                },
                "type": [
                  "array",
                  "null"
                ],
                "x-kubernetes-list-type": "atomic"
              }
            },
            "type": "object"
          },
          "type": [
            "array",
            "null"
          ],
          "x-kubernetes-list-type": "atomic"
        },
        "params": {
          "description": "Params declares a list of input parameters that must be supplied when\nthis Pipeline is run.",
          "items": {
            "additionalProperties": false,
            "description": "ParamSpec defines arbitrary parameters needed beyond typed inputs (such as\nresources). Parameter values are provided by users as inputs on a TaskRun\nor PipelineRun.",
            "properties": {
              "default": {
                "description": "Default is the value a parameter takes if no input value is supplied. If\ndefault is set, a Task may be executed without a supplied value for the\nparameter.",
                "x-kubernetes-preserve-unknown-fields": true
              },
              "description": {
                "description": "Description is a user-facing description of the parameter that may be\nused to populate a UI.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "enum": {
                "description": "Enum declares a set of allowed param input values for tasks/pipelines that can be validated.\nIf Enum is not set, no input validation is performed for the param.",
                "items": {
                  "type": "string"
                },
                "type": [
                  "array",
                  "null"
                ]
              },
              "name": {
                "description": "Name declares the name by which a parameter is referenced.",
                "type": "string"
              },
              "properties": {
                "additionalProperties": {
                  "additionalProperties": false,
                  "description": "PropertySpec defines the struct for object keys",
                  "properties": {
                    "type": {
                      "description": "ParamType indicates the type of an input parameter;\nUsed to distinguish between a single string and an array of strings.",
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "description": "Properties is the JSON Schema properties to support key-value pairs parameter.",
                "type": [
                  "object",
                  "null"
                ]
              },
              "type": {
                "description": "Type is the user-specified type of the parameter. The possible types\nare currently \"string\", \"array\" and \"object\", and \"string\" is the default.",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "name"
            ],
            "type": "object"
          },
          "type": [
            "array",
            "null"
          ],
          "x-kubernetes-list-type": "atomic"
        },
        "resources": {
          "description": "Deprecated: Unused, preserved only for backwards compatibility",
          "items": {
            "additionalProperties": false,
            "description": "PipelineDeclaredResource is used by a Pipeline to declare the types of the\nPipelineResources that it will required to run and names which can be used to\nrefer to these PipelineResources in PipelineTaskResourceBindings.\n\nDeprecated: Unused, preserved only for backwards compatibility",
            "properties": {
              "name": {
                "description": "Name is the name that will be used by the Pipeline to refer to this resource.\nIt does not directly correspond to the name of any PipelineResources Task\ninputs or outputs, and it does not correspond to the actual names of the\nPipelineResources that will be bound in the PipelineRun.",
                "type": "string"
              },
              "optional": {
                "description": "Optional declares the resource as optional.\noptional: true - the resource is considered optional\noptional: false - the resource is considered required (default/equivalent of not specifying it)",
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "type": {
                "description": "Type is the type of the PipelineResource.",
                "type": "string"
              }
            },
            "required": [
              "name",
              "type"
            ],
            "type": "object"
          },
          "type": [
            "array",
            "null"
          ],
          "x-kubernetes-list-type": "atomic"
        },
        "results": {
          "description": "Results are values that this pipeline can output once run",
          "items": {
            "additionalProperties": false,
            "description": "PipelineResult used to describe the results of a pipeline",
            "properties": {
              "description": {
                "description": "Description is a human-readable description of the result",
                "type": [
                  "string",
                  "null"
                ]
              },
              "name": {
                "description": "Name the given name",
                "type": "string"
              },
              "type": {
                "description": "Type is the user-specified type of the result.\nThe possible types are 'string', 'array', and 'object', with 'string' as the default.\n'array' and 'object' types are alpha features.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "value": {
                "description": "Value the expression used to retrieve the value",
                "x-kubernetes-preserve-unknown-fields": true
              }
            },
            "required": [
              "name",
              "value"
            ],
            "type": "object"
          },
          "type": [
            "array",
            "null"
          ],
          "x-kubernetes-list-type": "atomic"
        },
        "tasks": {
          "description": "Tasks declares the graph of Tasks that execute when this Pipeline is run.",
          "items": {
            "additionalProperties": false,
            "description": "PipelineTask defines a task in a Pipeline, passing inputs from both\nParams and from the output of previous tasks.",
            "properties": {
              "description": {
                "description": "Description is the description of this task within the context of a Pipeline.\nThis description may be used to populate a UI.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "displayName": {
                "description": "DisplayName is the display name of this task within the context of a Pipeline.\nThis display name may be used to populate a UI.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "matrix": {
                "additionalProperties": false,
                "description": "Matrix declares parameters used to fan out this task.",
                "properties": {
                  "include": {
                    "description": "Include is a list of IncludeParams which allows passing in specific combinations of Parameters into the Matrix.",
                    "items": {
                      "additionalProperties": false,
                      "description": "IncludeParams allows passing in a specific combinations of Parameters into the Matrix.",
                      "properties": {
                        "name": {
                          "description": "Name the specified combination",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "params": {
                          "description": "Params takes only `Parameters` of type `\"string\"`\nThe names of the `params` must match the names of the `params` in the underlying `Task`",
                          "items": {
                            "additionalProperties": false,
                            "description": "Param declares an ParamValues to use for the parameter called name.",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "value": {
                                "x-kubernetes-preserve-unknown-fields": true
                              }
                            },
                            "required": [
                              "name",
                              "value"
                            ],
                            "type": "object"
                          },
                          "type": [
                            "array",
                            "null"
                          ],
                          "x-kubernetes-list-type": "atomic"
                        }
                      },
                      "type": "object"
                    },
                    "type": [
                      "array",
                      "null"
                    ],
                    "x-kubernetes-list-type": "atomic"
                  },
                  "params": {
                    "description": "Params is a list of parameters used to fan out the pipelineTask\nParams takes only `Parameters` of type `\"array\"`\nEach array element is supplied to the `PipelineTask` by substituting `params` of type `\"string\"` in the underlying `Task`.\nThe names of the `params` in the `Matrix` must match the names of the `params` in the underlying `Task` that they will be substituting.",
                    "items": {
                      "additionalProperties": false,
                      "description": "Param declares an ParamValues to use for the parameter called name.",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "value": {
                          "x-kubernetes-preserve-unknown-fields": true
                        }
                      },
                      "required": [
                        "name",
                        "value"
                      ],
                      "type": "object"
                    },
                    "type": [
                      "array",
                      "null"
                    ],
                    "x-kubernetes-list-type": "atomic"
                  }
                },
                "type": [
                  "object",
                  "null"
                ]
              },
              "name": {
                "description": "Name is the name of this task within the context of a Pipeline. Name is\nused as a coordinate with the `from` and `runAfter` fields to establish\nthe execution order of tasks relative to one another.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "onError": {
                "description": "OnError defines the exiting behavior of a PipelineRun on error\ncan be set to [ continue | stopAndFail ]",
                "type": [
                  "string",
                  "null"
                ]
              },
              "params": {
                "description": "Parameters declares parameters passed to this task.",
                "items": {
                  "additionalProperties": false,
                  "description": "Param declares an ParamValues to use for the parameter called name.",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "value": {
                      "x-kubernetes-preserve-unknown-fields": true
                    }
                  },
                  "required": [
                    "name",
                    "value"
                  ],
                  "type": "object"
                },
                "type": [
                  "array",
                  "null"
                ],
                "x-kubernetes-list-type": "atomic"
              },
              "pipelineRef": {
                "additionalProperties": false,
                "description": "PipelineRef is a reference to a pipeline definition\nNote: PipelineRef is in preview mode and not yet supported",
                "properties": {
                  "apiVersion": {
                    "description": "API version of the referent",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "bundle": {
                    "description": "Bundle url reference to a Tekton Bundle.\n\nDeprecated: Please use ResolverRef with the bundles resolver instead.\nThe field is staying there for go client backward compatibility, but is not used/allowed anymore.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": {
                    "description": "Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "params": {
                    "description": "Params contains the parameters used to identify the\nreferenced Tekton resource. Example entries might include\n\"repo\" or \"path\" but the set of params ultimately depends on\nthe chosen resolver.",
                    "items": {
                      "additionalProperties": false,
                      "description": "Param declares an ParamValues to use for the parameter called name.",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "value": {
                          "x-kubernetes-preserve-unknown-fields": true
                        }
                      },
                      "required": [
                        "name",
                        "value"
                      ],
                      "type": "object"
                    },
                    "type": [
                      "array",
                      "null"
                    ],
                    "x-kubernetes-list-type": "atomic"
                  },
                  "resolver": {
                    "description": "Resolver is the name of the resolver that should perform\nresolution of the referenced Tekton resource, such as \"git\".",
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "type": [
                  "object",
                  "null"
                ]
              },
              "pipelineSpec": {
                "description": "PipelineSpec is a specification of a pipeline\nNote: PipelineSpec is in preview mode and not yet supported\nSpecifying PipelineSpec can be disabled by setting\n`disable-inline-spec` feature flag.\nSee Pipeline.spec (API version: tekton.dev/v1beta1)",
                "x-kubernetes-preserve-unknown-fields": true
              },
              "resources": {
                "additionalProperties": false,
                "description": "Deprecated: Unused, preserved only for backwards compatibility",
                "properties": {
                  "inputs": {
                    "description": "Inputs holds the mapping from the PipelineResources declared in\nDeclaredPipelineResources to the input PipelineResources required by the Task.",
                    "items": {
                      "additionalProperties": false,
                      "description": "PipelineTaskInputResource maps the name of a declared PipelineResource input\ndependency in a Task to the resource in the Pipeline's DeclaredPipelineResources\nthat should be used. This input may come from a previous task.\n\nDeprecated: Unused, preserved only for backwards compatibility",
                      "properties": {
                        "from": {
                          "description": "From is the list of PipelineTask names that the resource has to come from.\n(Implies an ordering in the execution graph.)",
                          "items": {
                            "type": "string"
                          },
                          "type": [
                            "array",
                            "null"
                          ],
                          "x-kubernetes-list-type": "atomic"
                        },
                        "name": {
                          "description": "Name is the name of the PipelineResource as declared by the Task.",
                          "type": "string"
                        },
                        "resource": {
                          "description": "Resource is the name of the DeclaredPipelineResource to use.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "resource"
                      ],
                      "type": "object"
                    },
                    "type": [
                      "array",
                      "null"
                    ],
                    "x-kubernetes-list-type": "atomic"
                  },
                  "outputs": {
                    "description": "Outputs holds the mapping from the PipelineResources declared in\nDeclaredPipelineResources to the input PipelineResources required by the Task.",
                    "items": {
                      "additionalProperties": false,
                      "description": "PipelineTaskOutputResource maps the name of a declared PipelineResource output\ndependency in a Task to the resource in the Pipeline's DeclaredPipelineResources\nthat should be used.\n\nDeprecated: Unused, preserved only for backwards compatibility",
                      "properties": {
                        "name": {
                          "description": "Name is the name of the PipelineResource as declared by the Task.",
                          "type": "string"
                        },
                        "resource": {
                          "description": "Resource is the name of the DeclaredPipelineResource to use.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "name",
                        "resource"
                      ],
                      "type": "object"
                    },
                    "type": [
                      "array",
                      "null"
                    ],
                    "x-kubernetes-list-type": "atomic"
                  }
                },
                "type": [
                  "object",
                  "null"
                ]
              },
              "retries": {
                "description": "Retries represents how many times this task should be retried in case of task failure: ConditionSucceeded set to False",
                "type": [
                  "integer",
                  "null"
                ]
              },
              "runAfter": {
                "description": "RunAfter is the list of PipelineTask names that should be executed before\nthis Task executes. (Used to force a specific ordering in graph execution.)",
                "items": {
                  "type": "string"
                },
                "type": [
                  "array",
                  "null"
                ],
                "x-kubernetes-list-type": "atomic"
              },
              "taskRef": {
                "additionalProperties": false,
                "description": "TaskRef is a reference to a task definition.",
                "properties": {
                  "apiVersion": {
                    "description": "API version of the referent\nNote: A Task with non-empty APIVersion and Kind is considered a Custom Task",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "bundle": {
                    "description": "Bundle url reference to a Tekton Bundle.\n\nDeprecated: Please use ResolverRef with the bundles resolver instead.\nThe field is staying there for go client backward compatibility, but is not used/allowed anymore.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "kind": {
                    "description": "TaskKind indicates the Kind of the Task:\n1. Namespaced Task when Kind is set to \"Task\". If Kind is \"\", it defaults to \"Task\".\n2. Custom Task when Kind is non-empty and APIVersion is non-empty",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": {
                    "description": "Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "params": {
                    "description": "Params contains the parameters used to identify the\nreferenced Tekton resource. Example entries might include\n\"repo\" or \"path\" but the set of params ultimately depends on\nthe chosen resolver.",
                    "items": {
                      "additionalProperties": false,
                      "description": "Param declares an ParamValues to use for the parameter called name.",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "value": {
                          "x-kubernetes-preserve-unknown-fields": true
                        }
                      },
                      "required": [
                        "name",
                        "value"
                      ],
                      "type": "object"
                    },
                    "type": [
                      "array",
                      "null"
                    ],
                    "x-kubernetes-list-type": "atomic"
                  },
                  "resolver": {
                    "description": "Resolver is the name of the resolver that should perform\nresolution of the referenced Tekton resource, such as \"git\".",
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "type": [
                  "object",
                  "null"
                ]
              },
              "taskSpec": {
                "description": "TaskSpec is a specification of a task\nSpecifying TaskSpec can be disabled by setting\n`disable-inline-spec` feature flag.\nSee Task.spec (API version: tekton.dev/v1beta1)",
                "x-kubernetes-preserve-unknown-fields": true
              },
              "timeout": {
                "description": "Duration after which the TaskRun times out. Defaults to 1 hour.\nRefer Go's ParseDuration documentation for expected format: https://golang.org/pkg/time/#ParseDuration",
                "type": [
                  "string",
                  "null"
                ]
              },
              "when": {
                "description": "WhenExpressions is a list of when expressions that need to be true for the task to run",
                "items": {
                  "additionalProperties": false,
                  "description": "WhenExpression allows a PipelineTask to declare expressions to be evaluated before the Task is run\nto determine whether the Task should be executed or skipped",
                  "properties": {
                    "cel": {
                      "description": "CEL is a string of Common Language Expression, which can be used to conditionally execute\nthe task based on the result of the expression evaluation\nMore info about CEL syntax: https://github.com/google/cel-spec/blob/master/doc/langdef.md",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "input": {
                      "description": "Input is the string for guard checking which can be a static input or an output from a parent Task",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "operator": {
                      "description": "Operator that represents an Input's relationship to the values",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "values": {
                      "description": "Values is an array of strings, which is compared against the input, for guard checking\nIt must be non-empty",
                      "items": {
                        "type": "string"
                      },
                      "type": [
                        "array",
                        "null"
                      ],
                      "x-kubernetes-list-type": "atomic"
                    }
                  },
                  "type": "object"
                },
                "type": [
                  "array",
                  "null"
                ]
              },
              "workspaces": {
                "description": "Workspaces maps workspaces from the pipeline spec to the workspaces\ndeclared in the Task.",
                "items": {
                  "additionalProperties": false,
                  "description": "WorkspacePipelineTaskBinding describes how a workspace passed into the pipeline should be\nmapped to a task's declared workspace.",
                  "properties": {
                    "name": {
                      "description": "Name is the name of the workspace as declared by the task",
                      "type": "string"
                    },
                    "subPath": {
                      "description": "SubPath is optionally a directory on the volume which should be used\nfor this binding (i.e. the volume will be mounted at this sub directory).",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "workspace": {
                      "description": "Workspace is the name of the workspace declared by the pipeline",
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "type": "object"
                },
                "type": [
                  "array",
                  "null"
                ],
                "x-kubernetes-list-type": "atomic"
              }
            },
            "type": "object"
          },
          "type": [
            "array",
            "null"
          ],
          "x-kubernetes-list-type": "atomic"
        },
        "workspaces": {
          "description": "Workspaces declares a set of named workspaces that are expected to be\nprovided by a PipelineRun.",
          "items": {
            "additionalProperties": false,
            "description": "PipelineWorkspaceDeclaration creates a named slot in a Pipeline that a PipelineRun\nis expected to populate with a workspace binding.",
            "properties": {
              "description": {
                "description": "Description is a human readable string describing how the workspace will be\nused in the Pipeline. It can be useful to include a bit of detail about which\ntasks are intended to have access to the data on the workspace.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "name": {
                "description": "Name is the name of a workspace to be provided by a PipelineRun.",
                "type": "string"
              },
              "optional": {
                "description": "Optional marks a Workspace as not being required in PipelineRuns. By default\nthis field is false and so declared workspaces are required.",
                "type": [
                  "boolean",
                  "null"
                ]
              }
            },
            "required": [
              "name"
            ],
            "type": "object"
          },
          "type": [
            "array",
            "null"
          ],
          "x-kubernetes-list-type": "atomic"
        }
      },
      "type": [
        "object",
        "null"
      ]
    }
  },
  "type": "object"
}