scaleway-block-storage/test/Model/ScalewayBlockV1alpha1SnapshotParentVolumeTest.php
2025-03-03 16:35:54 +01:00

117 lines
11 KiB
PHP

<?php
/**
* ScalewayBlockV1alpha1SnapshotParentVolumeTest
*
* 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 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/).
*
* 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
* Please update the test case below to test the model.
*/
namespace OpenAPI\Client\Test\Model;
use PHPUnit\Framework\TestCase;
/**
* ScalewayBlockV1alpha1SnapshotParentVolumeTest Class Doc Comment
*
* @category Class
* @description Information about the parent volume. If the parent volume was deleted, value is null.
* @package OpenAPI\Client
* @author OpenAPI Generator team
* @link https://openapi-generator.tech
*/
class ScalewayBlockV1alpha1SnapshotParentVolumeTest extends TestCase
{
/**
* Setup before running any test case
*/
public static function setUpBeforeClass(): void
{
}
/**
* Setup before running each test case
*/
public function setUp(): void
{
}
/**
* Clean up after running each test case
*/
public function tearDown(): void
{
}
/**
* Clean up after running all test cases
*/
public static function tearDownAfterClass(): void
{
}
/**
* Test "ScalewayBlockV1alpha1SnapshotParentVolume"
*/
public function testScalewayBlockV1alpha1SnapshotParentVolume()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test attribute "id"
*/
public function testPropertyId()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test attribute "name"
*/
public function testPropertyName()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test attribute "type"
*/
public function testPropertyType()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
/**
* Test attribute "status"
*/
public function testPropertyStatus()
{
// TODO: implement
self::markTestIncomplete('Not implemented');
}
}