---
setup:

  - do:
      indices.create:
        index: test_index

  - do:
      indices.create:
        index: test_index_2

  - do:
      indices.put_alias:
        index: test_index
        name: test_alias

  - do:
      indices.put_alias:
        index: test_index
        name: test_blias

  - do:
      indices.put_alias:
        index: test_index_2
        name: test_alias

  - do:
      indices.put_alias:
        index: test_index_2
        name: test_blias

---
"Get all aliases via /_alias":

  - do:
      indices.get_alias: {}

  - match: {test_index.aliases.test_alias: {}}
  - match: {test_index.aliases.test_blias: {}}
  - match: {test_index_2.aliases.test_alias: {}}
  - match: {test_index_2.aliases.test_blias: {}}


---
"Get all aliases via /{index}/_alias/":

  - do:
      indices.get_alias:
        index: test_index

  - match: {test_index.aliases.test_alias: {}}
  - match: {test_index.aliases.test_blias: {}}
  - is_false: test_index_2

---
"Get specific alias via /{index}/_alias/{name}":

  - do:
      indices.get_alias:
        index: test_index
        name:  test_alias

  - match: {test_index.aliases.test_alias: {}}
  - is_false: test_index.aliases.test_blias
  - is_false: test_index_2

---
"Get aliases via /{index}/_alias/_all":

  - do:
      indices.get_alias:
        index: test_index
        name: _all

  - match: {test_index.aliases.test_alias: {}}
  - match: {test_index.aliases.test_blias: {}}
  - is_false: test_index_2

---
"Get aliases via /{index}/_alias/*":

  - do:
      indices.get_alias:
        index: test_index
        name: '*'

  - match: {test_index.aliases.test_alias: {}}
  - match: {test_index.aliases.test_blias: {}}
  - is_false: test_index_2

---
"Get aliases via /{index}/_alias/prefix*":

  - do:
      indices.get_alias:
        index: test_index
        name: 'test_a*'

  - match: {test_index.aliases.test_alias: {}}
  - is_false: test_index.aliases.test_blias
  - is_false: test_index_2

---
"Get aliases via /{index}/_alias/name,name":

  - do:
      indices.get_alias:
        index: test_index
        name: 'test_alias,test_blias'

  - match: {test_index.aliases.test_alias: {}}
  - match: {test_index.aliases.test_blias: {}}
  - is_false: test_index_2

---
"Get aliases via /_alias/{name}":

  - do:
      indices.get_alias:
        name: test_alias

  - match: {test_index.aliases.test_alias: {}}
  - match: {test_index_2.aliases.test_alias: {}}
  - is_false: test_index.aliases.test_blias
  - is_false: test_index_2.aliases.test_blias

---
"Get aliases via /_all/_alias/{name}":

  - do:
      indices.get_alias:
        index: _all
        name: test_alias

  - match: {test_index.aliases.test_alias: {}}
  - match: {test_index_2.aliases.test_alias: {}}
  - is_false: test_index.aliases.test_blias
  - is_false: test_index_2.aliases.test_blias

---
"Get aliases via /*/_alias/{name}":

  - do:
      indices.get_alias:
        index: '*'
        name: test_alias

  - match: {test_index.aliases.test_alias: {}}
  - match: {test_index_2.aliases.test_alias: {}}
  - is_false: test_index.aliases.test_blias
  - is_false: test_index_2.aliases.test_blias

---
"Get aliases via /pref*/_alias/{name}":

  - do:
      indices.get_alias:
        index: '*2'
        name: test_alias

  - match: {test_index_2.aliases.test_alias: {}}
  - is_false: test_index.aliases.test_alias
  - is_false: test_index.aliases.test_blias
  - is_false: test_index_2.aliases.test_blias

---
"Get aliases via /name,name/_alias/{name}":

  - do:
      indices.get_alias:
        index: test_index,test_index_2
        name: test_alias

  - match: {test_index.aliases.test_alias: {}}
  - match: {test_index_2.aliases.test_alias: {}}
  - is_false: test_index.aliases.test_blias
  - is_false: test_index_2.aliases.test_blias


---
"Non-existent alias on an existing index returns an empty body":

  - do:
      indices.get_alias:
        index: test_index
        name: non-existent

  - match: { '': {}}

---
"Existent and non-existent alias returns just the existing":

  - do:
      indices.get_alias:
        index: test_index
        name: test_alias,non-existent

  - match: {test_index.aliases.test_alias: {}}
  - is_false: test_index.aliases.non-existent

---
"Getting alias on an non-existent index should return 404":

  - do:
      catch: missing
      indices.get_alias:
        index: non-existent
        name: foo

---
"Get alias with local flag":

  - do:
      indices.get_alias:
        local: true

  - is_true: test_index

  - is_true: test_index_2
