diff --git a/README.md b/README.md
index 4d9843f..b722f82 100644
--- a/README.md
+++ b/README.md
@@ -15,9 +15,10 @@ This is my playground to learn how the OVH API works, it is then ported into a T
## Features
-- List available servers from OVH Eco catalog
-- Check availability of a specific server in one or multiple datacenters
-- Send notifications to OpsGenie and/or Telegram when a server is available
+- [List available servers](#list-available-servers) from OVH Eco catalog
+- [Check availability](#check-availability) of a specific server in one or multiple datacenters
+- Send [notifications](#notifications-) to OpsGenie and/or Telegram when a server is available
+- [Order a server](#order-a-server) directly from the command line
## Quickstart
@@ -111,68 +112,7 @@ $ bin/check.sh --plan-code 24ska01
> sent Telegram notification
```
-## Usage
-
-```
-$ bin/list.sh -h
-Usage: list.sh
-
-List servers from OVH Eco (including Kimsufi) catalog
-
-Arguments
- --category Server category (default all)
- Allowed values: kimsufi, soyoustart, rise, uncategorized
- -c, --country Country code (required)
- Allowed values with -e ovh-eu : CZ, DE, ES, FI, FR, GB, IE, IT, LT, MA, NL, PL, PT, SN, TN
- Allowed values with -e ovh-ca : ASIA, AU, CA, IN, QC, SG, WE, WS
- Allowed values with -e ovh-us : US
- -e, --endpoint OVH API endpoint (default: ovh-eu)
- Allowed values: ovh-eu, ovh-ca, ovh-us
- -d, --debug Enable debug mode (default: false)
- -h, --help Display this help message
-
- Arguments can also be set as environment variables see config.env.example
- Command line arguments take precedence over environment variables
-
-Example:
- list.sh --country FR
- list.sh --country FR --category kimsufi
-```
-
-```
-$ bin/check.sh -h
-Usage: check.sh
-
-Check OVH Eco (including Kimsufi) server availability
-
-Arguments
- -p, --plan-code Plan code to check (e.g. 24ska01)
- --datacenters Comma-separated list of datacenters to check availability for (default all)
- Example values: bhs, ca, de, fr, fra, gb, gra, lon, pl, rbx, sbg, waw (non exhaustive list)
- -e, --endpoint OVH API endpoint (default: ovh-eu)
- Allowed values: ovh-eu, ovh-ca, ovh-us
- -d, --debug Enable debug mode (default: false)
- -h, --help Display this help message
-
- Arguments can also be set as environment variables see config.env.example
- Command line arguments take precedence over environment variables
-
-Environment variables
- DISCORD_WEBHOOK Webhook URL to use for Discord notification service
- GOTIFY_URL URL to use for Gotify notification service
- GOTIFY_TOKEN token to use for Gotify notification service
- GOTIFY_PRIORITY prority for Gotify notification service
- OPSGENIE_API_KEY API key for OpsGenie to receive notifications
- TELEGRAM_BOT_TOKEN Bot token for Telegram to receive notifications
- TELEGRAM_CHAT_ID Chat ID for Telegram to receive notifications
- HEALTHCHECKS_IO_UUID UUID for healthchecks.io to ping after successful run
-
-Example:
- check.sh --plan-code 24ska01
- check.sh --plan-code 24ska01 --datacenters fr,gra,rbx,sbg
-```
-
-### Examples
+### Examples
#### List available servers
@@ -205,7 +145,27 @@ PlanCode Category Name Price (EUR)
Check availability of a specific server in all datacenters.
```
-$ bin/check.sh --plan-code 24ska01
-> checking 24ska01 availability in all datacenters
-> checked 24ska01 unavailable in fr,gra,rbx,sbg
+$ bin/check.sh --plan-code 24sk50
+> checking 24sk50 availability in all datacenters
+> checked 24sk50 available in bhs,fra,gra,rbx,sbg,waw datacenter(s)
+```
+
+#### Order a server
+
+Place an order a specific server, the order is only placed and not payed for. The order can then be completed by following the URL provided in the output.
+
```
+$ bin/order.sh --plan-code 24sk50 --datacenter fra --item-configuration region=europe
+> cart created id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+> cart updated with item id=xxxxxxxxx
+> item auto-configuration dedicated_os=none_64.en
+> item user-configuration region=europe
+> item user-configuration dedicated_datacenter=fra
+> item option ram-32g-ecc-2400-24sk50
+> item option bandwidth-300-24sk
+> item option softraid-2x2000sa-24sk50
+> cart assigned to account
+> order completed url=https://www.ovh.com/cgi-bin/order/display-order.cgi?orderId=xxxxxxxxx&orderPassword=xxxxxxxxxx
+ ```
+
+ More info on scripts usage can be found in [USAGE.md](USAGE.md).
diff --git a/USAGE.md b/USAGE.md
new file mode 100644
index 0000000..fc677ad
--- /dev/null
+++ b/USAGE.md
@@ -0,0 +1,98 @@
+# Usage
+
+## List available servers
+
+```
+$ bin/list.sh -h
+Usage: list.sh
+
+List servers from OVH Eco (including Kimsufi) catalog
+
+Arguments
+ --category Server category (default all)
+ Allowed values: kimsufi, soyoustart, rise, uncategorized
+ -c, --country Country code (required)
+ Allowed values with -e ovh-eu : CZ, DE, ES, FI, FR, GB, IE, IT, LT, MA, NL, PL, PT, SN, TN
+ Allowed values with -e ovh-ca : ASIA, AU, CA, IN, QC, SG, WE, WS
+ Allowed values with -e ovh-us : US
+ -e, --endpoint OVH API endpoint (default: ovh-eu)
+ Allowed values: ovh-eu, ovh-ca, ovh-us
+ -d, --debug Enable debug mode (default: false)
+ -h, --help Display this help message
+
+ Arguments can also be set as environment variables see config.env.example
+ Command line arguments take precedence over environment variables
+
+Example:
+ list.sh --country FR
+ list.sh --country FR --category kimsufi
+```
+
+## Check availability
+
+```
+$ bin/check.sh -h
+Usage: check.sh
+
+Check OVH Eco (including Kimsufi) server availability
+
+Arguments
+ -p, --plan-code Plan code to check (e.g. 24ska01)
+ --datacenters Comma-separated list of datacenters to check availability for (default all)
+ Example values: bhs, ca, de, fr, fra, gb, gra, lon, pl, rbx, sbg, waw (non exhaustive list)
+ -e, --endpoint OVH API endpoint (default: ovh-eu)
+ Allowed values: ovh-eu, ovh-ca, ovh-us
+ -d, --debug Enable debug mode (default: false)
+ -h, --help Display this help message
+
+ Arguments can also be set as environment variables see config.env.example
+ Command line arguments take precedence over environment variables
+
+Environment variables
+ DISCORD_WEBHOOK Webhook URL to use for Discord notification service
+ GOTIFY_URL URL to use for Gotify notification service
+ GOTIFY_TOKEN token to use for Gotify notification service
+ GOTIFY_PRIORITY prority for Gotify notification service
+ OPSGENIE_API_KEY API key for OpsGenie to receive notifications
+ TELEGRAM_BOT_TOKEN Bot token for Telegram to receive notifications
+ TELEGRAM_CHAT_ID Chat ID for Telegram to receive notifications
+ HEALTHCHECKS_IO_UUID UUID for healthchecks.io to ping after successful run
+
+Example:
+ check.sh --plan-code 24ska01
+ check.sh --plan-code 24ska01 --datacenters fr,gra,rbx,sbg
+```
+
+## Order a server
+
+```
+$ bin/order.sh -h
+Usage: order.sh
+
+Place an order for a servers from OVH Eco (including Kimsufi) catalog
+
+Arguments
+ -c, --country Country code (required)
+ Allowed values with -e ovh-eu : CZ, DE, ES, FI, FR, GB, IE, IT, LT, MA, NL, PL, PT, SN, TN
+ Allowed values with -e ovh-ca : ASIA, AU, CA, IN, QC, SG, WE, WS
+ Allowed values with -e ovh-us : US
+ --datacenter Datacenter code (default: from config when only one is set)
+ Example values: bhs, ca, de, fr, fra, gb, gra, lon, pl, rbx, sbg, waw (non exhaustive list)
+ -e, --endpoint OVH API endpoint (default: ovh-eu)
+ Allowed values: ovh-eu, ovh-ca, ovh-us
+ -i, --item-configuration
+ Item configuration in the form 'label=value'
+ -d, --debug Enable debug mode (default: false)
+ -h, --help Display this help message
+ -q, --quantity Quantity of items to order (default: 1)
+ --price-mode Billing price type (default: default)
+ --price-duration Billing duration (default: P1M)
+
+ Arguments can also be set as environment variables see config.env.example
+ Command line arguments take precedence over environment variables
+
+Example:
+ order.sh
+ order.sh --item-configuration region=europe
+ order.sh --item-configuration region=europe --datacenter fra
+```