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»:

 

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

 

 Як за допомогою 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 змінилися:

 

Видалення 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.

 

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