vacuum_clean_segment:
  target:
    entity:
      domain: vacuum
  fields:
    segments:
      example: "[3,2] or 3" 
      required: true
      selector:
        object:
    repeats:
      example: "[1,2] or 1" 
      required: false
      selector:
        number:
          min: 1
          max: 3
    suction_level:
      example: "[0,3] or 0" 
      required: false
      selector:
        number:
          min: 0
          max: 3
    water_volume:
      example: "[1,3] or 1"
      required: false
      selector:
        number:
          min: 1
          max: 3

vacuum_clean_zone:
  target:
    entity:
      domain: vacuum
  fields:
    zone:
      example: "[819,-263,4424,2105] or [[819,-263,4424,2105],[-2001,-3050,-542,515]]"
      required: true
      selector:
        object:
    repeats:
      example: "[1,3] or 1"
      required: false
      selector:
        number:
          min: 1
          max: 3

vacuum_clean_spot:
  target:
    entity:
      domain: vacuum
  fields:
    points:
      example: "[819,-263] or [[819,-263],[819,-263]]" 
      required: true
      selector:
        object:
    repeats:
      example: "[1,2] or 1" 
      required: false
      selector:
        number:
          min: 1
          max: 3
    suction_level:
      example: "[0,3] or 0" 
      required: false
      selector:
        number:
          min: 0
          max: 3
    water_volume:
      example: "[1,3] or 1"
      required: false
      selector:
        number:
          min: 1
          max: 3

vacuum_set_dnd:
  target:
    entity:
      domain: vacuum
  fields:
    dnd_enabled:
      example: "true"
      required: true
      selector:
        boolean:
    dnd_start:
      example: "22:00"
      required: false
      selector:
        text:
    dnd_end:
      example: "6:30"
      required: false
      selector:
        text:

vacuum_remote_control_move_step:
  target:
    entity:
      domain: vacuum
  fields:
    rotation:
      example: 64
      required: true
      selector:
        number:
          min: -128
          max: 128
          mode: box
    velocity:
      example: 100
      required: true
      selector:
        number:
          min: -300
          max: 100
          mode: box

vacuum_install_voice_pack:
  target:
    entity:
      domain: vacuum
  fields:
    lang_id:
      example: "DE"
      required: true
      selector:
        text:
    url:
      example: "http://awsde0.fds.api.xiaomi.com/dreame-product/dreame.vacuum.p2009/voices/package/deyu.tar.gz"
      required: true
      selector:
        text:
    md5:
      example: "d25986c1f608c0897475707e77d856f9"
      required: true
      selector:
        text:
    size:
      example: 4067845
      required: true
      selector:
        number:
          mode: box

vacuum_request_map:
  target:
    entity:
      domain: vacuum

vacuum_select_map:
  target:
    entity:
      domain: vacuum
  fields:
    map_id:
      example: 14
      required: true
      selector:
        number:
          mode: box

vacuum_delete_map:
  target:
    entity:
      domain: vacuum
  fields:
    map_id:
      example: 14
      required: false
      selector:
        number:
          mode: box

vacuum_save_temporary_map:
  target:
    entity:
      domain: vacuum

vacuum_discard_temporary_map:
  target:
    entity:
      domain: vacuum

vacuum_replace_temporary_map:
  target:
    entity:
      domain: vacuum
  fields:
    map_id:
      example: 14
      required: false
      selector:
        number:
          mode: box

vacuum_rename_map:
  target:
    entity:
      domain: vacuum
  fields:
    map_id:
      example: "14"
      required: true
      selector:
        text:
    map_name:
      example: "Ground Floor"
      required: true
      selector:
        text:

vacuum_merge_segments:
  target:
    entity:
      domain: vacuum
  fields:
    map_id:
      example: "14"
      required: false
      selector:
        text:
    segments:
      example: "[3,2]"
      required: true
      selector:
        object:

vacuum_split_segments:
  target:
    entity:
      domain: vacuum
  fields:
    map_id:
      example: "14"
      required: false
      selector:
        text:
    segment:
      example: "3"
      required: true
      selector:
        number:
          min: 1
          max: 60
          mode: box
    line:
      example: "[819,-263,4424,2105]"
      required: true
      selector:
        object:

vacuum_rename_segment:
  target:
    entity:
      domain: vacuum
  fields:
    segment_id:
      example: "3"
      required: true
      selector:
        number:
          min: 1
          max: 60
          mode: box
    segment_name:
      example: "Playroom"
      required: true
      selector:
        text:

vacuum_set_cleaning_sequence:
  target:
    entity:
      domain: vacuum
  fields:
    cleaning_sequence:
      example: "[5,3,2,1,4] or []"
      required: true
      selector:
        object:

vacuum_set_custom_cleaning:
  target:
    entity:
      domain: vacuum
  fields:
    segment_id:
      example: "[1,2,3,4,5]"
      required: true
      selector:
        object:
    suction_level:
      example: "[0,0,2,3,1]"
      required: true
      selector:
        object:
    water_volume:
      example: "[1,1,2,3,1]"
      required: true
      selector:
        object:
    repeats:
      example: "[2,2,1,3,1]"
      required: true
      selector:
        object:
        
vacuum_set_restricted_zone:
  target:
    entity:
      domain: vacuum
  fields:
    walls:
      example: "[[819,-263,4424,2105],[-2001,-3050,-542,515]]"
      required: false
      selector:
        text:
    zones:
      example: "[[819,-263,4424,2105],[-2001,-3050,-542,515]]"
      required: false
      selector:
        text:
    no_mops:
      example: "[[819,-263,4424,2105],[-2001,-3050,-542,515]]"
      required: false
      selector:
        text:

vacuum_reset_consumable:
  target:
    entity:
      domain: vacuum
  fields:
    consumable:
      required: true
      selector:
        select:
          options:
            - "main_brush"
            - "side_brush"
            - "filter"
            - "sensor"
            - "mop_pad"
            - "silver_ion"
            - "detergent"

select_select_previous:
  target:
    entity:
      integration: dreame_vacuum
      domain: select
  fields:
    cycle:
      default: true
      selector:
        boolean:

select_select_first:
  target:
    entity:
      integration: dreame_vacuum
      domain: select

select_select_last:
  target:
    entity:
      integration: dreame_vacuum
      domain: select

select_select_next:
  target:
    entity:
      integration: dreame_vacuum
      domain: select
  fields:
    cycle:
      default: true
      selector:
        boolean: