# Import JSON Code from API+jq

##### <span style="color: rgb(53, 152, 219);">Создаём скрипт запроса ключа</span>

<p class="callout success">В обратных кавычках Curl запрос с отфильтрованным fingerprint-ом ключа</p>

```ruby
sudo tee ~/key_convert << 'EOF'
#!/bin/bash
echo "{
\"fingerprint\": `curl -X GET \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <key>' \
  'https://api.digitalocean.com/v2/account/keys?page=1&per_page=999' \
  | jq '.ssh_keys[] | select(.name=="REBRAIN.SSH.PUB.KEY") | .fingerprint'`
}"
EOF
```

##### <span style="color: rgb(53, 152, 219);">Доставляем ключ в конфигурацию terraform</span>

<p class="callout success">Функция <span style="color: rgb(35, 111, 161);">**[lookup](https://developer.hashicorp.com/terraform/language/functions/lookup)**</span> извлекает значение указанного ключа из набора</p>

```ruby
data "external" "key_conv" {
  program = ["bash", "${path.root}/key_convert"]
}

resource "digitalocean_droplet" "ubuntu01" {
  ***
  ssh_keys = [
    "${lookup(data.external.key_conv.result, "fingerprint", "what?")}"
  ]
}
```

##### <span style="color: rgb(53, 152, 219);">Пример jq-запросов вывода ключей</span>

**Выгрузка значения <span style="color: rgb(53, 152, 219);">fingerprint </span>конкретного ключа по его <span style="color: rgb(53, 152, 219);">name</span>:**

```ruby
curl -X GET \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <key>' \
  'https://api.digitalocean.com/v2/account/keys?page=1&per_page=999' \
  | jq '.ssh_keys[] | select(.name=="REBRAIN.SSH.PUB.KEY") | .fingerprint'
```

**Выгрузка значений <span style="color: rgb(53, 152, 219);">name </span>всех ключей:**

```ruby
curl -X GET \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <key>' \
  'https://api.digitalocean.com/v2/account/keys?page=1&per_page=999' \
  | jq '.ssh_keys[] | .name'
```