cedricziel / php-hetzner-cloud-api
Hetzner Cloud API 的 PHP 客户端
v0.1.0
2018-04-18 06:56 UTC
Requires
- php: ^7.0
- php-http/client-common: ^1.6
- php-http/client-implementation: ^1.0
- php-http/discovery: ^1.2
- php-http/httplug: ^1.1
- php-http/multipart-stream-builder: ^1.0
- symfony/options-resolver: ^4.0
Suggests
- php-http/httplug-bundle: For a deeper integration into Symfony
This package is auto-updated.
Last update: 2024-08-28 11:47:16 UTC
README
这是一个 Hetzner Cloud APIs 的 API 客户端库。
API 密钥可以通过项目设置获取。
安装
composer require cedricziel/php-hetzner-cloud-api
配置和基本用法
$token = '...'; // create an api client $client = new \CedricZiel\HetznerCloudAPI\Client(); // set the credentials on your client $client->authenticate($token); // retrieve a list of servers $client->servers->all();
可用的客户端
操作
操作显示对 API 的异步请求的结果和进度。
// retrieve all actions $actions = $client->actions->all(); // get one action $action = $client->actions->show($actionId);
图片
图片是虚拟机磁盘的蓝图。
// retrieve all images $images = $client->images->all(); // get one image $image = $client->images->show($imageId);
定价
返回平台上的所有资源的定价。计算中使用项目所有者的增值税和货币。
响应中包含净价和毛价。
// retrieve all prices $prices = $client->pricing->all();
服务器
服务器是可以部署的虚拟机。
// retrieve all servers $server = $client->servers->all(); // get one server $server = $client->servers->show($serverId); // create a server $server = $client->servers->create($parameters); // rename a server $server = $client->servers->rename($serverId, $newName); // remove a server $client->servers->remove($serverId);
ServerActions
对您的服务器应用操作并检索进度/状态消息。
// retrieve all server actions $actions = $client->server_actions->all(); // get one server action $action = $client->server_actions->show($actionId); // powerOn $action = $client->server_actions->powerOn($serverId); // reboot $action = $client->server_actions->reboot($serverId); // reset $action = $client->server_actions->reset($serverId); // powerOn $action = $client->server_actions->powerOn($serverId); // shutdown $action = $client->server_actions->shutdown($serverId); // powerOff $action = $client->server_actions->powerOff($serverId); // resetPassword $action = $client->server_actions->resetPassword($serverId); // enableRescueMode $action = $client->server_actions->enableRescueMode($serverId); // disableRescueMode $action = $client->server_actions->disableRescueMode($serverId); // createImage $action = $client->server_actions->createImage($serverId, $parameters); // rebuild $action = $client->server_actions->rebuild($serverId, $parameters); // changeType $action = $client->server_actions->changeType($serverId, $parameters); // enableBackup $action = $client->server_actions->enableBackup($serverId, $parameters); // disableBackup $action = $client->server_actions->disableBackup($serverId); // attachIso $action = $client->server_actions->attachIso($serverId, $parameters); // detachIso $action = $client->server_actions->detachIso($serverId); // changeDnsPtr $action = $client->server_actions->changeDnsPtr($serverId, $parameters); // changeProtection $action = $client->server_actions->detachIso($serverId, $parameters); // requestConsole $action = $client->server_actions->requestConsole($serverId);
SSH 密钥
SSH 密钥是您提供给云系统的公钥。
// retrieve all SSH Keys $keys = $client->ssh_keys->all(); // get one SSH Key $key = $client->ssh_keys->show($keyId); // create a SSH Key $key = $client->ssh_keys->create($parameters); // rename a SSH Key $key = $client->ssh_keys->rename($keyId, $name); // remove a SSH Key $key = $client->ssh_keys->remove($keyId);
与 Symfony 一起使用
此库使用 httpplug 客户端库。项目提供了一个 Symfony 扩展包。安装后,您可以直接集成客户端库,以便使 API 查询可见并可调试
# in config/services.yaml parameters: hetzner_token: '...' # Hetzner API Base Client CedricZiel\HetznerCloudAPI\Client: factory: ['CedricZiel\HetznerCloudAPI\Client', 'createWithHttpClient'] arguments: - '@httplug.client.app' calls: - ['authenticate', ['%hetzner_token%', !php/const CedricZiel\HetznerCloudAPI\Client::AUTH_HTTP_TOKEN]] # You can add a client service for the different resource types if you like: CedricZiel\HetznerCloudAPI\Api\DataCenters: factory: ['@CedricZiel\HetznerCloudAPI\Client', 'api'] arguments: - 'data_centers' CedricZiel\HetznerCloudAPI\Api\ServerTypes: factory: ['@CedricZiel\HetznerCloudAPI\Client', 'api'] arguments: - 'server_types'
致谢
该项目深受 @m4tthumphrey 的 Gitlab PHP API 客户端 的启发。
许可
MIT