Initial commit.

This commit is contained in:
Pierre Lannoy 2025-03-03 16:35:54 +01:00
commit b6be743548
Signed by: Pierre Lannoy
GPG key ID: D27231EF87D53F31
93 changed files with 23955 additions and 0 deletions

15
.gitignore vendored Normal file
View file

@ -0,0 +1,15 @@
# ref: https://github.com/github/gitignore/blob/master/Composer.gitignore
composer.phar
/vendor/
# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
# composer.lock
# php-cs-fixer cache
.php_cs.cache
.php-cs-fixer.cache
# PHPUnit cache
.phpunit.result.cache

8
.idea/.gitignore generated vendored Normal file
View file

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

1
.idea/.name generated Normal file
View file

@ -0,0 +1 @@
Scaleway APIs : Block-Storage

8
.idea/Scaleway APIs : Block-Storage.iml generated Normal file
View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View file

@ -0,0 +1,34 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="DuplicatedCode" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<Languages>
<language isEnabled="false" name="PHP" />
</Languages>
</inspection_tool>
<inspection_tool class="PhpAssignmentInConditionInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PhpCSFixerValidationInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="CODING_STANDARD" value="PHP71Migration" />
</inspection_tool>
<inspection_tool class="PhpCSValidationInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="CODING_STANDARD" value="WordPress-Extra" />
<option name="USE_INSTALLED_PATHS" value="true" />
<option name="INSTALLED_PATHS" value="$USER_HOME$/Php/wpcs" />
</inspection_tool>
<inspection_tool class="PhpDivisionByZeroInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PhpDocMissingThrowsInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="PhpMethodOrClassCallIsNotCaseSensitiveInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PhpMissingDocCommentInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PhpMissingParentCallCommonInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="PhpMissingParentCallMagicInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PhpMultipleClassesDeclarationsInOneFile" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PhpNonCanonicalElementsOrderInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="PhpStaticAsDynamicMethodCallInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="PhpTraditionalSyntaxArrayLiteralInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PhpUndefinedCallbackInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PhpUnitCoversFunctionWithoutScopeResolutionOperatorInspection" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="PhpUnitMissingTargetForTestInspection" enabled="false" level="INFORMATION" enabled_by_default="false" />
<inspection_tool class="PhpUnitUndefinedDataProviderInspection" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="PhpVariableVariableInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
</profile>
</component>

6
.idea/misc.xml generated Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GithubDefaultAccount">
<option name="defaultAccountId" value="654854a2-fe4c-4cfe-b9fd-e3da02f7c585" />
</component>
</project>

8
.idea/modules.xml generated Normal file
View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/Scaleway APIs : Block-Storage.iml" filepath="$PROJECT_DIR$/.idea/Scaleway APIs : Block-Storage.iml" />
</modules>
</component>
</project>

23
.idea/php.xml generated Normal file
View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MessDetectorOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PHPCSFixerOptionsConfiguration">
<option name="codingStandard" value="PHP71Migration" />
<option name="transferred" value="true" />
</component>
<component name="PHPCodeSnifferOptionsConfiguration">
<option name="codingStandard" value="WordPress-Extra" />
<option name="highlightLevel" value="WARNING" />
<option name="installedPaths" value="$USER_HOME$/Php/wpcs" />
<option name="useInstalledPaths" value="true" />
<option name="transferred" value="true" />
</component>
<component name="PhpStanOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PsalmOptionsConfiguration">
<option name="transferred" value="true" />
</component>
</project>

6
.idea/vcs.xml generated Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

23
.openapi-generator-ignore Normal file
View file

@ -0,0 +1,23 @@
# OpenAPI Generator Ignore
# Generated by openapi-generator https://github.com/openapitools/openapi-generator
# Use this file to prevent files from being overwritten by the generator.
# The patterns follow closely to .gitignore or .dockerignore.
# As an example, the C# client generator defines ApiClient.cs.
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
#ApiClient.cs
# You can match any string of characters against a directory, file or extension with a single asterisk (*):
#foo/*/qux
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
#foo/**/qux
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
# You can also negate patterns with an exclamation (!).
# For example, you can ignore all files in a docs folder with the file extension .md:
#docs/*.md
# Then explicitly reverse the ignore rule for a single file:
#!docs/README.md

58
.openapi-generator/FILES Normal file
View file

@ -0,0 +1,58 @@
.gitignore
.php-cs-fixer.dist.php
.travis.yml
README.md
composer.json
docs/Api/SnapshotApi.md
docs/Api/VolumeApi.md
docs/Api/VolumeTypeApi.md
docs/Model/CreateSnapshotRequest.md
docs/Model/CreateVolumeRequest.md
docs/Model/CreateVolumeRequestFromEmpty.md
docs/Model/CreateVolumeRequestFromSnapshot.md
docs/Model/ExportSnapshotToObjectStorageRequest.md
docs/Model/ImportSnapshotFromObjectStorageRequest.md
docs/Model/ScalewayBlockV1alpha1ListSnapshotsResponse.md
docs/Model/ScalewayBlockV1alpha1ListVolumeTypesResponse.md
docs/Model/ScalewayBlockV1alpha1ListVolumesResponse.md
docs/Model/ScalewayBlockV1alpha1Reference.md
docs/Model/ScalewayBlockV1alpha1Snapshot.md
docs/Model/ScalewayBlockV1alpha1SnapshotParentVolume.md
docs/Model/ScalewayBlockV1alpha1Volume.md
docs/Model/ScalewayBlockV1alpha1VolumeSpecs.md
docs/Model/ScalewayBlockV1alpha1VolumeType.md
docs/Model/ScalewayBlockV1alpha1VolumeTypePricing.md
docs/Model/ScalewayBlockV1alpha1VolumeTypeSnapshotPricing.md
docs/Model/ScalewayBlockV1alpha1VolumeTypeSpecs.md
docs/Model/UpdateSnapshotRequest.md
docs/Model/UpdateVolumeRequest.md
git_push.sh
lib/Api/SnapshotApi.php
lib/Api/VolumeApi.php
lib/Api/VolumeTypeApi.php
lib/ApiException.php
lib/Configuration.php
lib/HeaderSelector.php
lib/Model/CreateSnapshotRequest.php
lib/Model/CreateVolumeRequest.php
lib/Model/CreateVolumeRequestFromEmpty.php
lib/Model/CreateVolumeRequestFromSnapshot.php
lib/Model/ExportSnapshotToObjectStorageRequest.php
lib/Model/ImportSnapshotFromObjectStorageRequest.php
lib/Model/ModelInterface.php
lib/Model/ScalewayBlockV1alpha1ListSnapshotsResponse.php
lib/Model/ScalewayBlockV1alpha1ListVolumeTypesResponse.php
lib/Model/ScalewayBlockV1alpha1ListVolumesResponse.php
lib/Model/ScalewayBlockV1alpha1Reference.php
lib/Model/ScalewayBlockV1alpha1Snapshot.php
lib/Model/ScalewayBlockV1alpha1SnapshotParentVolume.php
lib/Model/ScalewayBlockV1alpha1Volume.php
lib/Model/ScalewayBlockV1alpha1VolumeSpecs.php
lib/Model/ScalewayBlockV1alpha1VolumeType.php
lib/Model/ScalewayBlockV1alpha1VolumeTypePricing.php
lib/Model/ScalewayBlockV1alpha1VolumeTypeSnapshotPricing.php
lib/Model/ScalewayBlockV1alpha1VolumeTypeSpecs.php
lib/Model/UpdateSnapshotRequest.php
lib/Model/UpdateVolumeRequest.php
lib/ObjectSerializer.php
phpunit.xml.dist

View file

@ -0,0 +1 @@
7.11.0

29
.php-cs-fixer.dist.php Normal file
View file

@ -0,0 +1,29 @@
<?php
/**
* @generated
* @link https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/HEAD/doc/config.rst
*/
$finder = PhpCsFixer\Finder::create()
->in(__DIR__)
->exclude('vendor')
->exclude('test')
->exclude('tests')
;
$config = new PhpCsFixer\Config();
return $config->setRules([
'@PSR12' => true,
'phpdoc_order' => true,
'array_syntax' => [ 'syntax' => 'short' ],
'strict_comparison' => true,
'strict_param' => true,
'no_trailing_whitespace' => false,
'no_trailing_whitespace_in_comment' => false,
'braces' => false,
'single_blank_line_at_eof' => false,
'blank_line_after_namespace' => false,
'no_leading_import_slash' => false,
])
->setFinder($finder)
;

8
.travis.yml Normal file
View file

@ -0,0 +1,8 @@
language: php
# Bionic environment has preinstalled PHP from 7.1 to 7.4
# https://docs.travis-ci.com/user/reference/bionic/#php-support
dist: bionic
php:
- 7.4
before_install: "composer install"
script: "vendor/bin/phpunit"

292
README.md Normal file
View file

@ -0,0 +1,292 @@
# OpenAPIClient-php
Scaleway Block Storage provides network-attached storage that can be plugged in and out of cloud products such as Instances like a virtual hard-drive. Block Storage devices are independent from the local storage of Instances, and the fact that they are accessed over a network connection makes it easy to move them between Instances in the same Availability Zone.
(switchcolumn)
<Message type="important">
This page includes the API reference documentation for all Block Storage Low Latency offers. If you wish to use the Basic Block Storage offers, refer to the [Instances API documentation page](/api/instance/#path-volume-types-list-volume-types).
</Message>
(switchcolumn)
## Quickstart
1. Configure your environment variables.
<Message type="note">
This is an optional step that seeks to simplify your usage of the Block Storage API. See [Availability Zones](#availability-zones) below for help choosing an Availability Zone. You can find your Project ID in the [Scaleway console](https://console.scaleway.com/project/settings).
</Message>
```bash
export SCW_SECRET_KEY="<API secret key>"
export SCW_DEFAULT_ZONE="<Scaleway Availability Zone>"
export SCW_PROJECT_ID="<Scaleway Project ID>"
```
<Message type="important">
Make sure that the Availability Zone (AZ) is the same as the one of your Instance. Block volumes can only be attached to Instances in the same AZ.
</Message>
2. Edit the POST request payload you will use to create your Block volume. Replace the parameters in the following example:
```json
{
"project_id": "d8e65f2b-cce9-40b7-80fc-6a2902db6826",
"name": "my-volume",
"perf_iops": "5000",
"tags": ["donnerstag"],
"from_empty": {
"size": "30000000000"}
}
```
| Parameter | Description |
| :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `project_id` | **REQUIRED** The ID of the Project you want to create your Block volume in. To find your Project ID you can **[list the projects](/api/account#path-projects-list-all-projects-of-an-organization)** or consult the **[Scaleway console](https://console.scaleway.com/project/settings)**. |
| `name` | **REQUIRED** Name of the volume |
| `perf_iops` | **REQUIRED** The maximum IO/s expected. This amount is a shared limit between write and read operations, it will be determined by your usage. You must specify either `5000`, or `15000`. |
| `tags` | The list of tags `["tag1", "tag2", ...]` that will be associated with the Database Instance. Tags can be appended to the query of the [List Database Instances](#path-database-instances-list-database-instances) call to show results for only the Database Instances using a specific tag. You can also combine tags to list Database Instances that posess all the appended tags. |
| `from_empty` | When you create a brand new volume, as opposed to creating a volume from a snapshot, you must specifiy its size. |
| `size` | Volume size. The value should be expressed in bytes. For example 30GB is expressed as 30000000000 |
3. Create a Block volume by running the following command. Make sure you include the payload you edited in the previous step.
```bash
curl -X POST \\
-H "X-Auth-Token: $SCW_SECRET_KEY" \\
"Content-Type: application/json" \\
https://api.scaleway.com/block/v1alpha1/zone/$SCW_DEFAULT_ZONE/volumes \\
-d '{
"project_id": "'"$SCW_PROJECT_ID"'",
"name": "my-volume",
"perf_iops": "5000",
"tags": ["donnerstag"],
"from_empty": {
"size": "30000000000"}
}'
```
An output similar to the following displays :
```json
'{
"id": "e337a374-f19a-4b58-a45d-75076f75fbc5",
"name": "my-volume",
"type": "sbs_5k",
"size": 30000000000,
"project_id": "d8e65f2b-cce9-40b7-80fc-6a2902db6826",
"created_at": "2023-09-28T15:48:59.105240Z",
"updated_at": "2023-09-28T15:48:59.105240Z",
"references": [],
"parent_snapshot_id": None,
"status": "creating",
"tags": [],
"specs": {"perf_iops": 5000, "class": "sbs"},
"zone": "fr-par-1"
}'
```
<Message type="note">
Make sure to save the `id` of your volume, as it will be required in the next step.
</Message>
4. Attach your volume to your Instance using the Instance API [Update an Instance](/api/instance/#path-instances-update-an-instance) call.
<Message type="note">
Make sure the Block volume is created and ready before attaching it to the Instance.
</Message>
<Message type="important">
Make sure you include all your Instance's existing volumes in the payload, as the update can only be done to all or none of the volumes.
The payload should include a minimum of one key (`"0"`) with a value equivalent to the setting parameters for the volume.
Additional keys for additional volumes should increment by 1 each time. For example, the second volume is `"1"`, the third `"2"`, and so on.
</Message>
```bash
curl -X PATCH \\
-H "X-Auth-Token: $SCW_SECRET_KEY" \\
"Content-Type: application/json" \\
https://api.scaleway.com/instance/v1/zone/$SCW_DEFAULT_ZONE/servers/$INSTANCE_ID \\
-d '{
"volumes": {
"0": {
"boot": false,
"id": "571c8a17-ba68-4c1d-b137-bbd5bc7af104",
"volume_type": "System volume"
}
"1": {
"boot": false,
"id": "e337a374-f19a-4b58-a45d-75076f75fbc5",
"volume_type": "sbs_volume"
}
}'
```
Your Block volume is ready to be used with your Instance.
Refer to the [How to mount and use your Block volume](https://www.scaleway.com/en/docs/storage/block/how-to/mount-and-use-volume/) documentation page to do so.
(switchcolumn)
<Message type="requirement">
To perform the following steps, you must first ensure that:
- you have an account and are logged into the [Scaleway console](https://console.scaleway.com/organization)
- you have created an [API key](https://www.scaleway.com/en/docs/identity-and-access-management/iam/how-to/create-api-keys/) and that the API key has sufficient [IAM permissions](https://www.scaleway.com/en/docs/identity-and-access-management/iam/reference-content/permission-sets/) to perform the actions described on this page.
- you have [installed `curl`](https://curl.se/download.html)
- you have [created an Instance](/instance/#path-instances-create-an-instance).
</Message>
(switchcolumn)
## Going further
For further information and assitance for Scaleway Block Storage, check out the following resources:
- [Basic Block Storage Documentation](https://www.scaleway.com/en/docs/storage/block/)
- [#block channel in the Scaleway Slack Community](scaleway-community.slack.com)
- [How to open a support ticket](https://www.scaleway.com/en/docs/console/my-account/how-to/open-a-support-ticket/).
## Installation & Usage
### Requirements
PHP 7.4 and later.
Should also work with PHP 8.0.
### Composer
To install the bindings via [Composer](https://getcomposer.org/), add the following to `composer.json`:
```json
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/GIT_USER_ID/GIT_REPO_ID.git"
}
],
"require": {
"GIT_USER_ID/GIT_REPO_ID": "*@dev"
}
}
```
Then run `composer install`
### Manual Installation
Download the files and include `autoload.php`:
```php
<?php
require_once('/path/to/OpenAPIClient-php/vendor/autoload.php');
```
## Getting Started
Please follow the [installation procedure](#installation--usage) and then run the following:
```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\SnapshotApi(
// 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
$create_snapshot_request = new \OpenAPI\Client\Model\CreateSnapshotRequest(); // \OpenAPI\Client\Model\CreateSnapshotRequest
try {
$result = $apiInstance->createSnapshot($zone, $create_snapshot_request);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling SnapshotApi->createSnapshot: ', $e->getMessage(), PHP_EOL;
}
```
## API Endpoints
All URIs are relative to *https://api.scaleway.com*
Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*SnapshotApi* | [**createSnapshot**](docs/Api/SnapshotApi.md#createsnapshot) | **POST** /block/v1alpha1/zones/{zone}/snapshots | Create a snapshot of a volume
*SnapshotApi* | [**deleteSnapshot**](docs/Api/SnapshotApi.md#deletesnapshot) | **DELETE** /block/v1alpha1/zones/{zone}/snapshots/{snapshot_id} | Delete a snapshot
*SnapshotApi* | [**exportSnapshotToObjectStorage**](docs/Api/SnapshotApi.md#exportsnapshottoobjectstorage) | **POST** /block/v1alpha1/zones/{zone}/snapshots/{snapshot_id}/export-to-object-storage | Export a snapshot to a Scaleway Object Storage bucket
*SnapshotApi* | [**getSnapshot**](docs/Api/SnapshotApi.md#getsnapshot) | **GET** /block/v1alpha1/zones/{zone}/snapshots/{snapshot_id} | Get a snapshot
*SnapshotApi* | [**importSnapshotFromObjectStorage**](docs/Api/SnapshotApi.md#importsnapshotfromobjectstorage) | **POST** /block/v1alpha1/zones/{zone}/snapshots/import-from-object-storage | Import a snapshot from a Scaleway Object Storage bucket
*SnapshotApi* | [**importSnapshotFromS3**](docs/Api/SnapshotApi.md#importsnapshotfroms3) | **POST** /block/v1alpha1/zones/{zone}/snapshots/import-from-s3 | (Deprecated in favor of &#x60;ImportSnapshotFromObjectStorage&#x60;)
*SnapshotApi* | [**listSnapshots**](docs/Api/SnapshotApi.md#listsnapshots) | **GET** /block/v1alpha1/zones/{zone}/snapshots | List all snapshots
*SnapshotApi* | [**updateSnapshot**](docs/Api/SnapshotApi.md#updatesnapshot) | **PATCH** /block/v1alpha1/zones/{zone}/snapshots/{snapshot_id} | Update a snapshot
*VolumeApi* | [**createVolume**](docs/Api/VolumeApi.md#createvolume) | **POST** /block/v1alpha1/zones/{zone}/volumes | Create a volume
*VolumeApi* | [**deleteVolume**](docs/Api/VolumeApi.md#deletevolume) | **DELETE** /block/v1alpha1/zones/{zone}/volumes/{volume_id} | Delete a detached volume
*VolumeApi* | [**getVolume**](docs/Api/VolumeApi.md#getvolume) | **GET** /block/v1alpha1/zones/{zone}/volumes/{volume_id} | Get a volume
*VolumeApi* | [**listVolumes**](docs/Api/VolumeApi.md#listvolumes) | **GET** /block/v1alpha1/zones/{zone}/volumes | List volumes
*VolumeApi* | [**updateVolume**](docs/Api/VolumeApi.md#updatevolume) | **PATCH** /block/v1alpha1/zones/{zone}/volumes/{volume_id} | Update a volume
*VolumeTypeApi* | [**listVolumeTypes**](docs/Api/VolumeTypeApi.md#listvolumetypes) | **GET** /block/v1alpha1/zones/{zone}/volume-types | List volume types
## Models
- [CreateSnapshotRequest](docs/Model/CreateSnapshotRequest.md)
- [CreateVolumeRequest](docs/Model/CreateVolumeRequest.md)
- [CreateVolumeRequestFromEmpty](docs/Model/CreateVolumeRequestFromEmpty.md)
- [CreateVolumeRequestFromSnapshot](docs/Model/CreateVolumeRequestFromSnapshot.md)
- [ExportSnapshotToObjectStorageRequest](docs/Model/ExportSnapshotToObjectStorageRequest.md)
- [ImportSnapshotFromObjectStorageRequest](docs/Model/ImportSnapshotFromObjectStorageRequest.md)
- [ScalewayBlockV1alpha1ListSnapshotsResponse](docs/Model/ScalewayBlockV1alpha1ListSnapshotsResponse.md)
- [ScalewayBlockV1alpha1ListVolumeTypesResponse](docs/Model/ScalewayBlockV1alpha1ListVolumeTypesResponse.md)
- [ScalewayBlockV1alpha1ListVolumesResponse](docs/Model/ScalewayBlockV1alpha1ListVolumesResponse.md)
- [ScalewayBlockV1alpha1Reference](docs/Model/ScalewayBlockV1alpha1Reference.md)
- [ScalewayBlockV1alpha1Snapshot](docs/Model/ScalewayBlockV1alpha1Snapshot.md)
- [ScalewayBlockV1alpha1SnapshotParentVolume](docs/Model/ScalewayBlockV1alpha1SnapshotParentVolume.md)
- [ScalewayBlockV1alpha1Volume](docs/Model/ScalewayBlockV1alpha1Volume.md)
- [ScalewayBlockV1alpha1VolumeSpecs](docs/Model/ScalewayBlockV1alpha1VolumeSpecs.md)
- [ScalewayBlockV1alpha1VolumeType](docs/Model/ScalewayBlockV1alpha1VolumeType.md)
- [ScalewayBlockV1alpha1VolumeTypePricing](docs/Model/ScalewayBlockV1alpha1VolumeTypePricing.md)
- [ScalewayBlockV1alpha1VolumeTypeSnapshotPricing](docs/Model/ScalewayBlockV1alpha1VolumeTypeSnapshotPricing.md)
- [ScalewayBlockV1alpha1VolumeTypeSpecs](docs/Model/ScalewayBlockV1alpha1VolumeTypeSpecs.md)
- [UpdateSnapshotRequest](docs/Model/UpdateSnapshotRequest.md)
- [UpdateVolumeRequest](docs/Model/UpdateVolumeRequest.md)
## Authorization
Authentication schemes defined for the API:
### scaleway
- **Type**: API key
- **API key parameter name**: X-Auth-Token
- **Location**: HTTP header
## Tests
To run the tests, use:
```bash
composer install
vendor/bin/phpunit
```
## Author
## About this package
This PHP package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: `v1alpha1`
- Generator version: `7.11.0`
- Build package: `org.openapitools.codegen.languages.PhpClientCodegen`

38
composer.json Normal file

File diff suppressed because one or more lines are too long

544
docs/Api/SnapshotApi.md Normal file
View file

@ -0,0 +1,544 @@
# OpenAPI\Client\SnapshotApi
All URIs are relative to https://api.scaleway.com, except if the operation defines another base path.
| Method | HTTP request | Description |
| ------------- | ------------- | ------------- |
| [**createSnapshot()**](SnapshotApi.md#createSnapshot) | **POST** /block/v1alpha1/zones/{zone}/snapshots | Create a snapshot of a volume |
| [**deleteSnapshot()**](SnapshotApi.md#deleteSnapshot) | **DELETE** /block/v1alpha1/zones/{zone}/snapshots/{snapshot_id} | Delete a snapshot |
| [**exportSnapshotToObjectStorage()**](SnapshotApi.md#exportSnapshotToObjectStorage) | **POST** /block/v1alpha1/zones/{zone}/snapshots/{snapshot_id}/export-to-object-storage | Export a snapshot to a Scaleway Object Storage bucket |
| [**getSnapshot()**](SnapshotApi.md#getSnapshot) | **GET** /block/v1alpha1/zones/{zone}/snapshots/{snapshot_id} | Get a snapshot |
| [**importSnapshotFromObjectStorage()**](SnapshotApi.md#importSnapshotFromObjectStorage) | **POST** /block/v1alpha1/zones/{zone}/snapshots/import-from-object-storage | Import a snapshot from a Scaleway Object Storage bucket |
| [**importSnapshotFromS3()**](SnapshotApi.md#importSnapshotFromS3) | **POST** /block/v1alpha1/zones/{zone}/snapshots/import-from-s3 | (Deprecated in favor of &#x60;ImportSnapshotFromObjectStorage&#x60;) |
| [**listSnapshots()**](SnapshotApi.md#listSnapshots) | **GET** /block/v1alpha1/zones/{zone}/snapshots | List all snapshots |
| [**updateSnapshot()**](SnapshotApi.md#updateSnapshot) | **PATCH** /block/v1alpha1/zones/{zone}/snapshots/{snapshot_id} | Update a snapshot |
## `createSnapshot()`
```php
createSnapshot($zone, $create_snapshot_request): \OpenAPI\Client\Model\ScalewayBlockV1alpha1Snapshot
```
Create a snapshot of a volume
To create a snapshot, the volume must be in the `in_use` or the `available` status. If your volume is in a transient state, you need to wait until the end of the current operation.
### Example
```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\SnapshotApi(
// 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
$create_snapshot_request = new \OpenAPI\Client\Model\CreateSnapshotRequest(); // \OpenAPI\Client\Model\CreateSnapshotRequest
try {
$result = $apiInstance->createSnapshot($zone, $create_snapshot_request);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling SnapshotApi->createSnapshot: ', $e->getMessage(), PHP_EOL;
}
```
### Parameters
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **zone** | **string**| The zone you want to target | |
| **create_snapshot_request** | [**\OpenAPI\Client\Model\CreateSnapshotRequest**](../Model/CreateSnapshotRequest.md)| | |
### Return type
[**\OpenAPI\Client\Model\ScalewayBlockV1alpha1Snapshot**](../Model/ScalewayBlockV1alpha1Snapshot.md)
### Authorization
[scaleway](../../README.md#scaleway)
### HTTP request headers
- **Content-Type**: `application/json`
- **Accept**: `application/json`
[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)
## `deleteSnapshot()`
```php
deleteSnapshot($zone, $snapshot_id)
```
Delete a snapshot
You must specify the `snapshot_id` of the snapshot you want to delete. The snapshot must not be in use.
### Example
```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\SnapshotApi(
// 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
$snapshot_id = 'snapshot_id_example'; // string | UUID of the snapshot.
try {
$apiInstance->deleteSnapshot($zone, $snapshot_id);
} catch (Exception $e) {
echo 'Exception when calling SnapshotApi->deleteSnapshot: ', $e->getMessage(), PHP_EOL;
}
```
### Parameters
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **zone** | **string**| The zone you want to target | |
| **snapshot_id** | **string**| UUID of the snapshot. | |
### Return type
void (empty response body)
### Authorization
[scaleway](../../README.md#scaleway)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)
## `exportSnapshotToObjectStorage()`
```php
exportSnapshotToObjectStorage($zone, $snapshot_id, $export_snapshot_to_object_storage_request): \OpenAPI\Client\Model\ScalewayBlockV1alpha1Snapshot
```
Export a snapshot to a Scaleway Object Storage bucket
The snapshot is exported in QCOW2 format. The snapshot must not be in transient state.
### Example
```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\SnapshotApi(
// 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
$snapshot_id = 6170692e-7363-616c-6577-61792e636f6d; // string | UUID of the snapshot. (UUID format)
$export_snapshot_to_object_storage_request = new \OpenAPI\Client\Model\ExportSnapshotToObjectStorageRequest(); // \OpenAPI\Client\Model\ExportSnapshotToObjectStorageRequest
try {
$result = $apiInstance->exportSnapshotToObjectStorage($zone, $snapshot_id, $export_snapshot_to_object_storage_request);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling SnapshotApi->exportSnapshotToObjectStorage: ', $e->getMessage(), PHP_EOL;
}
```
### Parameters
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **zone** | **string**| The zone you want to target | |
| **snapshot_id** | **string**| UUID of the snapshot. (UUID format) | |
| **export_snapshot_to_object_storage_request** | [**\OpenAPI\Client\Model\ExportSnapshotToObjectStorageRequest**](../Model/ExportSnapshotToObjectStorageRequest.md)| | |
### Return type
[**\OpenAPI\Client\Model\ScalewayBlockV1alpha1Snapshot**](../Model/ScalewayBlockV1alpha1Snapshot.md)
### Authorization
[scaleway](../../README.md#scaleway)
### HTTP request headers
- **Content-Type**: `application/json`
- **Accept**: `application/json`
[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)
## `getSnapshot()`
```php
getSnapshot($zone, $snapshot_id): \OpenAPI\Client\Model\ScalewayBlockV1alpha1Snapshot
```
Get a snapshot
Retrieve technical information about a specific snapshot. Details such as size, volume type, and status are returned in the response.
### Example
```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\SnapshotApi(
// 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
$snapshot_id = 'snapshot_id_example'; // string | UUID of the snapshot.
try {
$result = $apiInstance->getSnapshot($zone, $snapshot_id);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling SnapshotApi->getSnapshot: ', $e->getMessage(), PHP_EOL;
}
```
### Parameters
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **zone** | **string**| The zone you want to target | |
| **snapshot_id** | **string**| UUID of the snapshot. | |
### Return type
[**\OpenAPI\Client\Model\ScalewayBlockV1alpha1Snapshot**](../Model/ScalewayBlockV1alpha1Snapshot.md)
### Authorization
[scaleway](../../README.md#scaleway)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: `application/json`
[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)
## `importSnapshotFromObjectStorage()`
```php
importSnapshotFromObjectStorage($zone, $import_snapshot_from_object_storage_request): \OpenAPI\Client\Model\ScalewayBlockV1alpha1Snapshot
```
Import a snapshot from a Scaleway Object Storage bucket
The bucket must contain a QCOW2 image. The bucket can be imported into any Availability Zone as long as it is in the same region as the bucket.
### Example
```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\SnapshotApi(
// 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
$import_snapshot_from_object_storage_request = new \OpenAPI\Client\Model\ImportSnapshotFromObjectStorageRequest(); // \OpenAPI\Client\Model\ImportSnapshotFromObjectStorageRequest
try {
$result = $apiInstance->importSnapshotFromObjectStorage($zone, $import_snapshot_from_object_storage_request);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling SnapshotApi->importSnapshotFromObjectStorage: ', $e->getMessage(), PHP_EOL;
}
```
### Parameters
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **zone** | **string**| The zone you want to target | |
| **import_snapshot_from_object_storage_request** | [**\OpenAPI\Client\Model\ImportSnapshotFromObjectStorageRequest**](../Model/ImportSnapshotFromObjectStorageRequest.md)| | |
### Return type
[**\OpenAPI\Client\Model\ScalewayBlockV1alpha1Snapshot**](../Model/ScalewayBlockV1alpha1Snapshot.md)
### Authorization
[scaleway](../../README.md#scaleway)
### HTTP request headers
- **Content-Type**: `application/json`
- **Accept**: `application/json`
[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)
## `importSnapshotFromS3()`
```php
importSnapshotFromS3($zone, $import_snapshot_from_object_storage_request): \OpenAPI\Client\Model\ScalewayBlockV1alpha1Snapshot
```
(Deprecated in favor of `ImportSnapshotFromObjectStorage`)
Import a snapshot from a Scaleway Object Storage bucket The bucket must contain a QCOW2 image. The bucket can be imported into any Availability Zone as long as it is in the same region as the bucket.
### Example
```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\SnapshotApi(
// 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
$import_snapshot_from_object_storage_request = new \OpenAPI\Client\Model\ImportSnapshotFromObjectStorageRequest(); // \OpenAPI\Client\Model\ImportSnapshotFromObjectStorageRequest
try {
$result = $apiInstance->importSnapshotFromS3($zone, $import_snapshot_from_object_storage_request);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling SnapshotApi->importSnapshotFromS3: ', $e->getMessage(), PHP_EOL;
}
```
### Parameters
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **zone** | **string**| The zone you want to target | |
| **import_snapshot_from_object_storage_request** | [**\OpenAPI\Client\Model\ImportSnapshotFromObjectStorageRequest**](../Model/ImportSnapshotFromObjectStorageRequest.md)| | |
### Return type
[**\OpenAPI\Client\Model\ScalewayBlockV1alpha1Snapshot**](../Model/ScalewayBlockV1alpha1Snapshot.md)
### Authorization
[scaleway](../../README.md#scaleway)
### HTTP request headers
- **Content-Type**: `application/json`
- **Accept**: `application/json`
[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)
## `listSnapshots()`
```php
listSnapshots($zone, $order_by, $project_id, $organization_id, $page, $page_size, $volume_id, $name, $tags): \OpenAPI\Client\Model\ScalewayBlockV1alpha1ListSnapshotsResponse
```
List all snapshots
List all available snapshots in a specified zone. By default, the snapshots listed are ordered by creation date in ascending order. This can be modified via the `order_by` field.
### Example
```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\SnapshotApi(
// 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
$order_by = 'created_at_asc'; // string | Criteria to use when ordering the list.
$project_id = 'project_id_example'; // string | Filter by Project ID.
$organization_id = 'organization_id_example'; // string | Filter by Organization ID.
$page = 56; // int | Page number.
$page_size = 50; // int | Page size, defines how many entries are returned in one page, must be lower or equal to 100.
$volume_id = 'volume_id_example'; // string | Filter snapshots by the ID of the original volume.
$name = 'name_example'; // string | Filter snapshots by their names.
$tags = array('tags_example'); // string[] | Filter by tags. Only snapshots with one or more matching tags will be returned.
try {
$result = $apiInstance->listSnapshots($zone, $order_by, $project_id, $organization_id, $page, $page_size, $volume_id, $name, $tags);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling SnapshotApi->listSnapshots: ', $e->getMessage(), PHP_EOL;
}
```
### Parameters
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **zone** | **string**| The zone you want to target | |
| **order_by** | **string**| Criteria to use when ordering the list. | [optional] [default to &#39;created_at_asc&#39;] |
| **project_id** | **string**| Filter by Project ID. | [optional] |
| **organization_id** | **string**| Filter by Organization ID. | [optional] |
| **page** | **int**| Page number. | [optional] |
| **page_size** | **int**| Page size, defines how many entries are returned in one page, must be lower or equal to 100. | [optional] [default to 50] |
| **volume_id** | **string**| Filter snapshots by the ID of the original volume. | [optional] |
| **name** | **string**| Filter snapshots by their names. | [optional] |
| **tags** | [**string[]**](../Model/string.md)| Filter by tags. Only snapshots with one or more matching tags will be returned. | [optional] |
### Return type
[**\OpenAPI\Client\Model\ScalewayBlockV1alpha1ListSnapshotsResponse**](../Model/ScalewayBlockV1alpha1ListSnapshotsResponse.md)
### Authorization
[scaleway](../../README.md#scaleway)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: `application/json`
[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)
## `updateSnapshot()`
```php
updateSnapshot($zone, $snapshot_id, $update_snapshot_request): \OpenAPI\Client\Model\ScalewayBlockV1alpha1Snapshot
```
Update a snapshot
Update the name or tags of the snapshot.
### Example
```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\SnapshotApi(
// 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
$snapshot_id = 'snapshot_id_example'; // string | UUID of the snapshot.
$update_snapshot_request = new \OpenAPI\Client\Model\UpdateSnapshotRequest(); // \OpenAPI\Client\Model\UpdateSnapshotRequest
try {
$result = $apiInstance->updateSnapshot($zone, $snapshot_id, $update_snapshot_request);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling SnapshotApi->updateSnapshot: ', $e->getMessage(), PHP_EOL;
}
```
### Parameters
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **zone** | **string**| The zone you want to target | |
| **snapshot_id** | **string**| UUID of the snapshot. | |
| **update_snapshot_request** | [**\OpenAPI\Client\Model\UpdateSnapshotRequest**](../Model/UpdateSnapshotRequest.md)| | |
### Return type
[**\OpenAPI\Client\Model\ScalewayBlockV1alpha1Snapshot**](../Model/ScalewayBlockV1alpha1Snapshot.md)
### Authorization
[scaleway](../../README.md#scaleway)
### HTTP request headers
- **Content-Type**: `application/json`
- **Accept**: `application/json`
[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)

347
docs/Api/VolumeApi.md Normal file
View file

@ -0,0 +1,347 @@
# OpenAPI\Client\VolumeApi
All URIs are relative to https://api.scaleway.com, except if the operation defines another base path.
| Method | HTTP request | Description |
| ------------- | ------------- | ------------- |
| [**createVolume()**](VolumeApi.md#createVolume) | **POST** /block/v1alpha1/zones/{zone}/volumes | Create a volume |
| [**deleteVolume()**](VolumeApi.md#deleteVolume) | **DELETE** /block/v1alpha1/zones/{zone}/volumes/{volume_id} | Delete a detached volume |
| [**getVolume()**](VolumeApi.md#getVolume) | **GET** /block/v1alpha1/zones/{zone}/volumes/{volume_id} | Get a volume |
| [**listVolumes()**](VolumeApi.md#listVolumes) | **GET** /block/v1alpha1/zones/{zone}/volumes | List volumes |
| [**updateVolume()**](VolumeApi.md#updateVolume) | **PATCH** /block/v1alpha1/zones/{zone}/volumes/{volume_id} | Update a volume |
## `createVolume()`
```php
createVolume($zone, $create_volume_request): \OpenAPI\Client\Model\ScalewayBlockV1alpha1Volume
```
Create a volume
To create a new volume from scratch, you must specify `from_empty` and the `size`. To create a volume from an existing snapshot, specify `from_snapshot` and the `snapshot_id` in the request payload instead, size is optional and can be specified if you need to extend the original size. The volume will take on the same volume class and underlying IOPS limitations as the original snapshot.
### Example
```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\VolumeApi(
// 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
$create_volume_request = new \OpenAPI\Client\Model\CreateVolumeRequest(); // \OpenAPI\Client\Model\CreateVolumeRequest
try {
$result = $apiInstance->createVolume($zone, $create_volume_request);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling VolumeApi->createVolume: ', $e->getMessage(), PHP_EOL;
}
```
### Parameters
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **zone** | **string**| The zone you want to target | |
| **create_volume_request** | [**\OpenAPI\Client\Model\CreateVolumeRequest**](../Model/CreateVolumeRequest.md)| | |
### Return type
[**\OpenAPI\Client\Model\ScalewayBlockV1alpha1Volume**](../Model/ScalewayBlockV1alpha1Volume.md)
### Authorization
[scaleway](../../README.md#scaleway)
### HTTP request headers
- **Content-Type**: `application/json`
- **Accept**: `application/json`
[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)
## `deleteVolume()`
```php
deleteVolume($zone, $volume_id)
```
Delete a detached volume
You must specify the `volume_id` of the volume you want to delete. The volume must not be in the `in_use` status.
### Example
```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\VolumeApi(
// 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
$volume_id = 'volume_id_example'; // string | UUID of the volume.
try {
$apiInstance->deleteVolume($zone, $volume_id);
} catch (Exception $e) {
echo 'Exception when calling VolumeApi->deleteVolume: ', $e->getMessage(), PHP_EOL;
}
```
### Parameters
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **zone** | **string**| The zone you want to target | |
| **volume_id** | **string**| UUID of the volume. | |
### Return type
void (empty response body)
### Authorization
[scaleway](../../README.md#scaleway)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)
## `getVolume()`
```php
getVolume($zone, $volume_id): \OpenAPI\Client\Model\ScalewayBlockV1alpha1Volume
```
Get a volume
Retrieve technical information about a specific volume. Details such as size, type, and status are returned in the response.
### Example
```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\VolumeApi(
// 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
$volume_id = 'volume_id_example'; // string | UUID of the volume.
try {
$result = $apiInstance->getVolume($zone, $volume_id);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling VolumeApi->getVolume: ', $e->getMessage(), PHP_EOL;
}
```
### Parameters
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **zone** | **string**| The zone you want to target | |
| **volume_id** | **string**| UUID of the volume. | |
### Return type
[**\OpenAPI\Client\Model\ScalewayBlockV1alpha1Volume**](../Model/ScalewayBlockV1alpha1Volume.md)
### Authorization
[scaleway](../../README.md#scaleway)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: `application/json`
[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)
## `listVolumes()`
```php
listVolumes($zone, $order_by, $project_id, $organization_id, $page, $page_size, $name, $product_resource_id, $tags): \OpenAPI\Client\Model\ScalewayBlockV1alpha1ListVolumesResponse
```
List volumes
List all existing volumes in a specified zone. By default, the volumes listed are ordered by creation date in ascending order. This can be modified via the `order_by` field.
### Example
```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\VolumeApi(
// 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
$order_by = 'created_at_asc'; // string | Criteria to use when ordering the list.
$project_id = 'project_id_example'; // string | Filter by Project ID.
$organization_id = 'organization_id_example'; // string | Filter by Organization ID.
$page = 56; // int | Page number.
$page_size = 50; // int | Page size, defines how many entries are returned in one page, must be lower or equal to 100.
$name = 'name_example'; // string | Filter the return volumes by their names.
$product_resource_id = 'product_resource_id_example'; // string | Filter by a product resource ID linked to this volume (such as an Instance ID).
$tags = array('tags_example'); // string[] | Filter by tags. Only volumes with one or more matching tags will be returned.
try {
$result = $apiInstance->listVolumes($zone, $order_by, $project_id, $organization_id, $page, $page_size, $name, $product_resource_id, $tags);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling VolumeApi->listVolumes: ', $e->getMessage(), PHP_EOL;
}
```
### Parameters
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **zone** | **string**| The zone you want to target | |
| **order_by** | **string**| Criteria to use when ordering the list. | [optional] [default to &#39;created_at_asc&#39;] |
| **project_id** | **string**| Filter by Project ID. | [optional] |
| **organization_id** | **string**| Filter by Organization ID. | [optional] |
| **page** | **int**| Page number. | [optional] |
| **page_size** | **int**| Page size, defines how many entries are returned in one page, must be lower or equal to 100. | [optional] [default to 50] |
| **name** | **string**| Filter the return volumes by their names. | [optional] |
| **product_resource_id** | **string**| Filter by a product resource ID linked to this volume (such as an Instance ID). | [optional] |
| **tags** | [**string[]**](../Model/string.md)| Filter by tags. Only volumes with one or more matching tags will be returned. | [optional] |
### Return type
[**\OpenAPI\Client\Model\ScalewayBlockV1alpha1ListVolumesResponse**](../Model/ScalewayBlockV1alpha1ListVolumesResponse.md)
### Authorization
[scaleway](../../README.md#scaleway)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: `application/json`
[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)
## `updateVolume()`
```php
updateVolume($zone, $volume_id, $update_volume_request): \OpenAPI\Client\Model\ScalewayBlockV1alpha1Volume
```
Update a volume
Update the technical details of a volume, such as its name, tags, or its new size and `volume_type` (within the same Block Storage class). You can only resize a volume to a larger size. It is currently not possible to change your Block Storage Class.
### Example
```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\VolumeApi(
// 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
$volume_id = 'volume_id_example'; // string | UUID of the volume.
$update_volume_request = new \OpenAPI\Client\Model\UpdateVolumeRequest(); // \OpenAPI\Client\Model\UpdateVolumeRequest
try {
$result = $apiInstance->updateVolume($zone, $volume_id, $update_volume_request);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling VolumeApi->updateVolume: ', $e->getMessage(), PHP_EOL;
}
```
### Parameters
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **zone** | **string**| The zone you want to target | |
| **volume_id** | **string**| UUID of the volume. | |
| **update_volume_request** | [**\OpenAPI\Client\Model\UpdateVolumeRequest**](../Model/UpdateVolumeRequest.md)| | |
### Return type
[**\OpenAPI\Client\Model\ScalewayBlockV1alpha1Volume**](../Model/ScalewayBlockV1alpha1Volume.md)
### Authorization
[scaleway](../../README.md#scaleway)
### HTTP request headers
- **Content-Type**: `application/json`
- **Accept**: `application/json`
[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)

74
docs/Api/VolumeTypeApi.md Normal file
View file

@ -0,0 +1,74 @@
# OpenAPI\Client\VolumeTypeApi
All URIs are relative to https://api.scaleway.com, except if the operation defines another base path.
| Method | HTTP request | Description |
| ------------- | ------------- | ------------- |
| [**listVolumeTypes()**](VolumeTypeApi.md#listVolumeTypes) | **GET** /block/v1alpha1/zones/{zone}/volume-types | List volume types |
## `listVolumeTypes()`
```php
listVolumeTypes($zone, $page, $page_size): \OpenAPI\Client\Model\ScalewayBlockV1alpha1ListVolumeTypesResponse
```
List volume types
List all available volume types in a specified zone. The volume types listed are ordered by name in ascending order.
### Example
```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\VolumeTypeApi(
// 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
$page = 56; // int | Page number.
$page_size = 50; // int | Page size, defines how many entries are returned in one page, must be lower or equal to 100.
try {
$result = $apiInstance->listVolumeTypes($zone, $page, $page_size);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling VolumeTypeApi->listVolumeTypes: ', $e->getMessage(), PHP_EOL;
}
```
### Parameters
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **zone** | **string**| The zone you want to target | |
| **page** | **int**| Page number. | [optional] |
| **page_size** | **int**| Page size, defines how many entries are returned in one page, must be lower or equal to 100. | [optional] [default to 50] |
### Return type
[**\OpenAPI\Client\Model\ScalewayBlockV1alpha1ListVolumeTypesResponse**](../Model/ScalewayBlockV1alpha1ListVolumeTypesResponse.md)
### Authorization
[scaleway](../../README.md#scaleway)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: `application/json`
[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)

View file

@ -0,0 +1,12 @@
# # CreateSnapshotRequest
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**volume_id** | **string** | UUID of the volume to snapshot. | [optional]
**name** | **string** | Name of the snapshot. | [optional]
**project_id** | **string** | UUID of the project to which the volume and the snapshot belong. | [optional]
**tags** | **string[]** | List of tags assigned to the snapshot. | [optional]
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

View file

@ -0,0 +1,14 @@
# # CreateVolumeRequest
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**name** | **string** | Name of the volume. |
**perf_iops** | **int** | The maximum IO/s expected, according to the different options available in stock (&#x60;5000 | 15000&#x60;). | [optional]
**project_id** | **string** | UUID of the project the volume belongs to. |
**from_empty** | [**\OpenAPI\Client\Model\CreateVolumeRequestFromEmpty**](CreateVolumeRequestFromEmpty.md) | | [optional]
**from_snapshot** | [**\OpenAPI\Client\Model\CreateVolumeRequestFromSnapshot**](CreateVolumeRequestFromSnapshot.md) | | [optional]
**tags** | **string[]** | List of tags assigned to the volume. | [optional]
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

View file

@ -0,0 +1,9 @@
# # CreateVolumeRequestFromEmpty
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**size** | **int** | Volume size in bytes, with a granularity of 1 GB (10^9 bytes). Must be compliant with the minimum (1 GB) and maximum (10 TB) allowed size. (in bytes) |
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

View file

@ -0,0 +1,10 @@
# # CreateVolumeRequestFromSnapshot
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**size** | **int** | Volume size in bytes, with a granularity of 1 GB (10^9 bytes). Must be compliant with the minimum (1 GB) and maximum (10 TB) allowed size. Size is optional and is used only if a resize of the volume is requested, otherwise original snapshot size will be used. (in bytes) | [optional]
**snapshot_id** | **string** | Source snapshot from which volume will be created. | [optional]
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

View file

@ -0,0 +1,10 @@
# # ExportSnapshotToObjectStorageRequest
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**bucket** | **string** | Scaleway Object Storage bucket where the object is stored. | [optional]
**key** | **string** | The object key inside the given bucket. | [optional]
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

View file

@ -0,0 +1,14 @@
# # ImportSnapshotFromObjectStorageRequest
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**bucket** | **string** | Scaleway Object Storage bucket where the object is stored. | [optional]
**key** | **string** | The object key inside the given bucket. | [optional]
**name** | **string** | Name of the snapshot. | [optional]
**project_id** | **string** | UUID of the Project to which the volume and the snapshot belong. | [optional]
**tags** | **string[]** | List of tags assigned to the snapshot. | [optional]
**size** | **int** | Size of the snapshot. (in bytes) | [optional]
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

View file

@ -0,0 +1,10 @@
# # ScalewayBlockV1alpha1ListSnapshotsResponse
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**snapshots** | [**\OpenAPI\Client\Model\ScalewayBlockV1alpha1Snapshot[]**](ScalewayBlockV1alpha1Snapshot.md) | Paginated returned list of snapshots. | [optional]
**total_count** | **int** | Total number of snpashots in the project. | [optional]
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

View file

@ -0,0 +1,10 @@
# # ScalewayBlockV1alpha1ListVolumeTypesResponse
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**volume_types** | [**\OpenAPI\Client\Model\ScalewayBlockV1alpha1VolumeType[]**](ScalewayBlockV1alpha1VolumeType.md) | Returns paginated list of volume-types. | [optional]
**total_count** | **int** | Total number of volume-types currently available in stock. | [optional]
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

View file

@ -0,0 +1,10 @@
# # ScalewayBlockV1alpha1ListVolumesResponse
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**volumes** | [**\OpenAPI\Client\Model\ScalewayBlockV1alpha1Volume[]**](ScalewayBlockV1alpha1Volume.md) | Paginated returned list of volumes. | [optional]
**total_count** | **int** | Total number of volumes in the project. | [optional]
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

View file

@ -0,0 +1,14 @@
# # ScalewayBlockV1alpha1Reference
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**id** | **string** | UUID of the reference. (UUID format) | [optional]
**product_resource_type** | **string** | Type of resource to which the reference is associated. | [optional]
**product_resource_id** | **string** | UUID of the product resource it refers to (according to the product_resource_type). (UUID format) | [optional]
**created_at** | **\DateTime** | Creation date of the reference. (RFC 3339 format) | [optional]
**type** | **string** | Type of reference (link, exclusive, read_only). | [optional] [default to 'unknown_type']
**status** | **string** | Status of the reference. Statuses include &#x60;attaching&#x60;, &#x60;attached&#x60;, and &#x60;detaching&#x60;. | [optional] [default to 'unknown_status']
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

View file

@ -0,0 +1,20 @@
# # ScalewayBlockV1alpha1Snapshot
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**id** | **string** | UUID of the snapshot. (UUID format) | [optional]
**name** | **string** | Name of the snapshot. | [optional]
**parent_volume** | [**\OpenAPI\Client\Model\ScalewayBlockV1alpha1SnapshotParentVolume**](ScalewayBlockV1alpha1SnapshotParentVolume.md) | | [optional]
**size** | **int** | Size in bytes of the snapshot. (in bytes) | [optional]
**project_id** | **string** | UUID of the project the snapshot belongs to. (UUID format) | [optional]
**created_at** | **\DateTime** | Creation date of the snapshot. (RFC 3339 format) | [optional]
**updated_at** | **\DateTime** | Last modification date of the properties of a snapshot. (RFC 3339 format) | [optional]
**references** | [**\OpenAPI\Client\Model\ScalewayBlockV1alpha1Reference[]**](ScalewayBlockV1alpha1Reference.md) | List of the references to the snapshot. | [optional]
**status** | **string** | Current status of the snapshot (available, in_use, ...). | [optional] [default to 'unknown_status']
**tags** | **string[]** | List of tags assigned to the volume. | [optional]
**zone** | **string** | Snapshot zone. | [optional]
**class** | **string** | Storage class of the snapshot. | [optional] [default to 'unknown_storage_class']
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

View file

@ -0,0 +1,12 @@
# # ScalewayBlockV1alpha1SnapshotParentVolume
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**id** | **string** | Parent volume UUID (volume from which the snapshot originates). (UUID format) | [optional]
**name** | **string** | Name of the parent volume. | [optional]
**type** | **string** | Volume type of the parent volume. | [optional]
**status** | **string** | Current status the parent volume. | [optional] [default to 'unknown_status']
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

View file

@ -0,0 +1,22 @@
# # ScalewayBlockV1alpha1Volume
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**id** | **string** | UUID of the volume. (UUID format) | [optional]
**name** | **string** | Name of the volume. | [optional]
**type** | **string** | Volume type. | [optional]
**size** | **int** | Volume size in bytes. (in bytes) | [optional]
**project_id** | **string** | UUID of the project to which the volume belongs. (UUID format) | [optional]
**created_at** | **\DateTime** | Creation date of the volume. (RFC 3339 format) | [optional]
**updated_at** | **\DateTime** | Last update of the properties of a volume. (RFC 3339 format) | [optional]
**references** | [**\OpenAPI\Client\Model\ScalewayBlockV1alpha1Reference[]**](ScalewayBlockV1alpha1Reference.md) | List of the references to the volume. | [optional]
**parent_snapshot_id** | **string** | When a volume is created from a snapshot, is the UUID of the snapshot from which the volume has been created. (UUID format) | [optional]
**status** | **string** | Current status of the volume (available, in_use, ...). | [optional] [default to 'unknown_status']
**tags** | **string[]** | List of tags assigned to the volume. | [optional]
**zone** | **string** | Volume zone. | [optional]
**specs** | [**\OpenAPI\Client\Model\ScalewayBlockV1alpha1VolumeSpecs**](ScalewayBlockV1alpha1VolumeSpecs.md) | | [optional]
**last_detached_at** | **\DateTime** | Last time the volume was detached. (RFC 3339 format) | [optional]
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

View file

@ -0,0 +1,10 @@
# # ScalewayBlockV1alpha1VolumeSpecs
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**perf_iops** | **int** | The maximum IO/s expected, according to the different options available in stock (&#x60;5000 | 15000&#x60;). | [optional]
**class** | **string** | The storage class of the volume. | [optional] [default to 'unknown_storage_class']
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

View file

@ -0,0 +1,12 @@
# # ScalewayBlockV1alpha1VolumeType
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**type** | **string** | Volume type. | [optional]
**pricing** | [**\OpenAPI\Client\Model\ScalewayBlockV1alpha1VolumeTypePricing**](ScalewayBlockV1alpha1VolumeTypePricing.md) | | [optional]
**snapshot_pricing** | [**\OpenAPI\Client\Model\ScalewayBlockV1alpha1VolumeTypeSnapshotPricing**](ScalewayBlockV1alpha1VolumeTypeSnapshotPricing.md) | | [optional]
**specs** | [**\OpenAPI\Client\Model\ScalewayBlockV1alpha1VolumeTypeSpecs**](ScalewayBlockV1alpha1VolumeTypeSpecs.md) | | [optional]
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

View file

@ -0,0 +1,11 @@
# # ScalewayBlockV1alpha1VolumeTypePricing
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**currency_code** | **string** | | [optional]
**units** | **int** | | [optional]
**nanos** | **int** | | [optional]
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

View file

@ -0,0 +1,11 @@
# # ScalewayBlockV1alpha1VolumeTypeSnapshotPricing
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**currency_code** | **string** | | [optional]
**units** | **int** | | [optional]
**nanos** | **int** | | [optional]
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

View file

@ -0,0 +1,10 @@
# # ScalewayBlockV1alpha1VolumeTypeSpecs
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**perf_iops** | **int** | The maximum IO/s expected, according to the different options available in stock (&#x60;5000 | 15000&#x60;). | [optional]
**class** | **string** | The storage class of the volume. | [optional] [default to 'unknown_storage_class']
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

View file

@ -0,0 +1,10 @@
# # UpdateSnapshotRequest
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**name** | **string** | When defined, is the name of the snapshot. | [optional]
**tags** | **string[]** | List of tags assigned to the snapshot. | [optional]
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

View file

@ -0,0 +1,12 @@
# # UpdateVolumeRequest
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**name** | **string** | When defined, is the new name of the volume. | [optional]
**size** | **int** | Optional field for increasing the size of a volume (size must be equal or larger than the current one). Size in bytes of the volume, with a granularity of 1 GB (10^9 bytes). Must be compliant with the minimum (1GB) and maximum (10TB) allowed size. (in bytes) | [optional]
**tags** | **string[]** | List of tags assigned to the volume. | [optional]
**perf_iops** | **int** | The maximum IO/s expected, according to the different options available in stock (&#x60;5000 | 15000&#x60;). The selected value must be available for the volume&#39;s current storage class. | [optional]
[[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md)

57
git_push.sh Normal file
View file

@ -0,0 +1,57 @@
#!/bin/sh
# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
#
# Usage example: /bin/sh ./git_push.sh wing328 openapi-petstore-perl "minor update" "gitlab.com"
git_user_id=$1
git_repo_id=$2
release_note=$3
git_host=$4
if [ "$git_host" = "" ]; then
git_host="github.com"
echo "[INFO] No command line input provided. Set \$git_host to $git_host"
fi
if [ "$git_user_id" = "" ]; then
git_user_id="GIT_USER_ID"
echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id"
fi
if [ "$git_repo_id" = "" ]; then
git_repo_id="GIT_REPO_ID"
echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id"
fi
if [ "$release_note" = "" ]; then
release_note="Minor update"
echo "[INFO] No command line input provided. Set \$release_note to $release_note"
fi
# Initialize the local directory as a Git repository
git init
# Adds the files in the local repository and stages them for commit.
git add .
# Commits the tracked changes and prepares them to be pushed to a remote repository.
git commit -m "$release_note"
# Sets the new remote
git_remote=$(git remote)
if [ "$git_remote" = "" ]; then # git remote not defined
if [ "$GIT_TOKEN" = "" ]; then
echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment."
git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git
else
git remote add origin https://${git_user_id}:"${GIT_TOKEN}"@${git_host}/${git_user_id}/${git_repo_id}.git
fi
fi
git pull origin master
# Pushes (Forces) the changes in the local repository up to the remote repository
echo "Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git"
git push origin master 2>&1 | grep -v 'To https'

2877
lib/Api/SnapshotApi.php Normal file

File diff suppressed because one or more lines are too long

1847
lib/Api/VolumeApi.php Normal file

File diff suppressed because one or more lines are too long

486
lib/Api/VolumeTypeApi.php Normal file

File diff suppressed because one or more lines are too long

119
lib/ApiException.php Normal file

File diff suppressed because one or more lines are too long

531
lib/Configuration.php Normal file

File diff suppressed because one or more lines are too long

273
lib/HeaderSelector.php Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

617
lib/ObjectSerializer.php Normal file

File diff suppressed because one or more lines are too long

18
phpunit.xml.dist Normal file
View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" bootstrap="./vendor/autoload.php" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" stopOnFailure="false" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
<coverage processUncoveredFiles="true">
<include>
<directory suffix=".php">./lib/Api</directory>
<directory suffix=".php">./lib/Model</directory>
</include>
</coverage>
<testsuites>
<testsuite name="tests">
<directory>./test/Api</directory>
<directory>./test/Model</directory>
</testsuite>
</testsuites>
<php>
<ini name="error_reporting" value="E_ALL"/>
</php>
</phpunit>

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

133
test/Api/VolumeApiTest.php Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long