kanta-inc / scaleway-php-client
Scaleway PHP API 客户端是 Scaleway API 的 PHP 客户端。它是由 OpenAPI 规范生成的。
Requires
- php: ^7.4 || ^8.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/psr7: ^1.7 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.5
- phpunit/phpunit: ^8.0 || ^9.0
This package is auto-updated.
Last update: 2024-09-30 11:31:30 UTC
README
Scaleway 实例是云中的虚拟机。不同的 实例类型 提供了不同的技术规格,包括 vCPU、RAM、带宽和存储。一旦你创建了实例并安装了你选择的镜像(例如操作系统),你就可以通过 SSH 连接到实例,按需使用它。当你完成实例的使用后,你可以从你的账户中删除它。
(switchcolumn) <Message type="tip"> 要检索有关可在 Scaleway 实例上安装的不同 镜像 的信息,请查看我们的 Marketplace API。 (switchcolumn)
概念
请参阅我们的 专用概念页面,以查找与实例相关的所有概念和术语的定义。
(switchcolumn) (switchcolumn)
快速入门
-
配置环境变量
<Message type="note"> 这是一个可选步骤,旨在简化您对实例 API 的使用。有关选择可用性区域的帮助,请参阅下面的 可用性区域。你可以在 Scaleway 控制台 中找到你的项目 ID。
export SCW_SECRET_KEY=\"<API secret key>\" export SCW_DEFAULT_ZONE=\"<Scaleway Availability Zone>\" export SCW_PROJECT_ID=\"<Scaleway Project ID>\"
-
创建实例:运行以下命令创建实例。您可以根据需要自定义有效负载中的详细信息(名称、描述、类型、标签等):使用以下信息根据需要调整有效负载。
curl -X POST \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -H \"Content-Type: application/json\" \\ \"https://api.scaleway.com/instance/v1/zones/$SCW_DEFAULT_ZONE/servers\" \\ -d '{ \"name\": \"my-new-instance\", \"project\": \"'\"$SCW_PROJECT_ID\"'\", \"commercial_type\": \"GP1-S\", \"image\": \"544f0add-626b-4e4f-8a96-79fa4414d99a\", \"enable_ipv6\": true, \"volumes\": { \"0\":{ \"name\": \"my-volume\", \"size\": 300000000000, \"volume_type\": \"l_ssd\" } } }'
| Parameter | Description | Valid values || --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
name| 实例的名称(字符串) | 仅包含字母数字字符、点、空格和短划线的字符串,例如\"my-new-instance\"。 | |project| 应在该实例中创建的项目(字符串) | 任何有效的Scaleway项目ID(见上文),例如\"b4bd99e0-b389-11ed-afa1-0242ac120002\"。 | |commercial-type| 要创建的商业实例类型(字符串) | 任何有效的Scaleway商业实例类型的ID,例如\"GP1-S\",\"PRO2-M\"。使用实例类型列表端点获取所有有效实例类型及其ID。 | |image| 要安装在实例上的镜像,例如特定的操作系统(字符串) | 任何有效的Scaleway镜像ID,例如代表Ubuntu 22.04 Jammy Jellyfish镜像的544f0add-626b-4e4f-8a96-79fa4414d99a。使用实例镜像列表端点获取所有可用镜像及其ID,或查看Scaleway Marketplace API。 | |enable_ipv6| 是否在实例上启用IPv6(布尔值) |true或false| |volumes| 一个指定要附加到实例的存储卷的对象。更多信息请参阅技术信息部分中的“创建实例:存储卷对象”。 | 一个(字典)对象,至少有一个键(\"0\"),其值是另一个对象,包含参数\"name\"(卷的名称)、\"size\"(卷的大小,以字节为单位)和\"volume_type\"(\"l_ssd\"、\"b_ssd\"或\"unified\")。额外的键用于额外的卷,每次递增1(第二个卷的键为1)。还提供其他参数,可以附加现有的卷而不是创建一个新的,或从快照创建卷。 | -
列出实例:运行以下命令以获取您帐户中所有实例及其详细信息的列表
curl -X GET \\ -H \"Content-Type: application/json\" \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ \"https://api.scaleway.com/instance/v1/zones/$SCW_DEFAULT_ZONE/servers/\"
-
删除实例:运行以下命令以删除指定的实例,指定实例ID
curl -X DELETE \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -H \"Content-Type: application/json\" \\ \"https://api.scaleway.com/instance/v1/zones/$SCW_DEFAULT_ZONE/servers/<Instance-ID>\"
预期的成功响应为空。
(switchcolumn) <Message type="requirement">
- 您有一个Scaleway帐户
- 您已创建API密钥,并且该API密钥具有执行本页所述操作的足够IAM权限
- 您已安装curl
技术信息
可用区
实例可以部署在以下可用区
(switchcolumn) (switchcolumn)
分页
大多数列表请求都会收到分页响应。针对分页端点的请求接受两个 query 参数
page,一个正整数,用于选择要返回的页面。per_page,一个小于或等于100的正整数,用于选择每页要返回的项目数。默认值为50。
分页端点通常也接受过滤器来搜索和排序结果。这些过滤器在每个端点文档中都有说明。
X-Total-Count 头部包含返回的项目总数。
(switchcolumn) (switchcolumn)
创建实例:卷对象
在创建实例时,volumes 对象是有效负载的必需部分。这是一个字典,至少有一个键(\"0\"),其值是另一个对象,用于设置该卷的参数。对于额外的卷,额外的键应每次增加1(第二个卷将有一个键为1。)
请注意,卷的size必须遵守实例的commercial_type的卷约束:对于每种类型的实例,都需要一定量的存储,同时也有一个上限,不能超过。某些实例类型仅支持块存储(b_ssd),其他类型还支持本地存储(l_ssd)。有关这些约束的更多信息,请参阅列出实例类型文档,特别是响应中列出的每种类型的volume_constraints参数
您可以使用不同的方式使用volumes对象。下表显示了以下用例中每个用例所需的参数
(switchcolumn) <Message type="note"> 此信息旨在帮助您在创建实例或更新实例方法时正确配置volumes对象。(switchcolumn)
更进一步
要了解有关使用Scaleway实例的更多信息,请参阅以下资源
安装和用法
要求
PHP 7.4及更高版本。也应该与PHP 8.0兼容。
Composer
要使用Composer安装绑定,请在composer.json中添加以下内容
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/GIT_USER_ID/GIT_REPO_ID.git"
}
],
"require": {
"GIT_USER_ID/GIT_REPO_ID": "*@dev"
}
}
然后运行composer install
手动安装
下载文件并包含autoload.php
<?php require_once('/path/to/OpenAPIClient-php/vendor/autoload.php');
入门
请遵循安装过程,然后运行以下内容
<?php require_once(__DIR__ . '/vendor/autoload.php'); // Configure API key authorization: scaleway $config = OpenAPI\Client\Configuration::getDefaultConfiguration()->setApiKey('X-Auth-Token', 'YOUR_API_KEY'); // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed // $config = OpenAPI\Client\Configuration::getDefaultConfiguration()->setApiKeyPrefix('X-Auth-Token', 'Bearer'); $apiInstance = new OpenAPI\Client\Api\BootscriptsApi( // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`. // This is optional, `GuzzleHttp\Client` will be used as default. new GuzzleHttp\Client(), $config ); $zone = 'zone_example'; // string | The zone you want to target $bootscript_id = 'bootscript_id_example'; // string try { $result = $apiInstance->getBootscript($zone, $bootscript_id); print_r($result); } catch (Exception $e) { echo 'Exception when calling BootscriptsApi->getBootscript: ', $e->getMessage(), PHP_EOL; }
API端点
所有URI都是相对于https://api.scaleway.com
模型
- ApplyBlockMigrationRequest
- AttachServerVolumeRequest
- CreateImageRequest
- CreateImageRequestExtraVolumes
- CreateIpRequest
- CreatePlacementGroupRequest
- CreatePrivateNICRequest
- CreateSecurityGroupRequest
- CreateSecurityGroupRuleRequest
- CreateServerRequest
- CreateServerRequestVolumes
- CreateSnapshotRequest
- CreateVolumeRequest
- DetachServerVolumeRequest
- ExportSnapshotRequest
- PlanBlockMigrationRequest
- ScalewayInstanceV1Arch
- ScalewayInstanceV1AttachServerVolumeRequestVolumeType
- ScalewayInstanceV1AttachServerVolumeResponse
- ScalewayInstanceV1BootType
- ScalewayInstanceV1Bootscript
- ScalewayInstanceV1CreateImageResponse
- ScalewayInstanceV1CreateIpResponse
- ScalewayInstanceV1CreatePlacementGroupResponse
- ScalewayInstanceV1CreatePrivateNICResponse
- ScalewayInstanceV1CreateSecurityGroupResponse
- ScalewayInstanceV1CreateSecurityGroupRuleResponse
- ScalewayInstanceV1CreateServerResponse
- ScalewayInstanceV1CreateSnapshotResponse
- ScalewayInstanceV1CreateVolumeResponse
- ScalewayInstanceV1Dashboard
- ScalewayInstanceV1DashboardServersByTypes
- ScalewayInstanceV1DetachServerVolumeResponse
- ScalewayInstanceV1ExportSnapshotResponse
- ScalewayInstanceV1GetBootscriptResponse
- ScalewayInstanceV1GetDashboardResponse
- ScalewayInstanceV1GetImageResponse
- ScalewayInstanceV1GetIpResponse
- ScalewayInstanceV1GetPlacementGroupResponse
- ScalewayInstanceV1GetPlacementGroupServersResponse
- ScalewayInstanceV1GetPrivateNICResponse
- ScalewayInstanceV1GetSecurityGroupResponse
- ScalewayInstanceV1GetSecurityGroupRuleResponse
- ScalewayInstanceV1GetServerResponse
- ScalewayInstanceV1GetServerTypesAvailabilityResponse
- ScalewayInstanceV1GetServerTypesAvailabilityResponseAvailability
- ScalewayInstanceV1GetServerTypesAvailabilityResponseServers
- ScalewayInstanceV1GetSnapshotResponse
- ScalewayInstanceV1GetVolumeResponse
- ScalewayInstanceV1Image
- ScalewayInstanceV1ImageState
- ScalewayInstanceV1Ip
- ScalewayInstanceV1IpState
- ScalewayInstanceV1IpType
- ScalewayInstanceV1ListBootscriptsResponse
- ScalewayInstanceV1ListImagesResponse
- ScalewayInstanceV1ListIpsResponse
- ScalewayInstanceV1ListPlacementGroupsResponse
- ScalewayInstanceV1ListPrivateNICsResponse
- ScalewayInstanceV1ListSecurityGroupRulesResponse
- ScalewayInstanceV1ListSecurityGroupsResponse
- ScalewayInstanceV1ListServerActionsResponse
- ScalewayInstanceV1ListServerUserDataResponse
- ScalewayInstanceV1ListServersResponse
- ScalewayInstanceV1ListServersTypesResponse
- ScalewayInstanceV1ListServersTypesResponseServers
- ScalewayInstanceV1ListSnapshotsResponse
- ScalewayInstanceV1ListVolumesResponse
- ScalewayInstanceV1ListVolumesTypesResponse
- ScalewayInstanceV1ListVolumesTypesResponseVolumes
- ScalewayInstanceV1MigrationPlan
- ScalewayInstanceV1MigrationPlanVolume
- ScalewayInstanceV1PlacementGroup
- ScalewayInstanceV1PlacementGroupPolicyMode
- ScalewayInstanceV1PlacementGroupPolicyType
- ScalewayInstanceV1PlacementGroupServer
- ScalewayInstanceV1PrivateNIC
- ScalewayInstanceV1SecurityGroup
- ScalewayInstanceV1SecurityGroupRule
- ScalewayInstanceV1SecurityGroupRuleAction
- ScalewayInstanceV1SecurityGroupRuleDirection
- ScalewayInstanceV1SecurityGroupRuleProtocol
- ScalewayInstanceV1SecurityGroupTemplate
- ScalewayInstanceV1Server
- ScalewayInstanceV1ServerAction
- ScalewayInstanceV1ServerActionRequestVolumeBackupTemplate
- ScalewayInstanceV1ServerActionResponse
- ScalewayInstanceV1ServerBootscript
- ScalewayInstanceV1ServerImage
- ScalewayInstanceV1ServerIp
- ScalewayInstanceV1ServerIpv6
- ScalewayInstanceV1ServerLocation
- ScalewayInstanceV1ServerMaintenance
- ScalewayInstanceV1ServerPlacementGroup
- ScalewayInstanceV1ServerPublicIp
- ScalewayInstanceV1ServerSecurityGroup
- ScalewayInstanceV1ServerSummary
- ScalewayInstanceV1ServerType
- ScalewayInstanceV1ServerTypeCapabilities
- ScalewayInstanceV1ServerTypeNetwork
- ScalewayInstanceV1ServerTypeNetworkInterface
- ScalewayInstanceV1ServerTypePerVolumeConstraint
- ScalewayInstanceV1ServerTypePerVolumeConstraintLSsd
- ScalewayInstanceV1ServerTypeVolumesConstraint
- ScalewayInstanceV1ServerTypesAvailability
- ScalewayInstanceV1ServerVolumes
- ScalewayInstanceV1SetImageResponse
- ScalewayInstanceV1SetPlacementGroupResponse
- ScalewayInstanceV1SetPlacementGroupServersResponse
- ScalewayInstanceV1SetSecurityGroupResponse
- ScalewayInstanceV1SetSecurityGroupRuleResponse
- ScalewayInstanceV1SetSecurityGroupRulesRequestRule
- ScalewayInstanceV1SetSecurityGroupRulesResponse
- ScalewayInstanceV1SetSnapshotResponse
- ScalewayInstanceV1SetVolumeResponse
- ScalewayInstanceV1Snapshot
- ScalewayInstanceV1SnapshotBaseVolume
- ScalewayInstanceV1SnapshotState
- ScalewayInstanceV1Task
- ScalewayInstanceV1UpdateImageResponse
- ScalewayInstanceV1UpdateIpResponse
- ScalewayInstanceV1UpdatePlacementGroupResponse
- ScalewayInstanceV1UpdatePlacementGroupServersResponse
- ScalewayInstanceV1UpdateSecurityGroupResponse
- ScalewayInstanceV1UpdateSecurityGroupRuleResponse
- ScalewayInstanceV1UpdateServerResponse
- ScalewayInstanceV1UpdateSnapshotResponse
- ScalewayInstanceV1UpdateVolumeResponse
- ScalewayInstanceV1Volume
- ScalewayInstanceV1VolumeImageUpdateTemplate
- ScalewayInstanceV1VolumeServer
- ScalewayInstanceV1VolumeServerState
- ScalewayInstanceV1VolumeServerTemplate
- ScalewayInstanceV1VolumeServerVolumeType
- ScalewayInstanceV1VolumeSummary
- ScalewayInstanceV1VolumeTemplate
- ScalewayInstanceV1VolumeType
- ScalewayInstanceV1VolumeTypeCapabilities
- ScalewayInstanceV1VolumeTypeConstraints
- ScalewayInstanceV1VolumeVolumeType
- ScalewayStdFile
- ServerActionRequest
- ServerActionRequestVolumes
- SetImageRequest
- SetImageRequestExtraVolumes
- SetPlacementGroupRequest
- SetPlacementGroupServersRequest
- SetSecurityGroupRequest
- SetSecurityGroupRuleRequest
- SetSecurityGroupRulesRequest
- SetSnapshotRequest
- SetVolumeRequest
- SetVolumeRequestServer
- UpdateImageRequest
- UpdateImageRequestExtraVolumes
- 更新IP请求
- 更新放置组请求
- 更新私有NIC请求
- 更新安全组请求
- 更新安全组规则请求
- 更新服务器请求
- 更新服务器请求卷
- 更新快照请求
- 更新卷请求
授权
为API定义的认证方案
scaleway
- 类型: API密钥
- API密钥参数名: X-Auth-Token
- 位置: HTTP头
测试
要运行测试,使用
composer install vendor/bin/phpunit
作者
关于此包
此PHP包是由OpenAPI Generator项目自动生成的
- API版本:
v1 - 构建包:
org.openapitools.codegen.languages.PhpClientCodegen