# Nesne Depolama'yı API, gyro CLI ve Terraform ile sipariş etme

https://www.gyrohosting.com/bilgi-bankasi/makale/nesne-depolama-api-ile-siparis

- **Bu rehberde ne öğreneceksiniz**: Nesne Depolama (S3) ya da Korumalı Depolama hizmetini panele girmeden açmayı: paketleri listelemek, fiyat teklifi almak, sipariş vermek, ilk kova ve anahtara ulaşmak, iptal etmek.
- **Süre**: 6 dakika
- **Kimin için**: Altyapısını kodla yöneten geliştiriciler, DevOps ekipleri ve sunucu kuran yapay zekâ ajanları.
- **Gerekenler**: Bir Gyro API anahtarı (sipariş izni olan) ve siparişi karşılayacak bakiye. Anahtar: [API anahtarı oluşturma](https://www.gyrohosting.com/bilgi-bankasi/makale/gyro-bulut-istanbul-api-cli-terraform).

## 1. Paketleri ve fiyatları görün

```
gyro storage plans
```

| Paket (`plan`) | Tür | Alan | Kova | Aylık dahil trafik |
| --- | --- | --- | --- | --- |
| `standard-250gb` | Standart | 250 GB | 5 | 250 GB |
| `standard-1tb` | Standart | 1 TB | 10 | 1 TB |
| `standard-5tb` | Standart | 5 TB | 25 | 3 TB |
| `standard-10tb` | Standart | 10 TB | 50 | 5 TB |
| `protected-250gb` … `protected-10tb` | Korumalı (sürümleme açık) | aynı | aynı | aynı |

Fiyatlar euro bazlıdır, KDV hariçtir ve hesabınızın para biriminde (TL) bugünkü kurla tahsil edilir. Her paketin `monthly`, `quarterly`, `semiannually`, `annually` dönem fiyatı ve indirimden önceki liste fiyatı (`list_amount`) listede görünür. `available: false` olan paket o an kapasite nedeniyle sipariş edilemez.

Ek hizmetler:

- **Ek trafik** (`extra_traffic`: `1tb` ya da `5tb`): tek seferliktir, satın alındığı takvim ayı sonuna kadar geçerlidir.
- **Nesne kilidi** (`object_lock_buckets`: 1-50): yalnız Korumalı paketlerde; kilitli (WORM) kova açma hakkıdır, her dönem ücretlenir.

## 2. Sipariş verin

Önce teklif alın (hiçbir şey açılmaz, ücret alınmaz):

```
gyro storage create --plan standard-1tb --cycle monthly --name gyro-proje-yedek --dry-run
```

Sonra siparişi verin. CLI onay sorar, `--yes` ile sormaz. Ücret bakiyenizden düşer, kayıtlı kart kullanılmaz:

```
gyro storage create --plan standard-1tb --cycle monthly --name gyro-proje-yedek
```

Aynı istek API ile:

```
curl -X POST https://www.gyrohosting.com/api/v1/client/cloud/storage \
  -H "Authorization: Bearer $GYRO_TOKEN" -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"plan":"standard-1tb","cycle":"monthly","name":"gyro-proje-yedek","confirm":true}'
```

- Gerçek sipariş `"confirm": true` ve `Idempotency-Key` başlığı ister. Aynı anahtarla tekrar gönderilen istek ikinci sipariş açmaz, ilk yanıtı döner.
- `quantity` ile tek siparişte birden çok hizmet açabilirsiniz (en çok 25). Adda `{n}` sıra numarasına dönüşür: `"name": "gyro-yedek-{n}"`.
- Korumalı paket + nesne kilidi + ek trafik örneği: `{"plan":"protected-250gb","object_lock_buckets":2,"extra_traffic":"1tb","confirm":true}`.
- `project_id` hizmeti bir projeye koyar. Bayi anahtarıyla `end_customer_id` son müşteriye atar.

Hizmet yaklaşık **bir dakikada** hazır olur (`inprocess` → `active`). İlk kova ve ilk erişim anahtarı kendiliğinden açılır:

```
gyro storage get 12345           # paket, uç nokta (endpoint), bölge
gyro storage bucket list 12345   # ilk kova
gyro storage connect 12345       # S3 bağlantı bilgileri
```

Erişim anahtarının gizli değeri panelde bir kez gösterilir. API'den yeni anahtar almak için `gyro storage key create 12345` kullanın; gizli değeri hemen kaydedin.

## 3. Terraform ile

```
resource "gyro_storage" "yedek" {
  plan  = "standard-1tb"
  cycle = "monthly"
  name  = "gyro-proje-yedek"

  lifecycle {
    prevent_destroy = true   # destroy tüm kovaları ve nesneleri siler
  }
}

resource "gyro_storage_bucket" "dosyalar" {
  service_id = gyro_storage.yedek.service_id
  name       = "gyro-proje-dosyalar"
}
```

- `name` yerinde değişir.
- `plan`, `cycle` ve `object_lock_buckets` Terraform'da değiştirilemez. Değiştirirseniz `terraform plan` hata verir. Terraform veriyi silecek bir yeniden oluşturma yapmaz.
- `terraform destroy` hizmeti hemen iptal eder ve veriyi siler. `delete_immediately = false` verirseniz yalnız iptal talebi açılır.

## 4. İptal

```
gyro storage delete 12345 --yes
```

API'de `DELETE /cloud/storage/12345?confirm=true&immediate=true` hemen iptal eder. Erişim anahtarları, web sitesi ve özel alan adları yaklaşık bir dakikada durur. Kovalar ve nesneler dakikalar içinde **kalıcı olarak silinir** ve geri getirilemez. Korumalı Depolama'da COMPLIANCE kilidi ya da legal hold altındaki sürümler kilit bitene kadar kalır ve ücretlenir. `immediate` vermezseniz yalnız iptal talebi açılır.

## 5. Hata kodları

| Kod | Anlamı | Ne yapmalı |
| --- | --- | --- |
| `confirm_required` (422) | Onay yok | Yanıttaki `quote`'u kontrol edin, `"confirm": true` ekleyin |
| `insufficient_balance` (402) | Bakiye siparişi karşılamıyor | Bakiye yükleyin |
| `capacity_unavailable` (409) | Bu paket için şu an alan yok | Daha küçük paket seçin ya da destek talebi açın |
| `product_not_orderable`, `cycle_invalid` (422) | Paket ya da dönem hatalı | `gyro storage plans` listesinden seçin |
| `invalid_object_lock` (422) | Nesne kilidi standart pakette ya da sınır dışında | Korumalı paket seçin, 1 ile kova sınırı arasında bir sayı verin |
| `daily_limit` (429) | Günlük ücretli işlem sınırı doldu | Ertesi gün tekrar deneyin ya da destekten artırma isteyin |

## 6. Sık sorulan sorular

**API ile açılan hizmet panelden açılandan farklı mı?**

Hayır. Aynı ürün, aynı fiyat ve aynı fatura. Hizmet panelde de görünür.

**Fatura kesiliyor mu?**

Evet. Sipariş bakiyeden ödenir ve fatura oluşur. Yenileme dönem sonunda bakiyeden yapılır.

**Yapay zekâ ajanım sipariş verebilir mi?**

Evet. Ajanınıza sipariş izni olan bir API anahtarı verin. Önce `dry_run` ile teklif alıp onaylatmanızı öneririz.

## Sıradaki adım

- [Nesne Depolama (S3) rehberi](https://www.gyrohosting.com/bilgi-bankasi/makale/nesne-depolama-s3-rehberi)
- [Korumalı Depolama nedir?](https://www.gyrohosting.com/bilgi-bankasi/makale/korumali-depolama-nedir)
- [Kovayı sunucuya bağlama](https://www.gyrohosting.com/bilgi-bankasi/makale/s3-kovayi-sunucuya-baglama)
