cedricziel/php-hetzner-cloud-api

Hetzner Cloud API 的 PHP 客户端

v0.1.0 2018-04-18 06:56 UTC

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 的异步请求的结果和进度。

源码(HCloud API 文档)

// retrieve all actions
$actions = $client->actions->all();

// get one action
$action = $client->actions->show($actionId);

图片

图片是虚拟机磁盘的蓝图。

源码(HCloud API 文档)

// retrieve all images
$images = $client->images->all();

// get one image
$image = $client->images->show($imageId);

定价

返回平台上的所有资源的定价。计算中使用项目所有者的增值税和货币。

响应中包含净价和毛价。

源码(HCloud API 文档)

// retrieve all prices
$prices = $client->pricing->all();

服务器

服务器是可以部署的虚拟机。

源码(HCloud API 文档)

// 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

对您的服务器应用操作并检索进度/状态消息。

源码(HCloud API 文档)

// 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 密钥是您提供给云系统的公钥。

源码(HCloud API 文档)

// 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