Fornex Public API
Autenticazione
L'accesso all'API richiede una chiave API. Inseriscila nell'intestazione HTTP di ogni richiesta.
Authorization: Api-Key <key>Authorization: Api-Key <key>
Account
Saldo del conto
Restituisce il saldo del conto corrente
/account/balanceRisposte
200application/jsonbalancenumber (double)ObbligatoriocurrencystringObbligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/account/balance"200{
"balance": 10,
"currency": "EUR"
}Informazioni
/account/infoRisposte
200application/jsonemailstring (email)max length: 254namestringObbligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/account/info"200{
"email": "example@fornex.com",
"name": "Example Account"
}Fatture
Restituisce il numero e l'importo totale delle fatture non pagate.
/account/invoicesRisposte
200application/jsonunpaid_invoices_countintegerObbligatoriounpaid_invoices_amountnumber (double)ObbligatoriocurrencystringObbligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/account/invoices"200{
"unpaid_invoices_count": 1,
"unpaid_invoices_amount": 100,
"currency": "EUR"
}Plans
Backup
/plans/backupsRisposte
200application/jsonarray object[]BackupTariff[]spaceintegerObbligatoriopricenumber (double)Obbligatoriounitsstringread-onlyObbligatoriodefault: GB
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/plans/backups"200[
{
"price": 3,
"space": 100,
"units": "GB"
}
]Server dedicati
/plans/dedicatedRisposte
200application/jsonarray object[]DedicatedTariff[]idintegerread-onlyObbligatorionamestringmax length: 128ObbligatorioIl nome del piano appare nelle fatture, quindi deve essere breve e scritto in caratteri latini — ad esempio Cloud NVMe 1.
cpu_modelstringread-onlyObbligatoriocpu_countintegermin: 0max: 65535ramstringObbligatoriodiskstringObbligatoriobandwidthstringObbligatoriopricenumber (double)Obbligatoriolocationsarray array[]Obbligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/plans/dedicated"200[
{
"id": 101,
"name": "DS XeonSAS",
"price": 198,
"bandwidth": "1 Gbit/s",
"cpu_model": "Intel Xeon E3-1270 (4×3.4Ghz)",
"cpu_count": 1,
"disk": "4 × 300 GB SAS 15k",
"ram": "16 GB",
"locations": [
[
"DE",
"Германия"
]
]
}
]Web Hosting
/plans/hostingRisposte
200application/jsonarray object[]VHTariff[]idintegerread-onlyObbligatorionamestringmax length: 128ObbligatorioIl nome del piano appare nelle fatture, quindi deve essere breve e scritto in caratteri latini — ad esempio Cloud NVMe 1.
sitesintegermin: 0max: 65535nullablepricenumber (double)Obbligatoriocpu_coresintegermin: 0max: 65535nullablehdd_spaceinteger (int64)min: 0max: 4294967295nullableGB
available_locationsarray string[]read-onlyObbligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/plans/hosting"200[
{
"id": 33,
"name": "VH-SSD-2",
"price": 1,
"sites": 2,
"cpu_cores": 1,
"hdd_space": 1,
"available_locations": [
"DE",
"RU"
]
}
]VPN
/plans/vpnRisposte
200application/jsonarray object[]VpnTariff[]idintegerread-onlyObbligatoriopricenumber (double)Obbligatoriovalorishareddedicatedmulti-hop
available_locationsarray string[]read-onlyObbligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/plans/vpn"200[
{
"id": 1,
"type": "dedicated",
"price": 10,
"available_locations": [
"DE",
"NL",
"US",
"RU"
]
}
]VPS
/plans/vpsRisposte
200application/jsonarray object[]VpsTariff[]idintegerread-onlyObbligatorionamestringmax length: 128ObbligatorioIl nome del piano appare nelle fatture, quindi deve essere breve e scritto in caratteri latini — ad esempio Cloud NVMe 1.
cpu_countintegerObbligatorioramstringObbligatoriodiskstringObbligatoriobandwidthstringObbligatoriopricenumber (double)Obbligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/plans/vps"200[
{
"id": 433,
"name": "SSD Cloud 1GB",
"cpu_count": 1,
"ram": "1 GB",
"bandwidth": "100 Mbit/s",
"disk": "10 GB",
"price": 5,
"disk_class": null
}
]Projects
Elenco progetti
/project/Parametri di query
pageintegerUn numero di pagina all'interno del set di risultati impaginati.
default: 1page_sizeintegerNumero di risultati da restituire per pagina.
default: 10
Risposte
200application/jsoncountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/project/"200{
"type": "object",
"required": [
"count",
"results"
],
"properties": {
"count": {
"type": "integer",
"example": 123
},
"next": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=4"
},
"previous": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=2"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true
},
"name": {
"type": "string",
"maxLength": 40
},
"comment": {
"type": "string",
"maxLength": 256
},
"logo": {
"type": "string",
"format": "uri",
"readOnly": true
}
},
"required": [
"id",
"logo",
"name"
]
}
}
}
}Crea progetto
/project/Corpo
Obbligatorionamestringlength 1…40Obbligatoriocommentstringmax length: 256Risposte
201application/jsonidintegerread-onlyObbligatorionamestringmax length: 40Obbligatoriocommentstringmax length: 256logostring (uri)read-onlyObbligatorio
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"name":"string","comment":"string"}' \
"https://fornex.com/api/project/"201{
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true
},
"name": {
"type": "string",
"maxLength": 40
},
"comment": {
"type": "string",
"maxLength": 256
},
"logo": {
"type": "string",
"format": "uri",
"readOnly": true
}
},
"required": [
"id",
"logo",
"name"
]
}Dettagli progetto
/project/{id}/Parametri del percorso
idintegerObbligatorioUn unique integer value che identifica questo project.
Risposte
200application/jsonidintegerread-onlyObbligatorionamestringmax length: 40Obbligatoriocommentstringmax length: 256logostring (uri)read-onlyObbligatorio
ID='1'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/project/$ID/"200{
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true
},
"name": {
"type": "string",
"maxLength": 40
},
"comment": {
"type": "string",
"maxLength": 256
},
"logo": {
"type": "string",
"format": "uri",
"readOnly": true
}
},
"required": [
"id",
"logo",
"name"
]
}Modifica progetto
/project/{id}/Parametri del percorso
idintegerObbligatorioUn unique integer value che identifica questo project.
Corpo
namestringlength 1…40commentstringmax length: 256Risposte
200application/jsonidintegerread-onlyObbligatorionamestringmax length: 40Obbligatoriocommentstringmax length: 256logostring (uri)read-onlyObbligatorio
ID='1'
curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"name":"string","comment":"string"}' \
"https://fornex.com/api/project/$ID/"200{
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true
},
"name": {
"type": "string",
"maxLength": 40
},
"comment": {
"type": "string",
"maxLength": 256
},
"logo": {
"type": "string",
"format": "uri",
"readOnly": true
}
},
"required": [
"id",
"logo",
"name"
]
}Elimina progetto
/project/{id}/Parametri del percorso
idintegerObbligatorioUn unique integer value che identifica questo project.
Risposte
204No response body
ID='1'
curl -X DELETE \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/project/$ID/"Aggiungi ordine
Richiesta di aggiungere un ordine dal Progetto.
/project/{id}/add_orders/Parametri del percorso
idintegerObbligatorioUn unique integer value che identifica questo project.
Corpo
Obbligatorioordersarray string[]write-onlyObbligatorioRisposte
200No response body
ID='1'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"orders":["string"]}' \
"https://fornex.com/api/project/$ID/add_orders/"Modifica logo
Richiesta di modifica del logo del Progetto.
/project/{id}/edit_logo/Parametri del percorso
idintegerObbligatorioUn unique integer value che identifica questo project.
Corpo
multipart/form-datalogostring (binary)Percorso del file.
Risposte
200application/jsonlogostring (uri)Percorso del file.
ID='1'
curl -X PUT \
-H "Content-Type: multipart/form-data" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
-F "logo=@\"path/to/file\"" \
"https://fornex.com/api/project/$ID/edit_logo/"200{
"type": "object",
"properties": {
"logo": {
"type": "string",
"format": "uri",
"description": "Percorso del file."
}
}
}Elimina ordine
Richiesta di rimuovere un ordine dal Progetto.
/project/{id}/remove_orders/Parametri del percorso
idintegerObbligatorioUn unique integer value che identifica questo project.
Corpo
Obbligatorioordersarray string[]write-onlyObbligatorioRisposte
200No response body
ID='1'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"orders":["string"]}' \
"https://fornex.com/api/project/$ID/remove_orders/"Orders
Un ordine è un'entità interna del nostro sistema, che viene creata insieme a un servizio e contiene un elenco delle sue proprietà (ad es. costo, località, ecc.). Ad esempio, un VPS è il servizio stesso (macchina virtuale) e un ordine VPS è un elenco delle sue proprietà associate. Pertanto, per creare un ordine, eseguire una richiesta di creazione del servizio nella sezione API corrispondente, ad es. Crea VPS. E per ulteriori operazioni con qualsiasi ordine, utilizzare i metodi di questa sezione.
Di seguito sono riportate le richieste API che consentono di gestire ordini di qualsiasi tipo, in particolare per ottenere i dettagli dell'ordine, modificarlo o annullarlo.
Elenco degli ordini
Elenca tutti gli ordini disponibili. Le informazioni sui parametri di ogni ordine saranno incluse anche nella risposta.
/orders/Parametri di query
cancel_markbooleanFiltrare gli ordini che verranno annullati.
orderingstringCampo utilizzato per ordinare i risultati.
default: idexpiredidpageintegerUn numero di pagina all'interno del set di risultati impaginati.
default: 1page_sizeintegerNumero di risultati da restituire per pagina.
default: 10
Risposte
200application/jsoncountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/"200{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": "34-1234",
"name": "DB Host",
"tariff": "VPS Master",
"tariff_price": 140,
"type": "vps",
"hostname": "srv-123.fornex.org",
"ipaddress_set": [
"123.123.123.123"
],
"status": "active",
"cost_month": 148,
"expiration_date": "2015-12-18T17:21:46",
"tags": [
"Database"
]
}
]
}Dettagli dell'ordine
Ottenere tutti i dati disponibili sull'ordine tramite il suo ID.
/orders/{order_id}/Parametri del percorso
order_idstringObbligatorioID dell'ordine nel formato NN-NNNNN. Il prefisso può variare a seconda del tipo di ordine.
Risposte
200application/jsonidstringread-onlyObbligatorionamestringmax length: 64tariffstringread-onlyObbligatoriotariff_pricenumber (double)nullableread-onlyObbligatoriotypestringread-onlyObbligatoriohostnamestringnullableread-onlyObbligatorioipaddress_setarray string[]nullableread-onlyObbligatoriostatusstringread-onlyObbligatoriovaloriunpaidpendingactiveexpireddisabledcanceledblockednoprolong
cost_monthnumber (double)read-onlyObbligatorioexpiration_datestring (date-time)read-onlyObbligatoriotagsarray string[]Obbligatoriocancel_markbooleanread-onlyObbligatorioUn marcatore che indica che l'ordine verrà annullato.
projectobjectnullableread-onlyObbligatorio
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/$ORDER_ID/"200{
"id": "34-1234",
"name": "DB Host",
"tariff": "VPS Master",
"tariff_price": 140,
"type": "vps",
"hostname": "srv-123.fornex.org",
"ipaddress_set": [
"123.123.123.123"
],
"status": "active",
"cost_month": 148,
"expiration_date": "2015-12-18T17:21:46",
"tags": [
"Database"
]
}Modifica ordine
Modificare alcuni parametri di un ordine specifico (ricerca per ID) che sono disponibili per la modifica.
/orders/{order_id}/Parametri del percorso
order_idstringObbligatorioID dell'ordine nel formato NN-NNNNN. Il prefisso può variare a seconda del tipo di ordine.
Corpo
namestringlength 1…64default: Nome personalizzato per l'ordine. Inserite una stringa vuota se desiderate rimuovere il nome.
tagsarray string[]Tag per l'ordine come elenco. I nuovi tag sostituiranno completamente quelli attuali, se presenti. Inserite un elenco vuoto se desiderate rimuovere tutti i tag.
projectintegernullableProgetto dell'ordine. Inserite una stringa vuota se desiderate rimuovere il progetto.
Risposte
200application/jsonnamestringmax length: 64default:Nome personalizzato per l'ordine.
tagsarray string[]ObbligatorioTag per l'ordine come elenco.
projectintegernullableObbligatorioProgetto dell'ordine.
ORDER_ID='34-1234'
curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"name": "DB Host"}' \
"https://fornex.com/api/orders/$ORDER_ID/"200{
"name": "DB Host",
"tags": [
"Database"
],
"project": 1
}Annulla ordine
Annullare un ordine ed eliminare il servizio correlato.
A seconda del parametro when, sono possibili due opzioni:
expired- all'ordine verrà assegnato un contrassegno di annullamento e verrà annullato al termine del periodo pagato. In altre parole, blocca il rinnovo automatico. Questo è l'approccio predefinito. Puoi rimuovere il contrassegno se cambi idea.now- la richiesta di annullamento verrà immediatamente trasmessa all'elaborazione e l'ordine verrà annullato il prima possibile. L'annullamento istantaneo dell'ordine non è ancora supportato.
Se l'ordine non è ancora stato pagato, verrà annullato immediatamente indipendentemente dal parametro when selezionato.
/orders/{order_id}/cancel/Parametri del percorso
order_idstringObbligatorioID dell'ordine nel formato NN-NNNNN. Il prefisso può variare a seconda del tipo di ordine.
Corpo
whenstringwrite-onlydefault: expirednowexpired
Il parametro descrive quando l'ordine deve essere annullato: ora o al termine del periodo pagato.
save_backupbooleanwrite-onlydefault: trueIl parametro descrive se eseguire uno snapshot del VPS prima di rimuovere la macchina virtuale o meno.
Risposte
200application/jsonstatusstringread-onlyObbligatoriovaloricanceledcancel_pending
messagestringread-onlyObbligatorio
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"when": "expired", "save_backup": true}' \
"https://fornex.com/api/orders/$ORDER_ID/cancel/"200{
"status": "cancel_pending",
"message": "Order will be canceled after expiration."
}Rimuovi il contrassegno di annullamento
Rimuovere il contrassegno di annullamento per un ordine specifico (ricerca per ID). Inoltre, il contrassegno viene rimosso automaticamente se forzi il rinnovo dell'ordine.
/orders/{order_id}/cancel/Parametri del percorso
order_idstringObbligatorioID dell'ordine nel formato NN-NNNNN. Il prefisso può variare a seconda del tipo di ordine.
Risposte
204No response body
ORDER_ID='34-1234'
curl -X DELETE \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/$ORDER_ID/cancel/"VPS: Orders
VPS è un Virtual Private Server, noto anche come Virtual Dedicated Server. Questa sezione copre gli endpoint API principali e ausiliari utilizzati per lavorare con VPS presso Fornex.
Elenco degli ordini VPS
Elenca tutti gli ordini VPS disponibili. Le informazioni sui parametri di ogni ordine saranno incluse anche nella risposta.
/orders/vps/Parametri di query
cancel_markbooleanFiltrare gli ordini che verranno annullati.
orderingstringCampo utilizzato per ordinare i risultati.
default: idexpiredidpageintegerUn numero di pagina all'interno del set di risultati impaginati.
default: 1page_sizeintegerNumero di risultati da restituire per pagina.
default: 10
Risposte
200application/jsoncountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/"200{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": "34-1234",
"name": "DB Host",
"tariff": "VPS Master",
"tariff_price": 140,
"type": "vps",
"hostname": "srv-123.fornex.org",
"ipaddress_set": [
"123.123.123.123"
],
"status": "active",
"cost_month": 148,
"expiration_date": "2015-12-18T17:21:46",
"tags": [
"Database"
],
"configuration": {
"cpu_count": 1,
"ram_size": 2,
"disk_size": 10,
"cpu_arch": "x86_64",
"min_cpu_freq": 3
}
}
]
}Dettagli dell'ordine VPS
Ottenere tutti i dati disponibili sull'ordine VPS tramite il suo ID.
/orders/vps/{order_id}/Parametri del percorso
order_idstringObbligatorioID dell'ordine nel formato NN-NNNNN.
Risposte
200application/jsonidstringread-onlyObbligatorionamestringmax length: 64tariffstringread-onlyObbligatoriotariff_pricenumber (double)nullableread-onlyObbligatoriotypestringread-onlyObbligatoriohostnamestringnullableread-onlyObbligatorioipaddress_setarray string[]nullableread-onlyObbligatoriostatusstringread-onlyObbligatoriovaloriunpaidpendingactiveexpireddisabledcanceledblockednoprolong
cost_monthnumber (double)read-onlyObbligatorioexpiration_datestring (date-time)read-onlyObbligatoriotagsarray string[]Obbligatoriocancel_markbooleanread-onlyObbligatorioUn marcatore che indica che l'ordine verrà annullato.
projectobjectnullableread-onlyObbligatorioconfigurationobjectread-onlyObbligatorioConfigurazione del server
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/$ORDER_ID/"200{
"id": "34-1234",
"name": "DB Host",
"tariff": "VPS Master",
"tariff_price": 140,
"type": "vps",
"hostname": "srv-123.fornex.org",
"ipaddress_set": [
"123.123.123.123"
],
"status": "active",
"cost_month": 148,
"expiration_date": "2015-12-18T17:21:46",
"tags": [
"Database"
],
"configuration": {
"cpu_count": 1,
"ram_size": 2,
"disk_size": 10,
"cpu_arch": "x86_64",
"min_cpu_freq": 3
}
}VPS: Create
VPS è un Virtual Private Server, noto anche come Virtual Dedicated Server. Questa sezione copre gli endpoint API principali e ausiliari utilizzati per creare un nuovo VPS presso Fornex.
Crea VPS
Questa richiesta non è disponibile per impostazione predefinita; contattare il supporto tecnico per ottenere l'accesso.
Al momento, la creazione di un VPS tramite API richiede il pagamento dal saldo del conto. Se non hai fondi sufficienti, la richiesta restituirà un errore e l'ordine non verrà creato.
Per creare un VPS devi considerare tre parametri obbligatori: configurazione VPS (core, RAM, archiviazione), software preinstallato e posizione:
- Configurazione: scegli
tariff(piano predefinito) oconfiguration(set flessibile di parametri dal configuratore). Puoi provare le configurazioni disponibili nella pagina VPS. - Software: scegli
template(per installare un sistema operativo e, facoltativamente, un pannello di controllo di hosting) oapp(per installare un'applicazione) osnapshot(per ripristinare VPS dal tuo snapshot). - Paese: scegli
locationdalle opzioni disponibili.
Per annullare e rimuovere un VPS tramite API, utilizza il metodo universale Annulla ordine.
/orders/vps/Corpo
Obbligatoriotariffintegernullablewrite-onlyL'ID del piano predefinito.
Ottieni le opzioni disponibili per tariff da Piani VPS.
Per creare una configurazione personalizzata, utilizza il parametro configuration.
Non utilizzare entrambi i parametri contemporaneamente.
configurationobjectnullablewrite-onlyI parametri di configurazione personalizzata come oggetto (apri la sezione comprimibile per maggiori dettagli). Utilizza il configuratore VPS per ottenere una combinazione corretta di parametri in linea con i vincoli dinamici.
Invece di una configurazione personalizzata, potresti preferire un piano predefinito, che di solito è più economico.
Per farlo, utilizza il parametro tariff. Non utilizzare entrambi i parametri contemporaneamente.
templateintegerwrite-onlyL'ID del modello per installare un sistema operativo e, opzionalmente,
una pannello di controllo dell'hosting. Ottieni le opzioni disponibili per template da
Modelli VPS.
Invece del sistema operativo, potresti desiderare di installare un'applicazione (parametro app) o
di ripristinare il VPS da uno snapshot (parametro snapshot). Per farlo, utilizza il parametro corrispondente. Utilizza un solo parametro per ordine.
appintegerwrite-onlyL'ID dell'applicazione che desideri installare. Ottieni le opzioni disponibili per app da
Applicazioni VPS.
Invece dell'applicazione, potresti desiderare di installare un sistema operativo (parametro template) o
di ripristinare il VPS da uno snapshot (parametro snapshot). Per farlo, utilizza il parametro corrispondente. Utilizza un solo parametro per ordine.
snapshotintegerwrite-onlyL'ID dello snapshot da cui desideri ripristinare il VPS.
Ottieni le opzioni disponibili per snapshot da Snapshot VPS.
Puoi creare uno snapshot da qualsiasi VPS già creato nel tuo dashboard nella pagina dell'ordine e utilizzarlo per il ripristino (come backup) o per la creazione di copie dell'ordine (come modello).
Invece di ripristinare da uno snapshot, potresti desiderare di installare un sistema operativo (parametro template)
o un'applicazione (parametro app). Per farlo, utilizza il parametro corrispondente.
Utilizza un solo parametro per ordine.
locationstringmin length: 1write-onlyObbligatorioIl codice paese a due lettere della posizione dell'ordine.
Ottieni le opzioni disponibili per location da Posizioni VPS.
termintegerwrite-onlydefault: 113612
Numero di mesi per i quali l'ordine viene rinnovato una volta creato (ad es. 3).
Servizi aggiuntivi e la loro quantità come elenco (apri la sezione comprimibile per maggiori dettagli).
Ottieni le opzioni disponibili per services da Servizi aggiuntivi VPS.
ssh_keysarray integer[]write-onlyID delle chiavi SSH come elenco che vengono aggiunte al server all'installazione. Ottieni le opzioni disponibili per ssh_keys da Chiavi SSH. Trasmetti l'elenco delle chiavi esplicitamente. Per impostazione predefinita, viene trasmesso un elenco vuoto, anche se nel tuo dashboard sono presenti chiavi contrassegnate come "aggiungi per impostazione predefinita".
namestringlength 1…25write-onlydefault: Nome personalizzato per il VPS. Per impostazione predefinita, nessun nome è impostato per il server.
projectintegernullablewrite-onlyID del progetto. Le opzioni disponibili per project possono essere ottenute
dall'elenco dei progetti.
disk_classintegernullablewrite-onlyL'ID della classe di disco VPS.
Ottieni le opzioni disponibili per tariff da Dischi VPS.
Quando utilizzi una configurazione personalizzata, utilizza l'attributo all'interno del parametro configuration.
Non utilizzare entrambi i parametri contemporaneamente.
bandwidthintegernullablewrite-onlyLimite di larghezza di banda da impostare per l'ordine VPS. Il prezzo per unità è definito dal valore bandwidth_tariff
webhookobjectwrite-onlyConfigurazione webhook come oggetto (apri la sezione comprimibile per maggiori dettagli). È necessaria per ricevere una richiesta POST con i dettagli dell'ordine e le credenziali di accesso una volta creato il VPS
placement_policystringwrite-onlydefault: OPTIONALSTRICTOPTIONAL
placement_groupintegernullablewrite-onlyprivate_networkintegernullablewrite-onlytagsarray string[]write-onlyTag per il VPS. Per impostazione predefinita, nessun tag è impostato per il server.
Risposte
201application/jsonorder_idstringread-onlyObbligatorio
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"tariff": 1, "template": 1, "location": "DE", "term": 3, "services": [{"service": 1, "count": 1}], "ssh_keys": [1, 3]}' \
"https://fornex.com/api/orders/vps/"201{
"order_id": "34-1"
}Modelli VPS
Elenca tutti i modelli disponibili per creare un VPS. Le informazioni sui parametri VPS richiesti saranno incluse anche per ogni modello.
/orders/vps/templates/Risposte
200application/jsonarray object[]Template[]idintegerread-onlyObbligatorioIdentificativo del template.
namestringmax length: 64ObbligatorioNome del template.
osstringread-onlyObbligatoriopanelnullablePannello di controllo utilizzato nel template, può essere vuoto.
Uno diarchstringvalorix86_64arm
Tipo di architettura CPU richiesto per questo modello.
min_storage_spaceinteger (int64)min: 0max: 4294967295nullableSpazio di archiviazione minimo richiesto per questo template.
min_ram_volumeintegermin: 0max: 65535nullableVolume di RAM minimo richiesto per questo modello.
min_cpu_coresinteger (int64)min: 0max: 4294967295nullableNumero minimo di core CPU richiesto per questo modello.
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/templates/"200[
{
"id": 49,
"name": "Ubuntu 20.04 & Hestia",
"os": "Ubuntu 20.04 LTS",
"panel": "hestia",
"min_storage_space": 5,
"min_ram_volume": 2,
"min_cpu_cores": 1,
"arch": "x86-64"
}
]Applicazioni VPS
Elenca tutte le combinazioni disponibili di "applicazione + sistema operativo" che potrebbero essere installate durante la creazione di VPS.
/orders/vps/apps/Risposte
200application/jsonarray object[]AppTemplate[]idintegerread-onlyObbligatorioIdentificativo dell'applicazione.
namestringmax length: 64ObbligatorioNome dell'applicazione.
osstringread-onlyObbligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/apps/"200{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "Identificativo dell'applicazione."
},
"name": {
"type": "string",
"description": "Nome dell'applicazione.",
"maxLength": 64
},
"os": {
"type": "string",
"readOnly": true
}
},
"required": [
"id",
"name",
"os"
]
}
}Snapshot VPS
Elenca tutti gli snapshot disponibili nel tuo account che potrebbero essere utilizzati per creare un VPS.
/orders/vps/snapshots/Risposte
200application/jsonarray object[]Snapshot[]idintegerread-onlyObbligatorioID dello snapshot.
namestringmax length: 64ObbligatorioNome dello snapshot.
size_gbnumber (double)read-onlyObbligatorioDimensione dello snapshot in GB.
created_atstring (date-time)Obbligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/snapshots/"200{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "ID dello snapshot."
},
"name": {
"type": "string",
"description": " Nome dello snapshot.",
"maxLength": 64
},
"size_gb": {
"type": "number",
"format": "double",
"readOnly": true,
"description": "Dimensione dello snapshot in GB."
},
"created_at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"created_at",
"id",
"name",
"size_gb"
]
}
}Posizioni VPS
Elenca tutti i data center in cui sono disponibili i servizi VPS.
/orders/vps/locations/Risposte
200application/jsonarray object[]VpsLocation[]valuestringObbligatoriolabelstringObbligatoriolocation_os_typesarray string[]Obbligatoriobandwidth_tariffobjectnullabledisabled_by_slotsbooleandefault: truedisabled_by_cpu_freqbooleandefault: truedisabled_by_osbooleandefault: falsedisabled_by_cpu_typebooleandefault: falseavailable_frequenciesobjectObbligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/locations/"200[
{
"value": "DE",
"label": "Germany",
"location_os_types": [
"linux",
"windows-trial"
],
"available_frequencies": {
"x86_64": [
"2.1",
"3.8"
],
"arm": [
"1"
]
}
}
]Dischi VPS
Elenca tutte le opzioni di disco disponibili per un VPS.
/orders/vps/disks/Risposte
200application/jsonarray object[]VpsDiskClass[]idintegerread-onlyObbligatorionamestringmax length: 64Obbligatoriolimit_total_mbytes_secintegermin: 0max: 65535ObbligatorioМb/sec
limit_read_iops_secintegermin: 0max: 65535ObbligatorioOp/sec
limit_write_iops_secintegermin: 0max: 65535ObbligatorioOp/sec
price_per_gbstring (decimal)^-?\d{0,2}(?:\.\d{0,4})?$ObbligatorioCosto per 1 GB
disk_typeDiskTypeEnumvalorihddnvmessdsas
disk_type_displaystringObbligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/disks/"200[
{
"id": 1,
"name": "Optimal",
"limit_total_mbytes_sec": 250,
"limit_read_iops_sec": 9000,
"limit_write_iops_sec": 7000,
"price_per_gb": "0.0300",
"disk_type": "ssd",
"disk_type_display": "SSD"
}
]Servizi aggiuntivi VPS
Elenca tutti i servizi aggiuntivi disponibili per un VPS.
/orders/vps/services/Risposte
200application/jsonarray object[]Service[]idintegerread-onlyObbligatorioID del servizio.
namestringmax length: 128ObbligatorioNome del servizio.
descriptionstringmax length: 255Descrizione del servizio.
pricestring (decimal)^-?\d{0,8}(?:\.\d{0,2})?$ObbligatorioPrezzo del servizio.
billing_typestringObbligatoriovalorisingleperiodic
Costo una tantum o mensile.
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/services/"200{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "ID del servizio."
},
"name": {
"type": "string",
"title": "Nome",
"description": " Nome del servizio.",
"maxLength": 128
},
"description": {
"type": "string",
"title": "Descrizione",
"description": "Descrizione del servizio.",
"maxLength": 255
},
"price": {
"type": "string",
"format": "decimal",
"pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
"description": "Prezzo del servizio."
},
"billing_type": {
"allOf": [
{
"enum": [
"single",
"periodic"
],
"type": "string"
}
],
"description": "Costo una tantum o mensile."
}
},
"required": [
"billing_type",
"id",
"name",
"price"
]
}
}VPS: Reinstall
Reinstallare il sistema operativo sul tuo VPS mantenendo l'ordine e la configurazione esistenti. Questa sezione copre gli endpoint API utilizzati per recuperare i target di installazione disponibili, come template OS puliti, applicazioni preconfigurate o snapshot esistenti, e attivare il processo di reinstallazione.
Modelli di reinstallazione VPS
Elenco di tutti i modelli disponibili per reinstallare il VPS. Anche le informazioni sui parametri VPS richiesti saranno incluse per ogni modello.
/vps/{order_id}/reinstall/templates/Parametri del percorso
order_idstringObbligatorioID ordine (incluso prefisso 34-...)
Parametri di query
pageintegerUn numero di pagina all'interno del set di risultati impaginati.
default: 1page_sizeintegerNumero di risultati da restituire per pagina.
default: 10
Risposte
200application/jsoncountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/reinstall/templates/"200{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 49,
"name": "Ubuntu 20.04 & Hestia",
"os": "Ubuntu 20.04 LTS",
"panel": "hestia",
"min_storage_space": 5,
"min_ram_volume": 2,
"min_cpu_cores": 1,
"arch": "x86-64"
}
]
}Applicazioni di reinstallazione VPS
Elenco di tutte le combinazioni disponibili di "applicazione + sistema operativo" che possono essere installate durante la reinstallazione del VPS.
/vps/{order_id}/reinstall/apps/Parametri del percorso
order_idstringObbligatorioID ordine (incluso prefisso 34-...)
Parametri di query
pageintegerUn numero di pagina all'interno del set di risultati impaginati.
default: 1page_sizeintegerNumero di risultati da restituire per pagina.
default: 10
Risposte
200application/jsoncountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/reinstall/apps/"200{
"type": "object",
"required": [
"count",
"results"
],
"properties": {
"count": {
"type": "integer",
"example": 123
},
"next": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=4"
},
"previous": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=2"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "Identificativo dell'applicazione."
},
"name": {
"type": "string",
"description": "Nome dell'applicazione.",
"maxLength": 64
},
"os": {
"type": "string",
"readOnly": true
}
},
"required": [
"id",
"name",
"os"
]
}
}
}
}Snapshot per reinstallazione VPS
Elenco di tutti gli snapshot disponibili nel vostro account che possono essere utilizzati per reinstallare il VPS.
/vps/{order_id}/reinstall/snapshots/Parametri del percorso
order_idstringObbligatorioID ordine (incluso prefisso 34-...)
Parametri di query
pageintegerUn numero di pagina all'interno del set di risultati impaginati.
default: 1page_sizeintegerNumero di risultati da restituire per pagina.
default: 10
Risposte
200application/jsoncountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/reinstall/snapshots/"200{
"type": "object",
"required": [
"count",
"results"
],
"properties": {
"count": {
"type": "integer",
"example": 123
},
"next": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=4"
},
"previous": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=2"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "ID dello snapshot."
},
"name": {
"type": "string",
"description": " Nome dello snapshot.",
"maxLength": 64
},
"size_gb": {
"type": "number",
"format": "double",
"readOnly": true,
"description": "Dimensione dello snapshot in GB."
},
"created_at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"created_at",
"id",
"name",
"size_gb"
]
}
}
}
}Reinstalla VPS
Avvia il processo di reinstallazione del VPS. È necessario fornire un ID modello VPS o un ID applicazione per una configurazione pulita, oppure un ID snapshot per ripristinare il server a uno stato precedente.
Avvertenza: questa azione è distruttiva. Tutti i dati attuali sul server saranno definitivamente eliminati e sostituiti dall'immagine selezionata.
/vps/{order_id}/reinstall/reinstall/Parametri del percorso
order_idstringObbligatorioID ordine (incluso prefisso 34-...)
Corpo
Public API version: exposes template instead of ostemplate.
appintegernullablewrite-onlytemplateintegerwrite-onlysnapshotintegernullablewrite-onlyRisposte
200application/jsonPublic API version: exposes
templateinstead ofostemplate.display_namestringread-onlyObbligatoriostatusstringread-onlyObbligatoriodatestring (date-time)read-onlyObbligatorio
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"template":0}' \
"https://fornex.com/api/vps/$ORDER_ID/reinstall/reinstall/"200{
"type": "object",
"description": "Public API version: exposes ``template`` instead of ``ostemplate``.",
"properties": {
"display_name": {
"type": "string",
"readOnly": true
},
"status": {
"type": "string",
"readOnly": true
},
"date": {
"type": "string",
"format": "date-time",
"readOnly": true
}
},
"required": [
"date",
"display_name",
"status"
]
}VPS: Controls
Un Virtual Private Server su Fornex supporta richieste di controllo remoto. Questa sezione copre gli endpoint API utilizzati per avviare, arrestare o ripristinare il tuo VPS su Fornex, nonché altre opzioni.
Stato VPS
/vps/{order_id}/status/Parametri del percorso
order_idstringObbligatorioID ordine (incluso prefisso 34-...)
Risposte
200application/jsonstatusstringObbligatorioon | off | unknown
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/status/"200{
"status": "on"
}Avvia VPS
/vps/{order_id}/start/Parametri del percorso
order_idstringObbligatorioID ordine (incluso prefisso 34-...)
Risposte
200application/jsonpkintegerread-onlyObbligatorioactionstringread-onlyObbligatorionotestringread-onlyObbligatoriouserstringread-onlyObbligatoriotimestring (date-time)read-onlyObbligatoriocompletedbooleanread-onlyObbligatoriojob_statestringread-onlyObbligatoriovalorireadyerrordone
job_actionstringread-onlyObbligatorio
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/start/"200{
"pk": 1,
"action": "Avvio",
"note": "Avvio del server in corso",
"user": "username@example.com",
"time": "2024-02-15T11:12:11+02:00",
"completed": false,
"job_state": "ready",
"job_action": "start"
}Arresta VPS
/vps/{order_id}/stop/Parametri del percorso
order_idstringObbligatorioID ordine (incluso prefisso 34-...)
Risposte
200application/jsonpkintegerread-onlyObbligatorioactionstringread-onlyObbligatorionotestringread-onlyObbligatoriouserstringread-onlyObbligatoriotimestring (date-time)read-onlyObbligatoriocompletedbooleanread-onlyObbligatoriojob_statestringread-onlyObbligatoriovalorireadyerrordone
job_actionstringread-onlyObbligatorio
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/stop/"200{
"pk": 1,
"action": "Avvio",
"note": "Avvio del server in corso",
"user": "username@example.com",
"time": "2024-02-15T11:12:11+02:00",
"completed": false,
"job_state": "ready",
"job_action": "start"
}Riavvia VPS
/vps/{order_id}/restart/Parametri del percorso
order_idstringObbligatorioID ordine (incluso prefisso 34-...)
Risposte
200application/jsonpkintegerread-onlyObbligatorioactionstringread-onlyObbligatorionotestringread-onlyObbligatoriouserstringread-onlyObbligatoriotimestring (date-time)read-onlyObbligatoriocompletedbooleanread-onlyObbligatoriojob_statestringread-onlyObbligatoriovalorireadyerrordone
job_actionstringread-onlyObbligatorio
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/restart/"200{
"pk": 1,
"action": "Avvio",
"note": "Avvio del server in corso",
"user": "username@example.com",
"time": "2024-02-15T11:12:11+02:00",
"completed": false,
"job_state": "ready",
"job_action": "start"
}Avvio Rescue Mode
/vps/{order_id}/rescue_mode/Parametri del percorso
order_idstringObbligatorioID ordine (incluso prefisso 34-...)
Risposte
200application/jsonpkintegerread-onlyObbligatorioactionstringread-onlyObbligatorionotestringread-onlyObbligatoriouserstringread-onlyObbligatoriotimestring (date-time)read-onlyObbligatoriocompletedbooleanread-onlyObbligatoriojob_statestringread-onlyObbligatoriovalorireadyerrordone
job_actionstringread-onlyObbligatorio
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/rescue_mode/"200{
"pk": 1,
"action": "Avvio",
"note": "Avvio del server in corso",
"user": "username@example.com",
"time": "2024-02-15T11:12:11+02:00",
"completed": false,
"job_state": "ready",
"job_action": "start"
}Arresto Rescue Mode
/vps/{order_id}/stop_rescue_mode/Parametri del percorso
order_idstringObbligatorioID ordine (incluso prefisso 34-...)
Risposte
200application/jsonpkintegerread-onlyObbligatorioactionstringread-onlyObbligatorionotestringread-onlyObbligatoriouserstringread-onlyObbligatoriotimestring (date-time)read-onlyObbligatoriocompletedbooleanread-onlyObbligatoriojob_statestringread-onlyObbligatoriovalorireadyerrordone
job_actionstringread-onlyObbligatorio
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/stop_rescue_mode/"200{
"pk": 1,
"action": "Avvio",
"note": "Avvio del server in corso",
"user": "username@example.com",
"time": "2024-02-15T11:12:11+02:00",
"completed": false,
"job_state": "ready",
"job_action": "start"
}Esegui riavvio forzato VPS
È possibile eseguire un riavvio forzato, noto anche come hard reset o hard reboot, per ripristinare le prestazioni del VPS.
Un segnale di reset verrà inviato alla macchina virtuale, che la riavvierà senza prima prepararla per la procedura di spegnimento.
Notare che la maggior parte dei file system che utilizzano la scrittura differita può trovarsi in uno stato «incoerente» dopo un riavvio forzato. Dopo di ciò, di solito viene eseguito un controllo automatico del file system, dopo il quale la macchina virtuale sarà in grado di funzionare normalmente, ma alcuni dati potrebbero comunque andare persi.
/vps/{order_id}/hard_reset/Parametri del percorso
order_idstringObbligatorioID ordine (incluso prefisso 34-...)
Risposte
200application/jsonpkintegerread-onlyObbligatorioactionstringread-onlyObbligatorionotestringread-onlyObbligatoriouserstringread-onlyObbligatoriotimestring (date-time)read-onlyObbligatoriocompletedbooleanread-onlyObbligatoriojob_statestringread-onlyObbligatoriovalorireadyerrordone
job_actionstringread-onlyObbligatorio
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/hard_reset/"200{
"pk": 1,
"action": "Avvio",
"note": "Avvio del server in corso",
"user": "username@example.com",
"time": "2024-02-15T11:12:11+02:00",
"completed": false,
"job_state": "ready",
"job_action": "start"
}Reimposta password root
/vps/{order_id}/passwd_reset/Parametri del percorso
order_idstringObbligatorioID ordine (incluso prefisso 34-...)
Risposte
200application/jsonpasswdstringread-onlyObbligatorioLa Sua nuova password.
resp_idintegerread-onlyObbligatorioID dell'operazione per controllarne lo stato, per ulteriori dettagli vedi vps_log_details
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/passwd_reset/"200{
"type": "object",
"properties": {
"passwd": {
"type": "string",
"readOnly": true,
"description": "La Sua nuova password."
},
"resp_id": {
"type": "integer",
"readOnly": true,
"description": "ID dell'operazione per controllarne lo stato, per ulteriori dettagli vedi [vps_log_details](#operation/vps_log_details_retrieve)"
}
},
"required": [
"passwd",
"resp_id"
]
}Stato richiesta
/vps/{order_id}/log_details/{log_id}/Parametri del percorso
log_idintegerObbligatorioID record
order_idstringObbligatorioID ordine (incluso prefisso 34-...)
Risposte
200application/jsonpkintegerread-onlyObbligatorioactionstringread-onlyObbligatorionotestringread-onlyObbligatoriouserstringread-onlyObbligatoriotimestring (date-time)read-onlyObbligatoriocompletedbooleanread-onlyObbligatoriojob_statestringread-onlyObbligatoriovalorireadyerrordone
job_actionstringread-onlyObbligatorio
LOG_ID='1'
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/log_details/$LOG_ID/"200{
"pk": 1,
"action": "Avvio",
"note": "Avvio del server in corso",
"user": "username@example.com",
"time": "2024-02-15T11:12:11+02:00",
"completed": false,
"job_state": "ready",
"job_action": "start"
}VPS: Settings
Puoi modificare da remoto le impostazioni su un server virtuale Fornex. Questa sezione include richieste API per eseguire queste modifiche.
Modifica impostazioni VPS
Modifica di vari parametri VPS.
/vps/{order_id}/Parametri del percorso
order_idstringObbligatorioID ordine (incluso prefisso 34-...)
Corpo
private_network_enabledbooleanCollegare l'ordine a una rete privata. Questo abiliterà lo scambio diretto di dati con altri ordini nella stessa rete, migliorando velocità e sicurezza. Al momento, viene creata una sola rete privata per account.
Risposte
200application/jsonprivate_network_enabledbooleanObbligatorioCollegare l'ordine a una rete privata. Questo abiliterà lo scambio diretto di dati con altri ordini nella stessa rete, migliorando velocità e sicurezza. Al momento, viene creata una sola rete privata per account.
ORDER_ID='34-1234'
curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"private_network_enabled":false}' \
"https://fornex.com/api/vps/$ORDER_ID/"200{
"type": "object",
"properties": {
"private_network_enabled": {
"type": "boolean",
"description": "Collegare l'ordine a una rete privata. Questo abiliterà lo scambio diretto di dati con altri ordini nella stessa rete, migliorando velocità e sicurezza. Al momento, viene creata una sola rete privata per account."
}
},
"required": [
"private_network_enabled"
]
}VPS: Statistics
Su Fornex raccogliamo statistiche sulle prestazioni e l'utilizzo delle risorse del tuo Virtual Private Server. Questa sezione copre l'endpoint API utilizzato per richiedere tali statistiche.
Statistiche VPS
Il campo series contiene un elenco di coppie di valori (timestamp * 1000, float value).
/vps/{order_id}/stats/{field}/Parametri del percorso
fieldstringObbligatorioCampo statistiche
cpudiskiomemorytrafficorder_idstringObbligatorioID ordine (incluso prefisso 34-...)
Parametri di query
endstringFine periodo (predefinito -
now)startstringInizio periodo (predefinito -
-1h)
Risposte
200application/jsonsubtitlestringObbligatorio
FIELD='traffic'
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/stats/$FIELD/"200{
"series": [
{
"color": "#60B5FF",
"data": [
[
1677628800000,
0.09553581192531
],
[
1677629088000,
0.09553581192531
],
[
1677629376000,
0.09916645151423
]
],
"name": "In ingresso"
},
{
"color": "#61D561",
"data": [
[
1677628800000,
4585.9263464
],
[
1677629088000,
4575.14841552
],
[
1677629376000,
4636.41519648
]
],
"name": "In uscita",
"type": "areaspline"
}
],
"subtitle": "16 novembre 2015, 17:18 - 17 novembre 2015, 17:18 (Europe/Moscow)"
}VPS: Private Network
Gestione della rete privata per VPS.
Elenco di reti
/private-network/Parametri di query
pageintegerUn numero di pagina all'interno del set di risultati impaginati.
default: 1page_sizeintegerNumero di risultati da restituire per pagina.
default: 10
Risposte
200application/jsoncountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/private-network/"200{
"type": "object",
"required": [
"count",
"results"
],
"properties": {
"count": {
"type": "integer",
"example": 123
},
"next": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=4"
},
"previous": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=2"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true
}
},
"required": [
"id"
]
}
}
}
}curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/private-network/"201{
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true
}
},
"required": [
"id"
]
}Posizioni supportate
/private-network/locations/Parametri di query
pageintegerUn numero di pagina all'interno del set di risultati impaginati.
default: 1page_sizeintegerNumero di risultati da restituire per pagina.
default: 10
Risposte
200application/jsoncountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/private-network/locations/"200{
"type": "object",
"required": [
"count",
"results"
],
"properties": {
"count": {
"type": "integer",
"example": 123
},
"next": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=4"
},
"previous": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=2"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true
},
"location": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"label": {
"type": "string"
},
"icon": {
"type": "string"
}
},
"required": [
"icon",
"label",
"value"
]
}
},
"required": [
"id",
"location"
]
}
}
}
}Elimina rete
/private-network/{id}/Parametri del percorso
idintegerObbligatorioUn unique integer value che identifica questo User VNI.
Risposte
204No response body
ID='1'
curl -X DELETE \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/private-network/$ID/"Dedicated Order
Elenco ordini DS
Elenca tutti gli ordini DS disponibili. Le informazioni sui parametri di ogni ordine saranno incluse anche nella risposta.
/orders/ds/Parametri di query
cancel_markbooleanFiltrare gli ordini che verranno annullati.
orderingstringCampo utilizzato per ordinare i risultati.
default: idexpiredidpageintegerUn numero di pagina all'interno del set di risultati impaginati.
default: 1page_sizeintegerNumero di risultati da restituire per pagina.
default: 10
Risposte
200application/jsoncountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/ds/"200{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": "34-1234",
"name": "DB Host",
"tariff": "VPS Master",
"tariff_price": 140,
"type": "vps",
"hostname": "srv-123.fornex.org",
"ipaddress_set": [
"123.123.123.123"
],
"status": "active",
"cost_month": 148,
"expiration_date": "2015-12-18T17:21:46",
"tags": [
"Database"
],
"configuration": {
"cpu_count": 1,
"cpu": "Intel Xeon Silver 4110 (8×2.1Ghz)",
"motherboard": "Supermicro X9SCM-F",
"chassis": "(1U) Supermicro U1 (BP:no, hdd-3.5x4) (4x 3.5)",
"bandwidth": 1024,
"memory": 16
}
}
]
}Dettaglio ordine DS
Ottenere tutti i dati disponibili sull'ordine tramite il suo ID.
/orders/ds/{order_id}/Parametri del percorso
order_idstringObbligatorioID dell'ordine nel formato NN-NNNNNNN.
Risposte
200application/jsonidstringread-onlyObbligatorionamestringmax length: 64tariffstringread-onlyObbligatoriotariff_pricenumber (double)nullableread-onlyObbligatoriotypestringread-onlyObbligatoriohostnamestringnullableread-onlyObbligatorioipaddress_setarray string[]nullableread-onlyObbligatoriostatusstringread-onlyObbligatoriovaloriunpaidpendingactiveexpireddisabledcanceledblockednoprolong
cost_monthnumber (double)read-onlyObbligatorioexpiration_datestring (date-time)read-onlyObbligatoriotagsarray string[]Obbligatoriocancel_markbooleanread-onlyObbligatorioUn marcatore che indica che l'ordine verrà annullato.
projectobjectnullableread-onlyObbligatorioconfigurationobjectread-onlyObbligatorioConfigurazione del server
ORDER_ID='34-123456'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/ds/$ORDER_ID/"200{
"id": "34-1234",
"name": "DB Host",
"tariff": "VPS Master",
"tariff_price": 140,
"type": "vps",
"hostname": "srv-123.fornex.org",
"ipaddress_set": [
"123.123.123.123"
],
"status": "active",
"cost_month": 148,
"expiration_date": "2015-12-18T17:21:46",
"tags": [
"Database"
],
"configuration": {
"cpu_count": 1,
"cpu": "Intel Xeon Silver 4110 (8×2.1Ghz)",
"motherboard": "Supermicro X9SCM-F",
"chassis": "(1U) Supermicro U1 (BP:no, hdd-3.5x4) (4x 3.5)",
"bandwidth": 1024,
"memory": 16
}
}Traffico
Ottenere i dati sul traffico per l'ordine
/orders/ds/{order_id}/traffic/Parametri del percorso
order_idstringObbligatorioID ordine (incluso prefisso 34-...)
Parametri di query
periodstringPeriodo per la visualizzazione delle statistiche
default: monthmonthyearportintegerNumero di porta sequenziale
default: 0
Risposte
200application/jsondataarrayObbligatorioorderstringObbligatorioperiodstringObbligatorio
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/ds/$ORDER_ID/traffic/"200{
"data": [
[
"2015-11-11",
{
"input": 41348840999.42331,
"output": 969929788001.3163
}
],
[
"2015-11-12",
{
"input": 44384423647.10196,
"output": 1019910108491.1565
}
]
],
"order": "34-1234 DS HyperXeon (example.net)",
"period": "month"
}Limiti di traffico
/orders/ds/{order_id}/traffic_used/Parametri del percorso
order_idintegerObbligatorioUn unique integer value che identifica questo Ordine DS.
Risposte
200application/jsonorderstringObbligatoriolimitintegerObbligatoriorange_startstring (date)Obbligatoriorange_endstring (date)ObbligatoriousedintegerObbligatorioused_ratenumber (double)Obbligatorio
ORDER_ID='1'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/ds/$ORDER_ID/traffic_used/"200{
"limit": 14293651161088,
"order": "34-1234 DS XeonNeon (example.net)",
"range_end": "2015-11-21",
"range_start": "2015-10-21",
"used": 3508146044885.079,
"used_rate": 0.24543386468220252
}Domain
Lista domini
/dns/domain/Parametri di query
pageintegerUn numero di pagina all'interno del set di risultati impaginati.
default: 1page_sizeintegerNumero di risultati da restituire per pagina.
default: 10qstringcerca per nome o IP
tagstringfiltra per tag
Risposte
200application/jsoncountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/dns/domain/"200{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"name": "example.com",
"created": "2024-02-05T21:41:25",
"updated": "2024-02-05T21:41:25",
"entry_set": [
{
"host": "",
"id": 366182,
"type": "A",
"ttl": null,
"value": "192.0.2.1"
}
],
"tags": []
}
]
}Aggiungi dominio
La possibilità di aggiungere domini tramite API è disabilitata per impostazione predefinita per motivi di sicurezza dell'account. Se desideri utilizzare questa funzione — contatta il supporto.
/dns/domain/Corpo
Obbligatorionamestringlength 1…128Obbligatorioipstring (ipv4)min length: 1write-onlyObbligatoriocurl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"name": "example.com", "ip": "192.0.2.1"}' \
"https://fornex.com/api/dns/domain/"201{
"name": "example.com",
"created": "2024-02-05T21:41:25",
"updated": "2024-02-05T21:41:25",
"entry_set": [
{
"host": "",
"id": 366182,
"type": "A",
"ttl": null,
"value": "192.0.2.1"
}
],
"tags": []
}Elimina dominio
/dns/domain/{name}/Parametri del percorso
namestringObbligatorioNome dominio
Risposte
204No response body
NAME='example.com'
curl -X DELETE \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/dns/domain/$NAME/"File zona
/dns/domain/{name}/zone_file/Parametri del percorso
namestringObbligatorioNome dominio
Risposte
200text/plainZone file content (BIND format)
string
NAME='example.com'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/dns/domain/$NAME/zone_file/"200"$TTL 21600\n@\tIN\tSOA\tns1.fornex.com. hostmaster.fornex.com. (\n...\n"Domain: Entry
Lista record
/dns/domain/{name}/entry_set/Parametri del percorso
namestringObbligatorioNome dominio
Parametri di query
qstringfiltro record
typestringAAAAACAACNAMEMXNSSRVTXTnull
Risposte
200application/jsonarray object[]Entry[]idintegerread-onlyObbligatoriohoststringmax length: 255default:Hostname record: '@, *, subdomain'
typestringObbligatoriovaloriAAAAATXTCNAMENSMXSRVCAA
Tipo di record
priointeger (int64)min: 0max: 4294967295nullablePriorità, usata solo per SRV e MX
valuestringmax length: 1024ObbligatorioValore del record in base al tipo, ad esempio IP per i record A
ttlnullableTTL del record (facoltativo, default: 3600 sec.)
Uno di
NAME='example.com'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/dns/domain/$NAME/entry_set/"200[
{
"id": 1,
"host": "www",
"type": "A",
"ttl": null,
"value": "10.10.10.18"
}
]Aggiungi record
/dns/domain/{name}/entry_set/Parametri del percorso
namestringObbligatorioNome dominio
Corpo
Obbligatoriohoststringmax length: 255default: Hostname record: '@, *, subdomain'
typestringObbligatorioAAAAATXTCNAMENSMXSRVCAA
Tipo di record
priointeger (int64)min: 0max: 4294967295nullablePriorità, usata solo per SRV e MX
valuestringlength 1…1024ObbligatorioValore del record in base al tipo, ad esempio IP per i record A
ttlnullableTTL del record (facoltativo, default: 3600 sec.)
Risposte
201application/jsonidintegerread-onlyObbligatoriohoststringmax length: 255default:Hostname record: '@, *, subdomain'
typestringObbligatoriovaloriAAAAATXTCNAMENSMXSRVCAA
Tipo di record
priointeger (int64)min: 0max: 4294967295nullablePriorità, usata solo per SRV e MX
valuestringmax length: 1024ObbligatorioValore del record in base al tipo, ad esempio IP per i record A
ttlnullableTTL del record (facoltativo, default: 3600 sec.)
Uno di
NAME='example.com'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"host": "www", "type": "A", "ttl": null, "value": "10.10.10.18"}' \
"https://fornex.com/api/dns/domain/$NAME/entry_set/"201{
"id": 1,
"host": "www",
"type": "A",
"ttl": null,
"value": "10.10.10.18"
}Aggiorna record
/dns/domain/{name}/entry_set/{id}/Parametri del percorso
idintegerObbligatorioUn unique integer value che identifica questo Record DNS.
namestringObbligatorioNome dominio
Corpo
Obbligatoriohoststringmax length: 255default: Hostname record: '@, *, subdomain'
typestringObbligatorioAAAAATXTCNAMENSMXSRVCAA
Tipo di record
priointeger (int64)min: 0max: 4294967295nullablePriorità, usata solo per SRV e MX
valuestringlength 1…1024ObbligatorioValore del record in base al tipo, ad esempio IP per i record A
ttlnullableTTL del record (facoltativo, default: 3600 sec.)
Risposte
200application/jsonidintegerread-onlyObbligatoriohoststringmax length: 255default:Hostname record: '@, *, subdomain'
typestringObbligatoriovaloriAAAAATXTCNAMENSMXSRVCAA
Tipo di record
priointeger (int64)min: 0max: 4294967295nullablePriorità, usata solo per SRV e MX
valuestringmax length: 1024ObbligatorioValore del record in base al tipo, ad esempio IP per i record A
ttlnullableTTL del record (facoltativo, default: 3600 sec.)
Uno di
ID='1'
NAME='example.com'
curl -X PUT \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"host": "www", "type": "A", "ttl": null, "value": "10.10.10.18"}' \
"https://fornex.com/api/dns/domain/$NAME/entry_set/$ID/"200{
"id": 1,
"host": "www",
"type": "A",
"ttl": null,
"value": "10.10.10.18"
}Elimina record
/dns/domain/{name}/entry_set/{id}/Parametri del percorso
idintegerObbligatorioUn unique integer value che identifica questo Record DNS.
namestringObbligatorioNome dominio
Risposte
204No response body
ID='1'
NAME='example.com'
curl -X DELETE \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/dns/domain/$NAME/entry_set/$ID/"Domain Order
Cambia NS
Richiesta di modifica Nameserver per l'ordine Dominio.
/dns/order/{order_id}/change_ns/Parametri del percorso
order_idstringObbligatorionumero ordine
Corpo
Obbligatorionssstringmin length: 1Obbligatoriolista di NS, separati da virgola
Risposte
200application/jsonnssstringObbligatoriolista di NS, separati da virgola
ORDER_ID='375-13'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"nss": "ns1.examle.com,ns2.example.com"}' \
"https://fornex.com/api/dns/order/$ORDER_ID/change_ns/"200{
"type": "object",
"properties": {
"nss": {
"type": "string",
"title": "Nameservers",
"description": "lista di NS, separati da virgola"
}
},
"required": [
"nss"
]
}SSH Keys
Elenco chiavi
/ssh_keys/Risposte
200application/jsonarray object[]SshKey[]idintegerread-onlyObbligatoriouserstringread-onlyObbligatoriokeystringmax length: 16384ObbligatorioChiave pubblica in testo semplice.
titlestringmax length: 128Obbligatoriodatestring (date-time)read-onlyObbligatoriodefaultboolean
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/ssh_keys/"200[
{
"id": 1,
"key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test",
"title": "Dev Laptop",
"date": "2019-08-24T14:15:22Z",
"default": true
}
]Aggiungi chiave
Quando si aggiunge una nuova chiave, verrà automaticamente collegata a tutti i Vostri VPS. La chiave viene aggiunta direttamente al VPS solo alla creazione o reinstallazione.
/ssh_keys/Corpo
Obbligatoriokeystringlength 1…16384ObbligatorioChiave pubblica in testo semplice.
titlestringlength 1…128ObbligatoriodefaultbooleanRisposte
201application/jsonidintegerread-onlyObbligatoriouserstringread-onlyObbligatoriokeystringmax length: 16384ObbligatorioChiave pubblica in testo semplice.
titlestringmax length: 128Obbligatoriodatestring (date-time)read-onlyObbligatoriodefaultboolean
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test", "title": "Dev Laptop", "default": true}' \
"https://fornex.com/api/ssh_keys/"201{
"id": 1,
"key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test",
"title": "Dev Laptop",
"date": "2019-08-24T14:15:22Z",
"default": true
}Elimina chiave
/ssh_keys/{key_id}/Parametri del percorso
key_idintegerObbligatorioUn unique integer value che identifica questo user ssh key.
Risposte
204No response body
KEY_ID='1'
curl -X DELETE \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/ssh_keys/$KEY_ID/"VPS SSH Keys
Elenco chiavi ordine
/vps/{order_id}/ssh_keys/Parametri del percorso
order_idstringObbligatorioID ordine (incluso prefisso 34-...)
Risposte
200application/jsonarray object[]SshKey[]idintegerread-onlyObbligatoriouserstringread-onlyObbligatoriokeystringmax length: 16384ObbligatorioChiave pubblica in testo semplice.
titlestringmax length: 128Obbligatoriodatestring (date-time)read-onlyObbligatoriodefaultboolean
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/ssh_keys/"200[
{
"id": 1,
"key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test",
"title": "Dev Laptop",
"date": "2019-08-24T14:15:22Z",
"default": true
}
]Aggiungi chiave all'ordine
/vps/{order_id}/ssh_keys/add/Parametri del percorso
order_idstringObbligatorioID ordine (incluso prefisso 34-...)
Corpo
Obbligatoriokey_pkintegerwrite-onlyObbligatorioRisposte
200No response body
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"key_pk": 1}' \
"https://fornex.com/api/vps/$ORDER_ID/ssh_keys/add/"Elimina chiave ordine
/vps/{order_id}/ssh_keys/delete/Parametri del percorso
order_idstringObbligatorioID ordine (incluso prefisso 34-...)
Corpo
Obbligatoriokey_pkintegerwrite-onlyObbligatorioRisposte
200No response body
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"key_pk": 1}' \
"https://fornex.com/api/vps/$ORDER_ID/ssh_keys/delete/"S3 Storage
Elenco ordini S3
Elenco tutti gli ordini S3 disponibili. Le informazioni sui parametri di ogni ordine saranno incluse nella risposta
/orders/s3/Parametri di query
cancel_markbooleanFiltrare gli ordini che verranno annullati.
orderingstringCampo utilizzato per ordinare i risultati.
default: idexpiredidpageintegerUn numero di pagina all'interno del set di risultati impaginati.
default: 1page_sizeintegerNumero di risultati da restituire per pagina.
default: 10
Risposte
200application/jsoncountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/s3/"200{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": "34-1234",
"name": "DB Host",
"hostname": "srv-123.fornex.org",
"status": "active",
"cost_month": 148,
"expiration_date": "2015-12-18T17:21:46",
"tags": [
"Database"
],
"access_key": "user.8cab052ag4",
"secret_key": "hisQNeOv2ZgjzSCSA1JJDLOhwAcA8s17",
"bucket_name": "user.8cab052ag4.main",
"space_used": "18"
}
]
}Dettagli ordine S3
Ottenere tutti i dati disponibili sull'ordine tramite il suo ID.
/orders/s3/{order_id}/Parametri del percorso
order_idstringObbligatorioID ordine nel formato NNN-NN.
Risposte
200application/jsonidstringread-onlyObbligatorionamestringread-onlyObbligatoriohostnamestringObbligatorioaccess_keystringread-onlyObbligatoriosecret_keystringread-onlyObbligatoriobucket_namestringread-onlyObbligatoriospace_usedintegerObbligatoriocost_monthnumber (double)read-onlyObbligatorioexpiration_datestring (date-time)read-onlyObbligatoriotagsarray string[]Obbligatoriocancel_markbooleanread-onlyObbligatorioUn marcatore che indica che l'ordine verrà annullato.
projectobjectnullableread-onlyObbligatorio
ORDER_ID='664-7'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/s3/$ORDER_ID/"200{
"id": "34-1234",
"name": "DB Host",
"hostname": "srv-123.fornex.org",
"status": "active",
"cost_month": 148,
"expiration_date": "2015-12-18T17:21:46",
"tags": [
"Database"
],
"access_key": "user.8cab052ag4",
"secret_key": "hisQNeOv2ZgjzSCSA1JJDLOhwAcA8s17",
"bucket_name": "user.8cab052ag4.main",
"space_used": "18"
}Limite di spazio libero S3
Imposta la soglia di spazio libero alla quale viene inviato un avviso di spazio insufficiente. Passa 0 per disabilitare la notifica.
/orders/s3/{order_id}/notification_threshold/Parametri del percorso
order_idintegerObbligatorioUn unique integer value che identifica questo Ordine S3.
Corpo
Obbligatoriospace_warning_notify_gbintegermin: 0ObbligatorioRisposte
200application/jsonspace_warning_notify_gbintegermin: 0Obbligatorio
ORDER_ID='1'
curl -X PUT \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"space_warning_notify_gb":0}' \
"https://fornex.com/api/orders/s3/$ORDER_ID/notification_threshold/"200{
"type": "object",
"properties": {
"space_warning_notify_gb": {
"type": "integer",
"minimum": 0
}
},
"required": [
"space_warning_notify_gb"
]
}VPN
Configurazione OpenVPN
/vpn/{order_id}/config-{proto}.ovpnParametri del percorso
order_idstringObbligatorionumero ordine
protostringObbligatorioProtocollo
tcpudp
Risposte
200text/plainOpenVPN profile
string
ORDER_ID='301-12312'
PROTO='udp'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vpn/$ORDER_ID/config-$PROTO.ovpn"200{
"type": "string"
}Configurazione IKEv2 per MacOS/iOS
/vpn/{order_id}/config-ikev2.mobileconfigParametri del percorso
order_idstringObbligatorionumero ordine
Risposte
200text/plainIKEv2 mobileconfig
string
ORDER_ID='301-12312'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vpn/$ORDER_ID/config-ikev2.mobileconfig"200{
"type": "string"
}Configurazione IKEv2 per Android
/vpn/{order_id}/config-ikev2.sswanParametri del percorso
order_idstringObbligatorionumero ordine
Risposte
200application/jsonIKEv2 sswan
string
ORDER_ID='301-12312'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vpn/$ORDER_ID/config-ikev2.sswan"200{
"type": "string"
}Configurazione WireGuard
/vpn/{order_id}/config-wireguard.confParametri del percorso
order_idstringObbligatorionumero ordine
Risposte
200text/plainWireGuard config
string
ORDER_ID='301-12312'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vpn/$ORDER_ID/config-wireguard.conf"200{
"type": "string"
}Configurazione Outline VPN
/vpn/{order_id}/config_outlineParametri del percorso
order_idstringObbligatorionumero ordine
Risposte
200application/jsonaccess_urlstring (uri)Obbligatorio
ORDER_ID='301-12312'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vpn/$ORDER_ID/config_outline"200{
"type": "object",
"properties": {
"access_url": {
"type": "string",
"format": "uri"
}
},
"required": [
"access_url"
]
}Configurazione Xray VPN
/vpn/{order_id}/config_xrayParametri del percorso
order_idstringObbligatorionumero ordine
Risposte
200application/jsonaccess_urlstring (uri)Obbligatorio
ORDER_ID='301-12312'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vpn/$ORDER_ID/config_xray"200{
"type": "object",
"properties": {
"access_url": {
"type": "string",
"format": "uri"
}
},
"required": [
"access_url"
]
}IP Addresses
Indirizzi IP assegnati ai tuoi servizi.
Elenco indirizzi IP
/network/ip-address/Parametri di query
orderingstringWhich field to use when ordering the results.
searchstringtypestring
Risposte
200application/jsonarray object[]PublicNetworkAddress[]idintegerread-onlyObbligatorioipstringObbligatoriordnsstringObbligatorioorderobjectnullableread-onlyObbligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/network/ip-address/"200{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true
},
"ip": {
"type": "string",
"title": "IP Address"
},
"location": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"label": {
"type": "string"
},
"icon": {
"type": "string"
}
},
"required": [
"icon",
"label",
"value"
]
},
"rdns": {
"type": "string"
},
"order": {
"allOf": [
{
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"link": {
"type": "string",
"readOnly": true
},
"unique_number": {
"type": "string"
}
},
"required": [
"id",
"link",
"name",
"type",
"unique_number"
]
}
],
"nullable": true,
"readOnly": true
}
},
"required": [
"id",
"ip",
"location",
"order",
"rdns"
]
}
}Tickets
Questa sezione descrive le richieste API che consentono di configurare il funzionamento remoto con il nostro sistema di ticketing. Questa sezione copre gli endpoint API principali e ausiliari utilizzati per gestire l'accesso remoto al sistema di ticket Fornex.
Crea ticket
Per creare un ticket, fornisci l'oggetto e il corpo della tua richiesta. Inoltre, puoi impostare la priorità della tua richiesta e l'ordine a cui si riferisce.
/tickets/ticket/Corpo
ObbligatorioСоздание тикета пользователем
subjectstringlength 1…64ObbligatorioUna breve descrizione dell'essenza della tua richiesta.
messagestringlength 1…49152ObbligatorioUna descrizione dettagliata del tuo problema e altri dettagli della richiesta.
priorityintegerdefault: 101234
Una delle opzioni che riflette l'urgenza della tua richiesta:
0- Non urgente (fino a 24 ore)1- Normale (fino a 8 ore)2- Importante (fino a 6 ore)3- Urgente (entro 1 ora)4- Molto urgente (il prima possibile)
Per impostazione predefinita, un ticket viene creato con priorità normale.
La priorità molto urgente può essere impostata solo per ordini con servizio di gestione completa.
Per favore, non impostare la priorità "molto urgente" per richieste non correlate a problemi tecnici dei tuoi ordini o emergenze. Inoltre, ti chiediamo di non aumentare artificialmente la priorità di un ticket se non è necessario, poiché ciò complica solo l'elaborazione delle tue richieste.
orderstringmin length: 1nullableID dell'ordine nel formato "34-NNNN" a cui si riferisce la tua richiesta. Per ora un ticket può essere correlato a un solo ordine. Per impostazione predefinita, un ticket viene creato senza un ordine correlato.
credentialsobjectwrite-onlyRisposte
201application/jsonСоздание тикета пользователем
subjectstringmax length: 64ObbligatorioUna breve descrizione dell'essenza della tua richiesta.
messagestringmax length: 49152ObbligatorioUna descrizione dettagliata del tuo problema e altri dettagli della richiesta.
priorityintegerdefault: 1valori01234
Una delle opzioni che riflette l'urgenza della tua richiesta:
0- Non urgente (fino a 24 ore)1- Normale (fino a 8 ore)2- Importante (fino a 6 ore)3- Urgente (entro 1 ora)4- Molto urgente (il prima possibile)
Per impostazione predefinita, un ticket viene creato con priorità normale.
La priorità
molto urgentepuò essere impostata solo per ordini con servizio di gestione completa.Per favore, non impostare la priorità "molto urgente" per richieste non correlate a problemi tecnici dei tuoi ordini o emergenze. Inoltre, ti chiediamo di non aumentare artificialmente la priorità di un ticket se non è necessario, poiché ciò complica solo l'elaborazione delle tue richieste.
orderstringnullableID dell'ordine nel formato "34-NNNN" a cui si riferisce la tua richiesta. Per ora un ticket può essere correlato a un solo ordine. Per impostazione predefinita, un ticket viene creato senza un ordine correlato.
urlstringread-onlyObbligatorioidstringread-onlyObbligatoriostatusstringread-onlyObbligatorio
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"subject": "Hello, we need some help", "message": "We need some help with updating software..."}' \
"https://fornex.com/api/tickets/ticket/"201{
"subject": "Hello, we need some help",
"message": "We need some help with updating software...",
"priority": 1,
"order": null,
"url": "https://fornex.com/my/tickets/66a8968a01027a2c2f241e6c/",
"id": "66a8968a01027a2c2f241e6c",
"status": "new"
}Stato del webhook
/tickets/webhook_info/Risposte
200application/jsonurlstring (uri)max length: 512URL a cui verrà inviata la richiesta, lascia vuoto per disabilitare
last_error_datestring (date-time)nullableread-onlyObbligatoriolast_error_messagestringnullableread-onlyObbligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/tickets/webhook_info/"200{
"last_error_date": null,
"last_error_message": null,
"url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
}Configura webhook
Una richiesta POST
ContentType: 'application/json'
{"text": "Nuovo commento aggiunto al ticket..."}
verrà inviata all'URL specificato. Per impostazione predefinita, funziona con Slack, ma puoi specificare il tuo webhook e elaborare la notifica autonomamente.
/tickets/webhook_set/Corpo
urlstring (uri)max length: 512URL a cui verrà inviata la richiesta, lascia vuoto per disabilitare
Risposte
201application/jsonurlstring (uri)max length: 512URL a cui verrà inviata la richiesta, lascia vuoto per disabilitare
last_error_datestring (date-time)nullableread-onlyObbligatoriolast_error_messagestringnullableread-onlyObbligatorio
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"last_error_date": null, "last_error_message": null, "url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"}' \
"https://fornex.com/api/tickets/webhook_set/"201{
"last_error_date": null,
"last_error_message": null,
"url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
}Schemi
AccountBalancebalancenumber (double)ObbligatoriocurrencystringObbligatorioAccountInfoemailstring (email)max length: 254namestringObbligatorioAccountInvoicesunpaid_invoices_countintegerObbligatoriounpaid_invoices_amountnumber (double)ObbligatoriocurrencystringObbligatorioAppTemplateidintegerread-onlyObbligatorioIdentificativo dell'applicazione.
namestringmax length: 64ObbligatorioNome dell'applicazione.
osstringread-onlyObbligatorioBackupTariffspaceintegerObbligatoriopricenumber (double)Obbligatoriounitsstringread-onlyObbligatoriodefault: GBBandwidthEnum1015202540
BillingTypeEnumsingleperiodic
BlankEnumCancelOrderstatusstringread-onlyObbligatoriocanceledcancel_pending
messagestringread-onlyObbligatorioCancelOrderRequestwhenstringwrite-onlydefault: expirednowexpired
Il parametro descrive quando l'ordine deve essere annullato: ora o al termine del periodo pagato.
save_backupbooleanwrite-onlydefault: trueIl parametro descrive se eseguire uno snapshot del VPS prima di rimuovere la macchina virtuale o meno.
CancelOrderStatusEnumcanceledcancel_pending
CpuArchEnumx86_64arm
DedicatedTariffidintegerread-onlyObbligatorionamestringmax length: 128ObbligatorioIl nome del piano appare nelle fatture, quindi deve essere breve e scritto in caratteri latini — ad esempio Cloud NVMe 1.
cpu_modelstringread-onlyObbligatoriocpu_countintegermin: 0max: 65535ramstringObbligatoriodiskstringObbligatoriobandwidthstringObbligatoriopricenumber (double)Obbligatoriolocationsarray array[]ObbligatorioDiskTypeEnumhddnvmessdsas
DnsOrderNameserversnssstringObbligatoriolista di NS, separati da virgola
DnsOrderNameserversRequestnssstringmin length: 1Obbligatoriolista di NS, separati da virgola
Domainnamestringmax length: 128Obbligatoriocreatedstring (date-time)read-onlyObbligatorioupdatedstring (date-time)read-onlyObbligatoriotagsarray string[]read-onlyObbligatorioDomainRequestnamestringlength 1…128Obbligatorioipstring (ipv4)min length: 1write-onlyObbligatorioDomainTagstagsarray string[]ObbligatorioDomainTagsRequesttagsarray string[]ObbligatorioDSConfigurationcpu_countintegermin: 0max: 65535cpustringObbligatoriomotherboardstringObbligatoriochassisstringObbligatorioraid_controllerstringObbligatorionetwork_adapterstringObbligatoriobandwidthnullablememoryinteger (int64)min: 0max: 4294967295Obbligatoriodisksstringread-onlyObbligatorioDSOrderidstringread-onlyObbligatorionamestringmax length: 64tariffstringread-onlyObbligatoriotariff_pricenumber (double)nullableread-onlyObbligatoriotypestringread-onlyObbligatoriohostnamestringnullableread-onlyObbligatorioipaddress_setarray string[]nullableread-onlyObbligatoriostatusstringread-onlyObbligatoriounpaidpendingactiveexpireddisabledcanceledblockednoprolong
cost_monthnumber (double)read-onlyObbligatorioexpiration_datestring (date-time)read-onlyObbligatoriotagsarray string[]Obbligatoriocancel_markbooleanread-onlyObbligatorioUn marcatore che indica che l'ordine verrà annullato.
projectobjectnullableread-onlyObbligatorioconfigurationobjectread-onlyObbligatorioConfigurazione del server
DSTrafficdataarrayObbligatorioorderstringObbligatorioperiodstringObbligatorioDSTrafficUsedorderstringObbligatoriolimitintegerObbligatoriorange_startstring (date)Obbligatoriorange_endstring (date)ObbligatoriousedintegerObbligatorioused_ratenumber (double)ObbligatorioEntryidintegerread-onlyObbligatoriohoststringmax length: 255default: Hostname record: '@, *, subdomain'
typestringObbligatorioAAAAATXTCNAMENSMXSRVCAA
Tipo di record
priointeger (int64)min: 0max: 4294967295nullablePriorità, usata solo per SRV e MX
valuestringmax length: 1024ObbligatorioValore del record in base al tipo, ad esempio IP per i record A
ttlnullableTTL del record (facoltativo, default: 3600 sec.)
EntryRequesthoststringmax length: 255default: Hostname record: '@, *, subdomain'
typestringObbligatorioAAAAATXTCNAMENSMXSRVCAA
Tipo di record
priointeger (int64)min: 0max: 4294967295nullablePriorità, usata solo per SRV e MX
valuestringlength 1…1024ObbligatorioValore del record in base al tipo, ad esempio IP per i record A
ttlnullableTTL del record (facoltativo, default: 3600 sec.)
EntryTypeEnumAAAAATXTCNAMENSMXSRVCAA
JobStateEnumreadyerrordone
LocationChoicevaluestringObbligatoriolabelstringObbligatorioiconstringObbligatorioNetworkOrderidintegerObbligatorionamestringObbligatoriotypestringObbligatoriolinkstringread-onlyObbligatoriounique_numberstringObbligatorioNullEnumnull
Orderidstringread-onlyObbligatorionamestringmax length: 64tariffstringread-onlyObbligatoriotariff_pricenumber (double)nullableread-onlyObbligatoriotypestringread-onlyObbligatoriohostnamestringnullableread-onlyObbligatorioipaddress_setarray string[]nullableread-onlyObbligatoriostatusstringread-onlyObbligatoriounpaidpendingactiveexpireddisabledcanceledblockednoprolong
cost_monthnumber (double)read-onlyObbligatorioexpiration_datestring (date-time)read-onlyObbligatoriotagsarray string[]Obbligatoriocancel_markbooleanread-onlyObbligatorioUn marcatore che indica che l'ordine verrà annullato.
projectobjectnullableread-onlyObbligatorioOrderCredentialsusernamestringpasswordstringcommentstringOrderCredentialsRequestusernamestringmin length: 1passwordstringmin length: 1commentstringmin length: 1OrderServiceCreateserviceintegerObbligatorioL'ID del servizio aggiuntivo.
countintegermin: 1default: 1La quantità di questo servizio aggiuntivo.
OrderServiceCreateRequestserviceintegerObbligatorioL'ID del servizio aggiuntivo.
countintegermin: 1default: 1La quantità di questo servizio aggiuntivo.
OrderSSHKeyAddRequestkey_pkintegerwrite-onlyObbligatorioOrderSSHKeyRemoveRequestkey_pkintegerwrite-onlyObbligatorioOrderStatusunpaidpendingactiveexpireddisabledcanceledblockednoprolong
OrderUpdatenamestringmax length: 64default: Nome personalizzato per l'ordine.
tagsarray string[]ObbligatorioTag per l'ordine come elenco.
projectintegernullableObbligatorioProgetto dell'ordine.
PaginatedAppTemplateListcountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedDomainListcountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedDSOrderListcountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedOrderListcountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedPrivateNetworkListcountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedPrivateNetworkLocationListcountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedProjectListcountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedS3OrderListcountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedSnapshotListcountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedTemplateListcountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedVPSOrderListcountintegerObbligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PanelEnumvestahestiaaapanelbrainycpcloudpanelcyberpanelbeadminopenpanel
PatchedOrderUpdateRequestnamestringlength 1…64default: Nome personalizzato per l'ordine. Inserite una stringa vuota se desiderate rimuovere il nome.
tagsarray string[]Tag per l'ordine come elenco. I nuovi tag sostituiranno completamente quelli attuali, se presenti. Inserite un elenco vuoto se desiderate rimuovere tutti i tag.
projectintegernullableProgetto dell'ordine. Inserite una stringa vuota se desiderate rimuovere il progetto.
PatchedProjectRequestnamestringlength 1…40commentstringmax length: 256PatchedVpsUpdateRequestprivate_network_enabledbooleanCollegare l'ordine a una rete privata. Questo abiliterà lo scambio diretto di dati con altri ordini nella stessa rete, migliorando velocità e sicurezza. Al momento, viene creata una sola rete privata per account.
PlacementPolicyEnumSTRICTOPTIONAL
PriorityEnum01234
PrivateNetworkidintegerread-onlyObbligatorioPrivateNetworkLocationidintegerread-onlyObbligatorioProjectidintegerread-onlyObbligatorionamestringmax length: 40Obbligatoriocommentstringmax length: 256logostring (uri)read-onlyObbligatorioProjectAddOrdersRequestordersarray string[]write-onlyObbligatorioProjectLogologostring (uri)Percorso del file.
ProjectLogoRequestlogostring (binary)Percorso del file.
ProjectRemoveOrdersRequestordersarray string[]write-onlyObbligatorioProjectRequestnamestringlength 1…40Obbligatoriocommentstringmax length: 256PublicChartsubtitlestringObbligatorioPublicChartSeriesnamestringObbligatoriodataarrayObbligatoriotypestringcolorstringPublicNetworkAddressidintegerread-onlyObbligatorioipstringObbligatoriordnsstringObbligatorioorderobjectnullableread-onlyObbligatorioPublicReinstallRequestPublic API version: exposes template instead of ostemplate.
display_namestringread-onlyObbligatoriostatusstringread-onlyObbligatoriodatestring (date-time)read-onlyObbligatorioPublicReinstallRequestRequestPublic API version: exposes template instead of ostemplate.
appintegernullablewrite-onlytemplateintegerwrite-onlysnapshotintegernullablewrite-onlyPublicTicketСоздание тикета пользователем
subjectstringmax length: 64ObbligatorioUna breve descrizione dell'essenza della tua richiesta.
messagestringmax length: 49152ObbligatorioUna descrizione dettagliata del tuo problema e altri dettagli della richiesta.
priorityintegerdefault: 101234
Una delle opzioni che riflette l'urgenza della tua richiesta:
0- Non urgente (fino a 24 ore)1- Normale (fino a 8 ore)2- Importante (fino a 6 ore)3- Urgente (entro 1 ora)4- Molto urgente (il prima possibile)
Per impostazione predefinita, un ticket viene creato con priorità normale.
La priorità molto urgente può essere impostata solo per ordini con servizio di gestione completa.
Per favore, non impostare la priorità "molto urgente" per richieste non correlate a problemi tecnici dei tuoi ordini o emergenze. Inoltre, ti chiediamo di non aumentare artificialmente la priorità di un ticket se non è necessario, poiché ciò complica solo l'elaborazione delle tue richieste.
orderstringnullableID dell'ordine nel formato "34-NNNN" a cui si riferisce la tua richiesta. Per ora un ticket può essere correlato a un solo ordine. Per impostazione predefinita, un ticket viene creato senza un ordine correlato.
urlstringread-onlyObbligatorioidstringread-onlyObbligatoriostatusstringread-onlyObbligatorioPublicTicketRequestСоздание тикета пользователем
subjectstringlength 1…64ObbligatorioUna breve descrizione dell'essenza della tua richiesta.
messagestringlength 1…49152ObbligatorioUna descrizione dettagliata del tuo problema e altri dettagli della richiesta.
priorityintegerdefault: 101234
Una delle opzioni che riflette l'urgenza della tua richiesta:
0- Non urgente (fino a 24 ore)1- Normale (fino a 8 ore)2- Importante (fino a 6 ore)3- Urgente (entro 1 ora)4- Molto urgente (il prima possibile)
Per impostazione predefinita, un ticket viene creato con priorità normale.
La priorità molto urgente può essere impostata solo per ordini con servizio di gestione completa.
Per favore, non impostare la priorità "molto urgente" per richieste non correlate a problemi tecnici dei tuoi ordini o emergenze. Inoltre, ti chiediamo di non aumentare artificialmente la priorità di un ticket se non è necessario, poiché ciò complica solo l'elaborazione delle tue richieste.
orderstringmin length: 1nullableID dell'ordine nel formato "34-NNNN" a cui si riferisce la tua richiesta. Per ora un ticket può essere correlato a un solo ordine. Per impostazione predefinita, un ticket viene creato senza un ordine correlato.
credentialsobjectwrite-onlyS3NotificationThresholdspace_warning_notify_gbintegermin: 0ObbligatorioS3NotificationThresholdRequestspace_warning_notify_gbintegermin: 0ObbligatorioS3Orderidstringread-onlyObbligatorionamestringread-onlyObbligatoriohostnamestringObbligatorioaccess_keystringread-onlyObbligatoriosecret_keystringread-onlyObbligatoriobucket_namestringread-onlyObbligatoriospace_usedintegerObbligatoriocost_monthnumber (double)read-onlyObbligatorioexpiration_datestring (date-time)read-onlyObbligatoriotagsarray string[]Obbligatoriocancel_markbooleanread-onlyObbligatorioUn marcatore che indica che l'ordine verrà annullato.
projectobjectnullableread-onlyObbligatorioServerBandwidthTariffmin_valuestring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$Obbligatoriomax_valuestring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$Obbligatoriostepstring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$ObbligatorioDifferenza tra due valori di larghezza di banda consecutivi
pricestring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$ObbligatoriounitUnitEnumgbpsmbps
Serviceidintegerread-onlyObbligatorioID del servizio.
namestringmax length: 128ObbligatorioNome del servizio.
descriptionstringmax length: 255Descrizione del servizio.
pricestring (decimal)^-?\d{0,8}(?:\.\d{0,2})?$ObbligatorioPrezzo del servizio.
billing_typestringObbligatoriosingleperiodic
Costo una tantum o mensile.
Snapshotidintegerread-onlyObbligatorioID dello snapshot.
namestringmax length: 64ObbligatorioNome dello snapshot.
size_gbnumber (double)read-onlyObbligatorioDimensione dello snapshot in GB.
created_atstring (date-time)ObbligatorioSshKeyidintegerread-onlyObbligatoriouserstringread-onlyObbligatoriokeystringmax length: 16384ObbligatorioChiave pubblica in testo semplice.
titlestringmax length: 128Obbligatoriodatestring (date-time)read-onlyObbligatoriodefaultbooleanSshKeyRequestkeystringlength 1…16384ObbligatorioChiave pubblica in testo semplice.
titlestringlength 1…128ObbligatoriodefaultbooleanTemplateidintegerread-onlyObbligatorioIdentificativo del template.
namestringmax length: 64ObbligatorioNome del template.
osstringread-onlyObbligatoriopanelnullablePannello di controllo utilizzato nel template, può essere vuoto.
archstringx86_64arm
Tipo di architettura CPU richiesto per questo modello.
min_storage_spaceinteger (int64)min: 0max: 4294967295nullableSpazio di archiviazione minimo richiesto per questo template.
min_ram_volumeintegermin: 0max: 65535nullableVolume di RAM minimo richiesto per questo modello.
min_cpu_coresinteger (int64)min: 0max: 4294967295nullableNumero minimo di core CPU richiesto per questo modello.
TermEnum13612
TicketsWebhookurlstring (uri)max length: 512URL a cui verrà inviata la richiesta, lascia vuoto per disabilitare
last_error_datestring (date-time)nullableread-onlyObbligatoriolast_error_messagestringnullableread-onlyObbligatorioTicketsWebhookRequesturlstring (uri)max length: 512URL a cui verrà inviata la richiesta, lascia vuoto per disabilitare
TtlEnum1203006009001800
UnitEnumgbpsmbps
VHTariffidintegerread-onlyObbligatorionamestringmax length: 128ObbligatorioIl nome del piano appare nelle fatture, quindi deve essere breve e scritto in caratteri latini — ad esempio Cloud NVMe 1.
sitesintegermin: 0max: 65535nullablepricenumber (double)Obbligatoriocpu_coresintegermin: 0max: 65535nullablehdd_spaceinteger (int64)min: 0max: 4294967295nullableGB
available_locationsarray string[]read-onlyObbligatorioVpnConfigaccess_urlstring (uri)ObbligatorioVpnTariffidintegerread-onlyObbligatoriopricenumber (double)Obbligatorioshareddedicatedmulti-hop
available_locationsarray string[]read-onlyObbligatorioVpnTariffTypeEnumshareddedicatedmulti-hop
VpsConfigurationcpu_countintegermin: 1max: 16Il numero di core.
ram_sizeintegermin: 2max: 32Il volume di RAM in gigabyte (GB).
disk_classintegernullableClasse del disco.
disk_sizeintegermin: 20max: 300Il volume di archiviazione in gigabyte (GB).
cpu_archstringx86_64arm
Architettura della CPU.
min_cpu_freqstring (decimal)^-?\d{0,2}(?:\.\d{0,1})?$Frequenza minima del core CPU in gigahertz (GHz). Influisce sul costo dell'ordine (frequenza più alta - prezzo più alto) e sulla scelta dell'hypervisor durante la creazione di un VPS. Consigliamo di impostare il valore esatto dal configuratore VPS, perché in caso di mancata corrispondenza verrà applicata la frequenza più prossima più alta (ad esempio, un ordine con 2.4 GHz verrà elaborato come 3.0 GHz).
VpsConfigurationRequestcpu_countintegermin: 1max: 16Il numero di core.
ram_sizeintegermin: 2max: 32Il volume di RAM in gigabyte (GB).
disk_classintegernullableClasse del disco.
disk_sizeintegermin: 20max: 300Il volume di archiviazione in gigabyte (GB).
cpu_archstringx86_64arm
Architettura della CPU.
min_cpu_freqstring (decimal)^-?\d{0,2}(?:\.\d{0,1})?$Frequenza minima del core CPU in gigahertz (GHz). Influisce sul costo dell'ordine (frequenza più alta - prezzo più alto) e sulla scelta dell'hypervisor durante la creazione di un VPS. Consigliamo di impostare il valore esatto dal configuratore VPS, perché in caso di mancata corrispondenza verrà applicata la frequenza più prossima più alta (ad esempio, un ordine con 2.4 GHz verrà elaborato come 3.0 GHz).
VpsDiskClassidintegerread-onlyObbligatorionamestringmax length: 64Obbligatoriolimit_total_mbytes_secintegermin: 0max: 65535ObbligatorioМb/sec
limit_read_iops_secintegermin: 0max: 65535ObbligatorioOp/sec
limit_write_iops_secintegermin: 0max: 65535ObbligatorioOp/sec
price_per_gbstring (decimal)^-?\d{0,2}(?:\.\d{0,4})?$ObbligatorioCosto per 1 GB
disk_typeDiskTypeEnumhddnvmessdsas
disk_type_displaystringObbligatorioVpsLocationvaluestringObbligatoriolabelstringObbligatoriolocation_os_typesarray string[]Obbligatoriobandwidth_tariffobjectnullabledisabled_by_slotsbooleandefault: truedisabled_by_cpu_freqbooleandefault: truedisabled_by_osbooleandefault: falsedisabled_by_cpu_typebooleandefault: falseavailable_frequenciesobjectObbligatorioVpsLogEntrypkintegerread-onlyObbligatorioactionstringread-onlyObbligatorionotestringread-onlyObbligatoriouserstringread-onlyObbligatoriotimestring (date-time)read-onlyObbligatoriocompletedbooleanread-onlyObbligatoriojob_statestringread-onlyObbligatorioreadyerrordone
job_actionstringread-onlyObbligatorioVPSOrderidstringread-onlyObbligatorionamestringmax length: 64tariffstringread-onlyObbligatoriotariff_pricenumber (double)nullableread-onlyObbligatoriotypestringread-onlyObbligatoriohostnamestringnullableread-onlyObbligatorioipaddress_setarray string[]nullableread-onlyObbligatoriostatusstringread-onlyObbligatoriounpaidpendingactiveexpireddisabledcanceledblockednoprolong
cost_monthnumber (double)read-onlyObbligatorioexpiration_datestring (date-time)read-onlyObbligatoriotagsarray string[]Obbligatoriocancel_markbooleanread-onlyObbligatorioUn marcatore che indica che l'ordine verrà annullato.
projectobjectnullableread-onlyObbligatorioconfigurationobjectread-onlyObbligatorioConfigurazione del server
VpsOrderCreateorder_idstringread-onlyObbligatorioVpsOrderCreateRequesttariffintegernullablewrite-onlyL'ID del piano predefinito.
Ottieni le opzioni disponibili per tariff da Piani VPS.
Per creare una configurazione personalizzata, utilizza il parametro configuration.
Non utilizzare entrambi i parametri contemporaneamente.
configurationobjectnullablewrite-onlyI parametri di configurazione personalizzata come oggetto (apri la sezione comprimibile per maggiori dettagli). Utilizza il configuratore VPS per ottenere una combinazione corretta di parametri in linea con i vincoli dinamici.
Invece di una configurazione personalizzata, potresti preferire un piano predefinito, che di solito è più economico.
Per farlo, utilizza il parametro tariff. Non utilizzare entrambi i parametri contemporaneamente.
templateintegerwrite-onlyL'ID del modello per installare un sistema operativo e, opzionalmente,
una pannello di controllo dell'hosting. Ottieni le opzioni disponibili per template da
Modelli VPS.
Invece del sistema operativo, potresti desiderare di installare un'applicazione (parametro app) o
di ripristinare il VPS da uno snapshot (parametro snapshot). Per farlo, utilizza il parametro corrispondente. Utilizza un solo parametro per ordine.
appintegerwrite-onlyL'ID dell'applicazione che desideri installare. Ottieni le opzioni disponibili per app da
Applicazioni VPS.
Invece dell'applicazione, potresti desiderare di installare un sistema operativo (parametro template) o
di ripristinare il VPS da uno snapshot (parametro snapshot). Per farlo, utilizza il parametro corrispondente. Utilizza un solo parametro per ordine.
snapshotintegerwrite-onlyL'ID dello snapshot da cui desideri ripristinare il VPS.
Ottieni le opzioni disponibili per snapshot da Snapshot VPS.
Puoi creare uno snapshot da qualsiasi VPS già creato nel tuo dashboard nella pagina dell'ordine e utilizzarlo per il ripristino (come backup) o per la creazione di copie dell'ordine (come modello).
Invece di ripristinare da uno snapshot, potresti desiderare di installare un sistema operativo (parametro template)
o un'applicazione (parametro app). Per farlo, utilizza il parametro corrispondente.
Utilizza un solo parametro per ordine.
locationstringmin length: 1write-onlyObbligatorioIl codice paese a due lettere della posizione dell'ordine.
Ottieni le opzioni disponibili per location da Posizioni VPS.
termintegerwrite-onlydefault: 113612
Numero di mesi per i quali l'ordine viene rinnovato una volta creato (ad es. 3).
Servizi aggiuntivi e la loro quantità come elenco (apri la sezione comprimibile per maggiori dettagli).
Ottieni le opzioni disponibili per services da Servizi aggiuntivi VPS.
ssh_keysarray integer[]write-onlyID delle chiavi SSH come elenco che vengono aggiunte al server all'installazione. Ottieni le opzioni disponibili per ssh_keys da Chiavi SSH. Trasmetti l'elenco delle chiavi esplicitamente. Per impostazione predefinita, viene trasmesso un elenco vuoto, anche se nel tuo dashboard sono presenti chiavi contrassegnate come "aggiungi per impostazione predefinita".
namestringlength 1…25write-onlydefault: Nome personalizzato per il VPS. Per impostazione predefinita, nessun nome è impostato per il server.
projectintegernullablewrite-onlyID del progetto. Le opzioni disponibili per project possono essere ottenute
dall'elenco dei progetti.
disk_classintegernullablewrite-onlyL'ID della classe di disco VPS.
Ottieni le opzioni disponibili per tariff da Dischi VPS.
Quando utilizzi una configurazione personalizzata, utilizza l'attributo all'interno del parametro configuration.
Non utilizzare entrambi i parametri contemporaneamente.
bandwidthintegernullablewrite-onlyLimite di larghezza di banda da impostare per l'ordine VPS. Il prezzo per unità è definito dal valore bandwidth_tariff
webhookobjectwrite-onlyConfigurazione webhook come oggetto (apri la sezione comprimibile per maggiori dettagli). È necessaria per ricevere una richiesta POST con i dettagli dell'ordine e le credenziali di accesso una volta creato il VPS
placement_policystringwrite-onlydefault: OPTIONALSTRICTOPTIONAL
placement_groupintegernullablewrite-onlyprivate_networkintegernullablewrite-onlytagsarray string[]write-onlyTag per il VPS. Per impostazione predefinita, nessun tag è impostato per il server.
VpsOrderCreateWebhookurlstring (uri)max length: 512ObbligatorioL'URL a cui viene inviata la richiesta POST.
Vengono inviati i dettagli completi dell'ordine (come nel metodo Dettagli ordine), con un campo aggiuntivo denominato credentials:
{
"credentials": {
"ip_address": "127.0.0.1",
"username": "root",
"password": "root_pass"
}
}
secretstringmax length: 64ObbligatorioFrase segreta utilizzata per la firma.
Quando si elabora una richiesta webhook, utilizzare l'intestazione "Fornex-Signature" per la convalida.
Esempio in python:
import hmac
from hashlib import sha256
import json
from django.views.decorators.csrf import csrf_exempt
from django.http import HttpRequest, HttpResponse
@csrf_exempt
def webhook_handler(request: HttpRequest):
signature = request.headers["Fornex-Signature"]
secret = "secret"
expected_signature = hmac.new(secret.encode(), request.body, sha256).hexdigest()
if signature != expected_signature:
raise ValueError("Invalid signature.")
print(json.loads(request.body.decode()))
return HttpResponse()
VpsOrderCreateWebhookRequesturlstring (uri)length 1…512ObbligatorioL'URL a cui viene inviata la richiesta POST.
Vengono inviati i dettagli completi dell'ordine (come nel metodo Dettagli ordine), con un campo aggiuntivo denominato credentials:
{
"credentials": {
"ip_address": "127.0.0.1",
"username": "root",
"password": "root_pass"
}
}
secretstringlength 1…64ObbligatorioFrase segreta utilizzata per la firma.
Quando si elabora una richiesta webhook, utilizzare l'intestazione "Fornex-Signature" per la convalida.
Esempio in python:
import hmac
from hashlib import sha256
import json
from django.views.decorators.csrf import csrf_exempt
from django.http import HttpRequest, HttpResponse
@csrf_exempt
def webhook_handler(request: HttpRequest):
signature = request.headers["Fornex-Signature"]
secret = "secret"
expected_signature = hmac.new(secret.encode(), request.body, sha256).hexdigest()
if signature != expected_signature:
raise ValueError("Invalid signature.")
print(json.loads(request.body.decode()))
return HttpResponse()
VpsResetPasswordpasswdstringread-onlyObbligatorioLa Sua nuova password.
resp_idintegerread-onlyObbligatorioID dell'operazione per controllarne lo stato, per ulteriori dettagli vedi vps_log_details
VpsStatusstatusstringObbligatorioon | off | unknown
VpsTariffidintegerread-onlyObbligatorionamestringmax length: 128ObbligatorioIl nome del piano appare nelle fatture, quindi deve essere breve e scritto in caratteri latini — ad esempio Cloud NVMe 1.
cpu_countintegerObbligatorioramstringObbligatoriodiskstringObbligatoriobandwidthstringObbligatoriopricenumber (double)ObbligatorioVpsUpdateprivate_network_enabledbooleanObbligatorioCollegare l'ordine a una rete privata. Questo abiliterà lo scambio diretto di dati con altri ordini nella stessa rete, migliorando velocità e sicurezza. Al momento, viene creata una sola rete privata per account.
WhenEnumnowexpired