{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/VoicemailRules",
  "title": "VoicemailRules",
  "type": "object",
  "required": [
    "blockRepeatedPatternsEnabled",
    "blockUserNumberEnabled",
    "blockReversedUserNumberEnabled",
    "blockPreviousPasscodes",
    "blockReversedOldPasscodeEnabled",
    "blockRepeatedDigits",
    "blockContiguousSequences",
    "length"
  ],
  "properties": {
    "blockRepeatedPatternsEnabled": {
      "type": "boolean",
      "example": true,
      "description": "If enabled, the passcode cannot contain repeated patterns. For example, 121212 and 123123."
    },
    "blockUserNumberEnabled": {
      "type": "boolean",
      "example": true,
      "description": "If enabled, the passcode must not match the user's own phone number."
    },
    "blockReversedUserNumberEnabled": {
      "type": "boolean",
      "example": true,
      "description": "If enabled, the passcode must not match the user's phone number in reverse."
    },
    "blockPreviousPasscodes": {
      "$ref": "#/components/schemas/BlockPreviousPasscodes"
    },
    "blockReversedOldPasscodeEnabled": {
      "type": "boolean",
      "example": true,
      "description": "If enabled, the passcode must not match the user's old passcodes in reverse."
    },
    "blockRepeatedDigits": {
      "$ref": "#/components/schemas/BlockRepeatedDigits"
    },
    "blockContiguousSequences": {
      "$ref": "#/components/schemas/BlockContiguousSequences"
    },
    "length": {
      "$ref": "#/components/schemas/PasscodeLength"
    }
  },
  "description": "Person's voicemail passcode rules and restrictions.",
  "example": {
    "blockRepeatedPatternsEnabled": true,
    "blockUserNumberEnabled": true,
    "blockReversedUserNumberEnabled": true,
    "blockPreviousPasscodes": {
      "enabled": true,
      "numberOfPasscodes": 3
    },
    "blockReversedOldPasscodeEnabled": true,
    "blockRepeatedDigits": {
      "enabled": true,
      "max": 3
    },
    "blockContiguousSequences": {
      "enabled": true,
      "numberOfAscendingDigits": 3,
      "numberOfDescendingDigits": 3
    },
    "length": {
      "min": 6,
      "max": 15
    }
  }
}