v2.3.23OpenAPI 3.0.3

Fornex Public API

Autenticazione

L'accesso all'API richiede una chiave API. Inseriscila nell'intestazione HTTP di ogni richiesta.

Authorization: Api-Key <key>

Crea una chiave API nell'area clienti

Account

#

Saldo del conto

Restituisce il saldo del conto corrente

get/account/balance

Risposte

  • 200application/json
    balancenumber (double)Obbligatorio
    currencystringObbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/account/balance"
Risposta200
{
  "balance": 10,
  "currency": "EUR"
}
#

Informazioni

get/account/info

Risposte

  • 200application/json
    emailstring (email)max length: 254
    namestringObbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/account/info"
Risposta200
{
  "email": "example@fornex.com",
  "name": "Example Account"
}
#

Fatture

Restituisce il numero e l'importo totale delle fatture non pagate.

get/account/invoices

Risposte

  • 200application/json
    unpaid_invoices_countintegerObbligatorio
    unpaid_invoices_amountnumber (double)Obbligatorio
    currencystringObbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/account/invoices"
Risposta200
{
  "unpaid_invoices_count": 1,
  "unpaid_invoices_amount": 100,
  "currency": "EUR"
}

Plans

#

Backup

get/plans/backups

Risposte

  • 200application/json
    array object[]BackupTariff[]
    spaceintegerObbligatorio
    pricenumber (double)Obbligatorio
    unitsstringread-onlyObbligatoriodefault: GB
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/plans/backups"
Risposta200
[
  {
    "price": 3,
    "space": 100,
    "units": "GB"
  }
]
#

Server dedicati

get/plans/dedicated

Risposte

  • 200application/json
    array object[]DedicatedTariff[]
    idintegerread-onlyObbligatorio
    namestringmax length: 128Obbligatorio

    Il nome del piano appare nelle fatture, quindi deve essere breve e scritto in caratteri latini — ad esempio Cloud NVMe 1.

    cpu_modelstringread-onlyObbligatorio
    cpu_countintegermin: 0max: 65535
    ramstringObbligatorio
    diskstringObbligatorio
    bandwidthstringObbligatorio
    pricenumber (double)Obbligatorio
    locationsarray array[]Obbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/plans/dedicated"
Risposta200
[
  {
    "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

get/plans/hosting

Risposte

  • 200application/json
    array object[]VHTariff[]
    idintegerread-onlyObbligatorio
    namestringmax length: 128Obbligatorio

    Il nome del piano appare nelle fatture, quindi deve essere breve e scritto in caratteri latini — ad esempio Cloud NVMe 1.

    sitesintegermin: 0max: 65535nullable
    pricenumber (double)Obbligatorio
    cpu_coresintegermin: 0max: 65535nullable
    hdd_spaceinteger (int64)min: 0max: 4294967295nullable

    GB

    available_locationsarray string[]read-onlyObbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/plans/hosting"
Risposta200
[
  {
    "id": 33,
    "name": "VH-SSD-2",
    "price": 1,
    "sites": 2,
    "cpu_cores": 1,
    "hdd_space": 1,
    "available_locations": [
      "DE",
      "RU"
    ]
  }
]
#

VPN

get/plans/vpn

Risposte

  • 200application/json
    array object[]VpnTariff[]
    idintegerread-onlyObbligatorio
    pricenumber (double)Obbligatorio
    valori
    • shared
    • dedicated
    • multi-hop
    available_locationsarray string[]read-onlyObbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/plans/vpn"
Risposta200
[
  {
    "id": 1,
    "type": "dedicated",
    "price": 10,
    "available_locations": [
      "DE",
      "NL",
      "US",
      "RU"
    ]
  }
]
#

VPS

get/plans/vps

Risposte

  • 200application/json
    array object[]VpsTariff[]
    idintegerread-onlyObbligatorio
    namestringmax length: 128Obbligatorio

    Il nome del piano appare nelle fatture, quindi deve essere breve e scritto in caratteri latini — ad esempio Cloud NVMe 1.

    cpu_countintegerObbligatorio
    ramstringObbligatorio
    diskstringObbligatorio
    bandwidthstringObbligatorio
    pricenumber (double)Obbligatorio
    disk_classVpsDiskClassObbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/plans/vps"
Risposta200
[
  {
    "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

get/project/

Parametri di query

  • pageinteger

    Un numero di pagina all'interno del set di risultati impaginati.

    default: 1
  • page_sizeinteger

    Numero di risultati da restituire per pagina.

    default: 10

Risposte

  • 200application/json
    countintegerObbligatorioexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]Project[]Obbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/project/"
Risposta200
{
  "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

post/project/

Corpo

Obbligatorio
namestringlength 1…40Obbligatorio
commentstringmax length: 256

Risposte

  • 201application/json
    idintegerread-onlyObbligatorio
    namestringmax length: 40Obbligatorio
    commentstringmax length: 256
    logostring (uri)read-onlyObbligatorio
Fornex API Key
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/"
Risposta201
{
  "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

get/project/{id}/

Parametri del percorso

  • idintegerObbligatorio

    Un unique integer value che identifica questo project.

Risposte

  • 200application/json
    idintegerread-onlyObbligatorio
    namestringmax length: 40Obbligatorio
    commentstringmax length: 256
    logostring (uri)read-onlyObbligatorio
Fornex API Key
ID='1'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/project/$ID/"
Risposta200
{
  "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

patch/project/{id}/

Parametri del percorso

  • idintegerObbligatorio

    Un unique integer value che identifica questo project.

Corpo

namestringlength 1…40
commentstringmax length: 256

Risposte

  • 200application/json
    idintegerread-onlyObbligatorio
    namestringmax length: 40Obbligatorio
    commentstringmax length: 256
    logostring (uri)read-onlyObbligatorio
Fornex API Key
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/"
Risposta200
{
  "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

delete/project/{id}/

Parametri del percorso

  • idintegerObbligatorio

    Un unique integer value che identifica questo project.

Risposte

  • 204

    No response body

Fornex API Key
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.

post/project/{id}/add_orders/

Parametri del percorso

  • idintegerObbligatorio

    Un unique integer value che identifica questo project.

Corpo

Obbligatorio
ordersarray string[]write-onlyObbligatorio

Risposte

  • 200

    No response body

Fornex API Key
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.

put/project/{id}/edit_logo/

Parametri del percorso

  • idintegerObbligatorio

    Un unique integer value che identifica questo project.

Corpo

multipart/form-data
logostring (binary)

Percorso del file.

Risposte

  • 200application/json
    logostring (uri)

    Percorso del file.

Fornex API Key
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/"
Risposta200
{
  "type": "object",
  "properties": {
    "logo": {
      "type": "string",
      "format": "uri",
      "description": "Percorso del file."
    }
  }
}
#

Elimina ordine

Richiesta di rimuovere un ordine dal Progetto.

post/project/{id}/remove_orders/

Parametri del percorso

  • idintegerObbligatorio

    Un unique integer value che identifica questo project.

Corpo

Obbligatorio
ordersarray string[]write-onlyObbligatorio

Risposte

  • 200

    No response body

Fornex API Key
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.

get/orders/

Parametri di query

  • cancel_markboolean

    Filtrare gli ordini che verranno annullati.

  • orderingstring

    Campo utilizzato per ordinare i risultati.

    default: id
    expiredid
  • pageinteger

    Un numero di pagina all'interno del set di risultati impaginati.

    default: 1
  • page_sizeinteger

    Numero di risultati da restituire per pagina.

    default: 10

Risposte

  • 200application/json
    countintegerObbligatorioexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]Order[]Obbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/"
Risposta200
{
  "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.

get/orders/{order_id}/

Parametri del percorso

  • order_idstringObbligatorio

    ID dell'ordine nel formato NN-NNNNN. Il prefisso può variare a seconda del tipo di ordine.

Risposte

  • 200application/json
    idstringread-onlyObbligatorio
    namestringmax length: 64
    tariffstringread-onlyObbligatorio
    tariff_pricenumber (double)nullableread-onlyObbligatorio
    typestringread-onlyObbligatorio
    hostnamestringnullableread-onlyObbligatorio
    ipaddress_setarray string[]nullableread-onlyObbligatorio
    statusstringread-onlyObbligatorio
    valori
    • unpaid
    • pending
    • active
    • expired
    • disabled
    • canceled
    • blocked
    • noprolong
    cost_monthnumber (double)read-onlyObbligatorio
    expiration_datestring (date-time)read-onlyObbligatorio
    tagsarray string[]Obbligatorio
    cancel_markbooleanread-onlyObbligatorio

    Un marcatore che indica che l'ordine verrà annullato.

    projectobjectnullableread-onlyObbligatorio
Fornex API Key
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/"
Risposta200
{
  "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.

patch/orders/{order_id}/

Parametri del percorso

  • order_idstringObbligatorio

    ID 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.

projectintegernullable

Progetto dell'ordine. Inserite una stringa vuota se desiderate rimuovere il progetto.

Risposte

  • 200application/json
    namestringmax length: 64default:

    Nome personalizzato per l'ordine.

    tagsarray string[]Obbligatorio

    Tag per l'ordine come elenco.

    projectintegernullableObbligatorio

    Progetto dell'ordine.

Fornex API Key
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/"
Risposta200
{
  "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.

post/orders/{order_id}/cancel/

Parametri del percorso

  • order_idstringObbligatorio

    ID dell'ordine nel formato NN-NNNNN. Il prefisso può variare a seconda del tipo di ordine.

Corpo

whenstringwrite-onlydefault: expired
valori
  • now
  • expired

Il parametro descrive quando l'ordine deve essere annullato: ora o al termine del periodo pagato.

save_backupbooleanwrite-onlydefault: true

Il parametro descrive se eseguire uno snapshot del VPS prima di rimuovere la macchina virtuale o meno.

Risposte

  • 200application/json
    statusstringread-onlyObbligatorio
    valori
    • canceled
    • cancel_pending
    messagestringread-onlyObbligatorio
Fornex API Key
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/"
Risposta200
{
  "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.

delete/orders/{order_id}/cancel/

Parametri del percorso

  • order_idstringObbligatorio

    ID dell'ordine nel formato NN-NNNNN. Il prefisso può variare a seconda del tipo di ordine.

Risposte

  • 204

    No response body

Fornex API Key
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.

get/orders/vps/

Parametri di query

  • cancel_markboolean

    Filtrare gli ordini che verranno annullati.

  • orderingstring

    Campo utilizzato per ordinare i risultati.

    default: id
    expiredid
  • pageinteger

    Un numero di pagina all'interno del set di risultati impaginati.

    default: 1
  • page_sizeinteger

    Numero di risultati da restituire per pagina.

    default: 10

Risposte

  • 200application/json
    countintegerObbligatorioexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]VPSOrder[]Obbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/"
Risposta200
{
  "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.

get/orders/vps/{order_id}/

Parametri del percorso

  • order_idstringObbligatorio

    ID dell'ordine nel formato NN-NNNNN.

Risposte

  • 200application/json
    idstringread-onlyObbligatorio
    namestringmax length: 64
    tariffstringread-onlyObbligatorio
    tariff_pricenumber (double)nullableread-onlyObbligatorio
    typestringread-onlyObbligatorio
    hostnamestringnullableread-onlyObbligatorio
    ipaddress_setarray string[]nullableread-onlyObbligatorio
    statusstringread-onlyObbligatorio
    valori
    • unpaid
    • pending
    • active
    • expired
    • disabled
    • canceled
    • blocked
    • noprolong
    cost_monthnumber (double)read-onlyObbligatorio
    expiration_datestring (date-time)read-onlyObbligatorio
    tagsarray string[]Obbligatorio
    cancel_markbooleanread-onlyObbligatorio

    Un marcatore che indica che l'ordine verrà annullato.

    projectobjectnullableread-onlyObbligatorio
    configurationobjectread-onlyObbligatorio

    Configurazione del server

Fornex API Key
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/"
Risposta200
{
  "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) o configuration (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) o app (per installare un'applicazione) o snapshot (per ripristinare VPS dal tuo snapshot).
  • Paese: scegli location dalle opzioni disponibili.

Per annullare e rimuovere un VPS tramite API, utilizza il metodo universale Annulla ordine.

post/orders/vps/

Corpo

Obbligatorio
tariffintegernullablewrite-only

L'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-only

I 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-only

L'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-only

L'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-only

L'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-onlyObbligatorio

Il codice paese a due lettere della posizione dell'ordine. Ottieni le opzioni disponibili per location da Posizioni VPS.

termintegerwrite-onlydefault: 1
valori
  • 1
  • 3
  • 6
  • 12

Numero di mesi per i quali l'ordine viene rinnovato una volta creato (ad es. 3).

servicesarray object[]OrderServiceCreateRequest[]write-only

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-only

ID 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-only

ID del progetto. Le opzioni disponibili per project possono essere ottenute dall'elenco dei progetti.

disk_classintegernullablewrite-only

L'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-only

Limite di larghezza di banda da impostare per l'ordine VPS. Il prezzo per unità è definito dal valore bandwidth_tariff

webhookobjectwrite-only

Configurazione 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: OPTIONAL
valori
  • STRICT
  • OPTIONAL
placement_groupintegernullablewrite-only
private_networkintegernullablewrite-only
tagsarray string[]write-only

Tag per il VPS. Per impostazione predefinita, nessun tag è impostato per il server.

Risposte

Fornex API Key
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/"
Risposta201
{
  "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.

get/orders/vps/templates/

Risposte

  • 200application/json
    array object[]Template[]
    idintegerread-onlyObbligatorio

    Identificativo del template.

    namestringmax length: 64Obbligatorio

    Nome del template.

    osstringread-onlyObbligatorio
    panelnullable

    Pannello di controllo utilizzato nel template, può essere vuoto.

    Uno di
    archstring
    valori
    • x86_64
    • arm

    Tipo di architettura CPU richiesto per questo modello.

    min_storage_spaceinteger (int64)min: 0max: 4294967295nullable

    Spazio di archiviazione minimo richiesto per questo template.

    min_ram_volumeintegermin: 0max: 65535nullable

    Volume di RAM minimo richiesto per questo modello.

    min_cpu_coresinteger (int64)min: 0max: 4294967295nullable

    Numero minimo di core CPU richiesto per questo modello.

Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/templates/"
Risposta200
[
  {
    "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.

get/orders/vps/apps/

Risposte

  • 200application/json
    array object[]AppTemplate[]
    idintegerread-onlyObbligatorio

    Identificativo dell'applicazione.

    namestringmax length: 64Obbligatorio

    Nome dell'applicazione.

    osstringread-onlyObbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/apps/"
Risposta200
{
  "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.

get/orders/vps/snapshots/

Risposte

  • 200application/json
    array object[]Snapshot[]
    idintegerread-onlyObbligatorio

    ID dello snapshot.

    namestringmax length: 64Obbligatorio

    Nome dello snapshot.

    size_gbnumber (double)read-onlyObbligatorio

    Dimensione dello snapshot in GB.

    created_atstring (date-time)Obbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/snapshots/"
Risposta200
{
  "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.

get/orders/vps/locations/

Risposte

  • 200application/json
    array object[]VpsLocation[]
    valuestringObbligatorio
    labelstringObbligatorio
    location_os_typesarray string[]Obbligatorio
    bandwidth_tariffobjectnullable
    disabled_by_slotsbooleandefault: true
    disabled_by_cpu_freqbooleandefault: true
    disabled_by_osbooleandefault: false
    disabled_by_cpu_typebooleandefault: false
    available_frequenciesobjectObbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/locations/"
Risposta200
[
  {
    "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.

get/orders/vps/disks/

Risposte

  • 200application/json
    array object[]VpsDiskClass[]
    idintegerread-onlyObbligatorio
    namestringmax length: 64Obbligatorio
    limit_total_mbytes_secintegermin: 0max: 65535Obbligatorio

    Мb/sec

    limit_read_iops_secintegermin: 0max: 65535Obbligatorio

    Op/sec

    limit_write_iops_secintegermin: 0max: 65535Obbligatorio

    Op/sec

    price_per_gbstring (decimal)^-?\d{0,2}(?:\.\d{0,4})?$Obbligatorio

    Costo per 1 GB

    disk_typeDiskTypeEnum
    valori
    • hdd
    • nvme
    • ssd
    • sas
    disk_type_displaystringObbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/disks/"
Risposta200
[
  {
    "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.

get/orders/vps/services/

Risposte

  • 200application/json
    array object[]Service[]
    idintegerread-onlyObbligatorio

    ID del servizio.

    namestringmax length: 128Obbligatorio

    Nome del servizio.

    descriptionstringmax length: 255

    Descrizione del servizio.

    pricestring (decimal)^-?\d{0,8}(?:\.\d{0,2})?$Obbligatorio

    Prezzo del servizio.

    billing_typestringObbligatorio
    valori
    • single
    • periodic

    Costo una tantum o mensile.

Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/services/"
Risposta200
{
  "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.

get/vps/{order_id}/reinstall/templates/

Parametri del percorso

  • order_idstringObbligatorio

    ID ordine (incluso prefisso 34-...)

Parametri di query

  • pageinteger

    Un numero di pagina all'interno del set di risultati impaginati.

    default: 1
  • page_sizeinteger

    Numero di risultati da restituire per pagina.

    default: 10

Risposte

  • 200application/json
    countintegerObbligatorioexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]Template[]Obbligatorio
Fornex API Key
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/"
Risposta200
{
  "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.

get/vps/{order_id}/reinstall/apps/

Parametri del percorso

  • order_idstringObbligatorio

    ID ordine (incluso prefisso 34-...)

Parametri di query

  • pageinteger

    Un numero di pagina all'interno del set di risultati impaginati.

    default: 1
  • page_sizeinteger

    Numero di risultati da restituire per pagina.

    default: 10

Risposte

  • 200application/json
    countintegerObbligatorioexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]AppTemplate[]Obbligatorio
Fornex API Key
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/"
Risposta200
{
  "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.

get/vps/{order_id}/reinstall/snapshots/

Parametri del percorso

  • order_idstringObbligatorio

    ID ordine (incluso prefisso 34-...)

Parametri di query

  • pageinteger

    Un numero di pagina all'interno del set di risultati impaginati.

    default: 1
  • page_sizeinteger

    Numero di risultati da restituire per pagina.

    default: 10

Risposte

  • 200application/json
    countintegerObbligatorioexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]Snapshot[]Obbligatorio
Fornex API Key
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/"
Risposta200
{
  "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.

post/vps/{order_id}/reinstall/reinstall/

Parametri del percorso

  • order_idstringObbligatorio

    ID ordine (incluso prefisso 34-...)

Corpo

Public API version: exposes template instead of ostemplate.

appintegernullablewrite-only
templateintegerwrite-only
snapshotintegernullablewrite-only

Risposte

  • 200application/json

    Public API version: exposes template instead of ostemplate.

    display_namestringread-onlyObbligatorio
    statusstringread-onlyObbligatorio
    datestring (date-time)read-onlyObbligatorio
Fornex API Key
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/"
Risposta200
{
  "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

get/vps/{order_id}/status/

Parametri del percorso

  • order_idstringObbligatorio

    ID ordine (incluso prefisso 34-...)

Risposte

  • 200application/json
    statusstringObbligatorio

    on | off | unknown

Fornex API Key
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/"
Risposta200
{
  "status": "on"
}
#

Avvia VPS

post/vps/{order_id}/start/

Parametri del percorso

  • order_idstringObbligatorio

    ID ordine (incluso prefisso 34-...)

Risposte

  • 200application/json
    pkintegerread-onlyObbligatorio
    actionstringread-onlyObbligatorio
    notestringread-onlyObbligatorio
    userstringread-onlyObbligatorio
    timestring (date-time)read-onlyObbligatorio
    completedbooleanread-onlyObbligatorio
    job_statestringread-onlyObbligatorio
    valori
    • ready
    • error
    • done
    job_actionstringread-onlyObbligatorio
Fornex API Key
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/"
Risposta200
{
  "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

post/vps/{order_id}/stop/

Parametri del percorso

  • order_idstringObbligatorio

    ID ordine (incluso prefisso 34-...)

Risposte

  • 200application/json
    pkintegerread-onlyObbligatorio
    actionstringread-onlyObbligatorio
    notestringread-onlyObbligatorio
    userstringread-onlyObbligatorio
    timestring (date-time)read-onlyObbligatorio
    completedbooleanread-onlyObbligatorio
    job_statestringread-onlyObbligatorio
    valori
    • ready
    • error
    • done
    job_actionstringread-onlyObbligatorio
Fornex API Key
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/"
Risposta200
{
  "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

post/vps/{order_id}/restart/

Parametri del percorso

  • order_idstringObbligatorio

    ID ordine (incluso prefisso 34-...)

Risposte

  • 200application/json
    pkintegerread-onlyObbligatorio
    actionstringread-onlyObbligatorio
    notestringread-onlyObbligatorio
    userstringread-onlyObbligatorio
    timestring (date-time)read-onlyObbligatorio
    completedbooleanread-onlyObbligatorio
    job_statestringread-onlyObbligatorio
    valori
    • ready
    • error
    • done
    job_actionstringread-onlyObbligatorio
Fornex API Key
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/"
Risposta200
{
  "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

post/vps/{order_id}/rescue_mode/

Parametri del percorso

  • order_idstringObbligatorio

    ID ordine (incluso prefisso 34-...)

Risposte

  • 200application/json
    pkintegerread-onlyObbligatorio
    actionstringread-onlyObbligatorio
    notestringread-onlyObbligatorio
    userstringread-onlyObbligatorio
    timestring (date-time)read-onlyObbligatorio
    completedbooleanread-onlyObbligatorio
    job_statestringread-onlyObbligatorio
    valori
    • ready
    • error
    • done
    job_actionstringread-onlyObbligatorio
Fornex API Key
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/"
Risposta200
{
  "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

post/vps/{order_id}/stop_rescue_mode/

Parametri del percorso

  • order_idstringObbligatorio

    ID ordine (incluso prefisso 34-...)

Risposte

  • 200application/json
    pkintegerread-onlyObbligatorio
    actionstringread-onlyObbligatorio
    notestringread-onlyObbligatorio
    userstringread-onlyObbligatorio
    timestring (date-time)read-onlyObbligatorio
    completedbooleanread-onlyObbligatorio
    job_statestringread-onlyObbligatorio
    valori
    • ready
    • error
    • done
    job_actionstringread-onlyObbligatorio
Fornex API Key
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/"
Risposta200
{
  "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.

post/vps/{order_id}/hard_reset/

Parametri del percorso

  • order_idstringObbligatorio

    ID ordine (incluso prefisso 34-...)

Risposte

  • 200application/json
    pkintegerread-onlyObbligatorio
    actionstringread-onlyObbligatorio
    notestringread-onlyObbligatorio
    userstringread-onlyObbligatorio
    timestring (date-time)read-onlyObbligatorio
    completedbooleanread-onlyObbligatorio
    job_statestringread-onlyObbligatorio
    valori
    • ready
    • error
    • done
    job_actionstringread-onlyObbligatorio
Fornex API Key
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/"
Risposta200
{
  "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

post/vps/{order_id}/passwd_reset/

Parametri del percorso

  • order_idstringObbligatorio

    ID ordine (incluso prefisso 34-...)

Risposte

  • 200application/json
    passwdstringread-onlyObbligatorio

    La Sua nuova password.

    resp_idintegerread-onlyObbligatorio

    ID dell'operazione per controllarne lo stato, per ulteriori dettagli vedi vps_log_details

Fornex API Key
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/"
Risposta200
{
  "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

get/vps/{order_id}/log_details/{log_id}/

Parametri del percorso

  • log_idintegerObbligatorio

    ID record

  • order_idstringObbligatorio

    ID ordine (incluso prefisso 34-...)

Risposte

  • 200application/json
    pkintegerread-onlyObbligatorio
    actionstringread-onlyObbligatorio
    notestringread-onlyObbligatorio
    userstringread-onlyObbligatorio
    timestring (date-time)read-onlyObbligatorio
    completedbooleanread-onlyObbligatorio
    job_statestringread-onlyObbligatorio
    valori
    • ready
    • error
    • done
    job_actionstringread-onlyObbligatorio
Fornex API Key
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/"
Risposta200
{
  "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.

patch/vps/{order_id}/

Parametri del percorso

  • order_idstringObbligatorio

    ID ordine (incluso prefisso 34-...)

Corpo

private_network_enabledboolean

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.

Risposte

  • 200application/json
    private_network_enabledbooleanObbligatorio

    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.

Fornex API Key
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/"
Risposta200
{
  "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).

get/vps/{order_id}/stats/{field}/

Parametri del percorso

  • fieldstringObbligatorio

    Campo statistiche

    cpudiskiomemorytraffic
  • order_idstringObbligatorio

    ID ordine (incluso prefisso 34-...)

Parametri di query

  • endstring

    Fine periodo (predefinito - now)

  • startstring

    Inizio periodo (predefinito - -1h)

Risposte

Fornex API Key
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/"
Risposta200
{
  "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

get/private-network/

Parametri di query

  • pageinteger

    Un numero di pagina all'interno del set di risultati impaginati.

    default: 1
  • page_sizeinteger

    Numero di risultati da restituire per pagina.

    default: 10

Risposte

  • 200application/json
    countintegerObbligatorioexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]PrivateNetwork[]Obbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/private-network/"
Risposta200
{
  "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"
        ]
      }
    }
  }
}
#

Crea rete

post/private-network/

Risposte

Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/private-network/"
Risposta201
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "readOnly": true
    }
  },
  "required": [
    "id"
  ]
}
#

Posizioni supportate

get/private-network/locations/

Parametri di query

  • pageinteger

    Un numero di pagina all'interno del set di risultati impaginati.

    default: 1
  • page_sizeinteger

    Numero di risultati da restituire per pagina.

    default: 10

Risposte

  • 200application/json
    countintegerObbligatorioexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]PrivateNetworkLocation[]Obbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/private-network/locations/"
Risposta200
{
  "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

delete/private-network/{id}/

Parametri del percorso

  • idintegerObbligatorio

    Un unique integer value che identifica questo User VNI.

Risposte

  • 204

    No response body

Fornex API Key
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.

get/orders/ds/

Parametri di query

  • cancel_markboolean

    Filtrare gli ordini che verranno annullati.

  • orderingstring

    Campo utilizzato per ordinare i risultati.

    default: id
    expiredid
  • pageinteger

    Un numero di pagina all'interno del set di risultati impaginati.

    default: 1
  • page_sizeinteger

    Numero di risultati da restituire per pagina.

    default: 10

Risposte

  • 200application/json
    countintegerObbligatorioexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]DSOrder[]Obbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/ds/"
Risposta200
{
  "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.

get/orders/ds/{order_id}/

Parametri del percorso

  • order_idstringObbligatorio

    ID dell'ordine nel formato NN-NNNNNNN.

Risposte

  • 200application/json
    idstringread-onlyObbligatorio
    namestringmax length: 64
    tariffstringread-onlyObbligatorio
    tariff_pricenumber (double)nullableread-onlyObbligatorio
    typestringread-onlyObbligatorio
    hostnamestringnullableread-onlyObbligatorio
    ipaddress_setarray string[]nullableread-onlyObbligatorio
    statusstringread-onlyObbligatorio
    valori
    • unpaid
    • pending
    • active
    • expired
    • disabled
    • canceled
    • blocked
    • noprolong
    cost_monthnumber (double)read-onlyObbligatorio
    expiration_datestring (date-time)read-onlyObbligatorio
    tagsarray string[]Obbligatorio
    cancel_markbooleanread-onlyObbligatorio

    Un marcatore che indica che l'ordine verrà annullato.

    projectobjectnullableread-onlyObbligatorio
    configurationobjectread-onlyObbligatorio

    Configurazione del server

Fornex API Key
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/"
Risposta200
{
  "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

get/orders/ds/{order_id}/traffic/

Parametri del percorso

  • order_idstringObbligatorio

    ID ordine (incluso prefisso 34-...)

Parametri di query

  • periodstring

    Periodo per la visualizzazione delle statistiche

    default: month
    monthyear
  • portinteger

    Numero di porta sequenziale

    default: 0

Risposte

  • 200application/json
    dataarrayObbligatorio
    orderstringObbligatorio
    periodstringObbligatorio
Fornex API Key
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/"
Risposta200
{
  "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

get/orders/ds/{order_id}/traffic_used/

Parametri del percorso

  • order_idintegerObbligatorio

    Un unique integer value che identifica questo Ordine DS.

Risposte

  • 200application/json
    orderstringObbligatorio
    limitintegerObbligatorio
    range_startstring (date)Obbligatorio
    range_endstring (date)Obbligatorio
    usedintegerObbligatorio
    used_ratenumber (double)Obbligatorio
Fornex API Key
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/"
Risposta200
{
  "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

get/dns/domain/

Parametri di query

  • pageinteger

    Un numero di pagina all'interno del set di risultati impaginati.

    default: 1
  • page_sizeinteger

    Numero di risultati da restituire per pagina.

    default: 10
  • qstring

    cerca per nome o IP

  • tagstring

    filtra per tag

Risposte

  • 200application/json
    countintegerObbligatorioexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]Domain[]Obbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/dns/domain/"
Risposta200
{
  "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.

post/dns/domain/

Corpo

Obbligatorio
namestringlength 1…128Obbligatorio
ipstring (ipv4)min length: 1write-onlyObbligatorio

Risposte

  • 201application/json
    namestringmax length: 128Obbligatorio
    createdstring (date-time)read-onlyObbligatorio
    updatedstring (date-time)read-onlyObbligatorio
    tagsarray string[]read-onlyObbligatorio
    entry_setarray object[]Entry[]read-onlyObbligatorio
Fornex API Key
curl -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/"
Risposta201
{
  "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

delete/dns/domain/{name}/

Parametri del percorso

  • namestringObbligatorio

    Nome dominio

Risposte

  • 204

    No response body

Fornex API Key
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

get/dns/domain/{name}/zone_file/

Parametri del percorso

  • namestringObbligatorio

    Nome dominio

Risposte

  • 200text/plain

    Zone file content (BIND format)

    string
Fornex API Key
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/"
Risposta200
"$TTL 21600\n@\tIN\tSOA\tns1.fornex.com. hostmaster.fornex.com. (\n...\n"
#

Aggiorna tag

put/dns/domain/{name}/tags/

Parametri del percorso

  • namestringObbligatorio

    Nome dominio

Corpo

Obbligatorio
tagsarray string[]Obbligatorio

Risposte

  • 200application/json
    tagsarray string[]Obbligatorio
Fornex API Key
NAME='example.com'

curl -X PUT \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"tags": ["example"]}' \
  "https://fornex.com/api/dns/domain/$NAME/tags/"
Risposta200
{
  "tags": [
    "example"
  ]
}

Domain: Entry

#

Lista record

get/dns/domain/{name}/entry_set/

Parametri del percorso

  • namestringObbligatorio

    Nome dominio

Parametri di query

  • qstring

    filtro record

  • typestring
    AAAAACAACNAMEMXNSSRVTXTnull

Risposte

  • 200application/json
    array object[]Entry[]
    idintegerread-onlyObbligatorio
    hoststringmax length: 255default:

    Hostname record: '@, *, subdomain'

    typestringObbligatorio
    valori
    • A
    • AAAA
    • TXT
    • CNAME
    • NS
    • MX
    • SRV
    • CAA

    Tipo di record

    priointeger (int64)min: 0max: 4294967295nullable

    Priorità, usata solo per SRV e MX

    valuestringmax length: 1024Obbligatorio

    Valore del record in base al tipo, ad esempio IP per i record A

    ttlnullable

    TTL del record (facoltativo, default: 3600 sec.)

    Uno di
Fornex API Key
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/"
Risposta200
[
  {
    "id": 1,
    "host": "www",
    "type": "A",
    "ttl": null,
    "value": "10.10.10.18"
  }
]
#

Aggiungi record

post/dns/domain/{name}/entry_set/

Parametri del percorso

  • namestringObbligatorio

    Nome dominio

Corpo

Obbligatorio
hoststringmax length: 255default:

Hostname record: '@, *, subdomain'

typestringObbligatorio
valori
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA

Tipo di record

priointeger (int64)min: 0max: 4294967295nullable

Priorità, usata solo per SRV e MX

valuestringlength 1…1024Obbligatorio

Valore del record in base al tipo, ad esempio IP per i record A

ttlnullable

TTL del record (facoltativo, default: 3600 sec.)

Uno di

Risposte

  • 201application/json
    idintegerread-onlyObbligatorio
    hoststringmax length: 255default:

    Hostname record: '@, *, subdomain'

    typestringObbligatorio
    valori
    • A
    • AAAA
    • TXT
    • CNAME
    • NS
    • MX
    • SRV
    • CAA

    Tipo di record

    priointeger (int64)min: 0max: 4294967295nullable

    Priorità, usata solo per SRV e MX

    valuestringmax length: 1024Obbligatorio

    Valore del record in base al tipo, ad esempio IP per i record A

    ttlnullable

    TTL del record (facoltativo, default: 3600 sec.)

    Uno di
Fornex API Key
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/"
Risposta201
{
  "id": 1,
  "host": "www",
  "type": "A",
  "ttl": null,
  "value": "10.10.10.18"
}
#

Aggiorna record

put/dns/domain/{name}/entry_set/{id}/

Parametri del percorso

  • idintegerObbligatorio

    Un unique integer value che identifica questo Record DNS.

  • namestringObbligatorio

    Nome dominio

Corpo

Obbligatorio
hoststringmax length: 255default:

Hostname record: '@, *, subdomain'

typestringObbligatorio
valori
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA

Tipo di record

priointeger (int64)min: 0max: 4294967295nullable

Priorità, usata solo per SRV e MX

valuestringlength 1…1024Obbligatorio

Valore del record in base al tipo, ad esempio IP per i record A

ttlnullable

TTL del record (facoltativo, default: 3600 sec.)

Uno di

Risposte

  • 200application/json
    idintegerread-onlyObbligatorio
    hoststringmax length: 255default:

    Hostname record: '@, *, subdomain'

    typestringObbligatorio
    valori
    • A
    • AAAA
    • TXT
    • CNAME
    • NS
    • MX
    • SRV
    • CAA

    Tipo di record

    priointeger (int64)min: 0max: 4294967295nullable

    Priorità, usata solo per SRV e MX

    valuestringmax length: 1024Obbligatorio

    Valore del record in base al tipo, ad esempio IP per i record A

    ttlnullable

    TTL del record (facoltativo, default: 3600 sec.)

    Uno di
Fornex API Key
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/"
Risposta200
{
  "id": 1,
  "host": "www",
  "type": "A",
  "ttl": null,
  "value": "10.10.10.18"
}
#

Elimina record

delete/dns/domain/{name}/entry_set/{id}/

Parametri del percorso

  • idintegerObbligatorio

    Un unique integer value che identifica questo Record DNS.

  • namestringObbligatorio

    Nome dominio

Risposte

  • 204

    No response body

Fornex API Key
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.

post/dns/order/{order_id}/change_ns/

Parametri del percorso

  • order_idstringObbligatorio

    numero ordine

Corpo

Obbligatorio
nssstringmin length: 1Obbligatorio

lista di NS, separati da virgola

Risposte

Fornex API Key
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/"
Risposta200
{
  "type": "object",
  "properties": {
    "nss": {
      "type": "string",
      "title": "Nameservers",
      "description": "lista di NS, separati da virgola"
    }
  },
  "required": [
    "nss"
  ]
}

SSH Keys

#

Elenco chiavi

get/ssh_keys/

Risposte

  • 200application/json
    array object[]SshKey[]
    idintegerread-onlyObbligatorio
    userstringread-onlyObbligatorio
    keystringmax length: 16384Obbligatorio

    Chiave pubblica in testo semplice.

    titlestringmax length: 128Obbligatorio
    datestring (date-time)read-onlyObbligatorio
    defaultboolean
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/ssh_keys/"
Risposta200
[
  {
    "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.

post/ssh_keys/

Corpo

Obbligatorio
keystringlength 1…16384Obbligatorio

Chiave pubblica in testo semplice.

titlestringlength 1…128Obbligatorio
defaultboolean

Risposte

  • 201application/json
    idintegerread-onlyObbligatorio
    userstringread-onlyObbligatorio
    keystringmax length: 16384Obbligatorio

    Chiave pubblica in testo semplice.

    titlestringmax length: 128Obbligatorio
    datestring (date-time)read-onlyObbligatorio
    defaultboolean
Fornex API Key
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/"
Risposta201
{
  "id": 1,
  "key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test",
  "title": "Dev Laptop",
  "date": "2019-08-24T14:15:22Z",
  "default": true
}
#

Elimina chiave

delete/ssh_keys/{key_id}/

Parametri del percorso

  • key_idintegerObbligatorio

    Un unique integer value che identifica questo user ssh key.

Risposte

  • 204

    No response body

Fornex API Key
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

get/vps/{order_id}/ssh_keys/

Parametri del percorso

  • order_idstringObbligatorio

    ID ordine (incluso prefisso 34-...)

Risposte

  • 200application/json
    array object[]SshKey[]
    idintegerread-onlyObbligatorio
    userstringread-onlyObbligatorio
    keystringmax length: 16384Obbligatorio

    Chiave pubblica in testo semplice.

    titlestringmax length: 128Obbligatorio
    datestring (date-time)read-onlyObbligatorio
    defaultboolean
Fornex API Key
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/"
Risposta200
[
  {
    "id": 1,
    "key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test",
    "title": "Dev Laptop",
    "date": "2019-08-24T14:15:22Z",
    "default": true
  }
]
#

Aggiungi chiave all'ordine

post/vps/{order_id}/ssh_keys/add/

Parametri del percorso

  • order_idstringObbligatorio

    ID ordine (incluso prefisso 34-...)

Corpo

Obbligatorio
key_pkintegerwrite-onlyObbligatorio

Risposte

  • 200

    No response body

Fornex API Key
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

post/vps/{order_id}/ssh_keys/delete/

Parametri del percorso

  • order_idstringObbligatorio

    ID ordine (incluso prefisso 34-...)

Corpo

Obbligatorio
key_pkintegerwrite-onlyObbligatorio

Risposte

  • 200

    No response body

Fornex API Key
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

get/orders/s3/

Parametri di query

  • cancel_markboolean

    Filtrare gli ordini che verranno annullati.

  • orderingstring

    Campo utilizzato per ordinare i risultati.

    default: id
    expiredid
  • pageinteger

    Un numero di pagina all'interno del set di risultati impaginati.

    default: 1
  • page_sizeinteger

    Numero di risultati da restituire per pagina.

    default: 10

Risposte

  • 200application/json
    countintegerObbligatorioexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]S3Order[]Obbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/s3/"
Risposta200
{
  "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.

get/orders/s3/{order_id}/

Parametri del percorso

  • order_idstringObbligatorio

    ID ordine nel formato NNN-NN.

Risposte

  • 200application/json
    idstringread-onlyObbligatorio
    namestringread-onlyObbligatorio
    hostnamestringObbligatorio
    access_keystringread-onlyObbligatorio
    secret_keystringread-onlyObbligatorio
    bucket_namestringread-onlyObbligatorio
    space_usedintegerObbligatorio
    cost_monthnumber (double)read-onlyObbligatorio
    expiration_datestring (date-time)read-onlyObbligatorio
    tagsarray string[]Obbligatorio
    cancel_markbooleanread-onlyObbligatorio

    Un marcatore che indica che l'ordine verrà annullato.

    projectobjectnullableread-onlyObbligatorio
Fornex API Key
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/"
Risposta200
{
  "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.

put/orders/s3/{order_id}/notification_threshold/

Parametri del percorso

  • order_idintegerObbligatorio

    Un unique integer value che identifica questo Ordine S3.

Corpo

Obbligatorio
space_warning_notify_gbintegermin: 0Obbligatorio

Risposte

Fornex API Key
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/"
Risposta200
{
  "type": "object",
  "properties": {
    "space_warning_notify_gb": {
      "type": "integer",
      "minimum": 0
    }
  },
  "required": [
    "space_warning_notify_gb"
  ]
}

VPN

#

Configurazione OpenVPN

get/vpn/{order_id}/config-{proto}.ovpn

Parametri del percorso

  • order_idstringObbligatorio

    numero ordine

  • protostringObbligatorio

    Protocollo

    tcpudp

Risposte

  • 200text/plain

    OpenVPN profile

    string
Fornex API Key
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"
Risposta200
{
  "type": "string"
}
#

Configurazione IKEv2 per MacOS/iOS

get/vpn/{order_id}/config-ikev2.mobileconfig

Parametri del percorso

  • order_idstringObbligatorio

    numero ordine

Risposte

  • 200text/plain

    IKEv2 mobileconfig

    string
Fornex API Key
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"
Risposta200
{
  "type": "string"
}
#

Configurazione IKEv2 per Android

get/vpn/{order_id}/config-ikev2.sswan

Parametri del percorso

  • order_idstringObbligatorio

    numero ordine

Risposte

  • 200application/json

    IKEv2 sswan

    string
Fornex API Key
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"
Risposta200
{
  "type": "string"
}
#

Configurazione WireGuard

get/vpn/{order_id}/config-wireguard.conf

Parametri del percorso

  • order_idstringObbligatorio

    numero ordine

Risposte

  • 200text/plain

    WireGuard config

    string
Fornex API Key
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"
Risposta200
{
  "type": "string"
}
#

Configurazione Outline VPN

get/vpn/{order_id}/config_outline

Parametri del percorso

  • order_idstringObbligatorio

    numero ordine

Risposte

  • 200application/json
    access_urlstring (uri)Obbligatorio
Fornex API Key
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"
Risposta200
{
  "type": "object",
  "properties": {
    "access_url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "access_url"
  ]
}
#

Configurazione Xray VPN

get/vpn/{order_id}/config_xray

Parametri del percorso

  • order_idstringObbligatorio

    numero ordine

Risposte

  • 200application/json
    access_urlstring (uri)Obbligatorio
Fornex API Key
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"
Risposta200
{
  "type": "object",
  "properties": {
    "access_url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "access_url"
  ]
}

IP Addresses

Indirizzi IP assegnati ai tuoi servizi.

#

Elenco indirizzi IP

get/network/ip-address/

Parametri di query

  • orderingstring

    Which field to use when ordering the results.

  • searchstring
  • typestring

Risposte

  • 200application/json
    idintegerread-onlyObbligatorio
    ipstringObbligatorio
    locationLocationChoiceObbligatorio
    rdnsstringObbligatorio
    orderobjectnullableread-onlyObbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/network/ip-address/"
Risposta200
{
  "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.

post/tickets/ticket/

Corpo

Obbligatorio

Создание тикета пользователем

subjectstringlength 1…64Obbligatorio

Una breve descrizione dell'essenza della tua richiesta.

messagestringlength 1…49152Obbligatorio

Una descrizione dettagliata del tuo problema e altri dettagli della richiesta.

priorityintegerdefault: 1
valori
  • 0
  • 1
  • 2
  • 3
  • 4

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: 1nullable

ID 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-only

Risposte

  • 201application/json

    Создание тикета пользователем

    subjectstringmax length: 64Obbligatorio

    Una breve descrizione dell'essenza della tua richiesta.

    messagestringmax length: 49152Obbligatorio

    Una descrizione dettagliata del tuo problema e altri dettagli della richiesta.

    priorityintegerdefault: 1
    valori
    • 0
    • 1
    • 2
    • 3
    • 4

    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.

    orderstringnullable

    ID 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-onlyObbligatorio
    idstringread-onlyObbligatorio
    statusstringread-onlyObbligatorio
Fornex API Key
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/"
Risposta201
{
  "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

get/tickets/webhook_info/

Risposte

  • 200application/json
    urlstring (uri)max length: 512

    URL a cui verrà inviata la richiesta, lascia vuoto per disabilitare

    last_error_datestring (date-time)nullableread-onlyObbligatorio
    last_error_messagestringnullableread-onlyObbligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/tickets/webhook_info/"
Risposta200
{
  "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.

post/tickets/webhook_set/

Corpo

urlstring (uri)max length: 512

URL a cui verrà inviata la richiesta, lascia vuoto per disabilitare

Risposte

  • 201application/json
    urlstring (uri)max length: 512

    URL a cui verrà inviata la richiesta, lascia vuoto per disabilitare

    last_error_datestring (date-time)nullableread-onlyObbligatorio
    last_error_messagestringnullableread-onlyObbligatorio
Fornex API Key
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/"
Risposta201
{
  "last_error_date": null,
  "last_error_message": null,
  "url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
}

Schemi

#AccountBalance
object
balancenumber (double)Obbligatorio
currencystringObbligatorio
#AccountInfo
object
emailstring (email)max length: 254
namestringObbligatorio
#AccountInvoices
object
unpaid_invoices_countintegerObbligatorio
unpaid_invoices_amountnumber (double)Obbligatorio
currencystringObbligatorio
#AppTemplate
object
idintegerread-onlyObbligatorio

Identificativo dell'applicazione.

namestringmax length: 64Obbligatorio

Nome dell'applicazione.

osstringread-onlyObbligatorio
#BackupTariff
object
spaceintegerObbligatorio
pricenumber (double)Obbligatorio
unitsstringread-onlyObbligatoriodefault: GB
#BandwidthEnum
valori
  • 10
  • 15
  • 20
  • 25
  • 40
#BillingTypeEnum
string
valori
  • single
  • periodic
#BlankEnum
valori
#CancelOrder
object
statusstringread-onlyObbligatorio
valori
  • canceled
  • cancel_pending
messagestringread-onlyObbligatorio
#CancelOrderRequest
object
whenstringwrite-onlydefault: expired
valori
  • now
  • expired

Il parametro descrive quando l'ordine deve essere annullato: ora o al termine del periodo pagato.

save_backupbooleanwrite-onlydefault: true

Il parametro descrive se eseguire uno snapshot del VPS prima di rimuovere la macchina virtuale o meno.

#CancelOrderStatusEnum
string
valori
  • canceled
  • cancel_pending
#CpuArchEnum
string
valori
  • x86_64
  • arm
#DedicatedTariff
object
idintegerread-onlyObbligatorio
namestringmax length: 128Obbligatorio

Il nome del piano appare nelle fatture, quindi deve essere breve e scritto in caratteri latini — ad esempio Cloud NVMe 1.

cpu_modelstringread-onlyObbligatorio
cpu_countintegermin: 0max: 65535
ramstringObbligatorio
diskstringObbligatorio
bandwidthstringObbligatorio
pricenumber (double)Obbligatorio
locationsarray array[]Obbligatorio
#DiskTypeEnum
string
valori
  • hdd
  • nvme
  • ssd
  • sas
#DnsOrderNameservers
object
nssstringObbligatorio

lista di NS, separati da virgola

#DnsOrderNameserversRequest
object
nssstringmin length: 1Obbligatorio

lista di NS, separati da virgola

#Domain
object
namestringmax length: 128Obbligatorio
createdstring (date-time)read-onlyObbligatorio
updatedstring (date-time)read-onlyObbligatorio
tagsarray string[]read-onlyObbligatorio
entry_setarray object[]Entry[]read-onlyObbligatorio
#DomainRequest
object
namestringlength 1…128Obbligatorio
ipstring (ipv4)min length: 1write-onlyObbligatorio
#DomainTags
object
tagsarray string[]Obbligatorio
#DomainTagsRequest
object
tagsarray string[]Obbligatorio
#DSConfiguration
object
cpu_countintegermin: 0max: 65535
cpustringObbligatorio
motherboardstringObbligatorio
chassisstringObbligatorio
raid_controllerstringObbligatorio
network_adapterstringObbligatorio
bandwidthnullable
Uno di
memoryinteger (int64)min: 0max: 4294967295Obbligatorio
disksstringread-onlyObbligatorio
#DSOrder
object
idstringread-onlyObbligatorio
namestringmax length: 64
tariffstringread-onlyObbligatorio
tariff_pricenumber (double)nullableread-onlyObbligatorio
typestringread-onlyObbligatorio
hostnamestringnullableread-onlyObbligatorio
ipaddress_setarray string[]nullableread-onlyObbligatorio
statusstringread-onlyObbligatorio
valori
  • unpaid
  • pending
  • active
  • expired
  • disabled
  • canceled
  • blocked
  • noprolong
cost_monthnumber (double)read-onlyObbligatorio
expiration_datestring (date-time)read-onlyObbligatorio
tagsarray string[]Obbligatorio
cancel_markbooleanread-onlyObbligatorio

Un marcatore che indica che l'ordine verrà annullato.

projectobjectnullableread-onlyObbligatorio
configurationobjectread-onlyObbligatorio

Configurazione del server

#DSTraffic
object
dataarrayObbligatorio
orderstringObbligatorio
periodstringObbligatorio
#DSTrafficUsed
object
orderstringObbligatorio
limitintegerObbligatorio
range_startstring (date)Obbligatorio
range_endstring (date)Obbligatorio
usedintegerObbligatorio
used_ratenumber (double)Obbligatorio
#Entry
object
idintegerread-onlyObbligatorio
hoststringmax length: 255default:

Hostname record: '@, *, subdomain'

typestringObbligatorio
valori
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA

Tipo di record

priointeger (int64)min: 0max: 4294967295nullable

Priorità, usata solo per SRV e MX

valuestringmax length: 1024Obbligatorio

Valore del record in base al tipo, ad esempio IP per i record A

ttlnullable

TTL del record (facoltativo, default: 3600 sec.)

Uno di
#EntryRequest
object
hoststringmax length: 255default:

Hostname record: '@, *, subdomain'

typestringObbligatorio
valori
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA

Tipo di record

priointeger (int64)min: 0max: 4294967295nullable

Priorità, usata solo per SRV e MX

valuestringlength 1…1024Obbligatorio

Valore del record in base al tipo, ad esempio IP per i record A

ttlnullable

TTL del record (facoltativo, default: 3600 sec.)

Uno di
#EntryTypeEnum
string
valori
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA
#JobStateEnum
string
valori
  • ready
  • error
  • done
#LocationChoice
object
valuestringObbligatorio
labelstringObbligatorio
iconstringObbligatorio
#NetworkOrder
object
idintegerObbligatorio
namestringObbligatorio
typestringObbligatorio
linkstringread-onlyObbligatorio
unique_numberstringObbligatorio
#NullEnum
valori
  • null
#Order
object
idstringread-onlyObbligatorio
namestringmax length: 64
tariffstringread-onlyObbligatorio
tariff_pricenumber (double)nullableread-onlyObbligatorio
typestringread-onlyObbligatorio
hostnamestringnullableread-onlyObbligatorio
ipaddress_setarray string[]nullableread-onlyObbligatorio
statusstringread-onlyObbligatorio
valori
  • unpaid
  • pending
  • active
  • expired
  • disabled
  • canceled
  • blocked
  • noprolong
cost_monthnumber (double)read-onlyObbligatorio
expiration_datestring (date-time)read-onlyObbligatorio
tagsarray string[]Obbligatorio
cancel_markbooleanread-onlyObbligatorio

Un marcatore che indica che l'ordine verrà annullato.

projectobjectnullableread-onlyObbligatorio
#OrderCredentials
object
usernamestring
passwordstring
commentstring
#OrderCredentialsRequest
object
usernamestringmin length: 1
passwordstringmin length: 1
commentstringmin length: 1
#OrderServiceCreate
object
serviceintegerObbligatorio

L'ID del servizio aggiuntivo.

countintegermin: 1default: 1

La quantità di questo servizio aggiuntivo.

#OrderServiceCreateRequest
object
serviceintegerObbligatorio

L'ID del servizio aggiuntivo.

countintegermin: 1default: 1

La quantità di questo servizio aggiuntivo.

#OrderSSHKeyAddRequest
object
key_pkintegerwrite-onlyObbligatorio
#OrderSSHKeyRemoveRequest
object
key_pkintegerwrite-onlyObbligatorio
#OrderStatus
string
valori
  • unpaid
  • pending
  • active
  • expired
  • disabled
  • canceled
  • blocked
  • noprolong
#OrderUpdate
object
namestringmax length: 64default:

Nome personalizzato per l'ordine.

tagsarray string[]Obbligatorio

Tag per l'ordine come elenco.

projectintegernullableObbligatorio

Progetto dell'ordine.

#PaginatedAppTemplateList
object
countintegerObbligatorioexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]AppTemplate[]Obbligatorio
#PaginatedDomainList
object
countintegerObbligatorioexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]Domain[]Obbligatorio
#PaginatedDSOrderList
object
countintegerObbligatorioexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]DSOrder[]Obbligatorio
#PaginatedOrderList
object
countintegerObbligatorioexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]Order[]Obbligatorio
#PaginatedPrivateNetworkList
object
countintegerObbligatorioexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]PrivateNetwork[]Obbligatorio
#PaginatedPrivateNetworkLocationList
object
countintegerObbligatorioexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]PrivateNetworkLocation[]Obbligatorio
#PaginatedProjectList
object
countintegerObbligatorioexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]Project[]Obbligatorio
#PaginatedS3OrderList
object
countintegerObbligatorioexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]S3Order[]Obbligatorio
#PaginatedSnapshotList
object
countintegerObbligatorioexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]Snapshot[]Obbligatorio
#PaginatedTemplateList
object
countintegerObbligatorioexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]Template[]Obbligatorio
#PaginatedVPSOrderList
object
countintegerObbligatorioexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]VPSOrder[]Obbligatorio
#PanelEnum
valori
  • vesta
  • hestia
  • aapanel
  • brainycp
  • cloudpanel
  • cyberpanel
  • beadmin
  • openpanel
#PatchedOrderUpdateRequest
object
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.

projectintegernullable

Progetto dell'ordine. Inserite una stringa vuota se desiderate rimuovere il progetto.

#PatchedProjectRequest
object
namestringlength 1…40
commentstringmax length: 256
#PatchedVpsUpdateRequest
object
private_network_enabledboolean

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.

#PlacementPolicyEnum
string
valori
  • STRICT
  • OPTIONAL
#PriorityEnum
integer
valori
  • 0
  • 1
  • 2
  • 3
  • 4
#PrivateNetwork
object
idintegerread-onlyObbligatorio
#PrivateNetworkLocation
object
idintegerread-onlyObbligatorio
locationLocationChoiceObbligatorio
#Project
object
idintegerread-onlyObbligatorio
namestringmax length: 40Obbligatorio
commentstringmax length: 256
logostring (uri)read-onlyObbligatorio
#ProjectAddOrdersRequest
object
ordersarray string[]write-onlyObbligatorio
#ProjectLogoRequest
object
logostring (binary)

Percorso del file.

#ProjectRemoveOrdersRequest
object
ordersarray string[]write-onlyObbligatorio
#ProjectRequest
object
namestringlength 1…40Obbligatorio
commentstringmax length: 256
#PublicChart
object
seriesarray object[]PublicChartSeries[]Obbligatorio
subtitlestringObbligatorio
#PublicChartSeries
object
namestringObbligatorio
dataarrayObbligatorio
typestring
colorstring
#PublicNetworkAddress
object
idintegerread-onlyObbligatorio
ipstringObbligatorio
locationLocationChoiceObbligatorio
rdnsstringObbligatorio
orderobjectnullableread-onlyObbligatorio
#PublicReinstallRequest
object

Public API version: exposes template instead of ostemplate.

display_namestringread-onlyObbligatorio
statusstringread-onlyObbligatorio
datestring (date-time)read-onlyObbligatorio
#PublicReinstallRequestRequest
object

Public API version: exposes template instead of ostemplate.

appintegernullablewrite-only
templateintegerwrite-only
snapshotintegernullablewrite-only
#PublicTicket
object

Создание тикета пользователем

subjectstringmax length: 64Obbligatorio

Una breve descrizione dell'essenza della tua richiesta.

messagestringmax length: 49152Obbligatorio

Una descrizione dettagliata del tuo problema e altri dettagli della richiesta.

priorityintegerdefault: 1
valori
  • 0
  • 1
  • 2
  • 3
  • 4

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.

orderstringnullable

ID 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-onlyObbligatorio
idstringread-onlyObbligatorio
statusstringread-onlyObbligatorio
#PublicTicketRequest
object

Создание тикета пользователем

subjectstringlength 1…64Obbligatorio

Una breve descrizione dell'essenza della tua richiesta.

messagestringlength 1…49152Obbligatorio

Una descrizione dettagliata del tuo problema e altri dettagli della richiesta.

priorityintegerdefault: 1
valori
  • 0
  • 1
  • 2
  • 3
  • 4

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: 1nullable

ID 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-only
#S3NotificationThreshold
object
space_warning_notify_gbintegermin: 0Obbligatorio
#S3NotificationThresholdRequest
object
space_warning_notify_gbintegermin: 0Obbligatorio
#S3Order
object
idstringread-onlyObbligatorio
namestringread-onlyObbligatorio
hostnamestringObbligatorio
access_keystringread-onlyObbligatorio
secret_keystringread-onlyObbligatorio
bucket_namestringread-onlyObbligatorio
space_usedintegerObbligatorio
cost_monthnumber (double)read-onlyObbligatorio
expiration_datestring (date-time)read-onlyObbligatorio
tagsarray string[]Obbligatorio
cancel_markbooleanread-onlyObbligatorio

Un marcatore che indica che l'ordine verrà annullato.

projectobjectnullableread-onlyObbligatorio
#ServerBandwidthTariff
object
min_valuestring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$Obbligatorio
max_valuestring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$Obbligatorio
stepstring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$Obbligatorio

Differenza tra due valori di larghezza di banda consecutivi

pricestring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$Obbligatorio
valori
  • gbps
  • mbps
#Service
object
idintegerread-onlyObbligatorio

ID del servizio.

namestringmax length: 128Obbligatorio

Nome del servizio.

descriptionstringmax length: 255

Descrizione del servizio.

pricestring (decimal)^-?\d{0,8}(?:\.\d{0,2})?$Obbligatorio

Prezzo del servizio.

billing_typestringObbligatorio
valori
  • single
  • periodic

Costo una tantum o mensile.

#Snapshot
object
idintegerread-onlyObbligatorio

ID dello snapshot.

namestringmax length: 64Obbligatorio

Nome dello snapshot.

size_gbnumber (double)read-onlyObbligatorio

Dimensione dello snapshot in GB.

created_atstring (date-time)Obbligatorio
#SshKey
object
idintegerread-onlyObbligatorio
userstringread-onlyObbligatorio
keystringmax length: 16384Obbligatorio

Chiave pubblica in testo semplice.

titlestringmax length: 128Obbligatorio
datestring (date-time)read-onlyObbligatorio
defaultboolean
#SshKeyRequest
object
keystringlength 1…16384Obbligatorio

Chiave pubblica in testo semplice.

titlestringlength 1…128Obbligatorio
defaultboolean
#Template
object
idintegerread-onlyObbligatorio

Identificativo del template.

namestringmax length: 64Obbligatorio

Nome del template.

osstringread-onlyObbligatorio
panelnullable

Pannello di controllo utilizzato nel template, può essere vuoto.

Uno di
archstring
valori
  • x86_64
  • arm

Tipo di architettura CPU richiesto per questo modello.

min_storage_spaceinteger (int64)min: 0max: 4294967295nullable

Spazio di archiviazione minimo richiesto per questo template.

min_ram_volumeintegermin: 0max: 65535nullable

Volume di RAM minimo richiesto per questo modello.

min_cpu_coresinteger (int64)min: 0max: 4294967295nullable

Numero minimo di core CPU richiesto per questo modello.

#TermEnum
integer
valori
  • 1
  • 3
  • 6
  • 12
#TicketsWebhook
object
urlstring (uri)max length: 512

URL a cui verrà inviata la richiesta, lascia vuoto per disabilitare

last_error_datestring (date-time)nullableread-onlyObbligatorio
last_error_messagestringnullableread-onlyObbligatorio
#TicketsWebhookRequest
object
urlstring (uri)max length: 512

URL a cui verrà inviata la richiesta, lascia vuoto per disabilitare

#TtlEnum
valori
  • 120
  • 300
  • 600
  • 900
  • 1800
#UnitEnum
string
valori
  • gbps
  • mbps
#VHTariff
object
idintegerread-onlyObbligatorio
namestringmax length: 128Obbligatorio

Il nome del piano appare nelle fatture, quindi deve essere breve e scritto in caratteri latini — ad esempio Cloud NVMe 1.

sitesintegermin: 0max: 65535nullable
pricenumber (double)Obbligatorio
cpu_coresintegermin: 0max: 65535nullable
hdd_spaceinteger (int64)min: 0max: 4294967295nullable

GB

available_locationsarray string[]read-onlyObbligatorio
#VpnConfig
object
access_urlstring (uri)Obbligatorio
#VpnTariff
object
idintegerread-onlyObbligatorio
pricenumber (double)Obbligatorio
valori
  • shared
  • dedicated
  • multi-hop
available_locationsarray string[]read-onlyObbligatorio
#VpnTariffTypeEnum
string
valori
  • shared
  • dedicated
  • multi-hop
#VpsConfiguration
object
cpu_countintegermin: 1max: 16

Il numero di core.

ram_sizeintegermin: 2max: 32

Il volume di RAM in gigabyte (GB).

disk_classintegernullable

Classe del disco.

disk_sizeintegermin: 20max: 300

Il volume di archiviazione in gigabyte (GB).

cpu_archstring
valori
  • x86_64
  • arm

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).

#VpsConfigurationRequest
object
cpu_countintegermin: 1max: 16

Il numero di core.

ram_sizeintegermin: 2max: 32

Il volume di RAM in gigabyte (GB).

disk_classintegernullable

Classe del disco.

disk_sizeintegermin: 20max: 300

Il volume di archiviazione in gigabyte (GB).

cpu_archstring
valori
  • x86_64
  • arm

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).

#VpsDiskClass
object
idintegerread-onlyObbligatorio
namestringmax length: 64Obbligatorio
limit_total_mbytes_secintegermin: 0max: 65535Obbligatorio

Мb/sec

limit_read_iops_secintegermin: 0max: 65535Obbligatorio

Op/sec

limit_write_iops_secintegermin: 0max: 65535Obbligatorio

Op/sec

price_per_gbstring (decimal)^-?\d{0,2}(?:\.\d{0,4})?$Obbligatorio

Costo per 1 GB

disk_typeDiskTypeEnum
valori
  • hdd
  • nvme
  • ssd
  • sas
disk_type_displaystringObbligatorio
#VpsLocation
object
valuestringObbligatorio
labelstringObbligatorio
location_os_typesarray string[]Obbligatorio
bandwidth_tariffobjectnullable
disabled_by_slotsbooleandefault: true
disabled_by_cpu_freqbooleandefault: true
disabled_by_osbooleandefault: false
disabled_by_cpu_typebooleandefault: false
available_frequenciesobjectObbligatorio
#VpsLogEntry
object
pkintegerread-onlyObbligatorio
actionstringread-onlyObbligatorio
notestringread-onlyObbligatorio
userstringread-onlyObbligatorio
timestring (date-time)read-onlyObbligatorio
completedbooleanread-onlyObbligatorio
job_statestringread-onlyObbligatorio
valori
  • ready
  • error
  • done
job_actionstringread-onlyObbligatorio
#VPSOrder
object
idstringread-onlyObbligatorio
namestringmax length: 64
tariffstringread-onlyObbligatorio
tariff_pricenumber (double)nullableread-onlyObbligatorio
typestringread-onlyObbligatorio
hostnamestringnullableread-onlyObbligatorio
ipaddress_setarray string[]nullableread-onlyObbligatorio
statusstringread-onlyObbligatorio
valori
  • unpaid
  • pending
  • active
  • expired
  • disabled
  • canceled
  • blocked
  • noprolong
cost_monthnumber (double)read-onlyObbligatorio
expiration_datestring (date-time)read-onlyObbligatorio
tagsarray string[]Obbligatorio
cancel_markbooleanread-onlyObbligatorio

Un marcatore che indica che l'ordine verrà annullato.

projectobjectnullableread-onlyObbligatorio
configurationobjectread-onlyObbligatorio

Configurazione del server

#VpsOrderCreate
object
order_idstringread-onlyObbligatorio
#VpsOrderCreateRequest
object
tariffintegernullablewrite-only

L'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-only

I 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-only

L'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-only

L'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-only

L'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-onlyObbligatorio

Il codice paese a due lettere della posizione dell'ordine. Ottieni le opzioni disponibili per location da Posizioni VPS.

termintegerwrite-onlydefault: 1
valori
  • 1
  • 3
  • 6
  • 12

Numero di mesi per i quali l'ordine viene rinnovato una volta creato (ad es. 3).

servicesarray object[]OrderServiceCreateRequest[]write-only

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-only

ID 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-only

ID del progetto. Le opzioni disponibili per project possono essere ottenute dall'elenco dei progetti.

disk_classintegernullablewrite-only

L'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-only

Limite di larghezza di banda da impostare per l'ordine VPS. Il prezzo per unità è definito dal valore bandwidth_tariff

webhookobjectwrite-only

Configurazione 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: OPTIONAL
valori
  • STRICT
  • OPTIONAL
placement_groupintegernullablewrite-only
private_networkintegernullablewrite-only
tagsarray string[]write-only

Tag per il VPS. Per impostazione predefinita, nessun tag è impostato per il server.

#VpsOrderCreateWebhook
object
urlstring (uri)max length: 512Obbligatorio

L'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: 64Obbligatorio

Frase 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()
#VpsOrderCreateWebhookRequest
object
urlstring (uri)length 1…512Obbligatorio

L'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…64Obbligatorio

Frase 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()
#VpsResetPassword
object
passwdstringread-onlyObbligatorio

La Sua nuova password.

resp_idintegerread-onlyObbligatorio

ID dell'operazione per controllarne lo stato, per ulteriori dettagli vedi vps_log_details

#VpsStatus
object
statusstringObbligatorio

on | off | unknown

#VpsTariff
object
idintegerread-onlyObbligatorio
namestringmax length: 128Obbligatorio

Il nome del piano appare nelle fatture, quindi deve essere breve e scritto in caratteri latini — ad esempio Cloud NVMe 1.

cpu_countintegerObbligatorio
ramstringObbligatorio
diskstringObbligatorio
bandwidthstringObbligatorio
pricenumber (double)Obbligatorio
disk_classVpsDiskClassObbligatorio
#VpsUpdate
object
private_network_enabledbooleanObbligatorio

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.

#WhenEnum
string
valori
  • now
  • expired