opened image

API - Взаємодія з Image

Створення image

Щоб створити image, виконайте наступний запит:

 

URL: 

https://api.zomro.com/

Метод: POST

Тіло запиту (Form-data):

ПараметрПриклад значенняОбов'язковий параметрОпис значення
funcv2.image.order.paramТакФункція для створення розкладу на створення резервної копії
auth21fc199...c43f71НіТокен сесії. Це один з варіантів авторизації. Докладніше про інші варіанти описано тут
outjsonТакТип відповіді, яку очікувати
sokokТакПідтвердження операції
image_typeimageТакТип створеного елемента. Доступне значення - image
skipbasketonТакРекомендується вказати «on», оскільки у випадку «off», image не буде створено  
image_nameMyImageТакНазва зображення
regionNetherlands-2ТакДата центр, в якому зберегти image
min_disk1ТакМінімальний розмір диска в ГБ, який повинен бути в instance, щоб можна було використовувати image
min_ram1ТакМінімальний розмір ОЗП в ГБ, який повинен бути в instance, щоб можна було використовувати image
disk_formatisoТакТип зображення, який створити. Доступні параметри: "iso", "ami", "ari", "aki", "vhd", "vmdk", "raw", "qcow2", "vdi". 
os_distroubuntuТакНазва ОС, образ якої створюється
os_version22НіВерсія ОС
architecturex86_64ТакАрхітектура ОС. Доступні параметри: "x86_64", "i686", "ia64"
urlhttps://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.isoТакПряме посилання на зображення
protectedonТакДозволяти чи видаляти зображення. Доступні параметри: "on", "off"
pricelist6854ТакID послуги, що відповідає послузі image
order_period-50ТакПеріод замовлення. Для типу послуги image використовується тільки денна оплата

 

Приклад створення image

Для прикладу, створимо Image з Ubuntu 24.04 https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso:

 

URL: 

https://api.zomro.com/

 

Метод: POST

Тіло запиту (Form-data):

ПараметрЗначення
funcv2.image.order.param
auth21fc199...c43f71
outjson
sokok
image_typeimage
skipbasketon
image_nameUbuntu24
regionNetherlands-2
min_disk1
min_ram1
disk_formatiso
os_distroubuntu
os_version24
architecturex86_64
urlhttps://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso
protectedon
pricelist6854
order_period-50

 

Ось приклад запиту, який можна виконати з консолі:

 

curl --location 'https://api.zomro.com/' \
--form 'func="v2.image.order.param"' \
--form 'auth="0f6744198ec41bb23fe1c923"' \
--form 'out="json"' \
--form 'sok="ok"' \
--form 'image_type="image"' \
--form 'skipbasket="on"' \
--form 'image_name="Ubuntu24"' \
--form 'region="Netherlands-2"' \
--form 'min_disk="1"' \
--form 'min_ram="1"' \
--form 'disk_format="iso"' \
--form 'os_distro="ubuntu"' \
--form 'os_version="22"' \
--form 'architecture="x86_64"' \
--form 'url="https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso"' \
--form 'protected="on"' \
--form 'pricelist="6854"' \
--form 'order_period="-50"'

 

Після виконання запиту, бачимо, що почав створювати image. Поточний статус «Saving»:

API - Взаємодія з Image - 1

 

Після створення image, статус зміниться з «Saving» на «Active»:

API - Взаємодія з Image - 2

 

 Як за допомогою API можна отримати список всіх image

 

 

Для цього виконуємо наступний формат запиту:

 URL: 

https://api.zomro.com/

Метод: POST

Тіло запиту (Form-data):

ПараметрПриклад значенняОбов'язковий параметрОпис значення
funcimageТакФункція для отримання всіх зображень
auth21fc199...c43f71НіТокен сесії. Це один з варіантів авторизації. Докладніше про інші варіанти описано тут
outjsonТакТип відповіді, яку очікувати

Спробуємо виконати наступний запит у консолі:

curl --location 'https://api.zomro.com/' \
--form 'func="image"' \
--form 'auth="1176dc887b147a3eb1da748e"' \
--form 'out="json"'

Отримуємо наступний результат:

{
    "doc": {
        ...
        "elem": [
                        {
                "abusesuspend": {
                    "$": "off"
                },
                "architecture": {
                    "$": "x86_64"
                },
                "archived": {
                    "$": "off"
                },
                "autosuspend": {
                    "$": "off"
                },
                "billdaily": {
                    "$": "on"
                },
                "billhourly": {
                    "$": "off"
                },
                "change_pl": {
                    "$": "0"
                },
                ""change_pricelist": {
                    "$": "off"
                },
                "changepolicy": {
                    "$": "2"
                },
                "cost": {
                    "$": "0.00 EUR / Day"
                },
                "costperiod": {
                    "$": "-50"
                },
                "createdate": [
                    {
                        "$": "2024-07-24"
                    },
                    {
                        "$": "2024-07-24"
                    }
                ],
                "currency_id": {
                    "$": "153"
                },
                "currency_str": {
                    "$": "EUR"
                },
                "description": {},
                "disk_format": {
                    "$": "iso"
                },
                "employeesuspend": {
                    "$": "off"
                },
                "expiredate": {
                    "$": "Daily charges"
                },
                "fleio_id": {
                    "$": "802c0ad6-c918-4769-8111-0a165a076ca4"
                },
                "fleio_status": {
                    "$": "Active"
                },
                "has_ip_pricelist": {
                    "$": "off"
                },
                "hypervisor_type": {
                    "$": "Any hypervisor"
                },
                "i_expiretime": {
                    "$": "14:44:24"
                },
                "i_opentime": {
                    "$": "15:45:12"
                },
                "id": {
                    "$": "5206258"
                },
                "image_name": {
                    "$": "Ubuntu24"
                },
                "image_size": {
                    "$": "3"
                },
                "image_type": {
                    "$": "Image"
                },
                "intname": [
                    {
                        "$": "image"
                    },
                    {
                        "$": "image"
                    }
                ],
                "it_accurate_billing": {
                    "$": "no"
                },
                "item_cost": {
                    "$": "0.0000"
                },
                "item_real_status": {
                    "$": "2"
                },
                "item_status": {
                    "$color": "green",
                    "$orig": "2",
                    "$": "Active"
                },
                "itemtype": {
                    "$": "27163"
                },
                "min_disk": {
                    "$": "1"
                },
                "min_ram": {
                    "$": "1"
                },
                "module_failed": {
                    "$": "off"
                },
                "module_upload_doc": {
                    "$": "off"
                },
                "name": {
                    "$": "Image #5206258"
                },
                "no_instruction": {
                    "$": "on"
                },
                "order_disabled": {
                    "$": "off"
                },
                "os_distro": {
                    "$": "Ubuntu"
                },
                "os_version": {
                    "$": "22"
                },
                "period": {
                    "$": "-50"
                },
                "pmmodule": {
                    "$": "pmimagemodule"
                },
                "price_on_request": {
                    "$": "off"
                },
                "pricelist": {
                    "$": "Image"
                },
                "pricelist_id": {
                    "$": "6854"
                },
                "processingmodule_failed": {
                    "$": "off"
                },
                "processingnode": {},
                "protected": {
                    "$orig": "on",
                    "$": "Enable"
                },
                "real_expiredate": {
                    "$": "2024-07-25"
                },
                "region": {
                    "$": "Netherlands-2"
                },
                "scheduledclose": {
                    "$": "off"
                },
                "show_changepassword": {
                    "$": "off"
                },
                "show_domain_validation_button": {
                    "$": "off"
                },
                "show_hardreboot": {
                    "$": "off"
                },
                "show_movetovdc": {
                    "$": "off"
                },
                "show_reboot": {
                    "$": "on"
                },
                "show_supportpassword": {
                    "$": "off"
                },
                "show_vdc_loadbalancer": {
                    "$": "off"
                },
                "show_vdc_network": {
                    "$": "off"
                },
                "show_vdc_router": {
                    "$": "off"
                },
                "show_vdc_vm": {
                    "$": "off"
                },
                "show_vdc_volume": {
                    "$": "off"
                },
                "show_webconsole": {
                    "$": "off"
                },
                "specialstatus": {
                    "$": "0"
                },
                "stat_enabled": {
                    "$": "on"
                },
                "status": {
                    "$": "2"
                },
                "subaccount": {
                    "$": "351336"
                },
                "sync_feature": {
                    "$": "off"
                },
                "transition": {
                    "$": "off"
                },
                "visibility": {
                    "$": "Private"
                }
            },
        ],
    }
}

 

Нас цікавлять дані, які отримані в наступній вкладеності:

doc.elem.[]

 

Для редагування image, виконуємо наступний запит:

 URL: 

https://api.zomro.com/

Метод: POST

Тіло запиту (Form-data):

ПараметрПриклад значенняОбов'язковий параметрОпис значення
funcimage.editТакФункція для редагування зображення
auth21fc199...c43f71НіТокен сесії. Це один з варіантів авторизації. Докладніше про інші варіанти описано тут
outjsonТакТип відповіді, яку очікувати
elid5206258ТакID image. Це значення можна отримати у відповіді на запит на отримання всіх image
image_nameUbuntu24_newНіНазва Image
min_disk2НіМінімальний розмір диска instance, який потрібен для використання цього образу
min_ram3НіМінімальний розмір пам'яті instance, який потрібен для використання цього образу
os_distroaltlinuxНіНазва ОС
os_version8НіВерсія ОС
architecturex86_64НіАрхітектура image
protectedoffНіДозволено чи видаляти image

Спробуємо виконати наступний запит у консолі:

curl --location 'https://api.zomro.com/' \
--form 'func="image.edit"' \
--form 'auth="00bef0b977845f71a1583a2c"' \
--form 'out="json"' \
--form 'sok="ok"' \
--form 'elid="5206258"' \
--form 'image_name="Ubuntu24_new"' \
--form 'min_disk="2"' \
--form 'min_ram="3"' \
--form 'os_distro="altlinux"' \
--form 'os_version="8"' \
--form 'architecture="x86_64"' \
--form 'protected="on"'

Після виконання запиту можна переконатися, що дані image змінилися:

API - Взаємодія з Image - 3

 

Видалення image

 

Для видалення Image виконуємо наступний запит:

 

Метод: POST

Тіло запиту (Form-data):

ПараметрПриклад значенняОбов'язковий параметрОпис значення
funcimage.deleteТакФункція для видалення зображення
auth21fc199...c43f71НіТокен сесії. Це один з варіантів авторизації. Докладніше про інші варіанти описано тут
outjsonТакТип відповіді, яку очікувати
elid5206258ТакID image. Це значення можна отримати у відповіді на запит на отримання всіх image

Спробуємо виконати наступний запит у консолі:

curl --location 'https://api.zomro.com/' \
--form 'func="image.delete"' \
--form 'auth="9f467da30d0bd6c56fed1b58"' \
--form 'out="json"' \
--form 'elid="5206258"'

Також варто звернути увагу на те, що видалити image потрібно, щоб статус «protected» мав значення «off».

Після виконання запиту, бачимо успішне видалення image.

API - Взаємодія з Image - 4

 

Також пропонуємо вивчити статті, які можуть бути корисними для взаємодії з продуктами Cloud VPS за допомогою API: