{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/harness/main/json-schema/harness-ldapsettings-schema.json",
  "title": "LDAPSettings",
  "description": "This has the details of LDAP Settings supported in NG.",
  "x-generated": "2026-10-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/harness-authentication-settings-api-openapi.yml#/components/schemas/LDAPSettings",
  "required": [
    "connectionSettings",
    "displayName",
    "identifier"
  ],
  "type": "object",
  "properties": {
    "connectionSettings": {
      "$ref": "#/$defs/LdapConnectionSettings"
    },
    "identifier": {
      "type": "string",
      "description": "This is the LDAP setting identifier."
    },
    "userSettingsList": {
      "type": "array",
      "description": "This is the user settings list in LDAP setting.",
      "items": {
        "$ref": "#/$defs/LdapUserSettings"
      }
    },
    "groupSettingsList": {
      "type": "array",
      "description": "This is the group settings list in LDAP setting.",
      "items": {
        "$ref": "#/$defs/LdapGroupSettings"
      }
    },
    "displayName": {
      "type": "string",
      "description": "This is the LDAP setting display name."
    },
    "cronExpression": {
      "type": "string",
      "description": "This is the cron expression in LDAP Settings."
    },
    "nextIterations": {
      "type": "array",
      "description": "This is the list of iterations for next LDAP sync job.",
      "items": {
        "type": "integer",
        "description": "This is the list of iterations for next LDAP sync job.",
        "format": "int64"
      }
    },
    "disabled": {
      "type": "boolean",
      "description": "This tells if LDAP Settings is disabled or not, LDAP sync won't happen in disabled state."
    },
    "settingsType": {
      "type": "string",
      "enum": [
        "USER_PASSWORD",
        "SAML",
        "LDAP",
        "OAUTH",
        "OIDC"
      ]
    }
  },
  "$defs": {
    "LdapConnectionSettings": {
      "required": [
        "host"
      ],
      "type": "object",
      "properties": {
        "host": {
          "type": "string"
        },
        "port": {
          "type": "integer",
          "format": "int32"
        },
        "sslEnabled": {
          "type": "boolean"
        },
        "referralsEnabled": {
          "type": "boolean"
        },
        "maxReferralHops": {
          "minimum": 1,
          "type": "integer",
          "format": "int32"
        },
        "bindDN": {
          "type": "string"
        },
        "bindPassword": {
          "type": "string"
        },
        "encryptedBindPassword": {
          "type": "string"
        },
        "passwordType": {
          "type": "string"
        },
        "bindSecret": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "encryptedBindSecret": {
          "type": "string"
        },
        "connectTimeout": {
          "type": "integer",
          "format": "int32"
        },
        "responseTimeout": {
          "type": "integer",
          "format": "int32"
        },
        "useRecursiveGroupMembershipSearch": {
          "type": "boolean"
        },
        "delegateSelectors": {
          "uniqueItems": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "passwordRef": {
          "type": "string"
        },
        "accountId": {
          "type": "string"
        },
        "settingType": {
          "type": "string",
          "enum": [
            "HOST_CONNECTION_ATTRIBUTES",
            "BASTION_HOST_CONNECTION_ATTRIBUTES",
            "SMTP",
            "SFTP",
            "JENKINS",
            "BAMBOO",
            "STRING",
            "SPLUNK",
            "ELK",
            "LOGZ",
            "SUMO",
            "DATA_DOG",
            "APM_VERIFICATION",
            "BUG_SNAG",
            "LOG_VERIFICATION",
            "APP_DYNAMICS",
            "NEW_RELIC",
            "DYNA_TRACE",
            "INSTANA",
            "DATA_DOG_LOG",
            "CLOUD_WATCH",
            "SCALYR",
            "ELB",
            "SLACK",
            "AWS",
            "GCS",
            "GCP",
            "AZURE",
            "PCF",
            "RANCHER",
            "DIRECT",
            "KUBERNETES_CLUSTER",
            "DOCKER",
            "ECR",
            "GCR",
            "ACR",
            "PHYSICAL_DATA_CENTER",
            "KUBERNETES",
            "NEXUS",
            "ARTIFACTORY",
            "SMB",
            "AMAZON_S3",
            "GIT",
            "SSH_SESSION_CONFIG",
            "SERVICE_VARIABLE",
            "CONFIG_FILE",
            "KMS",
            "GCP_KMS",
            "JIRA",
            "SERVICENOW",
            "SECRET_TEXT",
            "SECRET_FILE",
            "YAML_GIT_SYNC",
            "VAULT",
            "VAULT_SSH",
            "AWS_SECRETS_MANAGER",
            "WINRM_CONNECTION_ATTRIBUTES",
            "WINRM_SESSION_CONFIG",
            "PROMETHEUS",
            "INFRASTRUCTURE_MAPPING",
            "HTTP_HELM_REPO",
            "AMAZON_S3_HELM_REPO",
            "GCS_HELM_REPO",
            "SPOT_INST",
            "AZURE_ARTIFACTS_PAT",
            "CUSTOM",
            "CE_AWS",
            "CE_GCP",
            "CE_AZURE",
            "AZURE_VAULT",
            "KUBERNETES_CLUSTER_NG",
            "GIT_NG",
            "SSO_SAML",
            "LDAP",
            "GCP_SECRETS_MANAGER",
            "TRIGGER",
            "OCI_HELM_REPO",
            "SALESFORCE"
          ]
        }
      },
      "description": "This is the LDAP connection setting."
    },
    "LdapGroupSettings": {
      "required": [
        "baseDN",
        "descriptionAttr",
        "nameAttr",
        "referencedUserAttr",
        "searchFilter",
        "userMembershipAttr"
      ],
      "type": "object",
      "properties": {
        "baseDN": {
          "type": "string"
        },
        "searchFilter": {
          "type": "string"
        },
        "nameAttr": {
          "type": "string"
        },
        "descriptionAttr": {
          "type": "string"
        },
        "userMembershipAttr": {
          "type": "string"
        },
        "referencedUserAttr": {
          "type": "string"
        }
      },
      "description": "This is the group settings list in LDAP setting."
    },
    "LdapUserSettings": {
      "required": [
        "baseDN",
        "displayNameAttr",
        "emailAttr",
        "groupMembershipAttr",
        "samAccountNameAttr",
        "searchFilter",
        "uidAttr"
      ],
      "type": "object",
      "properties": {
        "baseDN": {
          "type": "string"
        },
        "searchFilter": {
          "type": "string"
        },
        "uidAttr": {
          "type": "string"
        },
        "samAccountNameAttr": {
          "type": "string"
        },
        "emailAttr": {
          "type": "string"
        },
        "displayNameAttr": {
          "type": "string"
        },
        "groupMembershipAttr": {
          "type": "string"
        }
      },
      "description": "This is the user settings list in LDAP setting."
    }
  }
}