{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/cloudmersive/json-schema/cloudmersive-dlp-advanced-audio-redaction-request-schema.json",
  "title": "DlpAdvancedAudioRedactionRequest",
  "description": "Request object for advanced DLP audio redaction with 29 PII detection types including health-related data.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/cloudmersive-redact-api-openapi.yml#/components/schemas/DlpAdvancedAudioRedactionRequest",
  "type": "object",
  "properties": {
    "InputFile": {
      "format": "byte",
      "description": "Audio file bytes (WAV, MP3, M4A, FLAC, OGG, or WMA) to transcribe, scan for PII, and redact.",
      "type": "string"
    },
    "LanguageCode": {
      "description": "Language code for speech recognition. Default is \"ENG\" (English).",
      "type": "string"
    },
    "AllowEmailAddress": {
      "description": "Set to true to allow email addresses in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowPhoneNumber": {
      "description": "Set to true to allow phone numbers in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowStreetAddress": {
      "description": "Set to true to allow street addresses in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowCity": {
      "description": "Set to true to allow standalone city names (e.g. \"San Francisco\") in the audio transcript and not redact them. Applies to city names mentioned outside of a full street address.",
      "type": "boolean"
    },
    "AllowPersonName": {
      "description": "Set to true to allow person names in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowBirthDate": {
      "description": "Set to true to allow birth dates in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowPassportNumber": {
      "description": "Set to true to allow passport numbers in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowDriversLicense": {
      "description": "Set to true to allow drivers license numbers in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowSocialSecurityNumber": {
      "description": "Set to true to allow social security numbers in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowTaxpayerID": {
      "description": "Set to true to allow taxpayer IDs in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowCreditCardNumber": {
      "description": "Set to true to allow credit card numbers in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowCreditCardExpirationDate": {
      "description": "Set to true to allow credit card expiration dates in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowCreditCardVerificationCode": {
      "description": "Set to true to allow credit card verification codes in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowBankAccountNumber": {
      "description": "Set to true to allow bank account numbers in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowIBAN": {
      "description": "Set to true to allow IBANs in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowHealthInsuranceNumber": {
      "description": "Set to true to allow health insurance numbers in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowBearerToken": {
      "description": "Set to true to allow bearer tokens in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowHttpCookie": {
      "description": "Set to true to allow HTTP cookies in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowPrivateKeys": {
      "description": "Set to true to allow private keys in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowCredentials": {
      "description": "Set to true to allow credentials (usernames/passwords) in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowDeepWebUrls": {
      "description": "Set to true to allow deep web URLs (.onion) in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowSourceCode": {
      "description": "Set to true to allow source code in the audio transcript and not redact it.",
      "type": "boolean"
    },
    "AllowIpAddress": {
      "description": "Set to true to allow IP addresses in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowMacAddress": {
      "description": "Set to true to allow MAC addresses in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowHealthInsuranceMemberID": {
      "description": "Set to true to allow health insurance member IDs in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowMedicalRecordNumber": {
      "description": "Set to true to allow medical record numbers in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowBillingAccountNumber": {
      "description": "Set to true to allow billing account numbers (e.g. provider/customer billing account IDs, distinct from bank account numbers) in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowHealthInjuryOrDisease": {
      "description": "Set to true to allow references to injuries or diseases in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowHealthTypeOfTreatment": {
      "description": "Set to true to allow references to types of medical treatment in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowHealthDateAndTimeOfTreatment": {
      "description": "Set to true to allow dates and times of medical treatment in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowHealthPlanBeneficiaryNumber": {
      "description": "Set to true to allow health plan beneficiary numbers in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowHealthPaymentsMadeForTreatment": {
      "description": "Set to true to allow payments made for medical treatment in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowVehicleID": {
      "description": "Set to true to allow vehicle identifiers (e.g. license plates, VINs) in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowDeviceID": {
      "description": "Set to true to allow device identifiers (e.g. serial numbers, IMEIs, MAC-level device IDs) in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowNamesOfRelatives": {
      "description": "Set to true to allow names of relatives in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowHealthUniversalRecordLocator": {
      "description": "Set to true to allow health universal record locators (URLs) in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "AllowBiometrics": {
      "description": "Set to true to allow biometric data references (e.g. fingerprints, retinal scans, voiceprints) in the audio transcript and not redact them.",
      "type": "boolean"
    },
    "RedactionMode": {
      "description": "Redaction mode for audio: \"Bleep\" (default) replaces redacted audio segments with a bleep tone, or \"Mute\" zeroes out the audio for the redacted portions.",
      "type": "string"
    },
    "TranscriptRedactionMode": {
      "description": "Redaction mode for the transcript text: \"SemanticTag\" (default) replaces PII with a semantic tag in square brackets (e.g. [PHONE-NUMBER]), \"Delete\" removes PII entirely, or \"ReplaceWithAsterisk\" replaces PII characters with asterisks (*).",
      "type": "string"
    },
    "ProvideAnalysisRationale": {
      "description": "Set to true to include a natural language rationale explaining why each detection conclusion was formed.",
      "type": "boolean"
    },
    "CustomPolicyID": {
      "description": "Apply a Custom Policy for DLP Enforcement by providing the ID; to create a Custom Policy,\nnavigate to the Cloudmersive Management Portal and select Custom Policies.\nRequires Managed Instance or Private Cloud",
      "type": "string"
    },
    "CustomFields": {
      "description": "Optional list of caller-defined custom PII fields to detect and redact in addition\nto the built-in categories. Each entry has a Title (used to derive the redaction\ntag, e.g. \"internal participant code\" → [INTERNAL-PARTICIPANT-CODE]) and a\nDescription telling the redaction LLM what the field looks like. Default null.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/CustomPiiField"
      }
    },
    "ExpandRedactionByCharacters": {
      "format": "int32",
      "description": "Optional override for the audio bleep/mute span padding. When set, expands each\ndetected redaction range by this many CHARACTERS on each side before mapping to\naudio tokens (instead of the default token-radius expansion controlled by the\nDlpApi_Audio_ExpandRedactionByTokenRadius cloud configuration). Leave null to\nuse the default token-radius behavior.",
      "type": "integer"
    },
    "ExpandRedactionByMs": {
      "format": "int32",
      "description": "Optional override for the audio bleep/mute span padding, expressed in MILLISECONDS.\nWhen set, the audio segment for each detected redaction starts this many ms earlier\nand ends this many ms later than the raw token-aligned span (clamped to >= 0 ms at\nthe start). When set, this REPLACES both the token-radius expansion and the\nExpandRedactionByCharacters override. Leave null to fall back to the character or\ntoken-based expansion modes.",
      "type": "integer"
    },
    "SpeechRecognitionMode": {
      "description": "Optional. Speech recognition mode used when transcribing the audio for redaction. Available values: \"Fast\", \"Normal\", or \"Advanced\". Defaults to \"Normal\" when not specified.",
      "type": "string"
    },
    "OutputFormat": {
      "description": "Optional. Container format of the redacted audio: \"WAV\" or \"MP3\". Omit (null) to keep the current behavior (WAV). \"MP3\" encodes the redacted audio with LAME, typically 5-8x smaller than WAV; for batch jobs this also makes most multi-hour results small enough to be returned inline. Any other value is rejected.",
      "type": "string"
    }
  },
  "additionalProperties": false,
  "$defs": {
    "CustomPiiField": {
      "description": "Caller-defined custom PII field. The redaction LLM will look for content matching\nthe description and redact it as a semantic tag derived from the title\n(e.g. title \"internal participant code\" → tag [INTERNAL-PARTICIPANT-CODE]).",
      "type": "object",
      "properties": {
        "Title": {
          "description": "Short title for the custom field, also used to derive the semantic tag (uppercased, spaces/underscores replaced with hyphens).",
          "type": "string"
        },
        "Description": {
          "description": "Description of what this field looks like, used to instruct the redaction LLM. Be specific so the LLM can locate matches.",
          "type": "string"
        }
      },
      "additionalProperties": false
    }
  }
}