{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/delinea/main/json-schema/delinea-secret-dependency-model-schema.json",
  "title": "SecretDependencyModel",
  "description": "The Secret Dependency model object",
  "x-generated": "2026-10-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/delinea-secretdependencies-api-openapi.yml#/components/schemas/SecretDependencyModel",
  "properties": {
    "active": {
      "description": "Whether or not the Secret Dependency is active.",
      "type": "boolean"
    },
    "childDependencyStatus": {
      "description": "The last run status of the child Secret Dependency.",
      "type": [
        "boolean",
        "null"
      ]
    },
    "conditionDependencyId": {
      "description": "The Id of the dependency that will be looked at when  Condition Mode is set to 'DEPENDENCYPASS', 'DEPENDENCYFAIL'. The Dependency must have a SortOrder lower than the current one.",
      "type": [
        "integer",
        "null"
      ],
      "format": "int32"
    },
    "conditionMode": {
      "description": "Condition Mode governs if this dependency's run relies on the result of other dependencies above it. The Default is ALWAYSRUN. Other values maybe 'All Pass', 'Any Fail', 'DEPENDENCYPASS', 'DEPENDENCYFAIL'.",
      "type": "string"
    },
    "dependencyTemplate": {
      "$ref": "#/$defs/SecretDependencyTemplate"
    },
    "description": {
      "description": "A description for the Secret Dependency.",
      "type": "string"
    },
    "groupId": {
      "description": "The Id of the Dependency Group that contains the Secret Dependency.",
      "type": "integer",
      "format": "int32"
    },
    "id": {
      "description": "The Id of the Secret Dependency.",
      "type": "integer",
      "format": "int32"
    },
    "logMessage": {
      "description": "The last Log message for the Secret Dependency.",
      "type": "string"
    },
    "privilegedAccountSecretId": {
      "description": "The Id of the Privileged Secret that the Secret Dependency will use to run.",
      "type": [
        "integer",
        "null"
      ],
      "format": "int32"
    },
    "runScript": {
      "$ref": "#/$defs/SecretDependencyRunScript"
    },
    "secretDependencyStatus": {
      "description": "The last run status of the Secret Dependency.",
      "type": [
        "boolean",
        "null"
      ]
    },
    "secretId": {
      "description": "The Id of the Secret that the Secret Dependency is assigned to.",
      "type": "integer",
      "format": "int32"
    },
    "secretName": {
      "description": "The Name of the Secret that the Secret Dependency is assigned to.",
      "type": "string"
    },
    "settings": {
      "description": "The Settings used by the Secret Dependency. (Ex: WaitBeforeSeconds, Database, Port, SSHKeyDigest). If a setting exists with the same name (or intent in the case of Port and SqlPort) as a field on the Dependency template's DependencyScanItemFields collection, the value assigned to the setting takes precedence and will overwrite the corresponding DependencyScanItemField.",
      "items": {
        "$ref": "#/$defs/SecretDependencySettingMapForDisplay"
      },
      "type": "array"
    },
    "sortOrder": {
      "description": "The sort order of the Secret Dependency in the group.  Determines the order of execution of the dependencies within a group.",
      "type": "integer",
      "format": "int32"
    },
    "sshKeySecretId": {
      "description": "The Id of the Secret containing the SSH key. (If dependency is tied to SSH key Secret",
      "type": [
        "integer",
        "null"
      ],
      "format": "int32"
    },
    "sshKeySecretName": {
      "description": "The Name of the Secret containing the SSH key. (If dependency is tied to SSH key Secret",
      "type": "string"
    },
    "typeId": {
      "description": "The Id of the type of Secret Dependency.",
      "type": "integer",
      "format": "int32"
    },
    "typeName": {
      "description": "The name of the type of Secret Dependency.",
      "type": "string"
    }
  },
  "type": "object",
  "$defs": {
    "SecretDependencyOdbcConnectionArg": {
      "description": "Connection arguments used for ODBC connections",
      "properties": {
        "name": {
          "description": "Name of the argument",
          "type": "string"
        },
        "value": {
          "description": "Value for the argument",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SecretDependencyRunScript": {
      "description": "The RunScript details of a Dependency that directly runs a Script",
      "properties": {
        "machineName": {
          "description": "The machine name that the Secret Dependency runs on",
          "type": "string"
        },
        "odbcConnectionArguments": {
          "description": "Connection arguments used for ODBC connections",
          "items": {
            "$ref": "#/$defs/SecretDependencyOdbcConnectionArg"
          },
          "type": "array"
        },
        "scriptArguments": {
          "description": "Parameter script arguments used by the script",
          "items": {
            "$ref": "#/$defs/SecretDependencyUniversalScriptArgument"
          },
          "type": "array"
        },
        "scriptId": {
          "description": "The Id of the script that the Secret Dependency runs. (If directly running a script)",
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        },
        "scriptName": {
          "description": "The Name of the script that the Secret Dependency runs.",
          "type": "string"
        },
        "serviceName": {
          "description": "The service name of the Secret Dependency",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SecretDependencyScanItemField": {
      "description": "Represents the ScanItemField used for Discovery dependency matching",
      "properties": {
        "id": {
          "description": "Id of the ScanItemField",
          "type": "integer",
          "format": "int32"
        },
        "name": {
          "description": "Name of the ScanItemField",
          "type": "string"
        },
        "parentName": {
          "description": "ScanItemField Parent name.  Will Match Name if no parent is inherited.",
          "type": "string"
        },
        "value": {
          "description": "Value of the ScanItemField",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SecretDependencySetting": {
      "description": "Secret Dependency Settings - Mostly used internally",
      "properties": {
        "active": {
          "description": "Indicates the setting is active.",
          "type": "boolean"
        },
        "canEdit": {
          "description": "Indicates the setting details may be editted.",
          "type": "boolean"
        },
        "canEditValue": {
          "description": "Indicates the setting value may be editted.",
          "type": "boolean"
        },
        "childSettings": {
          "description": "The Child Settings that would be used  for list of options.",
          "items": {
            "$ref": "#/$defs/SecretDependencySetting"
          },
          "type": "array"
        },
        "defaultValue": {
          "description": "Default value if the setting is not given a value",
          "type": "string"
        },
        "displayName": {
          "description": "Setting Display Name",
          "type": "string"
        },
        "id": {
          "description": "Id of the setting",
          "type": "integer",
          "format": "int32"
        },
        "isVisibile": {
          "description": "Indicates the setting is visible on the UI.",
          "type": "boolean"
        },
        "parentSettingId": {
          "description": "Parent Setting Id used when a setting has child options.",
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        },
        "regexValidation": {
          "description": "Regex used to validate the input",
          "type": "string"
        },
        "settingName": {
          "description": "Name of the setting",
          "type": "string"
        },
        "settingSectionId": {
          "description": "Section Id of the setting",
          "type": "integer",
          "format": "int32"
        },
        "settingType": {
          "description": "Type of Setting (Default (string) = 0, Integer = 1, String = 2, Boolean = 3, StringArray = 4, DropDown = 5,DropDownItem = 6",
          "type": "integer",
          "format": "int32"
        },
        "subSettingSectionId": {
          "description": "Subsetting Section Id",
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        }
      },
      "type": "object"
    },
    "SecretDependencySettingMapForDisplay": {
      "description": "Settings used by Secret Dependency Templates",
      "properties": {
        "changerSettingValue": {
          "description": "The default read-only setting value on the changer that will be used if no setting value has been given.",
          "type": "string"
        },
        "setting": {
          "$ref": "#/$defs/SecretDependencySetting"
        },
        "settingId": {
          "description": "The Setting Id",
          "type": "integer",
          "format": "int32"
        },
        "settingName": {
          "description": "The Setting Name",
          "type": "string"
        },
        "settingValue": {
          "description": "The value for the setting that will be stored in the database.  This value should be set when editing or creating a Dependency. If not set the default value will be calculated by looking at the Changer or Script.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SecretDependencyTemplate": {
      "description": "Object filled and used for Secret Dependencies that refer to a Dependency Template",
      "properties": {
        "changerScriptId": {
          "description": "The id of the script (if any) used by the Dependency Template",
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        },
        "dependencyScanItemFields": {
          "description": "The Scan Item Fields used by the Dependency Template",
          "items": {
            "$ref": "#/$defs/SecretDependencyScanItemField"
          },
          "type": "array"
        },
        "scriptName": {
          "description": "The name of the script (if any) used by the Dependency Template",
          "type": "string"
        },
        "secretDependencyChangerId": {
          "description": "The id of the Dependency Changer used by the Dependency Template",
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        },
        "secretDependencyTemplateId": {
          "description": "The id of the Dependency Template",
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        }
      },
      "type": "object"
    },
    "SecretDependencyUniversalScriptArgument": {
      "description": "Arguments used for Run Script Dependencies",
      "properties": {
        "name": {
          "description": "Name of the argument",
          "type": "string"
        },
        "type": {
          "description": "Argument type",
          "type": "string"
        },
        "value": {
          "description": "Argument value",
          "type": "string"
        }
      },
      "type": "object"
    }
  }
}