{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure-data-factory/json-schema/microsoft-azure-data-factory-pipeline-resource-schema.json",
  "title": "PipelineResource",
  "description": "Pipeline resource type.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_superseded/microsoft-azure-data-factory-pipelines-api-openapi.yml#/components/schemas/PipelineResource",
  "type": "object",
  "properties": {
    "properties": {
      "$ref": "#/$defs/Pipeline",
      "description": "Properties of the pipeline.",
      "x-ms-client-flatten": true
    },
    "etag": {
      "type": "string",
      "description": "\"If etag is provided in the response body, it may also be provided as a header per the normal etag convention.  Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.\")",
      "readOnly": true
    }
  },
  "required": [
    "properties"
  ],
  "additionalProperties": {},
  "allOf": [
    {
      "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource"
    }
  ],
  "$defs": {
    "Activity": {
      "type": "object",
      "description": "A pipeline activity.",
      "properties": {
        "name": {
          "type": "string",
          "description": "Activity name."
        },
        "type": {
          "type": "string",
          "description": "Type of activity."
        },
        "description": {
          "type": "string",
          "description": "Activity description."
        },
        "state": {
          "$ref": "#/$defs/ActivityState",
          "description": "Activity state. This is an optional property and if not provided, the state will be Active by default."
        },
        "onInactiveMarkAs": {
          "$ref": "#/$defs/ActivityOnInactiveMarkAs",
          "description": "Status result of the activity when the state is set to Inactive. This is an optional property and if not provided when the activity is inactive, the status will be Succeeded by default."
        },
        "dependsOn": {
          "type": "array",
          "description": "Activity depends on condition.",
          "items": {
            "$ref": "#/$defs/ActivityDependency"
          },
          "x-ms-identifiers": []
        },
        "userProperties": {
          "type": "array",
          "description": "Activity user properties.",
          "items": {
            "$ref": "#/$defs/UserProperty"
          },
          "x-ms-identifiers": [
            "name"
          ]
        }
      },
      "required": [
        "name",
        "type"
      ],
      "additionalProperties": {}
    },
    "ActivityDependency": {
      "type": "object",
      "description": "Activity dependency information.",
      "properties": {
        "activity": {
          "type": "string",
          "description": "Activity name."
        },
        "dependencyConditions": {
          "type": "array",
          "description": "Match-Condition for the dependency.",
          "items": {
            "$ref": "#/$defs/DependencyCondition"
          }
        }
      },
      "required": [
        "activity",
        "dependencyConditions"
      ],
      "additionalProperties": {}
    },
    "ActivityOnInactiveMarkAs": {
      "type": "string",
      "description": "Status result of the activity when the state is set to Inactive. This is an optional property and if not provided when the activity is inactive, the status will be Succeeded by default.",
      "enum": [
        "Succeeded",
        "Failed",
        "Skipped"
      ],
      "x-ms-enum": {
        "name": "ActivityOnInactiveMarkAs",
        "modelAsString": true,
        "values": [
          {
            "name": "Succeeded",
            "value": "Succeeded",
            "description": "Succeeded"
          },
          {
            "name": "Failed",
            "value": "Failed",
            "description": "Failed"
          },
          {
            "name": "Skipped",
            "value": "Skipped",
            "description": "Skipped"
          }
        ]
      }
    },
    "ActivityState": {
      "type": "string",
      "description": "Activity state. This is an optional property and if not provided, the state will be Active by default.",
      "enum": [
        "Active",
        "Inactive"
      ],
      "x-ms-enum": {
        "name": "ActivityState",
        "modelAsString": true,
        "values": [
          {
            "name": "Active",
            "value": "Active",
            "description": "Active"
          },
          {
            "name": "Inactive",
            "value": "Inactive",
            "description": "Inactive"
          }
        ]
      }
    },
    "DependencyCondition": {
      "type": "string",
      "enum": [
        "Succeeded",
        "Failed",
        "Skipped",
        "Completed"
      ],
      "x-ms-enum": {
        "name": "DependencyCondition",
        "modelAsString": true,
        "values": [
          {
            "name": "Succeeded",
            "value": "Succeeded",
            "description": "Succeeded"
          },
          {
            "name": "Failed",
            "value": "Failed",
            "description": "Failed"
          },
          {
            "name": "Skipped",
            "value": "Skipped",
            "description": "Skipped"
          },
          {
            "name": "Completed",
            "value": "Completed",
            "description": "Completed"
          }
        ]
      }
    },
    "ParameterSpecification": {
      "type": "object",
      "description": "Definition of a single parameter for an entity.",
      "properties": {
        "type": {
          "$ref": "#/$defs/ParameterType",
          "description": "Parameter type."
        },
        "defaultValue": {
          "description": "Default value of parameter."
        }
      },
      "required": [
        "type"
      ]
    },
    "ParameterType": {
      "type": "string",
      "description": "Parameter type.",
      "enum": [
        "Object",
        "String",
        "Int",
        "Float",
        "Bool",
        "Array",
        "SecureString"
      ],
      "x-ms-enum": {
        "name": "ParameterType",
        "modelAsString": true,
        "values": [
          {
            "name": "Object",
            "value": "Object",
            "description": "Object"
          },
          {
            "name": "String",
            "value": "String",
            "description": "String"
          },
          {
            "name": "Int",
            "value": "Int",
            "description": "Int"
          },
          {
            "name": "Float",
            "value": "Float",
            "description": "Float"
          },
          {
            "name": "Bool",
            "value": "Bool",
            "description": "Bool"
          },
          {
            "name": "Array",
            "value": "Array",
            "description": "Array"
          },
          {
            "name": "SecureString",
            "value": "SecureString",
            "description": "SecureString"
          }
        ]
      }
    },
    "Pipeline": {
      "type": "object",
      "description": "A data factory pipeline.",
      "properties": {
        "description": {
          "type": "string",
          "description": "The description of the pipeline."
        },
        "activities": {
          "type": "array",
          "description": "List of activities in pipeline.",
          "items": {
            "$ref": "#/$defs/Activity"
          },
          "x-ms-identifiers": [
            "name"
          ]
        },
        "parameters": {
          "type": "object",
          "description": "List of parameters for pipeline.",
          "additionalProperties": {
            "$ref": "#/$defs/ParameterSpecification"
          }
        },
        "variables": {
          "type": "object",
          "description": "List of variables for pipeline.",
          "additionalProperties": {
            "$ref": "#/$defs/VariableSpecification"
          }
        },
        "concurrency": {
          "type": "integer",
          "format": "int32",
          "description": "The max number of concurrent runs for the pipeline.",
          "minimum": 1
        },
        "annotations": {
          "type": "array",
          "description": "List of tags that can be used for describing the Pipeline.",
          "items": {}
        },
        "runDimensions": {
          "type": "object",
          "description": "Dimensions emitted by Pipeline.",
          "additionalProperties": {}
        },
        "folder": {
          "$ref": "#/$defs/PipelineFolder",
          "description": "The folder that this Pipeline is in. If not specified, Pipeline will appear at the root level."
        },
        "policy": {
          "$ref": "#/$defs/PipelinePolicy",
          "description": "Pipeline Policy."
        }
      }
    },
    "PipelineElapsedTimeMetricPolicy": {
      "type": "object",
      "description": "Pipeline ElapsedTime Metric Policy.",
      "properties": {
        "duration": {
          "description": "TimeSpan value, after which an Azure Monitoring Metric is fired."
        }
      }
    },
    "PipelineFolder": {
      "type": "object",
      "description": "The folder that this Pipeline is in. If not specified, Pipeline will appear at the root level.",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the folder that this Pipeline is in."
        }
      }
    },
    "PipelinePolicy": {
      "type": "object",
      "description": "Pipeline Policy.",
      "properties": {
        "elapsedTimeMetric": {
          "$ref": "#/$defs/PipelineElapsedTimeMetricPolicy",
          "description": "Pipeline ElapsedTime Metric Policy."
        }
      }
    },
    "UserProperty": {
      "type": "object",
      "description": "User property.",
      "properties": {
        "name": {
          "type": "string",
          "description": "User property name."
        },
        "value": {
          "description": "User property value. Type: string (or Expression with resultType string)."
        }
      },
      "required": [
        "name",
        "value"
      ]
    },
    "VariableSpecification": {
      "type": "object",
      "description": "Definition of a single variable for a Pipeline.",
      "properties": {
        "type": {
          "$ref": "#/$defs/VariableType",
          "description": "Variable type."
        },
        "defaultValue": {
          "description": "Default value of variable."
        }
      },
      "required": [
        "type"
      ]
    },
    "VariableType": {
      "type": "string",
      "description": "Variable type.",
      "enum": [
        "String",
        "Bool",
        "Array"
      ],
      "x-ms-enum": {
        "name": "VariableType",
        "modelAsString": true,
        "values": [
          {
            "name": "String",
            "value": "String",
            "description": "String"
          },
          {
            "name": "Bool",
            "value": "Bool",
            "description": "Bool"
          },
          {
            "name": "Array",
            "value": "Array",
            "description": "Array"
          }
        ]
      }
    }
  }
}