tamper.*:
  type: mapping
  label: 'Tamper plugin'

tamper.convert_case:
  mapping:
    operation:
      type: string
      label: 'How to convert case'

tamper.convert_boolean:
  mapping:
    true_value:
      type: string
      label: 'Truth'
    false_value:
      type: string
      label: 'False'
    match_case:
      type: boolean
      label: 'Match case'
    no_match_value:
      type: string
      label: 'If no match'
    other_text:
      type: string
      label: 'Other text'

tamper.url_decode:
  mapping:
    method:
      type: string
      label: 'Decode method'

tamper.default_value:
  mapping:
    default_value:
      type: string
      label: 'Value'
    only_if_empty:
      type: boolean
      label: 'Only if empty'

tamper.encode:
  mapping:
    mode:
      type: string
      label: 'Serialization mode'

tamper.explode:
  mapping:
    separator:
      type: string
      label: 'String separator'
    limit:
      type: integer
      label: 'Limit'

tamper.find_replace:
  mapping:
    find:
      type: string
      label: 'Text to find'
    replace:
      type: string
      label: 'Text to replace'
    case_sensitive:
      type: boolean
      label: 'Case sensitive'
    word_boundaries:
      type: boolean
      label: 'Respect word boundaries'
    whole:
      type: boolean
      label: 'Match whole word/phrase'

tamper.find_replace_regex:
  mapping:
    find:
      type: string
      label: 'REGEX to find'
    replace:
      type: string
      label: 'Replacement pattern'
    limit:
      type: integer
      label: 'Limit number of replacements'

tamper.hash:
  mapping:
    override:
      type: boolean
      label: 'Override set value'

tamper.implode:
  mapping:
    glue:
      type: string
      label: 'String glue'

tamper.keyword_filter:
  mapping:
    words:
      type: string
      label: 'Words or phrases to filter on'
    word_boundaries:
      type: boolean
      label: 'Respect word boundaries'
    exact:
      type: boolean
      label: 'Exact'
    case_sensitive:
      type: boolean
      label: 'Case sensitive'
    invert:
      type: boolean
      label: 'Invert filter'
    word_list:
      type: sequence
      label: 'Word list'
      sequence:
        type: string
        label: 'Word'
    regex:
      type: boolean
      label: 'Use regex'
    function:
      type: string
      label: 'Keyword filtering function'

tamper.math:
  mapping:
    operation:
      type: string
      label: 'Operation'
    flip:
      type: boolean
      label: 'Flip'
    value:
      type: float
      label: 'Value'
    log:
      type: boolean
      label: 'Log'

tamper.number_format:
  mapping:
    decimals:
      type: integer
      label: 'Decimals'
    dec_point:
      type: string
      label: 'Decimal point'
    thousands_sep:
      type: string
      label: 'Thousands separator'

tamper.required:
  mapping:
    invert:
      type: boolean
      label: 'Invert filter'

tamper.rewrite:
  mapping:
    text:
      type: string
      label: 'Replacement pattern'

tamper.sprintf:
  mapping:
    format:
      type: string
      label: 'Format string'

tamper.str_pad:
  mapping:
    pad_length:
      type: integer
      label: 'Pad length'
    pad_string:
      type: string
      label: 'Pad string'
    pad_type:
      type: string
      label: 'Pad type'

tamper.strip_tags:
  mapping:
    allowed_tags:
      type: string
      label: 'Allowed tags'

tamper.trim:
  mapping:
    character:
      type: string
      label: 'Characters to trim'
    side:
      type: string
      label: 'Side'

tamper.timetodate:
  mapping:
    date_format:
      type: string
      label: 'Date format'

tamper.truncate_text:
  mapping:
    num_char:
      type: integer
      label: 'Number of characters'
    ellipses:
      type: boolean
      label: 'Ellipses'
    wordsafe:
      type: boolean
      label: 'Truncate on a word boundary'

tamper.url_encode:
  mapping:
    method:
      type: string
      label: 'Encode method'
