Categorygithub.com/nil-raysh/go-timeweb
repositorypackage
0.0.0-20241016155554-815fcb3a42d5
Repository: https://github.com/nil-raysh/go-timeweb.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author

# README

Go API client for openapi

Введение

API Timeweb Cloud позволяет вам управлять ресурсами в облаке программным способом с использованием обычных HTTP-запросов.

Множество функций, которые доступны в панели управления Timeweb Cloud, также доступны через API, что позволяет вам автоматизировать ваши собственные сценарии.

В этой документации сперва будет описан общий дизайн и принципы работы API, а после этого конкретные конечные точки. Также будут приведены примеры запросов к ним.

Запросы

Запросы должны выполняться по протоколу HTTPS, чтобы гарантировать шифрование транзакций. Поддерживаются следующие методы запроса:

МетодПрименение
GETИзвлекает данные о коллекциях и отдельных ресурсах.
POSTДля коллекций создает новый ресурс этого типа. Также используется для выполнения действий с конкретным ресурсом.
PUTОбновляет существующий ресурс.
PATCHНекоторые ресурсы поддерживают частичное обновление, то есть обновление только части атрибутов ресурса, в этом случае вместо метода PUT будет использован PATCH.
DELETEУдаляет ресурс.

Методы POST, PUT и PATCH могут включать объект в тело запроса с типом содержимого application/json.

Параметры в запросах

Некоторые коллекции поддерживают пагинацию, поиск или сортировку в запросах. В параметрах запроса требуется передать:

  • limit — обозначает количество записей, которое необходимо вернуть
  • offset — указывает на смещение, относительно начала списка
  • search — позволяет указать набор символов для поиска
  • sort — можно задать правило сортировки коллекции

Ответы

Запросы вернут один из следующих кодов состояния ответа HTTP:

СтатусОписание
200 OKДействие с ресурсом было выполнено успешно.
201 CreatedРесурс был успешно создан. При этом ресурс может быть как уже готовым к использованию, так и находиться в процессе запуска.
204 No ContentДействие с ресурсом было выполнено успешно, и ответ не содержит дополнительной информации в теле.
400 Bad RequestБыл отправлен неверный запрос, например, в нем отсутствуют обязательные параметры и т. д. Тело ответа будет содержать дополнительную информацию об ошибке.
401 UnauthorizedОшибка аутентификации.
403 ForbiddenАутентификация прошла успешно, но недостаточно прав для выполнения действия.
404 Not FoundЗапрашиваемый ресурс не найден.
409 ConflictЗапрос конфликтует с текущим состоянием.
423 LockedРесурс из запроса заблокирован от применения к нему указанного метода.
429 Too Many RequestsБыл достигнут лимит по количеству запросов в единицу времени.
500 Internal Server ErrorПри выполнении запроса произошла какая-то внутренняя ошибка. Чтобы решить эту проблему, лучше всего создать тикет в панели управления.

Структура успешного ответа

Все конечные точки будут возвращать данные в формате JSON. Ответы на GET-запросы будут иметь на верхнем уровне следующую структуру атрибутов:

Название поляТипОписание
[entity_name]object, object[], string[], number[], booleanДинамическое поле, которое будет меняться в зависимости от запрашиваемого ресурса и будет содержать все атрибуты, необходимые для описания этого ресурса. Например, при запросе списка баз данных будет возвращаться поле dbs, а при запросе конкретного облачного сервера server. Для некоторых конечных точек в ответе может возвращаться сразу несколько ресурсов.
metaobjectОпционально. Объект, который содержит вспомогательную информацию о ресурсе. Чаще всего будет встречаться при запросе коллекций и содержать поле total, которое будет указывать на количество элементов в коллекции.
response_idstringОпционально. В большинстве случаев в ответе будет содержаться уникальный идентификатор ответа в формате UUIDv4, который однозначно указывает на ваш запрос внутри нашей системы. Если вам потребуется задать вопрос нашей поддержке, приложите к вопросу этот идентификатор — так мы сможем найти ответ на него намного быстрее. Также вы можете использовать этот идентификатор, чтобы убедиться, что это новый ответ на запрос и результат не был получен из кэша.

Пример запроса на получение списка SSH-ключей:

    HTTP/2.0 200 OK
    {
      \"ssh_keys\":[
          {
            \"body\":\"ssh-rsa AAAAB3NzaC1sdfghjkOAsBwWhs= [email protected]\",
            \"created_at\":\"2021-09-15T19:52:27Z\",
            \"expired_at\":null,
            \"id\":5297,
            \"is_default\":false,
            \"name\":\"[email protected]\",
            \"used_at\":null,
            \"used_by\":[]
          }
      ],
      \"meta\":{
          \"total\":1
      },
      \"response_id\":\"94608d15-8672-4eed-8ab6-28bd6fa3cdf7\"
    }

Структура ответа с ошибкой

Название поляТипОписание
status_codenumberКороткий числовой идентификатор ошибки.
error_codestringКороткий текстовый идентификатор ошибки, который уточняет числовой идентификатор и удобен для программной обработки. Самый простой пример — это код not_found для ошибки 404.
messagestring, string[]Опционально. В большинстве случаев в ответе будет содержаться человекочитаемое подробное описание ошибки или ошибок, которые помогут понять, что нужно исправить.
response_idstringОпционально. В большинстве случае в ответе будет содержаться уникальный идентификатор ответа в формате UUIDv4, который однозначно указывает на ваш запрос внутри нашей системы. Если вам потребуется задать вопрос нашей поддержке, приложите к вопросу этот идентификатор — так мы сможем найти ответ на него намного быстрее.

Пример:

    HTTP/2.0 403 Forbidden
    {
      \"status_code\": 403,
      \"error_code\":  \"forbidden\",
      \"message\":     \"You do not have access for the attempted action\",
      \"response_id\": \"94608d15-8672-4eed-8ab6-28bd6fa3cdf7\"
    }

Статусы ресурсов

Важно учесть, что при создании большинства ресурсов внутри платформы вам будет сразу возвращен ответ от сервера со статусом 200 OK или 201 Created и идентификатором созданного ресурса в теле ответа, но при этом этот ресурс может быть ещё в состоянии запуска.

Для того чтобы понять, в каком состоянии сейчас находится ваш ресурс, мы добавили поле status в ответ на получение информации о ресурсе.

Список статусов будет отличаться в зависимости от типа ресурса. Увидеть поддерживаемый список статусов вы сможете в описании каждого конкретного ресурса.

Ограничение скорости запросов (Rate Limiting)

Чтобы обеспечить стабильность для всех пользователей, Timeweb Cloud защищает API от всплесков входящего трафика, анализируя количество запросов c каждого аккаунта к каждой конечной точке.

Если ваше приложение отправляет более 20 запросов в секунду на одну конечную точку, то для этого запроса API может вернуть код состояния HTTP 429 Too Many Requests.

Аутентификация

Доступ к API осуществляется с помощью JWT-токена. Токенами можно управлять внутри панели управления Timeweb Cloud в разделе API и Terraform.

Токен необходимо передавать в заголовке каждого запроса в формате:

  Authorization: Bearer $TIMEWEB_CLOUD_TOKEN

Формат примеров API

Примеры в этой документации описаны с помощью curl, HTTP-клиента командной строки. На компьютерах Linux и macOS обычно по умолчанию установлен curl, и он доступен для загрузки на всех популярных платформах, включая Windows.

Каждый пример разделен на несколько строк символом \\, который совместим с bash. Типичный пример выглядит так:

  curl -X PATCH 
    -H \"Content-Type: application/json\" 
    -H \"Authorization: Bearer $TIMEWEB_CLOUD_TOKEN\" 
    -d '{\"name\":\"Cute Corvus\",\"comment\":\"Development Server\"}' 
    \"https://api.timeweb.cloud/api/v1/dedicated/1051\"
  • Параметр -X задает метод запроса. Для согласованности метод будет указан во всех примерах, даже если он явно не требуется для методов GET.
  • Строки -H задают требуемые HTTP-заголовки.
  • Примеры, для которых требуется объект JSON в теле запроса, передают требуемые данные через параметр -d.

Чтобы использовать приведенные примеры, не подставляя каждый раз в них свой токен, вы можете добавить токен один раз в переменные окружения в вашей консоли. Например, на Linux это можно сделать с помощью команды:

TIMEWEB_CLOUD_TOKEN=\"token\"

После этого токен будет автоматически подставляться в ваши запросы.

Обратите внимание, что все значения в этой документации являются примерами. Не полагайтесь на идентификаторы операционных систем, тарифов и т.д., используемые в примерах. Используйте соответствующую конечную точку для получения значений перед созданием ресурсов.

Версионирование

API построено согласно принципам семантического версионирования. Это значит, что мы гарантируем обратную совместимость всех изменений в пределах одной мажорной версии.

Мажорная версия каждой конечной точки обозначается в пути запроса, например, запрос /api/v1/servers указывает, что этот метод имеет версию 1.

Overview

This API client was generated by the OpenAPI Generator project. By using the OpenAPI-spec from a remote server, you can easily generate an API client.

  • API version: 1.0.0
  • Package version: 1.0.0
  • Build package: org.openapitools.codegen.languages.GoClientCodegen

Installation

Install the following dependencies:

go get github.com/stretchr/testify/assert
go get golang.org/x/net/context

Put the package under your project folder and add the following in import:

import openapi "github.com/nil-raysh/go-timeweb"

To use a proxy, set the environment variable HTTP_PROXY:

os.Setenv("HTTP_PROXY", "http://proxy_name:proxy_port")

Configuration of Server URL

Default configuration comes with Servers field that contains server objects as defined in the OpenAPI specification.

Select Server Configuration

For using other server than the one defined on index 0 set context value sw.ContextServerIndex of type int.

ctx := context.WithValue(context.Background(), openapi.ContextServerIndex, 1)

Templated Server URL

Templated server URL is formatted using default variables from configuration or from context value sw.ContextServerVariables of type map[string]string.

ctx := context.WithValue(context.Background(), openapi.ContextServerVariables, map[string]string{
	"basePath": "v2",
})

Note, enum values are always validated and all unused variables are silently ignored.

URLs Configuration per Operation

Each operation can use different server URL defined using OperationServers map in the Configuration. An operation is uniquely identified by "{classname}Service.{nickname}" string. Similar rules for overriding default operation server index and variables applies by using sw.ContextOperationServerIndices and sw.ContextOperationServerVariables context maps.

ctx := context.WithValue(context.Background(), openapi.ContextOperationServerIndices, map[string]int{
	"{classname}Service.{nickname}": 2,
})
ctx = context.WithValue(context.Background(), openapi.ContextOperationServerVariables, map[string]map[string]string{
	"{classname}Service.{nickname}": {
		"port": "8443",
	},
})

Documentation for API Endpoints

All URIs are relative to https://api.timeweb.cloud

ClassMethodHTTP requestDescription
APIKeysAPICreateTokenPost /api/v1/auth/api-keysСоздание токена
APIKeysAPIDeleteTokenDelete /api/v1/auth/api-keys/{token_id}Удалить токен
APIKeysAPIGetTokensGet /api/v1/auth/api-keysПолучение списка выпущенных токенов
APIKeysAPIReissueTokenPut /api/v1/auth/api-keys/{token_id}Перевыпустить токен
APIKeysAPIUpdateTokenPatch /api/v1/auth/api-keys/{token_id}Изменить токен
AccountAPIAddCountriesToAllowedListPost /api/v1/auth/access/countriesДобавление стран в список разрешенных
AccountAPIAddIPsToAllowedListPost /api/v1/auth/access/ipsДобавление IP-адресов в список разрешенных
AccountAPIDeleteCountriesFromAllowedListDelete /api/v1/auth/access/countriesУдаление стран из списка разрешенных
AccountAPIDeleteIPsFromAllowedListDelete /api/v1/auth/access/ipsУдаление IP-адресов из списка разрешенных
AccountAPIGetAccountStatusGet /api/v1/account/statusПолучение статуса аккаунта
AccountAPIGetAuthAccessSettingsGet /api/v1/auth/accessПолучить информацию о ограничениях авторизации пользователя
AccountAPIGetCountriesGet /api/v1/auth/access/countriesПолучение списка стран
AccountAPIGetFinancesGet /api/v1/account/financesПолучение платежной информации
AccountAPIGetNotificationSettingsGet /api/v1/account/notification-settingsПолучение настроек уведомлений аккаунта
AccountAPIUpdateAuthRestrictionsByCountriesPost /api/v1/auth/access/countries/enabledВключение/отключение ограничений по стране
AccountAPIUpdateAuthRestrictionsByIPPost /api/v1/auth/access/ips/enabledВключение/отключение ограничений по IP-адресу
AccountAPIUpdateNotificationSettingsPatch /api/v1/account/notification-settingsИзменение настроек уведомлений аккаунта
AppsAPIAddProviderPost /api/v1/vcs-providerПривязка vcs провайдера
AppsAPICreateAppPost /api/v1/appsСоздание приложения
AppsAPICreateDeployPost /api/v1/apps/{app_id}/deployЗапуск деплоя приложения
AppsAPIDeleteAppDelete /api/v1/apps/{app_id}Удаление приложения
AppsAPIDeleteProviderDelete /api/v1/vcs-provider/{provider_id}Отвязка vcs провайдера от аккаунта
AppsAPIDeployActionPost /api/v1/apps/{app_id}/deploy/{deploy_id}/stopОстановка деплоя приложения
AppsAPIGetAppGet /api/v1/apps/{app_id}Получение приложения по id
AppsAPIGetAppDeploysGet /api/v1/apps/{app_id}/deploysПолучение списка деплоев приложения
AppsAPIGetAppLogsGet /api/v1/apps/{app_id}/logsПолучение логов приложения
AppsAPIGetAppStatisticsGet /api/v1/apps/{app_id}/statisticsПолучение статистики приложения
AppsAPIGetAppsGet /api/v1/appsПолучение списка приложений
AppsAPIGetAppsPresetsGet /api/v1/presets/appsПолучение списка доступных тарифов для приложения
AppsAPIGetBranchesGet /api/v1/vcs-provider/{provider_id}/repository/{repository_id}Получение списка веток репозитория
AppsAPIGetCommitsGet /api/v1/vcs-provider/{provider_id}/repository/{repository_id}/branchПолучение списка коммитов ветки репозитория
AppsAPIGetDeployLogsGet /api/v1/apps/{app_id}/deploy/{deploy_id}/logsПолучение логов деплоя приложения
AppsAPIGetDeploySettingsGet /api/v1/deploy-settings/appsПолучение списка дефолтных настроек деплоя для приложения
AppsAPIGetFrameworksGet /api/v1/frameworks/appsПолучение списка доступных фреймворков для приложения
AppsAPIGetProvidersGet /api/v1/vcs-providerПолучение списка vcs провайдеров
AppsAPIGetRepositoriesGet /api/v1/vcs-provider/{provider_id}Получение списка репозиториев vcs провайдера
AppsAPIUpdateAppSettingsPatch /api/v1/apps/{app_id}Изменение настроек приложения
AppsAPIUpdateAppStatePatch /api/v1/apps/{app_id}/action/{action}Изменение состояния приложения
BalancersAPIAddIPsToBalancerPost /api/v1/balancers/{balancer_id}/ipsДобавление IP-адресов к балансировщику
BalancersAPICreateBalancerPost /api/v1/balancersСоздание бaлансировщика
BalancersAPICreateBalancerRulePost /api/v1/balancers/{balancer_id}/rulesСоздание правила для балансировщика
BalancersAPIDeleteBalancerDelete /api/v1/balancers/{balancer_id}Удаление балансировщика
BalancersAPIDeleteBalancerRuleDelete /api/v1/balancers/{balancer_id}/rules/{rule_id}Удаление правила для балансировщика
BalancersAPIDeleteIPsFromBalancerDelete /api/v1/balancers/{balancer_id}/ipsУдаление IP-адресов из балансировщика
BalancersAPIGetBalancerGet /api/v1/balancers/{balancer_id}Получение бaлансировщика
BalancersAPIGetBalancerIPsGet /api/v1/balancers/{balancer_id}/ipsПолучение списка IP-адресов балансировщика
BalancersAPIGetBalancerRulesGet /api/v1/balancers/{balancer_id}/rulesПолучение правил балансировщика
BalancersAPIGetBalancersGet /api/v1/balancersПолучение списка всех бaлансировщиков
BalancersAPIGetBalancersPresetsGet /api/v1/presets/balancersПолучение списка тарифов для балансировщика
BalancersAPIUpdateBalancerPatch /api/v1/balancers/{balancer_id}Обновление балансировщика
BalancersAPIUpdateBalancerRulePatch /api/v1/balancers/{balancer_id}/rules/{rule_id}Обновление правила для балансировщика
DatabasesAPICreateDatabasePost /api/v1/dbsСоздание базы данных
DatabasesAPICreateDatabaseBackupPost /api/v1/dbs/{db_id}/backupsСоздание бэкапа базы данных
DatabasesAPICreateDatabaseClusterPost /api/v1/databasesСоздание кластера базы данных
DatabasesAPICreateDatabaseInstancePost /api/v1/databases/{db_cluster_id}/instancesСоздание инстанса базы данных
DatabasesAPICreateDatabaseUserPost /api/v1/databases/{db_cluster_id}/adminsСоздание пользователя базы данных
DatabasesAPIDeleteDatabaseDelete /api/v1/dbs/{db_id}Удаление базы данных
DatabasesAPIDeleteDatabaseBackupDelete /api/v1/dbs/{db_id}/backups/{backup_id}Удаление бэкапа базы данных
DatabasesAPIDeleteDatabaseClusterDelete /api/v1/databases/{db_cluster_id}Удаление кластера базы данных
DatabasesAPIDeleteDatabaseInstanceDelete /api/v1/databases/{db_cluster_id}/instances/{instance_id}Удаление инстанса базы данных
DatabasesAPIDeleteDatabaseUserDelete /api/v1/databases/{db_cluster_id}/admins/{admin_id}Удаление пользователя базы данных
DatabasesAPIGetDatabaseGet /api/v1/dbs/{db_id}Получение базы данных
DatabasesAPIGetDatabaseAutoBackupsSettingsGet /api/v1/dbs/{db_id}/auto-backupsПолучение настроек автобэкапов базы данных
DatabasesAPIGetDatabaseBackupGet /api/v1/dbs/{db_id}/backups/{backup_id}Получение бэкапа базы данных
DatabasesAPIGetDatabaseBackupsGet /api/v1/dbs/{db_id}/backupsСписок бэкапов базы данных
DatabasesAPIGetDatabaseClusterGet /api/v1/databases/{db_cluster_id}Получение кластера базы данных
DatabasesAPIGetDatabaseClusterTypesGet /api/v1/database-typesПолучение списка типов кластеров баз данных
DatabasesAPIGetDatabaseClustersGet /api/v1/databasesПолучение списка кластеров баз данных
DatabasesAPIGetDatabaseInstanceGet /api/v1/databases/{db_cluster_id}/instances/{instance_id}Получение инстанса базы данных
DatabasesAPIGetDatabaseInstancesGet /api/v1/databases/{db_cluster_id}/instancesПолучение списка инстансов баз данных
DatabasesAPIGetDatabaseUserGet /api/v1/databases/{db_cluster_id}/admins/{admin_id}Получение пользователя базы данных
DatabasesAPIGetDatabaseUsersGet /api/v1/databases/{db_cluster_id}/adminsПолучение списка пользователей базы данных
DatabasesAPIGetDatabasesGet /api/v1/dbsПолучение списка всех баз данных
DatabasesAPIGetDatabasesPresetsGet /api/v1/presets/dbsПолучение списка тарифов для баз данных
DatabasesAPIRestoreDatabaseFromBackupPut /api/v1/dbs/{db_id}/backups/{backup_id}Восстановление базы данных из бэкапа
DatabasesAPIUpdateDatabasePatch /api/v1/dbs/{db_id}Обновление базы данных
DatabasesAPIUpdateDatabaseAutoBackupsSettingsPatch /api/v1/dbs/{db_id}/auto-backupsИзменение настроек автобэкапов базы данных
DatabasesAPIUpdateDatabaseClusterPatch /api/v1/databases/{db_cluster_id}Изменение кластера базы данных
DatabasesAPIUpdateDatabaseInstancePatch /api/v1/databases/{db_cluster_id}/instances/{instance_id}Изменение инстанса базы данных
DatabasesAPIUpdateDatabaseUserPatch /api/v1/databases/{db_cluster_id}/admins/{admin_id}Изменение пользователя базы данных
DedicatedServersAPICreateDedicatedServerPost /api/v1/dedicated-serversСоздание выделенного сервера
DedicatedServersAPIDeleteDedicatedServerDelete /api/v1/dedicated-servers/{dedicated_id}Удаление выделенного сервера
DedicatedServersAPIGetDedicatedServerGet /api/v1/dedicated-servers/{dedicated_id}Получение выделенного сервера
DedicatedServersAPIGetDedicatedServerPresetAdditionalServicesGet /api/v1/presets/dedicated-servers/{preset_id}/additional-servicesПолучение дополнительных услуг для выделенного сервера
DedicatedServersAPIGetDedicatedServersGet /api/v1/dedicated-serversПолучение списка выделенных серверов
DedicatedServersAPIGetDedicatedServersPresetsGet /api/v1/presets/dedicated-serversПолучение списка тарифов для выделенного сервера
DedicatedServersAPIUpdateDedicatedServerPatch /api/v1/dedicated-servers/{dedicated_id}Обновление выделенного сервера
DomainsAPIAddDomainPost /api/v1/add-domain/{fqdn}Добавление домена на аккаунт
DomainsAPIAddSubdomainPost /api/v1/domains/{fqdn}/subdomains/{subdomain_fqdn}Добавление поддомена
DomainsAPICheckDomainGet /api/v1/check-domain/{fqdn}Проверить, доступен ли домен для регистрации
DomainsAPICreateDomainDNSRecordPost /api/v1/domains/{fqdn}/dns-recordsДобавить информацию о DNS-записи для домена или поддомена
DomainsAPICreateDomainRequestPost /api/v1/domains-requestsСоздание заявки на регистрацию/продление/трансфер домена
DomainsAPIDeleteDomainDelete /api/v1/domains/{fqdn}Удаление домена
DomainsAPIDeleteDomainDNSRecordDelete /api/v1/domains/{fqdn}/dns-records/{record_id}Удалить информацию о DNS-записи для домена или поддомена
DomainsAPIDeleteSubdomainDelete /api/v1/domains/{fqdn}/subdomains/{subdomain_fqdn}Удаление поддомена
DomainsAPIGetDomainGet /api/v1/domains/{fqdn}Получение информации о домене
DomainsAPIGetDomainDNSRecordsGet /api/v1/domains/{fqdn}/dns-recordsПолучить информацию обо всех пользовательских DNS-записях домена или поддомена
DomainsAPIGetDomainDefaultDNSRecordsGet /api/v1/domains/{fqdn}/default-dns-recordsПолучить информацию обо всех DNS-записях по умолчанию домена или поддомена
DomainsAPIGetDomainNameServersGet /api/v1/domains/{fqdn}/name-serversПолучение списка name-серверов домена
DomainsAPIGetDomainRequestGet /api/v1/domains-requests/{request_id}Получение заявки на регистрацию/продление/трансфер домена
DomainsAPIGetDomainRequestsGet /api/v1/domains-requestsПолучение списка заявок на регистрацию/продление/трансфер домена
DomainsAPIGetDomainsGet /api/v1/domainsПолучение списка всех доменов
DomainsAPIGetTLDGet /api/v1/tlds/{tld_id}Получить информацию о доменной зоне по идентификатору
DomainsAPIGetTLDsGet /api/v1/tldsПолучить информацию о доменных зонах
DomainsAPIUpdateDomainAutoProlongationPatch /api/v1/domains/{fqdn}Включение/выключение автопродления домена
DomainsAPIUpdateDomainDNSRecordPatch /api/v1/domains/{fqdn}/dns-records/{record_id}Обновить информацию о DNS-записи домена или поддомена
DomainsAPIUpdateDomainNameServersPut /api/v1/domains/{fqdn}/name-serversИзменение name-серверов домена
DomainsAPIUpdateDomainRequestPatch /api/v1/domains-requests/{request_id}Оплата/обновление заявки на регистрацию/продление/трансфер домена
FirewallAPIAddResourceToGroupPost /api/v1/firewall/groups/{group_id}/resources/{resource_id}Линковка ресурса в firewall group
FirewallAPICreateGroupPost /api/v1/firewall/groupsСоздание группы правил
FirewallAPICreateGroupRulePost /api/v1/firewall/groups/{group_id}/rulesСоздание firewall правила
FirewallAPIDeleteGroupDelete /api/v1/firewall/groups/{group_id}Удаление группы правил
FirewallAPIDeleteGroupRuleDelete /api/v1/firewall/groups/{group_id}/rules/{rule_id}Удаление firewall правила
FirewallAPIDeleteResourceFromGroupDelete /api/v1/firewall/groups/{group_id}/resources/{resource_id}Отлинковка ресурса из firewall group
FirewallAPIGetGroupGet /api/v1/firewall/groups/{group_id}Получение информации о группе правил
FirewallAPIGetGroupResourcesGet /api/v1/firewall/groups/{group_id}/resourcesПолучение слинкованных ресурсов
FirewallAPIGetGroupRuleGet /api/v1/firewall/groups/{group_id}/rules/{rule_id}Получение информации о правиле
FirewallAPIGetGroupRulesGet /api/v1/firewall/groups/{group_id}/rulesПолучение списка правил
FirewallAPIGetGroupsGet /api/v1/firewall/groupsПолучение групп правил
FirewallAPIGetRulesForResourceGet /api/v1/firewall/service/{resource_type}/{resource_id}Получение групп правил для ресурса
FirewallAPIUpdateGroupPatch /api/v1/firewall/groups/{group_id}Обновление группы правил
FirewallAPIUpdateGroupRulePatch /api/v1/firewall/groups/{group_id}/rules/{rule_id}Обновление firewall правила
FloatingIPAPIBindFloatingIpPost /api/v1/floating-ips/{floating_ip_id}/bindПривязать IP к сервису
FloatingIPAPICreateFloatingIpPost /api/v1/floating-ipsСоздание плавающего IP
FloatingIPAPIDeleteFloatingIPDelete /api/v1/floating-ips/{floating_ip_id}Удаление плавающего IP по идентификатору
FloatingIPAPIGetFloatingIpGet /api/v1/floating-ips/{floating_ip_id}Получение плавающего IP
FloatingIPAPIGetFloatingIpsGet /api/v1/floating-ipsПолучение списка плавающих IP
FloatingIPAPIUnbindFloatingIpPost /api/v1/floating-ips/{floating_ip_id}/unbindОтвязать IP от сервиса
FloatingIPAPIUpdateFloatingIPPatch /api/v1/floating-ips/{floating_ip_id}Изменение плавающего IP по идентификатору
ImagesAPICreateImagePost /api/v1/imagesСоздание образа
ImagesAPICreateImageDownloadUrlPost /api/v1/images/{image_id}/download-urlСоздание ссылки на скачивание образа
ImagesAPIDeleteImageDelete /api/v1/images/{image_id}Удаление образа
ImagesAPIDeleteImageDownloadURLDelete /api/v1/images/{image_id}/download-url/{image_url_id}Удаление ссылки на образ
ImagesAPIGetImageGet /api/v1/images/{image_id}Получение информации о образе
ImagesAPIGetImageDownloadURLGet /api/v1/images/{image_id}/download-url/{image_url_id}Получение информации о ссылке на скачивание образа
ImagesAPIGetImageDownloadURLsGet /api/v1/images/{image_id}/download-urlПолучение информации о ссылках на скачивание образов
ImagesAPIGetImagesGet /api/v1/imagesПолучение списка образов
ImagesAPIUpdateImagePatch /api/v1/images/{image_id}Обновление информации о образе
ImagesAPIUploadImagePost /api/v1/images/{image_id}Загрузка образа
KubernetesAPICreateClusterPost /api/v1/k8s/clustersСоздание кластера
KubernetesAPICreateClusterNodeGroupPost /api/v1/k8s/clusters/{cluster_id}/groupsСоздание группы нод
KubernetesAPIDeleteClusterDelete /api/v1/k8s/clusters/{cluster_id}Удаление кластера
KubernetesAPIDeleteClusterNodeDelete /api/v1/k8s/clusters/{cluster_id}/nodes/{node_id}Удаление ноды
KubernetesAPIDeleteClusterNodeGroupDelete /api/v1/k8s/clusters/{cluster_id}/groups/{group_id}Удаление группы нод
KubernetesAPIGetClusterGet /api/v1/k8s/clusters/{cluster_id}Получение информации о кластере
KubernetesAPIGetClusterKubeconfigGet /api/v1/k8s/clusters/{cluster_id}/kubeconfigПолучение файла kubeconfig
KubernetesAPIGetClusterNodeGroupGet /api/v1/k8s/clusters/{cluster_id}/groups/{group_id}Получение информации о группе нод
KubernetesAPIGetClusterNodeGroupsGet /api/v1/k8s/clusters/{cluster_id}/groupsПолучение групп нод кластера
KubernetesAPIGetClusterNodesGet /api/v1/k8s/clusters/{cluster_id}/nodesПолучение списка нод
KubernetesAPIGetClusterNodesFromGroupGet /api/v1/k8s/clusters/{cluster_id}/groups/{group_id}/nodesПолучение списка нод, принадлежащих группе
KubernetesAPIGetClusterResourcesGet /api/v1/k8s/clusters/{cluster_id}/resourcesПолучение ресурсов кластера
KubernetesAPIGetClustersGet /api/v1/k8s/clustersПолучение списка кластеров
KubernetesAPIGetK8SNetworkDriversGet /api/v1/k8s/network_driversПолучение списка сетевых драйверов k8s
KubernetesAPIGetK8SVersionsGet /api/v1/k8s/k8s_versionsПолучение списка версий k8s
KubernetesAPIGetKubernetesPresetsGet /api/v1/presets/k8sПолучение списка тарифов
KubernetesAPIIncreaseCountOfNodesInGroupPost /api/v1/k8s/clusters/{cluster_id}/groups/{group_id}/nodesУвеличение количества нод в группе на указанное количество
KubernetesAPIReduceCountOfNodesInGroupDelete /api/v1/k8s/clusters/{cluster_id}/groups/{group_id}/nodesУменьшение количества нод в группе на указанное количество
KubernetesAPIUpdateClusterPatch /api/v1/k8s/clusters/{cluster_id}Обновление информации о кластере
LocationsAPIGetLocationsGet /api/v2/locationsПолучение списка локаций
MailAPICreateDomainMailboxPost /api/v1/mail/domains/{domain}Создание почтового ящика
MailAPIDeleteMailboxDelete /api/v1/mail/domains/{domain}/mailboxes/{mailbox}Удаление почтового ящика
MailAPIGetDomainMailInfoGet /api/v1/mail/domains/{domain}/infoПолучение почтовой информации о домене
MailAPIGetDomainMailboxesGet /api/v1/mail/domains/{domain}Получение списка почтовых ящиков домена
MailAPIGetMailQuotaGet /api/v1/mail/quotaПолучение квоты почты аккаунта
MailAPIGetMailboxGet /api/v1/mail/domains/{domain}/mailboxes/{mailbox}Получение почтового ящика
MailAPIGetMailboxesGet /api/v1/mailПолучение списка почтовых ящиков аккаунта
MailAPIUpdateDomainMailInfoPatch /api/v1/mail/domains/{domain}/infoИзменение почтовой информации о домене
MailAPIUpdateMailQuotaPatch /api/v1/mail/quotaИзменение квоты почты аккаунта
MailAPIUpdateMailboxPatch /api/v1/mail/domains/{domain}/mailboxes/{mailbox}Изменение почтового ящика
ProjectsAPIAddBalancerToProjectPost /api/v1/projects/{project_id}/resources/balancersДобавление балансировщика в проект
ProjectsAPIAddClusterToProjectPost /api/v1/projects/{project_id}/resources/clustersДобавление кластера в проект
ProjectsAPIAddDatabaseToProjectPost /api/v1/projects/{project_id}/resources/databasesДобавление базы данных в проект
ProjectsAPIAddDedicatedServerToProjectPost /api/v1/projects/{project_id}/resources/dedicatedДобавление выделенного сервера в проект
ProjectsAPIAddServerToProjectPost /api/v1/projects/{project_id}/resources/serversДобавление сервера в проект
ProjectsAPIAddStorageToProjectPost /api/v1/projects/{project_id}/resources/bucketsДобавление хранилища в проект
ProjectsAPICreateProjectPost /api/v1/projectsСоздание проекта
ProjectsAPIDeleteProjectDelete /api/v1/projects/{project_id}Удаление проекта
ProjectsAPIGetAccountBalancersGet /api/v1/projects/resources/balancersПолучение списка всех балансировщиков на аккаунте
ProjectsAPIGetAccountClustersGet /api/v1/projects/resources/clustersПолучение списка всех кластеров на аккаунте
ProjectsAPIGetAccountDatabasesGet /api/v1/projects/resources/databasesПолучение списка всех баз данных на аккаунте
ProjectsAPIGetAccountDedicatedServersGet /api/v1/projects/resources/dedicatedПолучение списка всех выделенных серверов на аккаунте
ProjectsAPIGetAccountServersGet /api/v1/projects/resources/serversПолучение списка всех серверов на аккаунте
ProjectsAPIGetAccountStoragesGet /api/v1/projects/resources/bucketsПолучение списка всех хранилищ на аккаунте
ProjectsAPIGetAllProjectResourcesGet /api/v1/projects/{project_id}/resourcesПолучение всех ресурсов проекта
ProjectsAPIGetProjectGet /api/v1/projects/{project_id}Получение проекта по идентификатору
ProjectsAPIGetProjectBalancersGet /api/v1/projects/{project_id}/resources/balancersПолучение списка балансировщиков проекта
ProjectsAPIGetProjectClustersGet /api/v1/projects/{project_id}/resources/clustersПолучение списка кластеров проекта
ProjectsAPIGetProjectDatabasesGet /api/v1/projects/{project_id}/resources/databasesПолучение списка баз данных проекта
ProjectsAPIGetProjectDedicatedServersGet /api/v1/projects/{project_id}/resources/dedicatedПолучение списка выделенных серверов проекта
ProjectsAPIGetProjectServersGet /api/v1/projects/{project_id}/resources/serversПолучение списка серверов проекта
ProjectsAPIGetProjectStoragesGet /api/v1/projects/{project_id}/resources/bucketsПолучение списка хранилищ проекта
ProjectsAPIGetProjectsGet /api/v1/projectsПолучение списка проектов
ProjectsAPITransferResourceToAnotherProjectPut /api/v1/projects/{project_id}/resources/transferПеренести ресурс в другой проект
ProjectsAPIUpdateProjectPut /api/v1/projects/{project_id}Изменение проекта
S3APIAddStorageSubdomainCertificatePost /api/v1/storages/certificates/generateДобавление сертификата для поддомена хранилища
S3APIAddStorageSubdomainsPost /api/v1/storages/buckets/{bucket_id}/subdomainsДобавление поддоменов для хранилища
S3APICopyStorageFilePost /api/v1/storages/buckets/{bucket_id}/object-manager/copyКопирование файла/директории в хранилище
S3APICreateFolderInStoragePost /api/v1/storages/buckets/{bucket_id}/object-manager/mkdirСоздание директории в хранилище
S3APICreateStoragePost /api/v1/storages/bucketsСоздание хранилища
S3APIDeleteStorageDelete /api/v1/storages/buckets/{bucket_id}Удаление хранилища на аккаунте
S3APIDeleteStorageFileDelete /api/v1/storages/buckets/{bucket_id}/object-manager/removeУдаление файла/директории в хранилище
S3APIDeleteStorageSubdomainsDelete /api/v1/storages/buckets/{bucket_id}/subdomainsУдаление поддоменов хранилища
S3APIGetStorageFilesListGet /api/v1/storages/buckets/{bucket_id}/object-manager/listПолучение списка файлов в хранилище по префиксу
S3APIGetStorageSubdomainsGet /api/v1/storages/buckets/{bucket_id}/subdomainsПолучение списка поддоменов хранилища
S3APIGetStorageTransferStatusGet /api/v1/storages/buckets/{bucket_id}/transfer-statusПолучение статуса переноса хранилища от стороннего S3 в Timeweb Cloud
S3APIGetStorageUsersGet /api/v1/storages/usersПолучение списка пользователей хранилищ аккаунта
S3APIGetStoragesGet /api/v1/storages/bucketsПолучение списка хранилищ аккаунта
S3APIGetStoragesPresetsGet /api/v1/presets/storagesПолучение списка тарифов для хранилищ
S3APIRenameStorageFilePost /api/v1/storages/buckets/{bucket_id}/object-manager/renameПереименование файла/директории в хранилище
S3APITransferStoragePost /api/v1/storages/transferПеренос хранилища от стороннего провайдера S3 в Timeweb Cloud
S3APIUpdateStoragePatch /api/v1/storages/buckets/{bucket_id}Изменение хранилища на аккаунте
S3APIUpdateStorageUserPatch /api/v1/storages/users/{user_id}Изменение пароля пользователя-администратора хранилища
S3APIUploadFileToStoragePost /api/v1/storages/buckets/{bucket_id}/object-manager/uploadЗагрузка файлов в хранилище
SSHAPIAddKeyToServerPost /api/v1/servers/{server_id}/ssh-keysДобавление SSH-ключей на сервер
SSHAPICreateKeyPost /api/v1/ssh-keysСоздание SSH-ключа
SSHAPIDeleteKeyDelete /api/v1/ssh-keys/{ssh_key_id}Удаление SSH-ключа по уникальному идентификатору
SSHAPIDeleteKeyFromServerDelete /api/v1/servers/{server_id}/ssh-keys/{ssh_key_id}Удаление SSH-ключей с сервера
SSHAPIGetKeyGet /api/v1/ssh-keys/{ssh_key_id}Получение SSH-ключа по уникальному идентификатору
SSHAPIGetKeysGet /api/v1/ssh-keysПолучение списка SSH-ключей
SSHAPIUpdateKeyPatch /api/v1/ssh-keys/{ssh_key_id}Изменение SSH-ключа по уникальному идентификатору
ServersAPIAddServerIPPost /api/v1/servers/{server_id}/ipsДобавление IP-адреса сервера
ServersAPICloneServerPost /api/v1/servers/{server_id}/cloneКлонирование сервера
ServersAPICreateServerPost /api/v1/serversСоздание сервера
ServersAPICreateServerDiskPost /api/v1/servers/{server_id}/disksСоздание диска сервера
ServersAPICreateServerDiskBackupPost /api/v1/servers/{server_id}/disks/{disk_id}/backupsСоздание бэкапа диска сервера
ServersAPIDeleteServerDelete /api/v1/servers/{server_id}Удаление сервера
ServersAPIDeleteServerDiskDelete /api/v1/servers/{server_id}/disks/{disk_id}Удаление диска сервера
ServersAPIDeleteServerDiskBackupDelete /api/v1/servers/{server_id}/disks/{disk_id}/backups/{backup_id}Удаление бэкапа диска сервера
ServersAPIDeleteServerIPDelete /api/v1/servers/{server_id}/ipsУдаление IP-адреса сервера
ServersAPIGetConfiguratorsGet /api/v1/configurator/serversПолучение списка конфигураторов серверов
ServersAPIGetOsListGet /api/v1/os/serversПолучение списка операционных систем
ServersAPIGetServerGet /api/v1/servers/{server_id}Получение сервера
ServersAPIGetServerDiskGet /api/v1/servers/{server_id}/disks/{disk_id}Получение диска сервера
ServersAPIGetServerDiskAutoBackupSettingsGet /api/v1/servers/{server_id}/disks/{disk_id}/auto-backupsПолучить настройки автобэкапов диска сервера
ServersAPIGetServerDiskBackupGet /api/v1/servers/{server_id}/disks/{disk_id}/backups/{backup_id}Получение бэкапа диска сервера
ServersAPIGetServerDiskBackupsGet /api/v1/servers/{server_id}/disks/{disk_id}/backupsПолучение списка бэкапов диска сервера
ServersAPIGetServerDisksGet /api/v1/servers/{server_id}/disksПолучение списка дисков сервера
ServersAPIGetServerIPsGet /api/v1/servers/{server_id}/ipsПолучение списка IP-адресов сервера
ServersAPIGetServerLogsGet /api/v1/servers/{server_id}/logsПолучение списка логов сервера
ServersAPIGetServerStatisticsGet /api/v1/servers/{server_id}/statisticsПолучение статистики сервера
ServersAPIGetServersGet /api/v1/serversПолучение списка серверов
ServersAPIGetServersPresetsGet /api/v1/presets/serversПолучение списка тарифов серверов
ServersAPIGetSoftwareGet /api/v1/software/serversПолучение списка ПО из маркетплейса
ServersAPIHardShutdownServerPost /api/v1/servers/{server_id}/hard-shutdownПринудительное выключение сервера
ServersAPIImageUnmountAndServerReloadPost /api/v1/servers/{server_id}/image-unmountОтмонтирование ISO образа и перезагрузка сервера
ServersAPIPerformActionOnBackupPost /api/v1/servers/{server_id}/disks/{disk_id}/backups/{backup_id}/actionВыполнение действия над бэкапом диска сервера
ServersAPIPerformActionOnServerPost /api/v1/servers/{server_id}/actionВыполнение действия над сервером
ServersAPIRebootServerPost /api/v1/servers/{server_id}/rebootПерезагрузка сервера
ServersAPIResetServerPasswordPost /api/v1/servers/{server_id}/reset-passwordСброс пароля сервера
ServersAPIShutdownServerPost /api/v1/servers/{server_id}/shutdownВыключение сервера
ServersAPIStartServerPost /api/v1/servers/{server_id}/startЗапуск сервера
ServersAPIUpdateServerPatch /api/v1/servers/{server_id}Изменение сервера
ServersAPIUpdateServerDiskPatch /api/v1/servers/{server_id}/disks/{disk_id}Изменение параметров диска сервера
ServersAPIUpdateServerDiskAutoBackupSettingsPatch /api/v1/servers/{server_id}/disks/{disk_id}/auto-backupsИзменение настроек автобэкапов диска сервера
ServersAPIUpdateServerDiskBackupPatch /api/v1/servers/{server_id}/disks/{disk_id}/backups/{backup_id}Изменение бэкапа диска сервера
ServersAPIUpdateServerIPPatch /api/v1/servers/{server_id}/ipsИзменение IP-адреса сервера
ServersAPIUpdateServerNATPatch /api/v1/servers/{server_id}/local-networks/nat-modeИзменение правил маршрутизации трафика сервера (NAT)
ServersAPIUpdateServerOSBootModePost /api/v1/servers/{server_id}/boot-modeВыбор типа загрузки операционной системы сервера
VPCAPICreateVPCPost /api/v2/vpcsСоздание VPC
VPCAPIDeleteVPCDelete /api/v1/vpcs/{vpc_id}Удаление VPC по идентификатору сети
VPCAPIGetVPCGet /api/v2/vpcs/{vpc_id}Получение VPC
VPCAPIGetVPCPortsGet /api/v1/vpcs/{vpc_id}/portsПолучение списка портов для VPC
VPCAPIGetVPCServicesGet /api/v2/vpcs/{vpc_id}/servicesПолучение списка сервисов в VPC
VPCAPIGetVPCsGet /api/v2/vpcsПолучение списка VPCs
VPCAPIUpdateVPCsPatch /api/v2/vpcs/{vpc_id}Изменение VPC по идентификатору сети

Documentation For Models

Documentation For Authorization

Authentication schemes defined for the API:

Bearer

  • Type: HTTP Bearer token authentication

Example

auth := context.WithValue(context.Background(), sw.ContextAccessToken, "BEARER_TOKEN_STRING")
r, err := client.Service.Operation(auth, args)

Documentation for Utility Methods

Due to the fact that model structure members are all pointers, this package contains a number of utility functions to easily obtain pointers to values of basic types. Each of these functions takes a value of the given basic type and returns a pointer to it:

  • PtrBool
  • PtrInt
  • PtrInt32
  • PtrInt64
  • PtrFloat
  • PtrFloat32
  • PtrFloat64
  • PtrString
  • PtrTime

Author

[email protected]