API Oktawave

API Oktawave jest usługą umożliwiającą wszystkim użytkownikom platformy zarządzanie zasobami chmury za pomocą zewnętrznych narzędzi. Z poziomu aplikacji korzystającej z API Oktawave można wykonać wszystkie operacje, które są możliwe w obrębie konta klienta Oktawave (użytkownika końcowego).

Z poziomu aplikacji korzystającej z API Oktawave możliwe do wykonania są wszystkie operacje, które użytkownik może wykonać bezpośrednio w panelu administracyjnym i są to m.in.:

  • operacje wykonywane na instancjach, np. tworzenie, klonowanie i usuwanie,
  • konfiguracja dysków i adresów IP instancji,
  • migracja dysków pomiędzy regionami,
  • zarządzanie usługami monitorującymi infrastrukturę,
  • tworzenie prywatnych sieci w chmurze Oktawave,
  • uruchamianie i zarządzanie szablonami instancji,

API Oktawave jest udostępnione w wersji beta. Specyfikacja może jeszcze ulegać zmianom, dlatego nie należy na niej opierać skryptów produkcyjnych

REST

Do zbudowania API Oktawave została wykorzystana architektura REST. Każdy zasób posiada URL, metodę HTTP, nagłówki oraz model danych. Pełna lista zasobów jest dostępna pod adresem https://api.oktawave.com/beta gdzie każdy z nich jest szczegółowo opisany.

API Oktawave jest bezstanowe. Każde żądanie do API zawiera w sobie wszystkie potrzebne informacje do jego obsłużenia. Aplikacja korzystająca z API każdorazowo otrzymuje ich aktualny stan w odpowiedzi serwera.

Klient API

Do wywołania zasobów API można użyć dowolnego narzędzia, które umożliwia komunikację po protokole HTTP (np. curl). Większość języków programowania posiada gotowe biblioteki do używania REST API.

Aby przetestować API Oktawave można użyć udostępnionej przez Oktawave implementacji klienta Swagger dostępnej pod adresem https://api.oktawave.com/beta. Po autoryzacji użytkownika można wywołać tam wszystkie zasoby, sprawdzić jak w czasie rzeczywistym odpowiada API i jak są zdefiniowane przykładowe żądania.

Uwaga! Testowane API działa na rzeczywistych danych konta

Definicja (deskryptor) API Oktawave oparta została na otwartym standardzie Open API zapoczątkowanym przez projekt swagger.io. Swagger to obecnie uznany standard w procesie tworzenia, dokumentowania i wdrażania rozwiązań API. Użycie otwartego rozwiązania pozwala naszym użytkownikom korzystać z szeregu narzędzi dostarczanych przez społeczność Swagger/Open API. Jednym z nich jest generator kodów źródłowych klienta API – swagger-codegen.

Klient API

Generowanie kodu klienta API dla języka Java

Skorzystanie z swagger-codegen (GitHub) sprowadza się do wywołania następującej serii komend:

git clone https://github.com/swagger-api/swagger-codegen
cd swagger-codegen
mvn clean package
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar \
generate \
   -i https://api.oktawave.com/beta/swagger/docs/v1 \
   -l java \
   -o ~/java_oktawave_api_client

Powyższe komendy wygenerują kod źrodłowy klienta API Oktawave dla języka Java

Żądania i odpowiedzi HTTP

Metody HTTP

API Oktawave używa następujących metod HTTP:

  • GET pobiera zasób,
  • POST tworzy nowy zasób lub wywołuje operację asynchroniczną i zwraca zlecenie,
  • PUT aktualizuje zasób,
  • DELETE usuwa zasób;

Metody PUT i POST każdorazowo zwracają utworzony/aktualizowany zasób

Odpowiedzi HTTP

Każde żądanie jest obsłużone przez serwer i wysyłana jest odpowiedź zgodnie ze zdefiniowanym modelem przypisanym do zasobu. Odpowiedź jest zwracana w formacie JSON lub XML w zależności od ustawienia nagłówka Accept w żądaniu (application/json, application/xml, text/json i text/xml). Poniżej lista podstawowych nagłówków przesyłanych w odpowiedzi przez serwer:

  • Content-Type - format odpowiedzi,
  • Content-Length - długość odpowiedzi,
  • X-Rate-Limit-Limit - łączny limit zapytań nałożony na dane konto w wybranej jednostce czasu,
  • X-Rate-Limit-Remaining - pozostały limit zapytań nałożony na dane konto w wybranej jednostce czasu,
  • X-Rate-Limit-Reset - pozostały czas w milisekundach do zresetowania limitu;

Statusy HTTP

Po otrzymaniu odpowiedzi warto w pierwszej kolejności zweryfikować status HTTP. Kody podzielone są według specyfikacji HTTP. Status 2xx oznacza powodzenie operacji, 4xx oznacza błąd wynikający z danych żądania, oraz 5xx wysyłany w związku z błędami serwera. Pełna lista kodów jest przedstawiona w poniższej tabeli.

2xx Success
200 OK. Powodzenie wykonania operacji.
201 Created. Kod operacji która kończy się utworzeniem i zwróceniem nowego zasobu.
204 No content. API przetworzyło żądanie ale nie zwróciło żadnej odpowiedzi. Wykorzystywane zazwyczaj w operacjach, które usuwają zasób. Może być również zwrócony przez URL zapytany o pusty zasób (np.: dane dostępowe do instancji, która nie była inicjalizowana).
4xx Client Error
400 Bad request. Występuje w przypadku błędu walidacji żądania. Odpowiedź zawiera ModelState.
401 Unauthorized. Nieautoryzowany dostęp do API np. brak tokenu lub jest on nieprawidłowy.
402 Payment required. Szczególny przypadek błędu biznesowego. Brak środków na koncie do wykonania danej operacji.
403 Forbidden. Użytkownik nie ma uprawnień do wykonania danej operacji. Uwaga, ten kod może również wystąpić w sytuacji odwołania się do błędnego zasobu.
404 Not found. Zasób nie został znaleziony.
409 Conflict. Występuje w przypadku błędów biznesowych np. próba włączenia uruchomionej instancji. Odpowiedź zawiera ErrorCode.
429 Too Many Requests. Klient API wyczerpał limit dostępnych żądań do API w wybranej jednostce czasu.
5xx Server Error
500 Internal server error. Nieobsłużone, niespodziewane błędy po stronie serwera.

Kod odpowiedzi inny niż 2xx oznacza, że zapytanie nie zostało prawidłowo przetworzone

Limit zapytań

API Oktawave posiada limit ilości obsługiwanych żądań dla każdego użytkownika, który standardowo wynosi 180 zapytań na minutę. Jest to limit wystarczający dla skryptów uruchamiających wiele operacji jak również śledzących status wielu operacji równocześnie.

API Oktawave obsługuje do 180 zapytań na minutę od każdego z użytkowników

Żądania i odpowiedzi HTTP

Przykładowe nagłówki odpowiedzi

{
  "date": "Mon, 11 Jul 2016 15:24:10 GMT",
  "content-type": "application/json; charset=utf-8",
  "content-length": "7628",
  "x-rate-limit-limit": "30",
  "x-rate-limit-remaining": "29",
  "x-rate-limit-reset": "55555.5302",
  "x-powered-by": "Oktawave, Oktawave",
  "server": "CERN httpd"
}

Filtrowanie

W przypadku zasobów GET możliwe jest filtrowanie zwracanych danych przez zapytanie. Służą do tego dwa parametry:

  • fields - pozwala na przekazanie listy pól zasobu, które mają być zwrócone - wielkość liter jest ignorowana,
  • query - przekazany ciąg znaków zostanie wyszukany w zawartości zasobu i zostaną zwrócone jedynie te spełniające zapytanie;

Filtrowanie

Żądanie

curl -X GET 
--header 'Accept: application/json' 
--header 'Authorization: Bearer e6654d55a6345a269feefa717d055564' 
'https://api.oktawave.com/beta/instances?query=okta&fields=id,name'

Odpowiedź

{ 
    "Items": 
    [ 
        { 
            "Id": 12345, 
            "Name": "Oktawave API test" 
        }, 
        { 
            "Id": 12346, 
            "Name": "Oktawave API test 2" 
        } 
    ], 
    "Meta": 
    { 
        "Total": 2 
    } 
}

Metadane

Metody GET do których jest przekazywany konkretny identyfikator (ID) zwracają wybrany zasób. Z kolei wszystkie zasoby, do których nie jest przekazywany konkretny identyfikator zwracają kolekcję (np. GET /instances). Kolekcja jest zbiorem obiektów wraz z dołączonymi metadanymi, który spełnia dodatkowe funkcje:

  • może przyjmować opcjonalne parametry pageSize - ustawia liczbę obiektów na stronie oraz pageNumber - pozwala wybrać numer strony,
  • metadane zawierają również pole total oznaczające liczbę wszystkich obiektów w kolekcji;

Metadane

Przykład metadanych w kolekcji

{
    ...
    "Meta": { 
        "Total": 4
    }
}

Zlecenia

Wiele akcji, które można wywołać mają dłuższy czas oczekiwania wynikający ze specyfiki usługi (np. restart instancji). API nie może w takiej sytuacji od razu zwrócić wyniku operacji w odpowiedzi, nie może również trzymać otwartego połączenia do momentu zakończenia operacji.

Dlatego też wiele operacji wykonywanych jest asynchronicznie i w odpowiedzi zwracany jest jedynie identyfikator konkretnej operacji, czyli tzw. zlecenia. Zlecenie zawiera informacje pozwalające odpytywać API o aktualny status wykonywanej operacji.

Jednym z przykładów operacji, która zwraca zlecenie może być włączenie autoskalera na instancji. POST /instances/{id}/autoscaler/enable_ticket zwraca w odpowiedzi zlecenie.

Aby sprawdzić status operacji reprezentowanej przez zlecenie należy odpytać zasób GET /tickets/{id}. W odpowiedzi otrzymamy zlecenie zawierające dane takie jak:

  • aktualny status operacji,
  • typ operacji,
  • postęp;

Zlecenia

Żądanie

curl -X POST 
--header 'Accept: application/json' 
'https://api.oktawave.com/beta/instances/12345/autoscaler/enable_ticket'

Odpowiedź

{
  "Id": 12345,
  "CreationDate": "2016-07-11T09:20:40",
  "CreationUser": {
    "Id": 12345
  },
  "EndDate": null,
  "Status": {
    "Id": 12345,
    "Label": "Uruchomiona",
    ...
  },
  "OperationType": {
    "Id": 12345,
    "Label": "Aktualizacja ustawień Autoskalera",
    ...
  },
  "ObjectId": 12345,
  "ObjectType": {
    ...
    }
  },
  "Progress": 0
}

Zgłoś sugestię

Jeśli:

  • w API Oktawave brakuje jakiejkolwiek funkcji,
  • albo coś nie działa tak jak powinno,
  • lub masz pomysł, co moglibyśmy ulepszyć,

skontaktuj się z nami!

Słuchamy naszych użytkowników tworząc Oktawave. Jeśli chcesz podzielić się  swoimi uwagami to skorzystaj z następujących możliwości:

  1. Wybierz przycisk "Wyślij sugestię" dostępny na tej stronie rekomendowany
  2. Wyślij wiadomość e-mail na adres customer@oktawave.com, lub
  3. Dodaj zgłoszenie w panelu administracyjnym Oktawave.

Zgłoś sugestię

Aby przesłać sugestię, skorzystaj z przycisku "Wyślij sugestię" na dowolnej stronie

Changelog

Publiczna wersja beta API Oktawave.

Autoryzacja

API umożliwia operowanie tylko na zasobach, do których dany użytkownik ma uprawnienia, dlatego każdy zasób jest dostępny dopiero po autoryzacji. Ma to na celu zabezpieczenie przed dostępem do zasobów osób niepowołanych.

OAuth

Autoryzacja w API Oktawave jest oparta o specyfikację OAuth2 oraz OpenID Connect. Proces uwierzytelnienia wymaga potwierdzenia klienta API (klientem API jest aplikacja) oraz użytkownika, w imieniu którego aplikacja będzie wykonywać operacje.

Aby skorzystać z zasobów API Oktawave, każde żądanie musi być zautoryzowane. Do autoryzacji wymagane jest podanie ważnego tokenu. W tym celu należy wykonać dwie operacje:

  • Stworzyć (zarejestrować) aplikację klienta,
  • Wygenerować token dostępowy na podstawie danych uwierzytelniających aplikację klienta oraz użytkownika;

Rejestracja aplikacji klienta API Oktawave

Wejdź na stronę id.oktawave.com/core/clients i stwórz nowego klienta reprezentującego aplikację korzystającą z API Oktawave.

Podczas tworzenia klienta należy podać:

  • identyfikator klienta (ten identyfikator będzie potrzebny do operacji generowania tokena),
  • nazwa klienta,
  • hasło (hasło będzie potrzebne do operacji generowania tokena),
  • czas życia tokena;

Każdy użytkownik może stworzyć dowolną liczbę klientów, jak również wiele skryptów może posługiwać się tym samym ClientId.

Zakres dostępu

Tworząc klienta API użytkownik może określić w jakim zakresie zostanie udzielony mu dostęp do poszczególnych zasobów. Do wyboru są:

  1. oktawave.api - całkowity dostęp odczytu i modyfikacji wszystkich zasobów,
  2. oktawave.api.readonly - dostęp tylko do zasobów GET, próba dostępu do zasobu modyfikującego zwróci status 403;

Klient może mieć przypisane oba powyższe zakresy i przesyłać tylko wybrane podczas generowania tokenu.

Token

Następny krok to generowanie tokena. Aby skorzystać z zasobów API, każde żądanie musi być zautoryzowane. Do autoryzacji wymagane jest podanie ważnego tokenu.

Aby go uzyskać, należy wywołać zasób serwera autoryzacyjnego dostępny pod https://id.oktawave.com/core/connect/token

Parametry, które zostały użyte w żądaniu:

  • grant_type - typ autoryzacji, w tym momencie dostępny tylko password i refresh_token
  • username - nazwa użytkownika Oktawave
  • password - hasło użytkownika Oktawave
  • scope - zakres dostępu (dostępne są oktawave.api, oktawave.api.readonly i offline_access)

W odpowiedzi serwer prześle access_token o czasie życia zależnym od ustawień nadanych dla klienta.

Token

Żądanie

curl -X POST 
-d "grant_type=password&username=test_login&password=test_pass&scope=oktawave.api offline_access"
-u "clientId:clientSecret"
'https://id.oktawave.com/core/connect/token'

Odpowiedź

{
  "access_token": "09b2c9833d70ec777c406263687853c1",
  "expires_in": 1000,
  "token_type": "Bearer"
}

Odświeżanie tokena

Tokeny powinny mieć krótki czas życia (zazwyczaj jest to kilka minut). Ma to na celu zabezpieczenie zasobów API, nawet w sytuacji gdy token zostanie wykradziony. Żeby uniknąć podawania danych dostępowych za każdym razem gdy token wygaśnie, można skorzystać z mechanizmu odświeżania tokena.

Odświeżanie tokena

Aby móc skorzystać z mechanizmu odświeżania, należy przede wszystkim dodać podczas pierwszej autoryzacji dodatkowy zakres dostępu (scope) - offline_access.

curl -X POST 
-d "grant_type=password&username=test_login&password=test_pass&scope=oktawave.api offline_access" 
-u "clientId:clientSecret"
'https://id.oktawave.com/core/connect/token'

Odpowiedź serwera tbędzie wtedy wyglądała następująco:

{
  "access_token": "09b2c9833d70ec777c406263687853c1",
  "expires_in": 1000,
  "token_type": "Bearer",
  "refresh_token": "77715c5fd2cb6794437aaa560d63bcf3"
}

Odświeżenie tokena polega na wysłaniu (w dowolnym momencie) żądania wraz z otrzymanym refresh_token do następującego zasobu (uwaga, zmienia się grant_type):

curl -X POST 
-d "grant_type=refresh_token&refresh_token=77715c5fd2cb6794437aaa560d63bcf3" 
-u "clientId:clientSecret"
'https://id.oktawave.com/core/connect/token'

W odpowiedzi otrzymamy nowy access_token i refresh_token.

Każdy refresh_token jest jednorazowy, serwer odrzuci próbę odświeżenia jeśli refresh_token był już użyty

Instancje

Wszystkie akcje, które można wykonać w panelu administratora Oktawave można również zrealizować poprzez zapytania API. Ta sekcja zawiera praktyczne przykłady wykorzystania API Oktawave do zarządzania instancjami.

W przypadku instancji wszystkie opisane operacje są operacjami asynchronicznymi i zwracają zlecenie

Lista

Aby pobrać listę wszystkich instancji przypisanych do konta zautoryzowanego użytkownika należy wywołać zasób GET /instances.

Lista

Żądanie

curl -X GET 
--header 'Accept: application/json' 
--header 'Authorization: Bearer 1ca85558f91697248735550dd97ee68a' 
'https://api.oktawave.com/beta/instances'

Odpowiedź

{
  "Items": [
    {
      "Id": 12345,
      "Name": "Oktawave API test instance",
      "CreationDate": "2016-04-27T11:33:38",
      "CreationUser": {
        "Id": 12345
      },
      ...
    },
    ...
  ],
  "Meta": {
    "Total": 5
  }
}

Tworzenie

Aby utworzyć instancję należy wywołać zasób POST /instances i przekazać do niego wszystkie wymagane parametry:

  • AuthorizationMethodId - typ uwierzytelnienia na instancji (klucze SSH lub hasło),
  • DiskClass - klasa dysku,
  • DiskSize - rozmiar dysku (od 5 do 300GB),
  • InstanceName - nazwa instancji,
  • IPAddressId - w przypadku podania zostanie przypisany wybrany adres IP,
  • SubregionId - subregion w którym ma zostać utworzona instancja,
  • TemplateId - szablon, który ma być użyty do uruchomienia instancji,
  • TypeId - typ instancji,
  • InstancesCount - liczba tworzonych instancji (od 1 do 5),

Szablony instancji można uzyskać wywołując GET /templates - domyślnie API zwróci listę szablonów prywatnych przypisanych do konta, jak i publicznych z Marketu aplikacji.

Wszystkie możliwe do przesłania identyfikatory (np. klasy dysku, typ dysku) znajdziesz w odpowiadających im słownikach.

Tworzenie

Żądanie

curl -X POST 
--header 'Content-Type: application/json' 
--header 'Accept: application/json' 
--header 'Authorization: Bearer 64b342bfa972798f365555204977f19f' -d '{
  "AuthorizationMethodId": 1399,
  "DiskClass": 48,
  "DiskSize": 5,
  "InstanceName": "Oktawave API test",
  "InstancesCount": 1,
  "IPAddressId": 0,
  "SubregionId": 6,
  "TemplateId": 452,
  "TypeId": 1047
}' 'https://api.oktawave.com/beta/instances'

Odpowiedź

{
    "Id": 12345,
    "CreationDate": "2016-07-18T09:05:30",
    "EndDate": null,
    "Status": {
            "Id": 135,
            "Label": "Uruchomiona",
            ...
    },
    "OperationType": {
            "Id": 138,
            "Label": "Tworzenie instancji",
            ...
    },
    ...
    "Progress": 0
}

Usuwanie

Usuwanie instancji można wykonać wywołując zasób DELETE /instances/{id}.

Usuwanie

Żądanie

curl -X DELETE 
--header 'Accept: application/json' 
--header 'Authorization: Bearer 1ca85558f9555724873b920dd97ee68a' 
'https://api.oktawave.com/beta/instances/37752'

Odpowiedź

{
  "Id": 12345,
  ...
  "EndDate": null,
  "Status": {
    "Id": 135,
    "Label": "Uruchomiona",
    ...
  },
  "OperationType": {
    "Id": 206,
    "Label": "Usunięcie instancji",
    ...
  },
  ...
  "Progress": 0
}

Eksport

Operacja eksportu jest operacją asynchroniczną, jednak wyjątkowo nie zwraca zlecenia (podobnie jest z importem). W zamian API zwraca identyfikator eksportu, który zawiera wszystkie potrzebne informacje do zweryfikowania jego prawidłowego wykonania.

Eksport

Żądanie

curl -X GET 
--header 'Accept: application/json' 
--header 'Authorization: Bearer 514c574e1ee7e92651375555d403c37' 
'https://api.oktawave.com/beta/exports/12345'

Odpowiedź

{
  "Id": 12345,
  "Name": "export_test",
  "CreationDate": "2016-07-11T10:17:39",
  "StartDate": null,
  "EndDate": null,
  "Status": {
    "Id": 12345,
    "Label": "Oczekujący",
    ...
  },
  "OcsLocation": "api/",
  "TotalSpaceCapacity": 0,
  "Instance": {
    "Id": 12345
  },
  "CreationUser": {
    "Id": 12345
  }
}

Dyski

Zarządzanie dyskami poprzez API Oktawave pozwala szybko modyfikować przestrzeń i szybkość dysku poprzez jego rozszerzenie czy zmianę Tier. W bardziej wymagających przypadkach jest również możliwe dołączenie dodatkowego dysku o wybranej konfiguracji do istniejącej instancji.

Modyfikacja parametrów

Jeśli znamy identyfikator (ID) dysku i chcielibyśmy zmienić jego Tier lub rozmiar będzie to możliwe poprzez serię zapytań do poszczególnych zasobów. Przykłady wywołań możesz zobaczyć w bocznej ramce.

Modyfikacja parametrów

Żądanie

curl -X POST 
--header 'Accept: application/json' 
--header 'Authorization: Bearer 13b84fc142c7f0d240b52d32a91d8fd3' 
'https://api.oktawave.com/beta/disks/48763/change_tier_ticket?tierId=49'

Odpowiedź

{
  "Id": 12345,
  "CreationDate": "2016-07-15T12:09:08",
  ...
  "EndDate": null,
  "Status": {
    "Id": 12345,
    "Label": "Uruchomiona",
    ...
  },
  "OperationType": {
    "Id": 12345,
    "Label": "Przenoszenie dysku",
    ...
  },
  "ObjectId": 12345,
  "ObjectType": {
    "Id": 12345,
    "Label": "Dysk",
    ...
  },
  "Progress": 0
}

Sieć

Za pomocą API Oktawave można dowolnie łączyć instancje w sieci prywatne, jak również zarządzać dodatkowymi interfejsami czy adresami IP.

IP

Adresy IP dodawane do instancji są zawsze adresami publicznymi. Adres IP może być zarezerwowany przez użytkownika, a później dowolnie przenoszony pomiędzy instancjami. W sytuacji dodania nowego adresu bez podania jego identyfikatora (ID) jest nadawany losowy adres z puli.

IP

Żądanie

curl -X POST 
--header 'Accept: application/json' 
--header 'Authorization: Bearer 13b84fc142c7f0d240b52d32a91d8fd3' 
'https://api.oktawave.com/beta/instances/37707/attach_ip_ticket'

Odpowiedź

{
  "Id": 12345,
  "CreationDate": "2016-07-15T12:05:20",
  ...
  "EndDate": null,
  "Status": {
    "Id": 12345,
    "Label": "Uruchomiona",
    ...
  },
  "OperationType": {
    "Id": 12345,
    "Label": "Rekonfiguracja",
    ...
  },
  "ObjectId": 12345,
  "ObjectType": {
    "Id": 12345,
    "Label": "Instancja",
    ...
  },
  "Progress": 0
}

Sieci OPN

W Oktawave podczas zarządzania instancjami istnieje możliwość łączenia je w sieci prywatne, czyli OPN (Oktawave Private Network). Ma to na celu ograniczenie komunikacji tylko do wybranych instancji, bez dostępu z sieci zewnętrznej (więcej informacji w tym artykule). Dodanie instancji do istniejącej sieci polega na wywołaniu zasobu POST /instances/{id}/attach_opn_ticket - jest wtedy do niej dołączany adres prywatny automatycznie skonfigurowany do działania w wybranej sieci.

Sieci OPN

Żądanie

curl -X POST 
--header 'Content-Type: application/json' 
--header 'Accept: application/json' 
--header 'Authorization: Bearer 514c574e1ee7e92651555125d403c37' -d '
{
  "OpnId": 12345
}
' 'https://api.oktawave.com/beta/instances/12345/attach_opn_ticket'

Odpowiedź

{
  "Id": 12345,
  "CreationDate": "2016-07-11T10:40:28",
  "CreationUser": {
    "Id": 12345
  },
  "EndDate": null,
  "Status": {
    "Id": 12345,
    "Label": "Uruchomiona",
    ...
  },
  "OperationType": {
    "Id": 12345,
    "Label": "Rekonfiguracja",
    ...
  },
  "ObjectId": 12345,
  "ObjectType": {
    "Id": 12345,
    "Label": "Instancja",
    ...
  },
  "Progress": 0
}

Słowniki

Podczas pracy z API Oktawave niejednokrotnie są używane dane słownikowe (jak np.: identyfikator klasy instancji). Dane słownikowe to zdefiniowane listy wartości, które mogą być rozszerzane przez Oktawave.

Każdy element słownika ma opis słowny (zrozumiały dla człowieka), powiązany z konkretnym identyfikatorem (ID), na którym operują zasoby API Oktawave. Zatem słownik pozwala na translację identyfikatora na opis i opisu na identyfikator.

W tej sekcji:

  • poznasz słowniki, które są niezbędne do pracy z API Oktawave,
  • dowiesz się jak pobrać listę opcji słownika,
  • nauczysz się jak poznać pełną listę słowników używanych w usługach Oktawave;

Najważniejsze słowniki

  1. Typy instancji - zawiera wszystkie klasy instancji; identyfikator słownika: 12
  2. Klasy dysków - spis dostępnych Tier'ów dysku; identyfikator słownika: 17
  3. Statusy instancji - umożliwia sprawdzenie stanu włączenia/wyłączenia instancji; identyfikator słownika: 27
  4. Statusy zleceń - zawiera spis stanów zlecenia; identyfikator słownika: 40
  5. Statusy eksportu - pozwala na sprawdzenie czy eksport został wykonany prawidłowo; identyfikator słownika: 121

Najważniejsze słowniki

Pełną listę słowników uzyskasz odpytując zasób GET /dictionaries

Pobieranie

Znając identyfikator konkretnego słownika, można odpytać zasób GET /dictionaries/{id} i w odpowiedzi serwer zwróci listę dostępnych wartości. Każda wartość ma swój identyfikator, opis oraz link zwrotny do zasobu słownika.

Nie posiadając identyfikatora słownika, można użyć zasobu GET /dictionaries. Zwróci on pełną listę nazw i identyfikatorów słowników dostępnych dla zautoryzowanego użytkownika API.

Pobieranie

Dostępne klasy instancji jako słownik

Żądanie

curl -X GET 
--header 'Accept: application/json' 
--header 'Authorization: Bearer a7f2bea58e7c5e09d08bbdb4209a32db' 
'https://api.oktawave.com/beta/dictionaries/12'

Odpowiedź

{
  "Items": [
    {
      "Id": 1047,
      "Label": "v1.standard-1.05",
      ...
    },
    {
      "Id": 289,
      "Label": "v1.standard-1.09",
      ...
    },
    {
      "Id": 34,
      "Label": "v1.standard-2.2",
      ...
    },
    {
      "Id": 35,
      "Label": "v1.standard-4.4",
      ...
    },
    {
      "Id": 36,
      "Label": "v1.standard-8.8",
      ...
    },
    {
      "Id": 1048,
      "Label": "v1.standard-16.16",
      ...
    }
    ...
  ],
  "Meta": {
    "Total": 23
  }
}