531 lines
21 KiB
PHP
531 lines
21 KiB
PHP
|
|
<?php
|
||
|
|
/**
|
||
|
|
* Configuration
|
||
|
|
* PHP version 7.4
|
||
|
|
*
|
||
|
|
* @category Class
|
||
|
|
* @package OpenAPI\Client
|
||
|
|
* @author OpenAPI Generator team
|
||
|
|
* @link https://openapi-generator.tech
|
||
|
|
*/
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Block Storage API
|
||
|
|
*
|
||
|
|
* 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 th
|
||
|
|
*
|
||
|
|
* The version of the OpenAPI document: v1alpha1
|
||
|
|
* Generated by: https://openapi-generator.tech
|
||
|
|
* Generator version: 7.11.0
|
||
|
|
*/
|
||
|
|
|
||
|
|
/**
|
||
|
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||
|
|
* https://openapi-generator.tech
|
||
|
|
* Do not edit the class manually.
|
||
|
|
*/
|
||
|
|
|
||
|
|
namespace OpenAPI\Client;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Configuration Class Doc Comment
|
||
|
|
* PHP version 7.4
|
||
|
|
*
|
||
|
|
* @category Class
|
||
|
|
* @package OpenAPI\Client
|
||
|
|
* @author OpenAPI Generator team
|
||
|
|
* @link https://openapi-generator.tech
|
||
|
|
*/
|
||
|
|
class Configuration
|
||
|
|
{
|
||
|
|
public const BOOLEAN_FORMAT_INT = 'int';
|
||
|
|
public const BOOLEAN_FORMAT_STRING = 'string';
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @var Configuration
|
||
|
|
*/
|
||
|
|
private static $defaultConfiguration;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Associate array to store API key(s)
|
||
|
|
*
|
||
|
|
* @var string[]
|
||
|
|
*/
|
||
|
|
protected $apiKeys = [];
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Associate array to store API prefix (e.g. Bearer)
|
||
|
|
*
|
||
|
|
* @var string[]
|
||
|
|
*/
|
||
|
|
protected $apiKeyPrefixes = [];
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Access token for OAuth/Bearer authentication
|
||
|
|
*
|
||
|
|
* @var string
|
||
|
|
*/
|
||
|
|
protected $accessToken = '';
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Boolean format for query string
|
||
|
|
*
|
||
|
|
* @var string
|
||
|
|
*/
|
||
|
|
protected $booleanFormatForQueryString = self::BOOLEAN_FORMAT_INT;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Username for HTTP basic authentication
|
||
|
|
*
|
||
|
|
* @var string
|
||
|
|
*/
|
||
|
|
protected $username = '';
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Password for HTTP basic authentication
|
||
|
|
*
|
||
|
|
* @var string
|
||
|
|
*/
|
||
|
|
protected $password = '';
|
||
|
|
|
||
|
|
/**
|
||
|
|
* The host
|
||
|
|
*
|
||
|
|
* @var string
|
||
|
|
*/
|
||
|
|
protected $host = 'https://api.scaleway.com';
|
||
|
|
|
||
|
|
/**
|
||
|
|
* User agent of the HTTP request, set to "OpenAPI-Generator/{version}/PHP" by default
|
||
|
|
*
|
||
|
|
* @var string
|
||
|
|
*/
|
||
|
|
protected $userAgent = 'OpenAPI-Generator/1.0.0/PHP';
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Debug switch (default set to false)
|
||
|
|
*
|
||
|
|
* @var bool
|
||
|
|
*/
|
||
|
|
protected $debug = false;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Debug file location (log to STDOUT by default)
|
||
|
|
*
|
||
|
|
* @var string
|
||
|
|
*/
|
||
|
|
protected $debugFile = 'php://output';
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Debug file location (log to STDOUT by default)
|
||
|
|
*
|
||
|
|
* @var string
|
||
|
|
*/
|
||
|
|
protected $tempFolderPath;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Constructor
|
||
|
|
*/
|
||
|
|
public function __construct()
|
||
|
|
{
|
||
|
|
$this->tempFolderPath = sys_get_temp_dir();
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Sets API key
|
||
|
|
*
|
||
|
|
* @param string $apiKeyIdentifier API key identifier (authentication scheme)
|
||
|
|
* @param string $key API key or token
|
||
|
|
*
|
||
|
|
* @return $this
|
||
|
|
*/
|
||
|
|
public function setApiKey($apiKeyIdentifier, $key)
|
||
|
|
{
|
||
|
|
$this->apiKeys[$apiKeyIdentifier] = $key;
|
||
|
|
return $this;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Gets API key
|
||
|
|
*
|
||
|
|
* @param string $apiKeyIdentifier API key identifier (authentication scheme)
|
||
|
|
*
|
||
|
|
* @return null|string API key or token
|
||
|
|
*/
|
||
|
|
public function getApiKey($apiKeyIdentifier)
|
||
|
|
{
|
||
|
|
return isset($this->apiKeys[$apiKeyIdentifier]) ? $this->apiKeys[$apiKeyIdentifier] : null;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Sets the prefix for API key (e.g. Bearer)
|
||
|
|
*
|
||
|
|
* @param string $apiKeyIdentifier API key identifier (authentication scheme)
|
||
|
|
* @param string $prefix API key prefix, e.g. Bearer
|
||
|
|
*
|
||
|
|
* @return $this
|
||
|
|
*/
|
||
|
|
public function setApiKeyPrefix($apiKeyIdentifier, $prefix)
|
||
|
|
{
|
||
|
|
$this->apiKeyPrefixes[$apiKeyIdentifier] = $prefix;
|
||
|
|
return $this;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Gets API key prefix
|
||
|
|
*
|
||
|
|
* @param string $apiKeyIdentifier API key identifier (authentication scheme)
|
||
|
|
*
|
||
|
|
* @return null|string
|
||
|
|
*/
|
||
|
|
public function getApiKeyPrefix($apiKeyIdentifier)
|
||
|
|
{
|
||
|
|
return isset($this->apiKeyPrefixes[$apiKeyIdentifier]) ? $this->apiKeyPrefixes[$apiKeyIdentifier] : null;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Sets the access token for OAuth
|
||
|
|
*
|
||
|
|
* @param string $accessToken Token for OAuth
|
||
|
|
*
|
||
|
|
* @return $this
|
||
|
|
*/
|
||
|
|
public function setAccessToken($accessToken)
|
||
|
|
{
|
||
|
|
$this->accessToken = $accessToken;
|
||
|
|
return $this;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Gets the access token for OAuth
|
||
|
|
*
|
||
|
|
* @return string Access token for OAuth
|
||
|
|
*/
|
||
|
|
public function getAccessToken()
|
||
|
|
{
|
||
|
|
return $this->accessToken;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Sets boolean format for query string.
|
||
|
|
*
|
||
|
|
* @param string $booleanFormat Boolean format for query string
|
||
|
|
*
|
||
|
|
* @return $this
|
||
|
|
*/
|
||
|
|
public function setBooleanFormatForQueryString(string $booleanFormat)
|
||
|
|
{
|
||
|
|
$this->booleanFormatForQueryString = $booleanFormat;
|
||
|
|
|
||
|
|
return $this;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Gets boolean format for query string.
|
||
|
|
*
|
||
|
|
* @return string Boolean format for query string
|
||
|
|
*/
|
||
|
|
public function getBooleanFormatForQueryString(): string
|
||
|
|
{
|
||
|
|
return $this->booleanFormatForQueryString;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Sets the username for HTTP basic authentication
|
||
|
|
*
|
||
|
|
* @param string $username Username for HTTP basic authentication
|
||
|
|
*
|
||
|
|
* @return $this
|
||
|
|
*/
|
||
|
|
public function setUsername($username)
|
||
|
|
{
|
||
|
|
$this->username = $username;
|
||
|
|
return $this;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Gets the username for HTTP basic authentication
|
||
|
|
*
|
||
|
|
* @return string Username for HTTP basic authentication
|
||
|
|
*/
|
||
|
|
public function getUsername()
|
||
|
|
{
|
||
|
|
return $this->username;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Sets the password for HTTP basic authentication
|
||
|
|
*
|
||
|
|
* @param string $password Password for HTTP basic authentication
|
||
|
|
*
|
||
|
|
* @return $this
|
||
|
|
*/
|
||
|
|
public function setPassword($password)
|
||
|
|
{
|
||
|
|
$this->password = $password;
|
||
|
|
return $this;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Gets the password for HTTP basic authentication
|
||
|
|
*
|
||
|
|
* @return string Password for HTTP basic authentication
|
||
|
|
*/
|
||
|
|
public function getPassword()
|
||
|
|
{
|
||
|
|
return $this->password;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Sets the host
|
||
|
|
*
|
||
|
|
* @param string $host Host
|
||
|
|
*
|
||
|
|
* @return $this
|
||
|
|
*/
|
||
|
|
public function setHost($host)
|
||
|
|
{
|
||
|
|
$this->host = $host;
|
||
|
|
return $this;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Gets the host
|
||
|
|
*
|
||
|
|
* @return string Host
|
||
|
|
*/
|
||
|
|
public function getHost()
|
||
|
|
{
|
||
|
|
return $this->host;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Sets the user agent of the api client
|
||
|
|
*
|
||
|
|
* @param string $userAgent the user agent of the api client
|
||
|
|
*
|
||
|
|
* @throws \InvalidArgumentException
|
||
|
|
* @return $this
|
||
|
|
*/
|
||
|
|
public function setUserAgent($userAgent)
|
||
|
|
{
|
||
|
|
if (!is_string($userAgent)) {
|
||
|
|
throw new \InvalidArgumentException('User-agent must be a string.');
|
||
|
|
}
|
||
|
|
|
||
|
|
$this->userAgent = $userAgent;
|
||
|
|
return $this;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Gets the user agent of the api client
|
||
|
|
*
|
||
|
|
* @return string user agent
|
||
|
|
*/
|
||
|
|
public function getUserAgent()
|
||
|
|
{
|
||
|
|
return $this->userAgent;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Sets debug flag
|
||
|
|
*
|
||
|
|
* @param bool $debug Debug flag
|
||
|
|
*
|
||
|
|
* @return $this
|
||
|
|
*/
|
||
|
|
public function setDebug($debug)
|
||
|
|
{
|
||
|
|
$this->debug = $debug;
|
||
|
|
return $this;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Gets the debug flag
|
||
|
|
*
|
||
|
|
* @return bool
|
||
|
|
*/
|
||
|
|
public function getDebug()
|
||
|
|
{
|
||
|
|
return $this->debug;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Sets the debug file
|
||
|
|
*
|
||
|
|
* @param string $debugFile Debug file
|
||
|
|
*
|
||
|
|
* @return $this
|
||
|
|
*/
|
||
|
|
public function setDebugFile($debugFile)
|
||
|
|
{
|
||
|
|
$this->debugFile = $debugFile;
|
||
|
|
return $this;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Gets the debug file
|
||
|
|
*
|
||
|
|
* @return string
|
||
|
|
*/
|
||
|
|
public function getDebugFile()
|
||
|
|
{
|
||
|
|
return $this->debugFile;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Sets the temp folder path
|
||
|
|
*
|
||
|
|
* @param string $tempFolderPath Temp folder path
|
||
|
|
*
|
||
|
|
* @return $this
|
||
|
|
*/
|
||
|
|
public function setTempFolderPath($tempFolderPath)
|
||
|
|
{
|
||
|
|
$this->tempFolderPath = $tempFolderPath;
|
||
|
|
return $this;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Gets the temp folder path
|
||
|
|
*
|
||
|
|
* @return string Temp folder path
|
||
|
|
*/
|
||
|
|
public function getTempFolderPath()
|
||
|
|
{
|
||
|
|
return $this->tempFolderPath;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Gets the default configuration instance
|
||
|
|
*
|
||
|
|
* @return Configuration
|
||
|
|
*/
|
||
|
|
public static function getDefaultConfiguration()
|
||
|
|
{
|
||
|
|
if (self::$defaultConfiguration === null) {
|
||
|
|
self::$defaultConfiguration = new Configuration();
|
||
|
|
}
|
||
|
|
|
||
|
|
return self::$defaultConfiguration;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Sets the default configuration instance
|
||
|
|
*
|
||
|
|
* @param Configuration $config An instance of the Configuration Object
|
||
|
|
*
|
||
|
|
* @return void
|
||
|
|
*/
|
||
|
|
public static function setDefaultConfiguration(Configuration $config)
|
||
|
|
{
|
||
|
|
self::$defaultConfiguration = $config;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Gets the essential information for debugging
|
||
|
|
*
|
||
|
|
* @return string The report for debugging
|
||
|
|
*/
|
||
|
|
public static function toDebugReport()
|
||
|
|
{
|
||
|
|
$report = 'PHP SDK (OpenAPI\Client) Debug Report:' . PHP_EOL;
|
||
|
|
$report .= ' OS: ' . php_uname() . PHP_EOL;
|
||
|
|
$report .= ' PHP Version: ' . PHP_VERSION . PHP_EOL;
|
||
|
|
$report .= ' The version of the OpenAPI document: v1alpha1' . PHP_EOL;
|
||
|
|
$report .= ' Temp Folder Path: ' . self::getDefaultConfiguration()->getTempFolderPath() . PHP_EOL;
|
||
|
|
|
||
|
|
return $report;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Get API key (with prefix if set)
|
||
|
|
*
|
||
|
|
* @param string $apiKeyIdentifier name of apikey
|
||
|
|
*
|
||
|
|
* @return null|string API key with the prefix
|
||
|
|
*/
|
||
|
|
public function getApiKeyWithPrefix($apiKeyIdentifier)
|
||
|
|
{
|
||
|
|
$prefix = $this->getApiKeyPrefix($apiKeyIdentifier);
|
||
|
|
$apiKey = $this->getApiKey($apiKeyIdentifier);
|
||
|
|
|
||
|
|
if ($apiKey === null) {
|
||
|
|
return null;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($prefix === null) {
|
||
|
|
$keyWithPrefix = $apiKey;
|
||
|
|
} else {
|
||
|
|
$keyWithPrefix = $prefix . ' ' . $apiKey;
|
||
|
|
}
|
||
|
|
|
||
|
|
return $keyWithPrefix;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Returns an array of host settings
|
||
|
|
*
|
||
|
|
* @return array an array of host settings
|
||
|
|
*/
|
||
|
|
public function getHostSettings()
|
||
|
|
{
|
||
|
|
return [
|
||
|
|
[
|
||
|
|
"url" => "https://api.scaleway.com",
|
||
|
|
"description" => "No description provided",
|
||
|
|
]
|
||
|
|
];
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Returns URL based on host settings, index and variables
|
||
|
|
*
|
||
|
|
* @param array $hostSettings array of host settings, generated from getHostSettings() or equivalent from the API clients
|
||
|
|
* @param int $hostIndex index of the host settings
|
||
|
|
* @param array|null $variables hash of variable and the corresponding value (optional)
|
||
|
|
* @return string URL based on host settings
|
||
|
|
*/
|
||
|
|
public static function getHostString(array $hostSettings, $hostIndex, ?array $variables = null)
|
||
|
|
{
|
||
|
|
if (null === $variables) {
|
||
|
|
$variables = [];
|
||
|
|
}
|
||
|
|
|
||
|
|
// check array index out of bound
|
||
|
|
if ($hostIndex < 0 || $hostIndex >= count($hostSettings)) {
|
||
|
|
throw new \InvalidArgumentException("Invalid index $hostIndex when selecting the host. Must be less than ".count($hostSettings));
|
||
|
|
}
|
||
|
|
|
||
|
|
$host = $hostSettings[$hostIndex];
|
||
|
|
$url = $host["url"];
|
||
|
|
|
||
|
|
// go through variable and assign a value
|
||
|
|
foreach ($host["variables"] ?? [] as $name => $variable) {
|
||
|
|
if (array_key_exists($name, $variables)) { // check to see if it's in the variables provided by the user
|
||
|
|
if (!isset($variable['enum_values']) || in_array($variables[$name], $variable["enum_values"], true)) { // check to see if the value is in the enum
|
||
|
|
$url = str_replace("{".$name."}", $variables[$name], $url);
|
||
|
|
} else {
|
||
|
|
throw new \InvalidArgumentException("The variable `$name` in the host URL has invalid value ".$variables[$name].". Must be ".join(',', $variable["enum_values"]).".");
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
// use default value
|
||
|
|
$url = str_replace("{".$name."}", $variable["default_value"], $url);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
return $url;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Returns URL based on the index and variables
|
||
|
|
*
|
||
|
|
* @param int $index index of the host settings
|
||
|
|
* @param array|null $variables hash of variable and the corresponding value (optional)
|
||
|
|
* @return string URL based on host settings
|
||
|
|
*/
|
||
|
|
public function getHostFromSettings($index, $variables = null)
|
||
|
|
{
|
||
|
|
return self::getHostString($this->getHostSettings(), $index, $variables);
|
||
|
|
}
|
||
|
|
}
|