timeweb-cloud


Nametimeweb-cloud JSON
Version 0.12.2 PyPI version JSON
download
home_pagehttps://github.com/LulzLoL231/timeweb-cloud
SummaryTimeweb Cloud API wrapper
upload_time2023-03-12 17:14:16
maintainer
docs_urlNone
authorMaxim Mosin
requires_python>=3.10,<4.0
licenseMIT
keywords timeweb timeweb.cloud api wrapper
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # timeweb-cloud
API Timeweb Cloud позволяет вам управлять ресурсами в облаке программным способом с использованием обычных HTTP-запросов.

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

Эта библиотека позволяет вам легко использовать API Timeweb Cloud в вашем приложении на Python.

[Документация API](https://timeweb.cloud/api-docs)

[![OpenAPI etag: 6409ee1d-10cd8d](https://img.shields.io/badge/OpenAPI%20etag-6409ee1d--10cd8d-blue)](https://github.com/LulzLoL231/timeweb-cloud/wiki/) [Как определяется etag?](#etag)

[![PyPI version](https://badge.fury.io/py/timeweb-cloud.svg)](https://badge.fury.io/py/timeweb-cloud) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/timeweb-cloud)](https://pypi.org/project/timeweb-cloud/) [![PyPI - Downloads](https://img.shields.io/pypi/dm/timeweb-cloud)](https://pypi.org/project/timeweb-cloud/) [![PyPI - License](https://img.shields.io/pypi/l/timeweb-cloud)](https://github.com/LulzLoL231/timeweb-cloud/blob/master/LICENSE)

## Установка

```bash
pip install timeweb-cloud
```

## Пример использования
Библиотека поддерживает синхронный и асинхронный варианты использования. В примерах ниже используется синхронный вариант, но вы можете использовать асинхронный вариант, заменив `tw = Timeweb(...)` на `tw = AsyncTimeweb(...)`

```python
from timeweb import Timeweb

tw = Timeweb('token')
account_status = tw.account.get_status()  # schemas.account.AccountStatus
print(account_status)
```

## Что доступно?

 - [x] Аккаунт `tw.account`
 - [x] Базы данных `tw.dbs`
 - [x] Балансировщики `tw.balancers`
 - [x] Выделенные серверы `tw.servers.dedics`
 - [x] Домены `tw.domains`
 - [x] Облачные серверы `tw.servers.cloud`
 - [x] Образы `tw.images`
 - [x] Проекты `tw.projects`
 - [x] Токены API `tw.tokens`
 - [x] Kubernetes `tw.k8s`
 - [x] S3-хранилище `tw.s3`
 - [x] SSH-ключи `tw.ssh_keys`
 - [x] Почта `tw.mail`

## Etag
Etag - это уникальный идентификатор, который используется для проверки изменений в API. Он будет использоваться чтобы определять текущею версию Swagger API, т.к. сейчас Swagger API Timeweb Cloud не имеет версионности и/или changelog'а. Получается он из запроса к спецификации OpenAPI по ссылке https://timeweb.cloud/api-docs-data/bundle.json. Сервер сам его возвращает и мы пока операемся на него. В будущем, когда/если Swagger API Timeweb Cloud будет иметь версионность и/или changelog, будем опираться на их версию Swagger API.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/LulzLoL231/timeweb-cloud",
    "name": "timeweb-cloud",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10,<4.0",
    "maintainer_email": "",
    "keywords": "timeweb,timeweb.cloud,api,wrapper",
    "author": "Maxim Mosin",
    "author_email": "max@mosin.pw",
    "download_url": "https://files.pythonhosted.org/packages/d9/7c/641a12b55db1cef454aa3bc6eabf75351b37ae148676dfeb5487b0c5756a/timeweb_cloud-0.12.2.tar.gz",
    "platform": null,
    "description": "# timeweb-cloud\nAPI Timeweb Cloud \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0430\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u0432 \u043e\u0431\u043b\u0430\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043e\u0431\u044b\u0447\u043d\u044b\u0445 HTTP-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.\n\n\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 \u043f\u0430\u043d\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f Timeweb Cloud, \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0447\u0435\u0440\u0435\u0437 API, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0430\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u0448\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438.\n\n\u042d\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0430\u043c \u043b\u0435\u0433\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c API Timeweb Cloud \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043d\u0430 Python.\n\n[\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f API](https://timeweb.cloud/api-docs)\n\n[![OpenAPI etag: 6409ee1d-10cd8d](https://img.shields.io/badge/OpenAPI%20etag-6409ee1d--10cd8d-blue)](https://github.com/LulzLoL231/timeweb-cloud/wiki/) [\u041a\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f etag?](#etag)\n\n[![PyPI version](https://badge.fury.io/py/timeweb-cloud.svg)](https://badge.fury.io/py/timeweb-cloud) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/timeweb-cloud)](https://pypi.org/project/timeweb-cloud/) [![PyPI - Downloads](https://img.shields.io/pypi/dm/timeweb-cloud)](https://pypi.org/project/timeweb-cloud/) [![PyPI - License](https://img.shields.io/pypi/l/timeweb-cloud)](https://github.com/LulzLoL231/timeweb-cloud/blob/master/LICENSE)\n\n## \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n\n```bash\npip install timeweb-cloud\n```\n\n## \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\n\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u0438 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u043d\u0438\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u043d\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u0437\u0430\u043c\u0435\u043d\u0438\u0432 `tw = Timeweb(...)` \u043d\u0430 `tw = AsyncTimeweb(...)`\n\n```python\nfrom timeweb import Timeweb\n\ntw = Timeweb('token')\naccount_status = tw.account.get_status()  # schemas.account.AccountStatus\nprint(account_status)\n```\n\n## \u0427\u0442\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e?\n\n - [x] \u0410\u043a\u043a\u0430\u0443\u043d\u0442 `tw.account`\n - [x] \u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 `tw.dbs`\n - [x] \u0411\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0438 `tw.balancers`\n - [x] \u0412\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u044b `tw.servers.dedics`\n - [x] \u0414\u043e\u043c\u0435\u043d\u044b `tw.domains`\n - [x] \u041e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u044b `tw.servers.cloud`\n - [x] \u041e\u0431\u0440\u0430\u0437\u044b `tw.images`\n - [x] \u041f\u0440\u043e\u0435\u043a\u0442\u044b `tw.projects`\n - [x] \u0422\u043e\u043a\u0435\u043d\u044b API `tw.tokens`\n - [x] Kubernetes `tw.k8s`\n - [x] S3-\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 `tw.s3`\n - [x] SSH-\u043a\u043b\u044e\u0447\u0438 `tw.ssh_keys`\n - [x] \u041f\u043e\u0447\u0442\u0430 `tw.mail`\n\n## Etag\nEtag - \u044d\u0442\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 API. \u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0435\u044e \u0432\u0435\u0440\u0441\u0438\u044e Swagger API, \u0442.\u043a. \u0441\u0435\u0439\u0447\u0430\u0441 Swagger API Timeweb Cloud \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0432\u0435\u0440\u0441\u0438\u043e\u043d\u043d\u043e\u0441\u0442\u0438 \u0438/\u0438\u043b\u0438 changelog'\u0430. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u043d \u0438\u0437 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 OpenAPI \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 https://timeweb.cloud/api-docs-data/bundle.json. \u0421\u0435\u0440\u0432\u0435\u0440 \u0441\u0430\u043c \u0435\u0433\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438 \u043c\u044b \u043f\u043e\u043a\u0430 \u043e\u043f\u0435\u0440\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u043d\u0435\u0433\u043e. \u0412 \u0431\u0443\u0434\u0443\u0449\u0435\u043c, \u043a\u043e\u0433\u0434\u0430/\u0435\u0441\u043b\u0438 Swagger API Timeweb Cloud \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u043e\u043d\u043d\u043e\u0441\u0442\u044c \u0438/\u0438\u043b\u0438 changelog, \u0431\u0443\u0434\u0435\u043c \u043e\u043f\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044e Swagger API.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Timeweb Cloud API wrapper",
    "version": "0.12.2",
    "split_keywords": [
        "timeweb",
        "timeweb.cloud",
        "api",
        "wrapper"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6f134f6643ff79468fa39c43f1ba8f6120164a50cb79b1fc77a4d753b394d405",
                "md5": "a93f6ddf1ef51005acf373d63642be55",
                "sha256": "949a6d69e916bbac04538b0dfa136f21102b00c7d08bf52f3d7db9a3614fcb80"
            },
            "downloads": -1,
            "filename": "timeweb_cloud-0.12.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a93f6ddf1ef51005acf373d63642be55",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10,<4.0",
            "size": 136725,
            "upload_time": "2023-03-12T17:14:14",
            "upload_time_iso_8601": "2023-03-12T17:14:14.481459Z",
            "url": "https://files.pythonhosted.org/packages/6f/13/4f6643ff79468fa39c43f1ba8f6120164a50cb79b1fc77a4d753b394d405/timeweb_cloud-0.12.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d97c641a12b55db1cef454aa3bc6eabf75351b37ae148676dfeb5487b0c5756a",
                "md5": "a214f206fa117fdcfdf841a64b4768f9",
                "sha256": "ec2b06cf7491453b86909e9d996ee2ccda9493b78087ea6b28f71bd537335c36"
            },
            "downloads": -1,
            "filename": "timeweb_cloud-0.12.2.tar.gz",
            "has_sig": false,
            "md5_digest": "a214f206fa117fdcfdf841a64b4768f9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10,<4.0",
            "size": 84307,
            "upload_time": "2023-03-12T17:14:16",
            "upload_time_iso_8601": "2023-03-12T17:14:16.153001Z",
            "url": "https://files.pythonhosted.org/packages/d9/7c/641a12b55db1cef454aa3bc6eabf75351b37ae148676dfeb5487b0c5756a/timeweb_cloud-0.12.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-03-12 17:14:16",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "LulzLoL231",
    "github_project": "timeweb-cloud",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "timeweb-cloud"
}
        
Elapsed time: 0.04679s