{ "swagger": "2.0", "info": { "title": "Managed Kubernetes", "version": "1.0" }, "tags": [ { "name": "ClusterService" }, { "name": "NodePoolService" }, { "name": "StatisticsService" }, { "name": "TaskService" }, { "name": "VersionService" } ], "host": "https://api.sks.dzo.sbercloud.org/api", "consumes": [ "application/json" ], "produces": [ "application/json" ], "paths": { "/kubernetes/v1/clusters": { "post": { "operationId": "ClusterService_Create", "responses": { "200": { "description": "A successful response", "schema": { "$ref": "#/definitions/v1Task" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1CreateClusterRequest" } } ], "tags": [ "ClusterService" ] } }, "/kubernetes/v1/clusters/{clusterId}": { "delete": { "operationId": "ClusterService_Delete", "responses": { "200": { "description": "A successful response", "schema": { "$ref": "#/definitions/v1Task" } } }, "parameters": [ { "name": "clusterId", "description": "идентификатор кластера", "in": "path", "required": true, "type": "string" } ], "tags": [ "ClusterService" ] }, "patch": { "operationId": "ClusterService_Update", "responses": { "200": { "description": "A successful response", "schema": { "$ref": "#/definitions/v1Task" } } }, "parameters": [ { "name": "clusterId", "description": "идентификатор кластера", "in": "path", "required": true, "type": "string" }, { "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1ClusterData" } } ], "tags": [ "ClusterService" ] } }, "/kubernetes/v1/clusters/{clusterId}/kubeconfig": { "get": { "operationId": "ClusterService_GetKubeconfig", "responses": { "200": { "description": "A successful response", "schema": { "$ref": "#/definitions/v1GetKubeconfigResponse" } } }, "parameters": [ { "name": "clusterId", "description": "идентификатор кластера", "in": "path", "required": true, "type": "string" } ], "tags": [ "ClusterService" ] } }, "/kubernetes/v1/clusters/{clusterId}/metrics": { "get": { "operationId": "ClusterService_GetMetrics", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1GetMetricsResponse" } } }, "parameters": [ { "name": "clusterId", "description": "идентификатор кластера", "in": "path", "required": true, "type": "string" }, { "name": "step", "description": "шаг", "in": "query", "required": false, "type": "string" }, { "name": "start", "description": "начало диапазона", "in": "query", "required": false, "type": "string", "format": "date-time" }, { "name": "end", "description": "конец диапазона", "in": "query", "required": false, "type": "string", "format": "date-time" } ], "tags": [ "ClusterService" ] } }, "/kubernetes/v1/clusters/{clusterId}/openid-kubeconfig": { "get": { "operationId": "ClusterService_GetOpenIDKubeconfig", "responses": { "200": { "description": "A successful response", "schema": { "$ref": "#/definitions/v1GetKubeconfigResponse" } } }, "parameters": [ { "name": "clusterId", "description": "идентификатор кластера", "in": "path", "required": true, "type": "string" } ], "tags": [ "ClusterService" ] } }, "/kubernetes/v1/clusters/{serviceInstanceId}": { "get": { "operationId": "ClusterService_List", "responses": { "200": { "description": "A successful response", "schema": { "$ref": "#/definitions/v1ListClustersResponse" } } }, "parameters": [ { "name": "serviceInstanceId", "description": "идентификатор услуги в облачной платформе", "in": "path", "required": true, "type": "string" } ], "tags": [ "ClusterService" ] } }, "/kubernetes/v1/clusters/{serviceInstanceId}/{clusterId}": { "get": { "operationId": "ClusterService_Get", "responses": { "200": { "description": "A successful response", "schema": { "$ref": "#/definitions/v1Cluster" } } }, "parameters": [ { "name": "serviceInstanceId", "description": "идентификатор услуги в облачной платформе", "in": "path", "required": true, "type": "string" }, { "name": "clusterId", "description": "идентификатор кластера", "in": "path", "required": true, "type": "string" } ], "tags": [ "ClusterService" ] } }, "/kubernetes/v1/nodePools": { "get": { "operationId": "NodePoolService_List", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1ListNodePoolsResponse" } } }, "parameters": [ { "name": "clusterId", "description": "идентификатор кластера", "in": "query", "required": false, "type": "string" } ], "tags": [ "NodePoolService" ] }, "post": { "operationId": "NodePoolService_Create", "responses": { "200": { "description": "A successful response", "schema": { "$ref": "#/definitions/v1Task" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1CreateNodePoolRequest" } } ], "tags": [ "NodePoolService" ] } }, "/kubernetes/v1/nodePools/{nodePoolId}": { "get": { "operationId": "NodePoolService_Get", "responses": { "200": { "description": "A successful response", "schema": { "$ref": "#/definitions/v1NodePool" } } }, "parameters": [ { "name": "nodePoolId", "description": "идентификатор группы узлов, развернутых в кластере", "in": "path", "required": true, "type": "string" } ], "tags": [ "NodePoolService" ] }, "delete": { "operationId": "NodePoolService_Delete", "responses": { "200": { "description": "A successful response", "schema": { "$ref": "#/definitions/v1Task" } } }, "parameters": [ { "name": "nodePoolId", "description": "идентификатор группы узлов", "in": "path", "required": true, "type": "string" } ], "tags": [ "NodePoolService" ] }, "patch": { "operationId": "NodePoolService_Update", "responses": { "200": { "description": "A successful response", "schema": { "$ref": "#/definitions/v1Task" } } }, "parameters": [ { "name": "nodePoolId", "description": "идентификатор группы узлов", "in": "path", "required": true, "type": "string" }, { "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1NodePoolData" } } ], "tags": [ "NodePoolService" ] } }, "/kubernetes/v1/statistics/{serviceInstanceId}": { "get": { "operationId": "StatisticsService_ListStatistics", "responses": { "200": { "description": "A successful response", "schema": { "$ref": "#/definitions/v1ListStatisticsResponse" } } }, "parameters": [ { "name": "serviceInstanceId", "description": "идентификатор услуги", "in": "path", "required": true, "type": "string" } ], "tags": [ "StatisticsService" ] } }, "/kubernetes/v1/tasks/{serviceInstanceId}/{pageSize}/{pageToken}": { "get": { "operationId": "TaskService_List", "responses": { "200": { "description": "A successful response", "schema": { "$ref": "#/definitions/v1ListTasksResponse" } } }, "parameters": [ { "name": "serviceInstanceId", "description": "идентификатор услуги", "in": "path", "required": true, "type": "string" }, { "name": "pageSize", "description": "максимальное количество результатов на странице", "in": "path", "required": true, "type": "integer", "format": "int32" }, { "name": "pageToken", "description": "токен запрашиваемой страницы с результатами", "in": "path", "required": true, "type": "integer", "format": "int32" } ], "tags": [ "TaskService" ] } }, "/kubernetes/v1/tasks/{serviceInstanceId}/{taskId}": { "get": { "operationId": "TaskService_Get", "responses": { "200": { "description": "A successful response", "schema": { "$ref": "#/definitions/v1Task" } } }, "parameters": [ { "name": "serviceInstanceId", "description": "идентификатор услуги", "in": "path", "required": true, "type": "string" }, { "name": "taskId", "description": "идентификатор задачи (task)", "in": "path", "required": true, "type": "string" } ], "tags": [ "TaskService" ] } }, "/kubernetes/v1/versions": { "get": { "operationId": "VersionService_List", "responses": { "200": { "description": "A successful response", "schema": { "$ref": "#/definitions/v1ListKubernetesVersionsResponse" } } }, "tags": [ "VersionService" ] } } }, "definitions": { "MasterSpecMasterType": { "type": "string", "enum": [ "SINGLE_NODE", "HIGH_AVAILABILITY" ], "default": "SINGLE_NODE", "description": "обязательное поле. Количество Master node в кластере один или три. Один Master node --- добавьте значение SINGLE_NODE, три Master node --- HIGH_AVAILABILITY" }, "ScalePolicyAutoScale": { "type": "object", "properties": { "minCount": { "type": "integer", "format": "int32", "title": "минимальное количество узлов в группе узлов" }, "maxCount": { "type": "integer", "format": "int32", "title": "максимальное количество узлов в группе узлов" }, "initialCount": { "type": "integer", "format": "int32", "title": "начальное количество узлов" } }, "title": "автоматическая политика масштабирования группы узлов" }, "ScalePolicyFixedScale": { "type": "object", "properties": { "count": { "type": "integer", "format": "int32", "description": "количество узлов в группе узлов" } }, "title": "автоматическая политика масштабирования группы узлов" }, "TaintInfoEffect": { "type": "string", "description": "объект Kubernetes, подробнее в `документации Kubernetes `__ ", "enum": [ "NoSchedule", "PreferNoSchedule", "NoExecute" ], "default": "NoSchedule" }, "k8sv1ClusterType": { "type": "object", "properties": { "externalCluster": { "$ref": "#/definitions/v1ExternalCluster" }, "internalCluster": { "$ref": "#/definitions/v1InternalCluster" }, "configurableCluster": { "$ref": "#/definitions/v1ConfigurableCluster" } }, "title": "тип кластера" }, "protobufAny": { "type": "object", "properties": { "@type": { "type": "string", "description": "дополнительные сведения об ошибке о типе протокола передачи данных. Соответствия gRPC-статусов с HTTP-кодами описаны в `google.rpc.Code `__" } }, "additionalProperties": {}, "description": "дополнительные сведения об ошибке о типе протокола передачи данных. Соответствия gRPC-статусов с HTTP-кодами описаны в `google.rpc.Code `__" }, "rpcStatus": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32", "description": "код ошибки. Доступные коды ошибок определены в `google.rpc.Code `__" }, "message": { "type": "string", "description": "описание ошибки" }, "details": { "type": "array", "items": { "$ref": "#/definitions/protobufAny" }, "description": "дополнительные сведения об ошибке о типе протокола передачи данных. Соответствия gRPC-статусов с HTTP-кодами определены в `google.rpc.Code `__" } }, "description": "сообщение об ошибке" }, "typeTimeOfDay": { "type": "object", "properties": { "hours": { "type": "integer", "format": "int32", "description": "временной промежуток обновления кластера в часах от 1 до 24" }, "minutes": { "type": "integer", "format": "int32", "description": "временной промежуток обновления кластера в минутах от 0 до 59" }, "seconds": { "type": "integer", "format": "int32", "description": "временной промежуток обновления кластера в секундах от 0 до 59" }, "nanos": { "type": "integer", "format": "int32", "description": "временной промежуток обновления кластера в наносекундах 0 до 999,999,999" } }, "description": "время начала обновления, указывается в таймзоне UTC" }, "v1AnytimeMaintenanceWindow": { "type": "object", "title": "обновление мастера в любое время" }, "v1Audit": { "type": "object", "title": "конфигурация аудита для кластера", "properties": { "enabled": { "type": "boolean", "title": "флаг включения аудита" } } }, "v1Cluster": { "type": "object", "properties": { "id": { "type": "string", "title": "идентификатор кластера" }, "name": { "type": "string", "title": "имя кластера" }, "createdAt": { "type": "string", "format": "date-time", "title": "время создания кластера" }, "version": { "type": "string", "title": "версия Kubernetes" }, "endpoint": { "type": "string", "description": "эндпоинт кластера. Эндпоинты состоят из схемы и порта (т. е. /ip-address:port)\nи могут использоваться клиентами для связи с API Kubernetes кластера Kubernetes" }, "grafanaEndpoint": { "type": "string", "title": "данные эндпоинта подключения Grafana" }, "healthy": { "type": "boolean", "title": "состояние кластера" }, "nodePools": { "type": "array", "items": { "$ref": "#/definitions/v1NodePool" }, "title": "информация о группе узлов" }, "clusterType": { "$ref": "#/definitions/v1ClusterClusterType", "title": "обязательное поле. Тип кластера" }, "endpoints": { "type": "array", "description": "эндпоинт кластера. Эндпоинты состоят из схемы и порта (т. е. /ip-address:port)\nи могут использоваться клиентами для связи с API Kubernetes кластера Kubernetes.\nПредставлено для обратной совместимости", "items": { "type": "string" } } } }, "v1ClusterClusterType": { "type": "string", "title": "тип кластера", "enum": [ "INTERNAL", "EXTERNAL", "CONFIGURABLE" ], "default": "INTERNAL" }, "v1ClusterData": { "type": "object", "properties": { "name": { "type": "string", "title": "имя кластера" }, "masterSpec": { "$ref": "#/definitions/v1MasterSpec", "description": "параметры кластера" } } }, "v1ClusterStatistics": { "type": "object", "properties": { "clusterId": { "type": "string", "title": "идентификатор кластера" }, "clusterName": { "type": "string", "title": "имя кластера" }, "cpu": { "type": "integer", "format": "int32", "title": "количество cpu кластера" }, "memory": { "type": "integer", "format": "int32", "title": "количество памяти кластера" }, "masterCount": { "type": "integer", "format": "int32", "title": "количество master node в кластере" }, "nodePoolCount": { "type": "integer", "format": "int32", "title": "количество групп узлов в кластере" }, "workerCount": { "type": "integer", "format": "int32", "title": "количество worker node в кластере" }, "storage": { "type": "integer", "format": "int32", "title": "размер хранилища кластера" }, "persistentVolumes": { "type": "array", "title": "параметры системы хранения", "items": { "$ref": "#/definitions/v1PersistentVolume" } } } }, "v1ConfigurableCluster": { "type": "object", "properties": { "ipv4Policy": { "$ref": "#/definitions/v1IPv4Policy" }, "networkOptions": { "$ref": "#/definitions/v1NetworkOptions" } }, "description": "контракт для создания конфигурируемого кластера. Данный тип кластера позволяет гибко настраивать сетевые политики" }, "v1CreateClusterRequest": { "type": "object", "properties": { "serviceInstanceId": { "type": "string", "title": "обязательное поле. Идентификатор услуги в облачной платформе" }, "name": { "type": "string", "title": "обязательное поле. Имя должно быть уникальным. Может содержать строчные буквы латинского алфавита, цифры и\nдефисы. Допустимое количество символов от 3 до 20" }, "masterSpec": { "$ref": "#/definitions/v1MasterSpec", "title": "обязательное поле" }, "clusterType": { "$ref": "#/definitions/k8sv1ClusterType", "title": "обязательное поле. Тип кластера" }, "enableGrafana": { "type": "boolean", "title": "установка grafana при создании кластера" }, "audit": { "$ref": "#/definitions/v1Audit", "title": "Конфигурация аудита для кластера" }, "vdcSpec": { "$ref": "#/definitions/v1VDCSpec", "title": "конфигурация для выбора Edge (пограничного маршрутизатора) в виртуальном ЦОД" } } }, "v1CreateNodePoolRequest": { "type": "object", "properties": { "clusterId": { "type": "string", "title": "обязательное поле. Идентификатор кластера" }, "name": { "type": "string", "description": "обязательное поле. Имя должно быть уникальным. Может содержать строчные буквы латинского алфавита, цифры и\nдефисы. Допустимое количество символов от 3 до 20" }, "scalePolicy": { "$ref": "#/definitions/v1ScalePolicy", "title": "обязательное поле. Политика масштабирования группы узлов" }, "hardwareCompute": { "$ref": "#/definitions/v1HardwareCompute", "description": "обязательное поле. Количество ресурсов, выделенных для группы узлов" }, "taints": { "type": "array", "items": { "$ref": "#/definitions/v1TaintInfo" }, "title": "объект Kubernetes, подробнее в `документации Kubernetes `__ " } } }, "v1DailyMaintenanceWindow": { "type": "object", "properties": { "startTime": { "$ref": "#/definitions/typeTimeOfDay", "title": "время начала обновления, указывается в таймзоне UTC" }, "duration": { "type": "string", "title": "продолжительность окна, от 1 до 24 часов" } }, "title": "обновление мастера ежедневно в указанный промежуток времени" }, "v1ExternalCluster": { "type": "object", "title": "внешний тип кластера. Данный тип кластера по умолчанию имеет выход в интернет", "properties": { "ipv4Policy": { "$ref": "#/definitions/v1ExternalIPv4Policy" } } }, "v1ExternalIPv4Policy": { "type": "object", "description": "сетевая политика кластера", "properties": { "clusterCidrBlock": { "type": "string", "description": "обязательное поле. Диапазон IP-адресов, из которого будут выделяться IP-адреса для сервисов.\nДолжен принадлежать диапазонам 10.0.0.0/8, 172.16.0.0./12, 192.168.0.0./16. (RFC 1918)\nНе допустимы пересечения ни с одной подсетью в облачной сети, в которой находится кластер Kubernetes" } } }, "v1GetKubeconfigResponse": { "type": "object", "properties": { "error": { "$ref": "#/definitions/rpcStatus", "title": "ошибка" }, "config": { "type": "string", "title": "kubeconfig в формате Base24" } } }, "v1GetMetricsResponse": { "type": "object", "properties": { "clusterId": { "type": "string", "title": "идентификатор кластера" }, "nodePoolMetrics": { "type": "array", "items": { "$ref": "#/definitions/v1NodePoolMetrics" }, "title": "метрики группы узлов" } } }, "v1HardwareCompute": { "type": "object", "description": "обязательное поле. Количество ресурсов, выделенных для группы узлов", "properties": { "cpu": { "type": "integer", "format": "int32", "title": "обязательное поле. Количество vCPU, выделенных для группы узлов" }, "ram": { "type": "integer", "format": "int32", "title": "обязательное поле. Количество RAM в МБ" } } }, "v1IPv4Policy": { "type": "object", "description": "сетевая политика кластера", "properties": { "clusterCidrBlock": { "type": "string", "description": "обязательное поле. Диапазон IP-адресов, из которого будут выделяться IP-адреса для сервисов.\nДолжен принадлежать диапазонам 10.0.0.0/8, 172.16.0.0./12, 192.168.0.0./16. (RFC 1918)\nНе допустимы пересечения ни с одной подсетью в облачной сети, в которой находится кластер Kubernetes" }, "clusterNodesCidrBlock": { "type": "string", "description": "необязательное поле. Диапазон IP-адресов, из которого будут выделяться IP-адреса для нод компонентов кластера\n(masters, workers). Должен принадлежать диапазонам 10.0.0.0/8, 172.16.0.0./12, 192.168.0.0./16. (RFC 1918) Также\nCIDR должен быть строго с маской /24. Не допустимы пересечения ни с одной подсетью в вашей облачной\nинфраструктуре" } } }, "v1InternalCluster": { "type": "object", "title": "внутренний тип кластера. Для обеспечения доступа кластера в интернет необходимо добавить сетевые правила", "properties": { "ipv4Policy": { "$ref": "#/definitions/v1InternalIPv4Policy" } } }, "v1InternalIPv4Policy": { "type": "object", "description": "сетевая политика кластера", "properties": { "clusterCidrBlock": { "type": "string", "description": "обязательное поле. Диапазон IP-адресов, из которого будут выделяться IP-адреса для сервисов.\nДолжен принадлежать диапазонам 10.0.0.0/8, 172.16.0.0./12, 192.168.0.0./16. (RFC 1918)\nНе допустимы пересечения ни с одной подсетью в облачной сети, в которой находится кластер Kubernetes" }, "clusterNodesCidrBlock": { "type": "string", "description": "необязательное поле. Диапазон IP-адресов, из которого будут выделяться IP-адреса для нод компонентов кластера\n(masters, workers). Должен принадлежать диапазонам 10.0.0.0/8, 172.16.0.0./12, 192.168.0.0./16. (RFC 1918) Также\nCIDR должен быть строго с маской /24. Не допустимы пересечения ни с одной подсетью в вашей облачной\nинфраструктуре" }, "enableSnat": { "type": "boolean", "description": "необязательное поле. Возможность при создании кластера создать source NAT правила на EdgeGateway заказчика\nуслуги. Транслирующий адрес для сети кластера будет выделен случайным образом из диапазона публичных адресов,\nаллоцированных на вашем EdgeGateway\nИспользуется, если NetworkOptions.nodes_internet не заполнен, оставлено для обратной совместимости" } } }, "v1KubernetesVersion": { "type": "object", "properties": { "id": { "type": "integer", "format": "int32", "title": "идентификатор кластера" }, "version": { "type": "string", "title": "версия Kubernetes" }, "channel": { "type": "string", "title": "релизный канал" } } }, "v1ListClustersResponse": { "type": "object", "properties": { "clusters": { "type": "array", "title": "параметры кластера", "items": { "$ref": "#/definitions/v1Cluster" } } } }, "v1ListKubernetesVersionsResponse": { "type": "object", "properties": { "versions": { "type": "array", "description": "версия Kubernetes", "items": { "$ref": "#/definitions/v1KubernetesVersion" } } } }, "v1ListNodePoolsResponse": { "type": "object", "properties": { "nodePools": { "type": "array", "description": "параметры группы узлов", "items": { "$ref": "#/definitions/v1NodePool" } } } }, "v1ListStatisticsResponse": { "type": "object", "properties": { "dcCoresQuota": { "type": "integer", "format": "int32", "title": "действующая квота на количество ядер" }, "dcCoresUsage": { "type": "integer", "format": "int32", "title": "используемое количество ядер" }, "dcRamQuota": { "type": "integer", "format": "int32", "title": "действующая квота на количество памяти" }, "dcRamUsage": { "type": "integer", "format": "int32", "title": "используемое количество памяти" }, "dcStorageQuota": { "type": "integer", "format": "int32", "title": "действующая квота на диск" }, "dcStorageUsage": { "type": "integer", "format": "int32", "title": "используемое количество диска" }, "dcStorageType": { "$ref": "#/definitions/v1StorageType", "title": "тип диска" }, "clusters": { "type": "array", "title": "парметры кластера", "items": { "$ref": "#/definitions/v1ClusterStatistics" } } } }, "v1ListTasksResponse": { "type": "object", "properties": { "taskList": { "type": "array", "items": { "$ref": "#/definitions/v1Task" }, "title": "список задач" }, "nextPageToken": { "type": "integer", "format": "int32", "title": "токен следующей страницы" }, "totalTaskCount": { "type": "integer", "format": "int32", "title": "общее число задач" } } }, "v1MaintenanceWindow": { "type": "object", "title": "параметры обновления кластера", "properties": { "anytime": { "$ref": "#/definitions/v1AnytimeMaintenanceWindow", "title": "обновление мастера в любое время" }, "dailyMaintenanceWindow": { "$ref": "#/definitions/v1DailyMaintenanceWindow", "title": "обновление мастера ежедневно в указанный промежуток времени" } } }, "v1MasterMaintenancePolicy": { "type": "object", "title": "настройки обслуживания кластера", "properties": { "autoUpgrade": { "type": "boolean", "title": "политика автоматического обновления кластера.\nЕсли установлено значение true, автоматическое обновление устанавливается без участия пользователя в заданный\nпромежуток времени. Если установлено значение false, автоматическое обновление отключено" }, "maintenanceWindow": { "$ref": "#/definitions/v1MaintenanceWindow", "title": "настройки окна обслуживания" } } }, "v1MasterSpec": { "type": "object", "description": "параметры кластера", "properties": { "version": { "type": "string", "title": "обязательное поле. Версия Kubernetes. :doc:`Список доступных версий <../topics/api-ref_version>`" }, "masterType": { "$ref": "#/definitions/MasterSpecMasterType", "description": "обязательное поле. Количество Master node в кластере один или три. Один Master node --- добавьте значение SINGLE_NODE, три Master node --- HIGH_AVAILABILITY" }, "maintenancePolicy": { "$ref": "#/definitions/v1MasterMaintenancePolicy", "title": "настройки обслуживания кластера" } } }, "v1Metric": { "type": "object", "properties": { "timestamp": { "type": "string", "format": "date-time", "title": "временной шаг" }, "value": { "type": "number", "format": "double", "title": "значение метрики" } } }, "v1NetworkOptions": { "type": "object", "properties": { "nodesInternet": { "type": "boolean", "description": "флаг, сигнализирующий, что необходимо дать доступ в интернет рабочим узлам в кластере.\nСоздается SNAT правило" }, "kubeapiInternet": { "type": "boolean", "description": "флаг, сигнализирующий, что необходимо опубликовать kubeapi сервер в интернет, доступным по public_ip:6443.\nВ Load Balancer создается виртуальный сервер с необходимыми параметрами" }, "orgConnectivity": { "type": "boolean", "description": "флаг, сигнализирующий, что необходимо создать связь междуи виртуальными ЦОД.\nЯвляется опциональным для поддержания обратной совместимости" }, "vpcId": { "type": "string", "description": "vpc_id содержит идентификатор virtual private cloud. Если поле заполнено,\nто идентификатор будет использован для связи создаваемых Edge виртуального ЦОД с полученным VPC ID" } }, "description": "определяет контракт с дополнительными опциями по конфигурированию сети в кластере.\nПозволяет включить или отключить выход в интернет или включить публикацию в интернете и т.д" }, "v1Node": { "type": "object", "properties": { "id": { "type": "string", "title": "идентификатор узла" }, "name": { "type": "string", "title": "имя узла" }, "createdAt": { "type": "string", "format": "date-time", "title": "время создания узла" }, "ipAddress": { "type": "string", "title": "IP-адрес узла" }, "phase": { "type": "string", "title": "фаза развертывания узла" } } }, "v1NodePool": { "type": "object", "properties": { "id": { "type": "string", "title": "идентификатор группы узлов, развернутых в кластере" }, "name": { "type": "string", "title": "имя группы узлов" }, "clusterId": { "type": "string", "title": "идентификатор кластера" }, "createdAt": { "type": "string", "format": "date-time", "title": "время создания группы узлов в кластере" }, "version": { "type": "string", "title": "версия Kubernetes в группе узлов" }, "scalePolicy": { "$ref": "#/definitions/v1ScalePolicy", "title": "политика масштабирования группы узлов в кластере" }, "availableReplicas": { "type": "integer", "format": "int32", "title": "количество доступных реплик в группе узлов" }, "nodes": { "type": "array", "description": "параметры узела", "items": { "$ref": "#/definitions/v1Node" } }, "taints": { "type": "array", "items": { "$ref": "#/definitions/v1TaintInfo" }, "title": "объект Kubernetes, подробнее в `документации Kubernetes `__" } } }, "v1NodePoolData": { "type": "object", "properties": { "name": { "type": "string", "description": "имя должно быть уникальным. Может содержать строчные буквы латинского алфавита, цифры и дефисы. Допустимое\nколичество символов от 3 до 20" }, "scalePolicy": { "$ref": "#/definitions/v1ScalePolicy", "title": "политика масштабирования группы узлов в кластере" } } }, "v1NodePoolMetrics": { "type": "object", "properties": { "nodePoolId": { "type": "string", "title": "идентификатор группы узлов" }, "nodePoolName": { "type": "string", "title": "имя группы узлов" }, "cpu": { "type": "array", "items": { "$ref": "#/definitions/v1Metric" }, "title": "метрики по cpu, в процентах" }, "ram": { "type": "array", "items": { "$ref": "#/definitions/v1Metric" }, "title": "метрики по ram, в Мб" }, "networkReceive": { "type": "array", "items": { "$ref": "#/definitions/v1Metric" }, "title": "метрики по входящему сетевому трафику, в килобайтах" }, "networkTransmit": { "type": "array", "items": { "$ref": "#/definitions/v1Metric" }, "title": "метрики по исходящему сетевому трафику, в килобайтах" }, "storage": { "type": "array", "items": { "$ref": "#/definitions/v1Metric" }, "title": "метрики файловой системы, в ГБ" } } }, "v1PersistentVolume": { "type": "object", "properties": { "name": { "type": "string", "title": "имя системы хранения" }, "capacity": { "type": "integer", "format": "int32", "title": "емкость системы хранения" } } }, "v1ScalePolicy": { "type": "object", "properties": { "fixedScale": { "$ref": "#/definitions/ScalePolicyFixedScale", "title": "фиксированная политика группы узлов" }, "autoScale": { "$ref": "#/definitions/ScalePolicyAutoScale", "title": "автоматическая политика масштабирования группы узлов" } }, "title": "политика масштабирования группы узлов в кластере" }, "v1StorageType": { "type": "string", "enum": [ "STORAGE_TYPE_UNSPECIFIED", "STORAGE_TYPE_SSD", "STORAGE_TYPE_SATA", "STORAGE_TYPE_SAS" ], "default": "STORAGE_TYPE_UNSPECIFIED", "title": "тип диска" }, "v1TaintInfo": { "type": "object", "properties": { "key": { "type": "string", "title": "объект Kubernetes, подробнее в `документации Kubernetes `__" }, "value": { "type": "string", "title": "объект Kubernetes, подробнее в `документации Kubernetes \u003chttps://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/>`__" }, "effect": { "$ref": "#/definitions/TaintInfoEffect", "title": "объект Kubernetes, подробнее в `документации Kubernetes \u003chttps://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration//>`__" } } }, "v1Task": { "type": "object", "properties": { "id": { "type": "string", "title": "идентификатор задачи (task)" }, "command": { "type": "string", "title": "команда на выполнениe (создать кластер, удалить кластер и т.п)" }, "createdBy": { "type": "string", "title": "идентификатор пользователя или сервисного аккаунта, инициировавшего операцию" }, "createdAt": { "type": "string", "format": "date-time", "title": "время создания задачи" }, "done": { "type": "boolean", "description": "статус выполнения запроса.\nЕсли значение равно false --- операция еще выполняется.\nЕсли поле false и поле error не пустое --- задача завершилась с ошибкой.\nЕсли true --- операция завершена успешно" }, "doneAt": { "type": "string", "format": "date-time", "title": "время завершения выполнения задачи" }, "error": { "$ref": "#/definitions/rpcStatus", "title": "описание ошибки в случае сбоя или отмены операции" }, "metadata": { "type": "object", "additionalProperties": { "type": "string" }, "description": "метаданные задачи. Обычно в поле содержится идентификатор ресурса, над которым выполняется задача" } } }, "v1VDCSpec": { "type": "object", "title": "конфигурация для выбора Edge (погрпничного маршрутизатора) в виртуальном ЦОД", "properties": { "clientEgwId": { "type": "string", "description": "необязательное поле. Идентификатор (ID) пограничного маршрутизатора EdgeGateWay в виртуальном ЦОД на платформе Облако VMware" } } } } }