VK Cloud logo

`Plans` секциясы

Құрылым

plans секциясында сервис тарифтік жоспарларын келесі құрылым бойынша сипаттаңыз:

"plans": [        {          <PLAN_PARAMETERS>,          "display": {          },          "billing": {          },          "schemas": {          }        },        ...      ]

Мұнда:

  • <PLAN_PARAMETERS> — жоспар параметрлері (толығырақ Тарифтік жоспар параметрлері бөлімінде).
  • display секциясы — нақты тарифтік жоспардың конфигурация шеберін сипаттайды (толығырақ display секциясы бөлімінде).
  • billing секциясы — жоспардың және оның опцияларының құнын сипаттайды (толығырақ billing секциясы бөлімінде).
  • schemas секциясы — жоспардың тарифтік опцияларын сипаттайды (толығырақ schemas секциясы бөлімінде).

Тарифтік жоспар параметрлері

Тарифтік жоспар үшін 2 кестесінде келтірілген параметрлерді көрсетіңіз.

Кесте 1 — Тарифтік жоспар параметрлері

Атауы

Сипаттамасы

Форматы

Міндетті

Әдепкі мәні

id

UUID4 генераторының көмегімен жасалған UUID4 тарифтік жоспар идентификаторы (ID)

string (UUID4)

Plans секциясы

Plans секциясы

revision

Тарифтік жоспар ревизиясы. Тарифтік жоспар ревизиясы мен ID тіркесімі оның сервистегі бірегейлігін анықтайды. Қалған параметрлер тарифтік жоспардың нақты ревизиясының сипаттамаларын сипаттайды

string, 255 таңбаға дейін

Plans секциясы

Plans секциясы

name

Дүкен интерфейсінде көрсетілмейтін тарифтік жоспардың техникалық атауы. Бос орындардың орнына төменгі сызықша белгісін пайдаланып, латын әріптерімен көрсетілуі тиіс

string, 255 таңбаға дейін

Plans секциясы

Plans секциясы

description

Дүкен интерфейсінде көрсетілетін тарифтік жоспар атауы

string, 255 таңбаға дейін

Plans секциясы

Plans секциясы

free

Тарифтік жоспардың тегін екенін не еместігін анықтайды

boolean

Plans секциясы

Plans секциясы

plan_updateable

Пайдаланушы сервисті жоймай-ақ бір тарифтік жоспардан екіншісіне өте ала ма, соны анықтайды.

Сервистің осы аттас параметрінде берілген мәнді қайта анықтайды

boolean

Plans секциясы

Plans секциясы

metadata

Тарифтік жоспар қолжетімді болатын дүкеннің тестілік және ашық атаулар кеңістіктерін анықтайды.

Тестілік атаулар кеңістіктері test_ns кілтінде беріледі.

Ашық атаулар кеңістіктері prod_ns кілтінде беріледі.

Атаулар кеңістіктерінің атауларын алу үшін marketplace@cloud.vk.com мекенжайына хат жіберіңіз.

Егер атаулар кеңістіктері берілмесе, сервистің осы аттас параметрінде көрсетілген мәндер пайдаланылады (толығырақ — Сервис параметрлері бөлімінде)

map, кілттер — string

Plans секциясы

Plans секциясы

display секциясы

display секциясында тарифтік жоспардың конфигурация шеберін (толығырақ Тарифтік жоспар конфигурациясының шебері бөлімінде) келесі құрылым бойынша сипаттаңыз:

"display": {  "pages": [    {      <PAGE_PARAMETERS>,      "groups": [        {          <GROUP_PARAMETERS>,          "parameters": [            {              <OPTION_PARAMETERS>            },            ...          ]        }        ...      ]    },  ...  ]}

Мұнда:

  • pages секциясы — тарифтік жоспар конфигурациясы шеберінің беттерін сипаттайды. Бос болуы мүмкін.

  • <PAGE_PARAMETERS> — бір беттің параметрлері.

  • groups секциясы — бір бет шеңберіндегі тарифтік опциялар топтарын сипаттайды.

  • <GROUP_PARAMETERS> — тарифтік опциялар тобының параметрлері.

  • parameters секциясы — бір топ шеңберіндегі тарифтік опцияларды анықтайды.

  • <OPTION_PARAMETERS> — тарифтік опциялар параметрлері.

display секциясында тарифтік жоспар конфигурациясы шеберінің бірінші және соңғы беттерінен басқа барлық беттері сипатталады. Беттердің ең көп саны — 5.

Беттердің, топтардың және топтардағы тарифтік опциялардың параметрлері бірдей және 2 кестесінде келтірілген.

Кесте 2 — Тарифтік жоспар конфигурациясы шеберіне арналған беттердің, топтардың және тарифтік опциялардың параметрлері

Атауы

Сипаттамасы

Форматы

Міндетті

name

JSON-файлдағы беттің, топтың немесе тарифтік опцияның атауы.

string.

Бет атауы — 32 таңбаға дейін.

Топ атауы — 255 таңбаға дейін

Plans секциясы

index

Беттің, беттегі топтың немесе топтағы тарифтік опцияның реттік нөмірі

integer

Plans секциясы

1 суретінде келтірілген тарифтік жоспар конфигурациясы шебері display секциясының келесі мазмұнына сәйкес келеді:

"display": {  "pages": [    {      "name": "Настройки", // Имя страницы      "index": 0,      "groups": [        {          "name": "", // Имя группы          "index": 0,          "parameters": [            {              "name": "api_requests_daily_limit", // Имя тарифной опции в JSON-файле              "index": 0,            },            {              "name": "groups",              "index": 1,            },            {              "name": "products",              "index": 2,            },            {              "name": "reports",              "index": 3            }          ]        }      ]    }  ]}

pic1

Сурет 1 — Тарифтік жоспар конфигурациясының шебері

Әдепкі бойынша тарифтік жоспар конфигурациясы шеберінде groups тарифтік опцияларының барлық топтары көрсетіліп, бапталады. Топ тек белгілі бір шарттарда ғана көрсетілуі үшін when конструкциясын қолданыңыз. Конструкция сипаттамасы Конструкция when бөлімінде келтірілген.

JSON форматындағы `when` құрылымы
{  "when": {    "in": { // Или "not_in"      "key": {        "param": "<OPTION>" // Или "const": "<VALUE>"      },      "values": [        {          "const": "<VALUE>"        },        {          "param": "<OPTION>"        },      ...      ]    }  },  "parameters": [  ...  ]}

Мұнда:

  • <OPTION> — JSON-файлдағы тарифтік опцияның атауы.
  • <VALUE> — тұрақтының мәні.

pages секциясындағы when конструкциясы image-based қосымшалардағыдай қолданылады (толығырақ Массив pages ішінде бөлімінде).

`pages` секциясында when конструкциясын пайдалану мысалы
{  "pages": [    {      "name": "Настройки бекапа", // Имя страницы      "groups": [        {          "name": "High-frequency бекап", // Имя группы тарифных опций          "parameters": [            {              "name": "frequency_per_day" // Имя тарифной опции в JSON-файле            }          ],          "when": {            "in": {              "key": {                "param": "backup_method" // Имя тарифной опции в JSON-файле              },              "values": [                {                  "const": "high-frequency"                }              ]            }          }        }      ]    }  ]}

Жоғарыдағы мысалда high-frequency әдісі үшін бэкаптарды жасау жиілігі бапталады: егер backup_method тарифтік опциясының мәні high-frequency болса, тарифтік жоспар конфигурациясы шеберінде frequency_per_day тарифтік опциясы бар High-frequency бекап тобын көрсету керек.

backup_method тарифтік опциясы:

  • Басқа топтарда when конструкциясында қолданылуы мүмкін.
  • Басқа топтағы parameters ішінде берілуі тиіс.

frequency_per_day тарифтік опциясын басқа топтарда қолдануға болмайды:

  • when конструкциясында, себебі тәуелділіктер иерархиясының бір деңгейі ғана қолдау көрсетіледі.
  • parameters ішінде, себебі бір тарифтік опция тек бір топта ғана көрсетілуі мүмкін.

billing секциясы

billing секциясында мыналар көрсетіледі:

  • Нақты тарифтік жоспардың құны.

  • Тарификацияға арналған есептік кезеңнің ұзақтығы.

  • Marketplace брокерден ресурстарды пайдалану туралы есептерді қандай жиілікпен сұрататыны.

  • Пайдаланылмаған бонустармен жасалатын әрекеттер тәртібі.

  • integer типті тарифтік опциялар үшін пайдаланушылық өзгерту қадамы.

  • Жоспардың тарифтік опцияларының құны. Келесі типтегі опциялар ақылы болуы мүмкін:

    • Сандық (integer, number). Алдын ала төленетін және кейін төленетін тарификацияға қолдау көрсетіледі.
    • Логикалық (boolean). Алдын ала төленетін тарификацияға қолдау көрсетіледі.

Тарификация түрлері туралы толығырақ Тарифтеу бөлімінде сипатталған.

Қолданылатын тарификация тәсілі plans.schemas секциясындағы тарифтік опциялардың сипатталу орнына қарай анықталады (толығырақ schemas секциясы бөлімінде):

  • Егер опциялар service_instance.create және service_instance.update секцияларында сипатталса, алдын ала төленетін тарификация қолданылады.
  • Егер опциялар service_instance.resource_usages секциясында сипатталса, кейін төленетін тарификация қолданылады.

billing секциясын келесі құрылым бойынша сипаттаңыз:

"billing": {            "cost": <COST>,            "billing_cycle_flat": <PERIOD>,            "billing_cycle_step": <STEP>,            "refundable": <IS_REFUNDABLE>,            "options": {              "<OPTION>": {                <OPTION_BILLING>                },              ...              }            }

Мұнда:

  • cost параметрі — ақылы тарифтік опцияларды есепке алмағанда, <COST> есептік кезеңіне арналған жоспар құнын анықтайды. Дүкен өрістетілген елдің валютасында беріледі. Егер жоспар тегін болса, 0 көрсетіледі. Тек алдын ала төленетін тарификацияға қолдау көрсетіледі.

  • (Қосымша) billing_cycle_flat параметрі — тарификацияға арналған есептік кезеңнің ұзақтығын анықтайды. Тек алдын ала төленетін тарифтік жоспар үшін көрсетуге болады. Әдепкі бойынша — 1 mons 0 days.

    Келесі форматта беріледі: <АЙЛАР_САНЫ> mons <КҮНДЕР_САНЫ> days, мысалы: 1 mons 15 days, 30 days. mons айындағы күндер саны күнтізбелік мән негізінде есептеледі, сондықтан 1 mons 0 days және 0 mons 31 days кезеңдері өзара тең емес.

  • (Қосымша) billing_cycle_step параметрі — дүкен брокерден өңделмеген есептердің бар-жоғын қандай кезеңмен сұрайтынын анықтайды (толығырақ Тарификация бөлімінде). Тек кейін төленетін тарифтік опциялары бар тарифтік жоспар үшін көрсетуге болады. Әдепкі бойынша — 1 mons 0 days.

    Келесі форматта беріледі: <АЙЛАР_САНЫ> mons <КҮНДЕР_САНЫ> days, мысалы: 1 mons 15 days, 30 days. mons айындағы күндер саны күнтізбелік мән негізінде есептеледі, сондықтан 1 mons 0 days және 0 mons 31 days кезеңдері өзара тең емес.

  • (Қосымша) refundable параметрі — егер пайдаланушы тарифтік жоспарды өзгерткен немесе сервис инстансын жойған болса, есептік кезеңнің қалған күндері үшін қаражатты жобаның бонустық шотына қайтару керек пе, соны анықтайды. Тек алдын ала төленетін тарифтік жоспар үшін көрсетуге болады. Әдепкі бойынша — true.

    Параметр пайдаланушы тарифтік жоспарды өзгерткен кезде (тарифтік опцияларды өңдегенде немесе жаңасына өткенде) сервис үшін төлемді есептен шығару күніне әсер етеді:

    • Егер мән true болса, күн өзгермейді.
    • Егер мән false болса, күн тарифтік жоспар өзгерген күнге жаңартылады.
  • (Қосымша) options секциясы — ақылы тарифтік опциялардың құнын сипаттайды.

    • <OPTION> — JSON-файлдағы тарифтік опцияның атауы.
    • <OPTION_BILLING> — тарифтік опция құны және integer типті опция үшін өзгерту қадамының параметрлері. Тарифтік опцияның өзі (типі, мәнді баптау параметрлері) schemas секциясы секциясында сипатталады.

Пайдаланушылық өзгерту қадамы бар integer типті тегін тарифтік опциясы бар billing секциясы

<OPTION_BILLING> ішіндегі integer типті тарифтік опцияның өзгерту қадамы image-based қосымшадағыдай параметрлермен сипатталады (толығырақ billing секциясы бөлімінде).

Опция тегін болуы үшін billing.options.<OPTION>.cost параметрінде 0 көрсетіңіз.

Өзгерту қадамы бар `integer` типті тегін тарифтік опциясы бар жоспар үшін `billing` секциясын сипаттау мысалы
"billing": {  "cost": 2000,  // Стоимость тарифного плана  "options": {    "quantity": { // Имя опции в JSON-файле      "base": 25, // Стандартное значение опции      "cost": 0, // Стоимость шага изменения опции      "unit": {        "size": 100 // Шаг изменения опции      }    }  }}

Жоғарыда сипатталған тарифтік жоспар мен опция тарифтік жоспар конфигурациясы шеберінде қалай көрсетілетіні 1, 2, 3-суреттерде келтірілген.

pic1
Сурет 2 — Өзгерту қадамы бар `integer` типті тегін опциясы бар тарифтік жоспар (base = 25, size = 100)
pic1
Сурет 3 — Өзгерту қадамы бар `integer` типті тегін опциясы бар тарифтік жоспар, опция мәні 1 қадамға арттырылған (base = 25, size = 100)
pic1
Сурет 4 — Өзгерту қадамы бар `integer` типті тегін опциясы бар тарифтік жоспар, опция мәні 2 қадамға арттырылған (base = 25, size = 100)

Өзгерту қадамы бар integer типті алдын ала төленетін тарифтік опциясы бар billing секциясы

<OPTION_BILLING> ішіндегі integer типті алдын ала төленетін тарифтік опцияның құны мен өзгерту қадамы image-based қосымшадағыдай параметрлермен сипатталады (толығырақ billing секциясы бөлімінде).

Опция алдын ала төленетін болуы үшін billing.options.<OPTION>.cost параметрінде 1 өзгерту қадамының құнын көрсетіңіз.

Өзгерту қадамы бар `integer` типті алдын ала төленетін тарифтік опциясы бар жоспар үшін `billing` секциясын сипаттау мысалы
"billing": {  "cost": 2000, // Стоимость тарифного плана  "options": {    "quantity": { // Имя опции в JSON-файле      "base": 25, // Стандартное значение опции      "cost": 150, // Стоимость шага изменения опции      "unit": {        "size": 100 // Шаг изменения опции      }    }  }}

Жоғарыда сипатталған тарифтік жоспар мен опция тарифтік жоспар конфигурациясы шеберінде қалай көрсетілетіні 4, 5, 6-суреттерде келтірілген.

pic1
Сурет 5 — Өзгерту қадамы бар `integer` типті алдын ала төленетін опциясы бар тарифтік жоспар (base = 25, size = 100)
pic1
Сурет 6 — Өзгерту қадамы бар `integer` типті алдын ала төленетін опциясы бар тарифтік жоспар, опция мәні 1 қадамға арттырылған (base = 25, size = 100)
pic1
Сурет 7 — Өзгерту қадамы бар `integer` типті алдын ала төленетін опциясы бар тарифтік жоспар, опция мәні 2 қадамға арттырылған (base = 25, size = 100)

boolean ауыстырғыш тарифтік опциясы бар алдын ала төленетін billing секциясы

boolean ауыстырғыш опциясы алдын ала төленетін болуы үшін billing.options.<OPTION>.cost параметрінде құнын көрсетіңіз.

`boolean` ауыстырғыш алдын ала төленетін тарифтік опциясы бар жоспар үшін `billing` секциясын сипаттау мысалы
"billing": {  "cost": 2000, // Стоимость тарифного плана  "options": {    "notifications": { // Имя опции в JSON-файле      "cost": 50 // Стоимость опции    }  }}

8 суретінде жоғарыда сипатталған тарифтік жоспар мен опция тарифтік жоспар конфигурациясы шеберінде қалай көрсетілетіні келтірілген.

pic1
Сурет 8 — `boolean` ауыстырғыш алдын ала төленетін опциясы бар тарифтік жоспар

Сандық кейін төленетін тарифтік опциясы бар billing секциясы

<OPTION_BILLING> ішіндегі integer немесе number типті кейін төленетін опцияның құны 3 кестесінде келтірілген параметрлермен сипатталады.

Кесте 3 — Сандық кейін төленетін тарифтік опция параметрлері

Атауы

Сипаттамасы

Форматы

Міндетті

cost

Тарифтік опция бірлігінің құнын анықтайды.

float64, >= 0

Plans секциясы

unit

Опцияның өлшем бірліктерін анықтайды

Plans секциясы

Plans секциясы

unit секциясының параметрлері

unit.size

Опцияны тарификациялау қадамы. Мәні 1 болуы тиіс

integer

Plans секциясы

unit.measurement

Опцияның өлшем бірліктерін анықтайды

string, 255 таңбаға дейін

Plans секциясы

Кейін төленетін `storage` тарифтік опциясы бар жоспар үшін `billing` секциясын сипаттау мысалы
"billing": {  "cost": 0, // Стоимость тарифного плана  "options": {    "storage": { // Имя опции в JSON-файле      "cost": 7,      "unit": {      "size": 1,      "measurement": "ГБ"      }    }  }}

Жоғарыдағы мысалда тарифтік жоспар тегін, storage тарифтік опциясының бірлігі 7 ақша бірлігіне тең (9 сурет).

pic1
Сурет 9 — Кейін төленетін опциясы бар тарифтік жоспар (billing.cost = 7, billing.unit.size = 1)

schemas секциясы

schemas секциясында нақты жоспардың тарифтік опцияларын (толығырақ Тарифтік опциялардың түрлері бөлімінде) келесі құрылым бойынша сипаттаңыз:

"schemas": {            "service_instance": {              "create": {                "parameters": {                  "$schema": "http://json-schema.org/draft-04/schema#",                  "type": "object",                  "properties": {                  }                }              },              "update": {                "parameters": {                  "$schema": "http://json-schema.org/draft-04/schema#",                  "type": "object",                  "properties": {                  }                }              },              "resource_usages": {                "parameters": {                  "$schema": "http://json-schema.org/draft-04/schema#",                  "type": "object",                  "properties": {                  }                }              }            },            "service_binding": {              "create": {                "parameters": {                  "type": "object",                  "properties": {                  }                }              }            }          }

Мұнда:

  • service_instance секциясы — жоспардың тарифтік опцияларын сипаттайды және ақылы опциялар үшін қаражатты есептен шығару тәсілін анықтайды.

    • service_instance.create секциясы — сервисті қосу кезінде тарифтік жоспар конфигурациясы шеберінде белсенді болатын тегін және алдын ала төленетін тарифтік опцияларды сипаттайды.
    • service_instance.update секциясы — сервис тарифтік жоспарын жаңарту кезінде тарифтік жоспар конфигурациясы шеберінде белсенді болатын тегін және алдын ала төленетін тарифтік опцияларды сипаттайды.
    • service_instance.resource_usages секциясы — кейін төленетін тарифтік опцияларды сипаттайды.
  • service_binding секциясы — сервистік байланыстарды жасауды сипаттайды.

schemas ішіндегі барлық секциялар JSON-файлда жариялануы міндетті. Секциялар бос болуы мүмкін.

Тарифтік опция параметрлері JSON-схемалармен сипатталады. Ақылы опциялардың құны, сондай-ақ integer типті опция үшін өзгерту қадамы plans.billing.options секциясында сипатталады (толығырақ billing секциясы бөлімінде).

SaaS-қосымша үшін datasource түрінен басқа барлық тарифтік опция типтеріне қолдау көрсетіледі (толығырақ Тарифтік опциялардың түрлері бөлімінде). Тарифтік опциялар image-based қосымшадағыдай параметрлермен сипатталады (толығырақ schema секциясы бөлімінде). Опция құны billing секциясы секциясында сипатталады.

Дүкен интерфейсінде әртүрлі опция типтерінің көрсетілу мысалдарымен schema секциясын толтыру YAML тарифтік опциялар файлдарын толтыру бөлімінде сипатталған.

Төменде JSON форматында әртүрлі опция типтерін сипаттау мысалдары келтірілген.

Тегін және алдын ала төленетін тарифтік опциялар үшін `schemas` секциясын сипаттау мысалы
"schemas": {            "service_instance": {              "create": {                "parameters": {                  "$schema": "http://json-schema.org/draft-04/schema#",                  "type": "object",                  "properties": {                    "int_const": {  // Тарифная опция-константа типа integer                      "type": "integer",                      "description": "Размер системного диска",                      "hint": "В ГБ",                      "const": 20                    },                    "int_enum": {  // Тарифная опция типа integer с выбором значения из списка                      "type": "integer",                      "description": "Количество серверов в кластере",                      "enum": [3, 5, 7],                      "default": 5                    },                    "int_step_1": {  // Тарифная опция типа integer с шагом изменения 1                      "type": "integer",                      "description": "Количество участников",                      "hint": "Количество сотрудников компании заказчика, которые могут использовать инфраструктуру тестирования и обрабатывать отчеты от тестировщиков VK Testers.",                      "default": 20,                      "minimum": 20                    },                    "int_step_user": {  // Тарифная опция типа integer с пользовательским шагом изменения. Параметры шага описываются в секции billing                      "type": "integer",                      "description": "Объем загружаемых сборок",                      "hint": "На платформу можно загружать тестовые сборки приложений для раздачи сотрудникам заказчика и тестировщикам VK Testers. Чем больше хранилище, тем больше версий ваших продуктов можно сохранять на платформе тестирования. Поддерживаемые платформы: iOS, Android, Windows, MacOS, Linux.",                      "default": 0                    },                    "string_const": {  // Тарифная опция-константа типа string                      "type": "string",                      "description": "Логин администратора",                      "const": "admin@example.ru"                    },                    "string_input": {  // Тарифная опция типа string с вводом значения                      "type": "string",                      "description": "Email администратора",                      "hint": "Email для выпуска SSL-сертификата"                    },                    "string_enum": {  // Тарифная опция типа string с выбором значения из списка                      "type": "string",                      "description": "OS тип",                      "hint": "Операционная система",                      "enum": ["Ubuntu 20.4", "Windows 8.1", "Windows 10"],                      "default": "Windows 8.1"                    },                    "boolean_const": {  // Тарифная опция-константа типа boolean                      "type": "boolean",                      "description": "Premium поддержка",                      "hint": "Техническая поддержка 24/7",                      "const": false                    },                    "boolean": {  // Тарифная опция-переключатель типа boolean                      "type": "boolean",                      "description": "Уведомления об обновлениях",                      "hint": "Получать ли на почту уведомления о новых версиях сервиса.",                      "default": true                    }                  }                }              },              "update": {                "parameters": {                  "$schema": "http://json-schema.org/draft-04/schema#",                  "type": "object",                  "properties": {                  }                }              },              "resource_usages": {                "parameters": {                  "$schema": "http://json-schema.org/draft-04/schema#",                  "type": "object",                  "properties": {                  }                }              }            },            "service_binding": {              "create": {                "parameters": {                  "type": "object",                  "properties": {                  }                }              }            }}
Кейін төленетін тарифтік опциялар үшін `schemas` секциясын сипаттау мысалы
"schemas": {            "service_instance": {              "create": {                "parameters": {                  "$schema": "http://json-schema.org/draft-04/schema#",                  "type": "object",                  "properties": {                  }                }              },              "update": {                "parameters": {                  "$schema": "http://json-schema.org/draft-04/schema#",                  "type": "object",                  "properties": {                  }                }              },              "resource_usages": {                "parameters": {                  "$schema": "http://json-schema.org/draft-04/schema#",                  "type": "object",                  "properties": {                    "storage": {                      "description": "Хранение в ДЦ Киберпротект для продуктов Бэкап Облачный",                      "type": "number"                    }                  }                }              }            },            "service_binding": {              "create": {                "parameters": {                  "type": "object",                  "properties": {                  }                }              }            }          }