{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/opentext-cybersecurity/main/json-schema/opentext-cybersecurity-put-dast-automated-website-scan-setup-request-schema.json",
  "title": "PutDastAutomatedWebsiteScanSetupRequest",
  "x-generated": "2026-10-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/opentext-cybersecurity-dast-automated-scans-api-openapi.yml#/components/schemas/PutDastAutomatedWebsiteScanSetupRequest",
  "required": [
    "dynamicSiteUrl",
    "policy",
    "assessmentTypeId",
    "entitlementId",
    "entitlementFrequencyType",
    "dynamicScanEnvironmentFacingType",
    "timeZone"
  ],
  "type": "object",
  "properties": {
    "dynamicSiteUrl": {
      "description": "Dynamic site URL",
      "type": "string"
    },
    "enableRedundantPageDetection": {
      "description": "True to enable comparison of page structure to identify and exclude processing of redundant resources, otherwise false",
      "type": "boolean"
    },
    "loginMacroFileId": {
      "format": "int32",
      "description": "Login macro file ID. Value is obtained by uploading login macro",
      "type": "integer"
    },
    "requiresSiteAuthentication": {
      "description": "True if site authentication is required to scan the site, otherwise false",
      "type": "boolean"
    },
    "exclusionsList": {
      "description": "List of exclusions.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/Exclusion"
      }
    },
    "restrictToDirectoryAndSubdirectories": {
      "description": "True to restrict to directory and subdirectories, otherwise false",
      "type": "boolean"
    },
    "policy": {
      "description": "Policy type to scan the site. Values are obtained by calling api/v3/lookup-items?type=DastAutomatedScanPolicies",
      "enum": [
        "Standard",
        "CriticalsAndHighs",
        "PassiveScan"
      ],
      "type": "string"
    },
    "timeBoxInHours": {
      "format": "int32",
      "description": "Time limit in hours for Automated scan duration",
      "type": "integer"
    },
    "requestLoginMacroFileCreation": {
      "description": "True if requesting one-time creation of login macro file by testing team, otherwise false",
      "type": "boolean"
    },
    "loginMacroFileCreationDetails": {
      "$ref": "#/$defs/LoginMacroFileCreationDetails",
      "description": "Login macro file creation details"
    },
    "assessmentTypeId": {
      "format": "int32",
      "description": "Assessment type ID. Values are obtained by calling GET /api/v3/releases/{releaseId}/assessment-types",
      "type": "integer"
    },
    "entitlementId": {
      "format": "int32",
      "description": "Entitlement ID. Values are obtained by calling GET /api/v3/tenant-entitlements",
      "type": "integer"
    },
    "entitlementFrequencyType": {
      "description": "Entitlement frequency type",
      "enum": [
        "SingleScan",
        "Subscription"
      ],
      "type": "string"
    },
    "dynamicScanEnvironmentFacingType": {
      "description": "Type of environment the server is running in",
      "enum": [
        "Internal",
        "External"
      ],
      "type": "string"
    },
    "timeZone": {
      "description": "Timezone. Values are obtained by calling GET /api/v3/lookup-items?type=TimeZones",
      "type": "string"
    },
    "requiresNetworkAuthentication": {
      "description": "True if network connection is required to scan the site, otherwise false",
      "type": "boolean"
    },
    "networkAuthenticationSettings": {
      "$ref": "#/$defs/NetworkAuthenticationSettings",
      "description": "Network authentication settings"
    },
    "requestFalsePositiveRemoval": {
      "description": "True if requesting one-time false positive removal, otherwise false",
      "type": "boolean"
    },
    "networkName": {
      "type": "string"
    }
  },
  "$defs": {
    "Exclusion": {
      "type": "object",
      "properties": {
        "value": {
          "description": "URL fragment to exclude from scanning.",
          "type": "string"
        }
      }
    },
    "LoginMacroFileCreationDetails": {
      "type": "object",
      "properties": {
        "primaryUsername": {
          "description": "Login macro settings: primary username to login with",
          "type": "string"
        },
        "primaryPassword": {
          "description": "Login macro settings: primary account password to login with",
          "type": "string"
        },
        "secondaryUsername": {
          "description": "Login macro settings: secondary username to login with",
          "type": "string"
        },
        "secondaryPassword": {
          "description": "Login macro settings: secondary account password to login with",
          "type": "string"
        }
      }
    },
    "NetworkAuthenticationSettings": {
      "type": "object",
      "properties": {
        "networkAuthenticationType": {
          "description": "Network authentication type. Values are obtained by calling GET /api/v3/lookup-items?type=NetworkAuthenticationType",
          "enum": [
            "Basic",
            "NTLM",
            "Kerberos",
            "Digest",
            "Automatic",
            "ADFS_CBT"
          ],
          "type": "string"
        },
        "userName": {
          "description": "Network username",
          "type": "string"
        },
        "password": {
          "description": "Network password",
          "type": "string"
        }
      }
    }
  }
}