531 lines
27 KiB
PHP
531 lines
27 KiB
PHP
|
|
<?php
|
||
|
|
/**
|
||
|
|
* Configuration
|
||
|
|
* PHP version 7.4
|
||
|
|
*
|
||
|
|
* @category Class
|
||
|
|
* @package OpenAPI\Client
|
||
|
|
* @author OpenAPI Generator team
|
||
|
|
* @link https://openapi-generator.tech
|
||
|
|
*/
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Instance API
|
||
|
|
*
|
||
|
|
* Scaleway Instances are virtual machines in the cloud. Different [Instance types](https://www.scaleway.com/en/docs/compute/instances/reference-content/choosing-instance-type/) offer different technical specifications in terms of vCPU, RAM, bandwidth and storage. Once you have created your Instance and installed your image of choice (e.g. an operating system), you can [connect to your Instance via SSH](https://www.scaleway.com/en/docs/compute/instances/how-to/connect-to-instance/) to use it as you wish. When you are done using the Instance, you can delete it from your account. (switchcolumn) <Message type=\"tip\"> To retrieve information about the different [images](#path-images) available to install on Scaleway Instances, check out our [Marketplace API](https://www.scaleway.com/en/developers/api/marketplace). </Message> (switchcolumn) ## Concepts Refer to our [dedicated concepts page](https://www.scaleway.com/en/docs/compute/instances/concepts/) to find definitions of all concepts and terminology related to Instances. (switchcolumn) (switchcolumn) ## Quickstart 1. Configure your environment variables <Message type=\"note\"> This is an optional step that seeks to simplify your usage of the Instances 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>\" ``` 2. **Create an Instance**: Run the following command to create an Instance. You can customize the details in the payload (name, description, type, tags etc) to your needs: use the information below to adjust the payload as necessary. ```bash curl -X POST \\ -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\ -H \"Content-Type: application/json\" \\ \"https://api.scaleway.com/instance/v1/zones/$SCW_DEFAULT_ZONE/servers\" \\ -d '{ \"name\": \"my-new-instance\", \"project\": \"'\"$SCW_PROJECT_ID\"'\", \"commercial_type\": \"GP1-S\", \"image\": \"ubuntu_noble\", \"enable_ipv6\": true, \"volumes\": { \"0\":{ \"size\": 300000000000, \"volume_type\": \"l_ssd\" } } }' ``` | Parameter | Description | Valid values | | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `name` | A name of your choice for the Instance (string)
|
||
|
|
*
|
||
|
|
* The version of the OpenAPI document: v1
|
||
|
|
* 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: v1' . 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);
|
||
|
|
}
|
||
|
|
}
|