Harness · Schema

template

DevOpsGitOpsInternal Developer PortalLifecycleSoftware DeliveryCI/CDContinuous DeliveryContinuous Integration

Properties

Name Type Description
version number
template object
View JSON Schema on GitHub

JSON Schema

harness-v1-template-schema.json Raw ↑
{
  "type" : "object",
  "title" : "template",
  "additionalProperties" : false,
  "required" : [ "template" ],
  "properties" : {
    "version" : {
      "type" : "number",
      "enum" : [ 1 ]
    },
    "template" : {
      "type" : "object",
      "additionalProperties" : true,
      "properties" : {
        "id" : {
          "type" : "string",
          "description" : "Unique identifier of the template.",
          "pattern" : "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
        },
        "name" : {
          "type" : "string",
          "description" : "Display name of the template.",
          "pattern" : "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
        },
        "description" : {
          "type" : "string",
          "description" : "Description of the template."
        },
        "tags" : {
          "type" : "object",
          "description" : "Tags for the template.",
          "additionalProperties" : {
            "type" : "string"
          }
        },
        "inputs" : {
          "$ref" : "#/definitions/pipeline/common/NGVariableV1Wrapper"
        }
      },
      "oneOf" : [ {
        "required" : [ "pipeline" ],
        "properties" : {
          "pipeline" : {
            "$ref" : "#/definitions/pipeline/pipeline"
          }
        }
      }, {
        "required" : [ "stage" ],
        "properties" : {
          "stage" : {
            "$ref" : "#/definitions/pipeline/stages/unified/UnifiedStageNodeV1"
          }
        }
      }, {
        "required" : [ "step" ],
        "properties" : {
          "step" : {
            "$ref" : "#/definitions/pipeline/steps/unified/StepItems"
          }
        }
      }, {
        "required" : [ "group" ],
        "properties" : {
          "group" : {
            "$ref" : "#/definitions/template/group/GroupTemplateSpec"
          }
        }
      }, {
        "required" : [ "agent" ],
        "properties" : {
          "agent" : {
            "description" : "Deprecated: define a step template with `template.step.agent.uses`/`with` instead of a top-level `template.agent` entity.",
            "$ref" : "#/definitions/template/agent/AgentTemplateSpec"
          }
        }
      } ]
    }
  },
  "$schema" : "http://json-schema.org/draft-07/schema#",
  "definitions" : {
    "pipeline" : {
      "common" : {
        "NGVariableV1Wrapper" : {
          "title" : "NGVariableV1Wrapper",
          "description" : "Wrapper for stage/pipeline-level input variables. Keys are variable names, values define variable configuration.",
          "type" : "object",
          "additionalProperties" : {
            "oneOf" : [ {
              "$ref" : "#/definitions/pipeline/common/StringNGVariableV1"
            }, {
              "$ref" : "#/definitions/pipeline/common/NumberVariable"
            }, {
              "$ref" : "#/definitions/pipeline/common/BooleanVariable"
            }, {
              "$ref" : "#/definitions/pipeline/common/ArrayVariable"
            }, {
              "$ref" : "#/definitions/pipeline/common/ObjectVariable"
            }, {
              "$ref" : "#/definitions/pipeline/common/SecretVariable"
            }, {
              "$ref" : "#/definitions/pipeline/common/StepVariable"
            }, {
              "$ref" : "#/definitions/pipeline/common/StageVariable"
            }, {
              "$ref" : "#/definitions/pipeline/common/ConnectorVariable"
            } ]
          },
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "StringNGVariableV1" : {
          "title" : "StringNGVariableV1",
          "description" : "String variable definition.",
          "allOf" : [ {
            "$ref" : "#/definitions/pipeline/common/Variable"
          }, {
            "type" : "object",
            "required" : [ "type" ],
            "properties" : {
              "type" : {
                "description" : "Variable type.",
                "type" : "string",
                "enum" : [ "string" ]
              },
              "value" : {
                "description" : "Variable value. Supports expressions.",
                "type" : "string"
              },
              "default" : {
                "description" : "Default value for the variable.",
                "type" : "string"
              },
              "enum" : {
                "description" : "Defines a list of accepted input values.",
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              },
              "options" : {
                "description" : "Defines a list of accepted input values. Alias for enum (GitHub compatibility).",
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }
            }
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "Variable" : {
          "title" : "Variable",
          "type" : "object",
          "discriminator" : "type",
          "description" : "Variable defines a variable object",
          "properties" : {
            "type" : {
              "description" : "Type defines the variable type.",
              "type" : "string",
              "enum" : [ "string", "number", "boolean", "array", "object", "secret", "step", "stage", "connector" ]
            },
            "description" : {
              "type" : "string",
              "description" : "Description of the variable."
            },
            "required" : {
              "type" : "boolean",
              "description" : "Required indicates the variable is required."
            },
            "execution_input" : {
              "description" : "A boolean that defines whether the value is an execution input.",
              "type" : "boolean",
              "default" : false
            },
            "items" : {
              "description" : "Defines the item type for array variables.",
              "type" : "array"
            },
            "options" : {
              "description" : "Defines a list of accepted input values. Alias for enum (GitHub compatibility).",
              "type" : "array"
            },
            "enum" : {
              "description" : "Defines a list of accepted input values.",
              "type" : "array"
            },
            "pattern" : {
              "description" : "Regex pattern for variable value validation.",
              "type" : "string"
            },
            "mask" : {
              "description" : "Indicates the input should be masked.",
              "type" : "boolean",
              "deprecated" : true
            },
            "ui" : {
              "description" : "UI configuration for variable rendering in forms.",
              "type" : "object",
              "additionalProperties" : true
            }
          }
        },
        "NumberVariable" : {
          "title" : "NumberVariable",
          "description" : "Number variable definition.",
          "allOf" : [ {
            "$ref" : "#/definitions/pipeline/common/Variable"
          }, {
            "type" : "object",
            "required" : [ "type" ],
            "properties" : {
              "type" : {
                "description" : "Variable type.",
                "type" : "string",
                "enum" : [ "number" ]
              },
              "value" : {
                "description" : "Variable value. Supports expressions.",
                "oneOf" : [ {
                  "type" : "number",
                  "format" : "double"
                }, {
                  "type" : "string",
                  "pattern" : "((^[+-]?[0-9]*\\.?[0-9]+$)|(<\\+.+>.*))"
                } ],
                "metadata" : {
                  "inputProperties" : {
                    "dependsOn" : [ "type" ]
                  }
                }
              },
              "default" : {
                "description" : "Default value for the variable.",
                "type" : "number",
                "format" : "double"
              },
              "enum" : {
                "description" : "Defines a list of accepted input values.",
                "type" : "array",
                "items" : {
                  "oneOf" : [ {
                    "type" : "number",
                    "format" : "double"
                  }, {
                    "type" : "string",
                    "pattern" : "((^[+-]?[0-9]*\\.?[0-9]+$)|(<\\+.+>.*))"
                  } ]
                }
              }
            }
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "BooleanVariable" : {
          "title" : "BooleanVariable",
          "description" : "Boolean variable definition.",
          "allOf" : [ {
            "$ref" : "#/definitions/pipeline/common/Variable"
          }, {
            "type" : "object",
            "required" : [ "type" ],
            "properties" : {
              "type" : {
                "description" : "Variable type.",
                "type" : "string",
                "enum" : [ "boolean" ]
              },
              "value" : {
                "description" : "Variable value.",
                "type" : "boolean"
              },
              "default" : {
                "description" : "Default value for the variable.",
                "type" : "boolean"
              },
              "enum" : {
                "description" : "Defines a list of accepted input values.",
                "type" : "array",
                "items" : {
                  "type" : "boolean"
                }
              }
            }
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "ArrayVariable" : {
          "title" : "ArrayVariable",
          "description" : "Array variable definition.",
          "allOf" : [ {
            "$ref" : "#/definitions/pipeline/common/Variable"
          }, {
            "type" : "object",
            "required" : [ "type" ],
            "properties" : {
              "type" : {
                "description" : "Variable type.",
                "type" : "string",
                "enum" : [ "array" ]
              },
              "value" : {
                "description" : "Variable value.",
                "type" : "array"
              },
              "default" : {
                "description" : "Default value for the variable.",
                "type" : "array"
              },
              "enum" : {
                "description" : "Defines a list of accepted input values.",
                "type" : "array",
                "items" : {
                  "type" : "array"
                }
              }
            }
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "ObjectVariable" : {
          "title" : "ObjectVariable",
          "description" : "Object variable definition.",
          "allOf" : [ {
            "$ref" : "#/definitions/pipeline/common/Variable"
          }, {
            "type" : "object",
            "required" : [ "type" ],
            "properties" : {
              "type" : {
                "description" : "Variable type.",
                "type" : "string",
                "enum" : [ "object" ]
              },
              "value" : {
                "description" : "Variable value.",
                "type" : "object"
              },
              "default" : {
                "description" : "Default value for the variable.",
                "type" : "object"
              },
              "enum" : {
                "description" : "Defines a list of accepted input values.",
                "type" : "array",
                "items" : {
                  "type" : "object"
                }
              }
            }
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "SecretVariable" : {
          "title" : "SecretVariable",
          "description" : "Secret variable definition.",
          "allOf" : [ {
            "$ref" : "#/definitions/pipeline/common/Variable"
          }, {
            "type" : "object",
            "required" : [ "type" ],
            "properties" : {
              "type" : {
                "description" : "Variable type.",
                "type" : "string",
                "enum" : [ "secret" ]
              },
              "value" : {
                "description" : "Variable value (secret reference).",
                "type" : "string",
                "metadata" : {
                  "inputProperties" : {
                    "dependsOn" : [ "type" ]
                  }
                }
              },
              "default" : {
                "description" : "Default value for the variable.",
                "type" : "string"
              },
              "enum" : {
                "description" : "Defines a list of accepted input values.",
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }
            }
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "StepVariable" : {
          "title" : "StepVariable",
          "description" : "Step variable definition.",
          "allOf" : [ {
            "$ref" : "#/definitions/pipeline/common/Variable"
          }, {
            "type" : "object",
            "required" : [ "type" ],
            "properties" : {
              "type" : {
                "description" : "Variable type.",
                "type" : "string",
                "enum" : [ "step" ]
              },
              "value" : {
                "description" : "Variable value. Supports expressions.",
                "type" : "object",
                "metadata" : {
                  "inputProperties" : {
                    "dependsOn" : [ "type" ]
                  }
                }
              },
              "default" : {
                "description" : "Default value for the variable.",
                "type" : "object"
              },
              "enum" : {
                "description" : "Defines a list of accepted input values.",
                "type" : "array",
                "items" : {
                  "type" : "object"
                }
              }
            }
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "StageVariable" : {
          "title" : "StageVariable",
          "description" : "Stage variable definition.",
          "allOf" : [ {
            "$ref" : "#/definitions/pipeline/common/Variable"
          }, {
            "type" : "object",
            "required" : [ "type" ],
            "properties" : {
              "type" : {
                "description" : "Variable type.",
                "type" : "string",
                "enum" : [ "stage" ]
              },
              "value" : {
                "description" : "Variable value. Supports expressions.",
                "type" : "object",
                "metadata" : {
                  "inputProperties" : {
                    "dependsOn" : [ "type" ]
                  }
                }
              },
              "default" : {
                "description" : "Default value for the variable.",
                "type" : "object"
              },
              "enum" : {
                "description" : "Defines a list of accepted input values.",
                "type" : "array",
                "items" : {
                  "type" : "object"
                }
              }
            }
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "ConnectorVariable" : {
          "title" : "ConnectorVariable",
          "description" : "Connector variable definition.",
          "allOf" : [ {
            "$ref" : "#/definitions/pipeline/common/Variable"
          }, {
            "type" : "object",
            "required" : [ "type" ],
            "properties" : {
              "type" : {
                "description" : "Variable type.",
                "type" : "string",
                "enum" : [ "connector" ]
              },
              "value" : {
                "description" : "Connector reference value. Supports expressions.",
                "type" : "string"
              },
              "default" : {
                "description" : "Default connector reference.",
                "type" : "string"
              },
              "oneof" : {
                "description" : "List of allowed connector types.",
                "type" : "array",
                "items" : {
                  "type" : "string",
                  "enum" : [ "gitlab", "github", "bitbucket", "gcp", "aws", "docker", "kubernetes", "artifactory", "azure", "jenkins", "jira", "servicenow" ]
                }
              }
            }
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "Expression" : {
          "title" : "Expression",
          "description" : "String value matching a Harness pipeline expression or template placeholder (e.g., <+something> or ${{ ... }}).",
          "type" : "string",
          "pattern" : "(\\$\\{\\{.+\\}\\}|<\\+.+>.*)",
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "Delegate" : {
          "title" : "Delegate",
          "description" : "Delegate defines the delegate matching logic. Supports expressions.",
          "oneOf" : [ {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }, {
            "type" : "string"
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "TemplateRef" : {
          "title" : "TemplateRef",
          "description" : "Template identifier and input configuration.",
          "type" : "object",
          "additionalProperties" : false,
          "required" : [ "uses" ],
          "properties" : {
            "uses" : {
              "description" : "Template identifier reference.",
              "type" : "string"
            },
            "with" : {
              "description" : "Template input overrides.",
              "$ref" : "#/definitions/pipeline/common/WithInputs"
            },
            "gitBranch" : {
              "description" : "Git branch for remote template resolution.",
              "type" : "string"
            },
            "container" : {
              "description" : "Caller-side container overrides merged into the resolved template step. Applied for any V1 step template whose spec contains run, run-test, or background (including git-clone and build-and-push templates that wrap those steps).\n",
              "$ref" : "#/definitions/pipeline/common/TemplateContainerOverlay"
            }
          },
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "WithInputs" : {
          "title" : "WithInputs",
          "description" : "Input overrides for service, environment, or infrastructure.",
          "type" : "object",
          "properties" : {
            "overlay" : {
              "description" : "Overlay configuration for merging inputs.",
              "type" : "object",
              "additionalProperties" : true
            }
          },
          "additionalProperties" : true,
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "TemplateContainerOverlay" : {
          "title" : "TemplateContainerOverlay",
          "description" : "Caller-side container overrides on a V1 template step (`template.container`). Mirrors TemplateMergeServiceHelper.CONTAINER_PROPAGATION_ALLOWLIST. Applied to resolved run, run-test, and background containers (including nested group/parallel). Image, connector, and entrypoint stay on the template and are not overridable here.\n",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "user" : {
              "description" : "User ID to run as. Supports expressions.",
              "oneOf" : [ {
                "type" : "integer"
              }, {
                "type" : "string"
              } ]
            },
            "group" : {
              "description" : "Group to run as.",
              "type" : "string"
            },
            "cpu" : {
              "description" : "CPU limit. Ignored when resources.limits.cpu is set.",
              "type" : "string"
            },
            "memory" : {
              "description" : "Memory limit. Ignored when resources.limits.memory is set.",
              "type" : "string"
            },
            "resources" : {
              "description" : "Container resource limits and requests. Takes precedence over the flat cpu/memory fields.",
              "$ref" : "#/definitions/pipeline/Resource"
            },
            "shm-size" : {
              "description" : "Shared memory size.",
              "type" : "string"
            },
            "privileged" : {
              "description" : "Run in privileged mode. Supports expressions.",
              "oneOf" : [ {
                "type" : "boolean"
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            }
          },
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "StrategyConfigV1" : {
          "title" : "StrategyConfigV1",
          "type" : "object",
          "additionalProperties" : false,
          "description" : "Strategy defines execution strategy configuration (matrix, for, while, repeat).",
          "properties" : {
            "max-parallel" : {
              "description" : "Maximum number of parallel executions. Supports expressions.",
              "oneOf" : [ {
                "type" : "integer"
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "fail-fast" : {
              "description" : "Whether to fail fast on first failure. Supports expressions.",
              "oneOf" : [ {
                "type" : "boolean"
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "if" : {
              "description" : "Conditional expression to determine whether the strategy should execute. Supports expressions.",
              "type" : "string"
            },
            "matrix" : {
              "description" : "Matrix strategy for parallel execution across dimensions. Supports expressions.",
              "oneOf" : [ {
                "$ref" : "#/definitions/pipeline/common/MatrixConfigV1"
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "for" : {
              "description" : "For-loop strategy configuration. Supports expressions.",
              "oneOf" : [ {
                "$ref" : "#/definitions/pipeline/common/ForConfigV1"
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "while" : {
              "description" : "While-loop strategy configuration. Supports expressions.",
              "oneOf" : [ {
                "$ref" : "#/definitions/pipeline/common/WhileConfigV1"
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "repeat" : {
              "description" : "Repeat strategy configuration for iterating over items. Supports expressions.",
              "oneOf" : [ {
                "$ref" : "#/definitions/pipeline/common/RepeatConfigV1"
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            }
          },
          "oneOf" : [ {
            "required" : [ "matrix" ]
          }, {
            "required" : [ "for" ]
          }, {
            "required" : [ "while" ]
          }, {
            "required" : [ "repeat" ]
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "MatrixConfigV1" : {
          "title" : "MatrixConfigV1",
          "type" : "object",
          "description" : "Matrix strategy configuration for parallel execution across multiple dimensions.",
          "properties" : {
            "exclude" : {
              "description" : "Combinations to exclude from the matrix. Supports expressions.",
              "oneOf" : [ {
                "type" : "array",
                "items" : {
                  "type" : "object",
                  "additionalProperties" : true
                }
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "include" : {
              "description" : "Additional combinations to include in the matrix. Supports expressions.",
              "oneOf" : [ {
                "type" : "array",
                "items" : {
                  "type" : "object",
                  "additionalProperties" : true
                }
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "node-name" : {
              "description" : "Custom naming pattern for matrix nodes. Supports expressions.",
              "type" : "string"
            }
          },
          "additionalProperties" : {
            "description" : "Matrix axes - key is axis name, value is array of values or expression.",
            "oneOf" : [ {
              "type" : "array"
            }, {
              "type" : "string"
            } ]
          },
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "ForConfigV1" : {
          "title" : "ForConfigV1",
          "type" : "object",
          "additionalProperties" : false,
          "description" : "For loop strategy configuration.",
          "properties" : {
            "iterations" : {
              "description" : "Number of iterations to execute. Supports expressions.",
              "oneOf" : [ {
                "type" : "integer",
                "minimum" : 0
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "node-name" : {
              "description" : "Custom naming pattern for loop nodes. Supports expressions.",
              "type" : "string"
            }
          },
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "WhileConfigV1" : {
          "title" : "WhileConfigV1",
          "type" : "object",
          "additionalProperties" : false,
          "description" : "While loop strategy configuration.",
          "properties" : {
            "iterations" : {
              "description" : "Maximum number of iterations. Supports expressions.",
              "oneOf" : [ {
                "type" : "integer",
                "minimum" : 0
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "condition" : {
              "description" : "Condition expression to evaluate for continuing the loop. Supports expressions.",
              "type" : "string"
            },
            "node-name" : {
              "description" : "Custom naming pattern for loop nodes. Supports expressions.",
              "type" : "string"
            }
          },
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "RepeatConfigV1" : {
          "title" : "RepeatConfigV1",
          "type" : "object",
          "additionalProperties" : false,
          "description" : "Repeat strategy configuration for iterating over items.",
          "properties" : {
            "iterations" : {
              "description" : "Number of iterations (alternative to items). Supports expressions.",
              "oneOf" : [ {
                "type" : "integer"
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "items" : {
              "description" : "List of items to iterate over. Supports expressions.",
              "oneOf" : [ {
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "node-name" : {
              "description" : "Custom naming pattern for repeat nodes. Supports expressions.",
              "type" : "string"
            },
            "partition-size" : {
              "description" : "Size of each partition when splitting items. Supports expressions.",
              "oneOf" : [ {
                "type" : "integer",
                "minimum" : 0
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "start" : {
              "description" : "Starting index for iteration. Supports expressions.",
              "oneOf" : [ {
                "type" : "integer",
                "minimum" : 0
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "end" : {
              "description" : "Ending index for iteration. Supports expressions.",
              "oneOf" : [ {
                "type" : "integer",
                "minimum" : 0
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "unit" : {
              "description" : "Unit for partition-size (percentage or count).",
              "type" : "string",
              "enum" : [ "percentage", "count" ]
            }
          },
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "OnFailure" : {
          "title" : "OnFailure",
          "description" : "Failure strategy configuration. Supports single value or array. Supports expressions.",
          "oneOf" : [ {
            "$ref" : "#/definitions/pipeline/common/FailureConfigV1"
          }, {
            "type" : "array",
            "items" : {
              "$ref" : "#/definitions/pipeline/common/FailureConfigV1"
            }
          }, {
            "$ref" : "#/definitions/pipeline/common/Expression"
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "FailureConfigV1" : {
          "title" : "FailureConfigV1",
          "type" : "object",
          "additionalProperties" : false,
          "description" : "Failure strategy configuration for handling errors.",
          "required" : [ "errors", "action" ],
          "properties" : {
            "errors" : {
              "description" : "List of error types to handle. Supports single value or array. Supports expressions.",
              "oneOf" : [ {
                "type" : "array",
                "items" : {
                  "$ref" : "#/definitions/pipeline/common/NGFailureTypeV1"
                }
              }, {
                "$ref" : "#/definitions/pipeline/common/NGFailureTypeV1"
              } ]
            },
            "action" : {
              "$ref" : "#/definitions/pipeline/common/FailureStrategyActionConfigV1"
            }
          },
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "NGFailureTypeV1" : {
          "title" : "NGFailureTypeV1",
          "description" : "Failure error types for failure strategy configuration.",
          "type" : "string",
          "enum" : [ "unknown", "all", "authentication", "connectivity", "timeout", "authorization", "verification", "delegate-provisioning", "policy-evaluation", "input-timeout", "approval-rejection", "delegate-restart", "user-mark-fail", "proceed-with-default" ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "FailureStrategyActionConfigV1" : {
          "title" : "FailureStrategyActionConfigV1",
          "description" : "Action configuration for failure strategy. Can be a string shorthand or a detailed object.",
          "oneOf" : [ {
            "type" : "string",
            "enum" : [ "abort", "ignore", "success", "stage-rollback", "pipeline-rollback", "fail", "proceed-with-default" ]
          }, {
            "type" : "object",
            "additionalProperties" : false,
            "properties" : {
              "retry" : {
                "$ref" : "#/definitions/pipeline/common/Retr

# --- truncated at 32 KB (186 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/harness/refs/heads/main/json-schema/harness-v1-template-schema.json

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/harness-v1-template"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.