Fornex Public API
Autenticación
El acceso a la API requiere una clave API. Envíala en la cabecera HTTP de cada solicitud.
Authorization: Api-Key <key>Authorization: Api-Key <key>
Account
Saldo de la cuenta
Devuelve el saldo de la cuenta actual
/account/balanceRespuestas
200application/jsonbalancenumber (double)ObligatoriocurrencystringObligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/account/balance"200{
"balance": 10,
"currency": "EUR"
}Información
/account/infoRespuestas
200application/jsonemailstring (email)max length: 254namestringObligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/account/info"200{
"email": "example@fornex.com",
"name": "Example Account"
}Facturas
Devuelve el número y el importe total de las facturas no pagadas.
/account/invoicesRespuestas
200application/jsonunpaid_invoices_countintegerObligatoriounpaid_invoices_amountnumber (double)ObligatoriocurrencystringObligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/account/invoices"200{
"unpaid_invoices_count": 1,
"unpaid_invoices_amount": 100,
"currency": "EUR"
}Plans
Copias de seguridad
/plans/backupsRespuestas
200application/jsonarray object[]BackupTariff[]spaceintegerObligatoriopricenumber (double)Obligatoriounitsstringread-onlyObligatoriodefault: GB
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/plans/backups"200[
{
"price": 3,
"space": 100,
"units": "GB"
}
]Servidores dedicados
/plans/dedicatedRespuestas
200application/jsonarray object[]DedicatedTariff[]idintegerread-onlyObligatorionamestringmax length: 128ObligatorioEl nombre del plan aparece en las facturas, por lo que debe ser corto y estar escrito en caracteres latinos, por ejemplo Cloud NVMe 1.
cpu_modelstringread-onlyObligatoriocpu_countintegermin: 0max: 65535ramstringObligatoriodiskstringObligatoriobandwidthstringObligatoriopricenumber (double)Obligatoriolocationsarray array[]Obligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/plans/dedicated"200[
{
"id": 101,
"name": "DS XeonSAS",
"price": 198,
"bandwidth": "1 Gbit/s",
"cpu_model": "Intel Xeon E3-1270 (4×3.4Ghz)",
"cpu_count": 1,
"disk": "4 × 300 GB SAS 15k",
"ram": "16 GB",
"locations": [
[
"DE",
"Германия"
]
]
}
]Alojamiento web
/plans/hostingRespuestas
200application/jsonarray object[]VHTariff[]idintegerread-onlyObligatorionamestringmax length: 128ObligatorioEl nombre del plan aparece en las facturas, por lo que debe ser corto y estar escrito en caracteres latinos, por ejemplo Cloud NVMe 1.
sitesintegermin: 0max: 65535nullablepricenumber (double)Obligatoriocpu_coresintegermin: 0max: 65535nullablehdd_spaceinteger (int64)min: 0max: 4294967295nullableGB
available_locationsarray string[]read-onlyObligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/plans/hosting"200[
{
"id": 33,
"name": "VH-SSD-2",
"price": 1,
"sites": 2,
"cpu_cores": 1,
"hdd_space": 1,
"available_locations": [
"DE",
"RU"
]
}
]VPN
/plans/vpnRespuestas
200application/jsonarray object[]VpnTariff[]idintegerread-onlyObligatoriopricenumber (double)Obligatoriovaloresshareddedicatedmulti-hop
available_locationsarray string[]read-onlyObligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/plans/vpn"200[
{
"id": 1,
"type": "dedicated",
"price": 10,
"available_locations": [
"DE",
"NL",
"US",
"RU"
]
}
]VPS
/plans/vpsRespuestas
200application/jsonarray object[]VpsTariff[]idintegerread-onlyObligatorionamestringmax length: 128ObligatorioEl nombre del plan aparece en las facturas, por lo que debe ser corto y estar escrito en caracteres latinos, por ejemplo Cloud NVMe 1.
cpu_countintegerObligatorioramstringObligatoriodiskstringObligatoriobandwidthstringObligatoriopricenumber (double)Obligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/plans/vps"200[
{
"id": 433,
"name": "SSD Cloud 1GB",
"cpu_count": 1,
"ram": "1 GB",
"bandwidth": "100 Mbps",
"disk": "10 GB",
"price": 5,
"disk_class": null
}
]Projects
Lista de proyectos
/project/Parámetros de consulta
pageintegerNúmero de página dentro del conjunto de resultados paginados.
default: 1page_sizeintegerNúmero de resultados a devolver por página.
default: 10
Respuestas
200application/jsoncountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/project/"200{
"type": "object",
"required": [
"count",
"results"
],
"properties": {
"count": {
"type": "integer",
"example": 123
},
"next": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=4"
},
"previous": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=2"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true
},
"name": {
"type": "string",
"maxLength": 40
},
"comment": {
"type": "string",
"maxLength": 256
},
"logo": {
"type": "string",
"format": "uri",
"readOnly": true
}
},
"required": [
"id",
"logo",
"name"
]
}
}
}
}Crear proyecto
/project/Cuerpo
Obligatorionamestringlength 1…40Obligatoriocommentstringmax length: 256Respuestas
201application/jsonidintegerread-onlyObligatorionamestringmax length: 40Obligatoriocommentstringmax length: 256logostring (uri)read-onlyObligatorio
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"name":"string","comment":"string"}' \
"https://fornex.com/api/project/"201{
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true
},
"name": {
"type": "string",
"maxLength": 40
},
"comment": {
"type": "string",
"maxLength": 256
},
"logo": {
"type": "string",
"format": "uri",
"readOnly": true
}
},
"required": [
"id",
"logo",
"name"
]
}Detalles del proyecto
/project/{id}/Parámetros de ruta
idintegerObligatorioUn valor de entero único que identifica este project.
Respuestas
200application/jsonidintegerread-onlyObligatorionamestringmax length: 40Obligatoriocommentstringmax length: 256logostring (uri)read-onlyObligatorio
ID='1'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/project/$ID/"200{
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true
},
"name": {
"type": "string",
"maxLength": 40
},
"comment": {
"type": "string",
"maxLength": 256
},
"logo": {
"type": "string",
"format": "uri",
"readOnly": true
}
},
"required": [
"id",
"logo",
"name"
]
}Editar proyecto
/project/{id}/Parámetros de ruta
idintegerObligatorioUn valor de entero único que identifica este project.
Cuerpo
namestringlength 1…40commentstringmax length: 256Respuestas
200application/jsonidintegerread-onlyObligatorionamestringmax length: 40Obligatoriocommentstringmax length: 256logostring (uri)read-onlyObligatorio
ID='1'
curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"name":"string","comment":"string"}' \
"https://fornex.com/api/project/$ID/"200{
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true
},
"name": {
"type": "string",
"maxLength": 40
},
"comment": {
"type": "string",
"maxLength": 256
},
"logo": {
"type": "string",
"format": "uri",
"readOnly": true
}
},
"required": [
"id",
"logo",
"name"
]
}Eliminar proyecto
/project/{id}/Parámetros de ruta
idintegerObligatorioUn valor de entero único que identifica este project.
Respuestas
204No response body
ID='1'
curl -X DELETE \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/project/$ID/"Agregar pedido
Solicitud para agregar un pedido del Proyecto.
/project/{id}/add_orders/Parámetros de ruta
idintegerObligatorioUn valor de entero único que identifica este project.
Cuerpo
Obligatorioordersarray string[]write-onlyObligatorioRespuestas
200No response body
ID='1'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"orders":["string"]}' \
"https://fornex.com/api/project/$ID/add_orders/"Editar logo
Solicitud para editar el logotipo del Proyecto.
/project/{id}/edit_logo/Parámetros de ruta
idintegerObligatorioUn valor de entero único que identifica este project.
Cuerpo
multipart/form-datalogostring (binary)Ruta al archivo.
Respuestas
200application/jsonlogostring (uri)Ruta al archivo.
ID='1'
curl -X PUT \
-H "Content-Type: multipart/form-data" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
-F "logo=@\"path/to/file\"" \
"https://fornex.com/api/project/$ID/edit_logo/"200{
"type": "object",
"properties": {
"logo": {
"type": "string",
"format": "uri",
"description": "Ruta al archivo."
}
}
}Eliminar pedido
Solicitud para eliminar un pedido del Proyecto.
/project/{id}/remove_orders/Parámetros de ruta
idintegerObligatorioUn valor de entero único que identifica este project.
Cuerpo
Obligatorioordersarray string[]write-onlyObligatorioRespuestas
200No response body
ID='1'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"orders":["string"]}' \
"https://fornex.com/api/project/$ID/remove_orders/"Orders
Un pedido es una entidad interna de nuestro sistema, que se crea junto con un servicio y contiene una lista de sus propiedades (p. ej., costo, ubicación, etc.). Por ejemplo, un VPS es el servicio en sí (máquina virtual), y un pedido de VPS es una lista de sus propiedades asociadas. Por lo tanto, para crear un pedido, realice una solicitud de creación de servicio en la sección API correspondiente, p. ej. Crear VPS. Y para trabajar posteriormente con cualquier pedido, utilice los métodos de esta sección.
Abajo se encuentran las solicitudes de API que le permiten trabajar con pedidos de cualquier tipo, en particular, para obtener los detalles del pedido, editarlo o cancelarlo.
Lista de pedidos
Listar todos los pedidos disponibles. La información sobre los parámetros de cada pedido también se incluirá en la respuesta.
/orders/Parámetros de consulta
cancel_markbooleanFiltrar los pedidos que serán cancelados.
orderingstringCampo utilizado para ordenar los resultados.
default: idexpiredidpageintegerNúmero de página dentro del conjunto de resultados paginados.
default: 1page_sizeintegerNúmero de resultados a devolver por página.
default: 10
Respuestas
200application/jsoncountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/"200{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": "34-1234",
"name": "DB Host",
"tariff": "VPS Master",
"tariff_price": 140,
"type": "vps",
"hostname": "srv-123.fornex.org",
"ipaddress_set": [
"123.123.123.123"
],
"status": "active",
"cost_month": 148,
"expiration_date": "2015-12-18T17:21:46",
"tags": [
"Database"
]
}
]
}Detalles del pedido
Obtener todos los datos disponibles sobre el pedido por su ID.
/orders/{order_id}/Parámetros de ruta
order_idstringObligatorioID del pedido en el formato NN-NNNNN. El prefijo puede variar según el tipo de pedido.
Respuestas
200application/jsonidstringread-onlyObligatorionamestringmax length: 64tariffstringread-onlyObligatoriotariff_pricenumber (double)nullableread-onlyObligatoriotypestringread-onlyObligatoriohostnamestringnullableread-onlyObligatorioipaddress_setarray string[]nullableread-onlyObligatoriostatusstringread-onlyObligatoriovaloresunpaidpendingactiveexpireddisabledcanceledblockednoprolong
cost_monthnumber (double)read-onlyObligatorioexpiration_datestring (date-time)read-onlyObligatoriotagsarray string[]Obligatoriocancel_markbooleanread-onlyObligatorioMarcador que indica que el pedido será cancelado.
projectobjectnullableread-onlyObligatorio
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/$ORDER_ID/"200{
"id": "34-1234",
"name": "DB Host",
"tariff": "VPS Master",
"tariff_price": 140,
"type": "vps",
"hostname": "srv-123.fornex.org",
"ipaddress_set": [
"123.123.123.123"
],
"status": "active",
"cost_month": 148,
"expiration_date": "2015-12-18T17:21:46",
"tags": [
"Database"
]
}Editar pedido
Cambiar algunos parámetros de un pedido específico (búsqueda por ID) que estén disponibles para editar.
/orders/{order_id}/Parámetros de ruta
order_idstringObligatorioID del pedido en el formato NN-NNNNN. El prefijo puede variar según el tipo de pedido.
Cuerpo
namestringlength 1…64default: Nombre personalizado para el pedido. Introduzca una cadena vacía si desea eliminar el nombre.
tagsarray string[]Etiquetas para el pedido como lista. Las nuevas etiquetas reemplazarán completamente las antiguas si las hay. Introduzca una lista vacía si desea eliminar todas las etiquetas.
projectintegernullableProyecto del pedido. Introduzca una cadena vacía si desea eliminar el proyecto.
Respuestas
200application/jsonnamestringmax length: 64default:Nombre personalizado para el pedido.
tagsarray string[]ObligatorioEtiquetas para el pedido como lista.
projectintegernullableObligatorioProyecto del pedido.
ORDER_ID='34-1234'
curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"name": "DB Host"}' \
"https://fornex.com/api/orders/$ORDER_ID/"200{
"name": "DB Host",
"tags": [
"Database"
],
"project": 1
}Cancelar pedido
Solicitar la cancelación de un pedido y la eliminación del servicio relacionado.
Dependiendo del parámetro when, son posibles dos opciones:
expired- el pedido recibirá una marca de cancelación y será cancelado una vez que expire el período de pago. En otras palabras, bloquea la renovación automática. Este es el enfoque predeterminado. Puede eliminar la marca si cambia de opinión.now- la solicitud de cancelación se pasará inmediatamente al procesamiento y el pedido será cancelado lo antes posible. La cancelación instantánea de pedidos aún no se admite.
Si el pedido aún no ha sido pagado, será cancelado inmediatamente independientemente del parámetro when seleccionado.
/orders/{order_id}/cancel/Parámetros de ruta
order_idstringObligatorioID del pedido en el formato NN-NNNNN. El prefijo puede variar según el tipo de pedido.
Cuerpo
whenstringwrite-onlydefault: expirednowexpired
El parámetro describe cuándo debe cancelarse el pedido: ahora o una vez que expire el período de pago.
save_backupbooleanwrite-onlydefault: trueEl parámetro describe si se debe tomar una instantánea del VPS antes de eliminar la máquina virtual o no.
Respuestas
200application/jsonstatusstringread-onlyObligatoriovalorescanceledcancel_pending
messagestringread-onlyObligatorio
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"when": "expired", "save_backup": true}' \
"https://fornex.com/api/orders/$ORDER_ID/cancel/"200{
"status": "cancel_pending",
"message": "Order will be canceled after expiration."
}Eliminar marca de cancelación
Eliminar la marca de cancelación para un pedido específico (búsqueda por ID). Asimismo, la marca se elimina automáticamente si fuerza la renovación del pedido.
/orders/{order_id}/cancel/Parámetros de ruta
order_idstringObligatorioID del pedido en el formato NN-NNNNN. El prefijo puede variar según el tipo de pedido.
Respuestas
204No response body
ORDER_ID='34-1234'
curl -X DELETE \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/$ORDER_ID/cancel/"VPS: Orders
VPS es un servidor privado virtual, también conocido como servidor dedicado virtual. Esta sección cubre los puntos finales principales y auxiliares de la API utilizados para trabajar con VPS en Fornex.
Lista de pedidos de VPS
Listar todos los pedidos de VPS disponibles. La información sobre los parámetros de cada pedido también se incluirá en la respuesta.
/orders/vps/Parámetros de consulta
cancel_markbooleanFiltrar los pedidos que serán cancelados.
orderingstringCampo utilizado para ordenar los resultados.
default: idexpiredidpageintegerNúmero de página dentro del conjunto de resultados paginados.
default: 1page_sizeintegerNúmero de resultados a devolver por página.
default: 10
Respuestas
200application/jsoncountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/"200{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": "34-1234",
"name": "DB Host",
"tariff": "VPS Master",
"tariff_price": 140,
"type": "vps",
"hostname": "srv-123.fornex.org",
"ipaddress_set": [
"123.123.123.123"
],
"status": "active",
"cost_month": 148,
"expiration_date": "2015-12-18T17:21:46",
"tags": [
"Database"
],
"configuration": {
"cpu_count": 1,
"ram_size": 2,
"disk_size": 10,
"cpu_arch": "x86_64",
"min_cpu_freq": 3
}
}
]
}Detalles del pedido de VPS
Obtener todos los datos disponibles sobre el pedido de VPS por su ID.
/orders/vps/{order_id}/Parámetros de ruta
order_idstringObligatorioID del pedido en el formato NN-NNNNN.
Respuestas
200application/jsonidstringread-onlyObligatorionamestringmax length: 64tariffstringread-onlyObligatoriotariff_pricenumber (double)nullableread-onlyObligatoriotypestringread-onlyObligatoriohostnamestringnullableread-onlyObligatorioipaddress_setarray string[]nullableread-onlyObligatoriostatusstringread-onlyObligatoriovaloresunpaidpendingactiveexpireddisabledcanceledblockednoprolong
cost_monthnumber (double)read-onlyObligatorioexpiration_datestring (date-time)read-onlyObligatoriotagsarray string[]Obligatoriocancel_markbooleanread-onlyObligatorioMarcador que indica que el pedido será cancelado.
projectobjectnullableread-onlyObligatorioconfigurationobjectread-onlyObligatorioConfiguración del servidor
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/$ORDER_ID/"200{
"id": "34-1234",
"name": "DB Host",
"tariff": "VPS Master",
"tariff_price": 140,
"type": "vps",
"hostname": "srv-123.fornex.org",
"ipaddress_set": [
"123.123.123.123"
],
"status": "active",
"cost_month": 148,
"expiration_date": "2015-12-18T17:21:46",
"tags": [
"Database"
],
"configuration": {
"cpu_count": 1,
"ram_size": 2,
"disk_size": 10,
"cpu_arch": "x86_64",
"min_cpu_freq": 3
}
}VPS: Create
VPS es un servidor privado virtual, también conocido como servidor dedicado virtual. Esta sección cubre los puntos finales principales y auxiliares de la API utilizados para crear un nuevo VPS en Fornex.
Crear VPS
Esta solicitud no está disponible por defecto, contacte con soporte técnico para obtener acceso.
Por ahora, la creación de un VPS a través de API requiere el pago del saldo de la cuenta. Si no tiene fondos suficientes, la solicitud devolverá un error y el pedido no será creado.
Para crear un VPS, debe considerar tres parámetros obligatorios: configuración de VPS (núcleos, RAM, almacenamiento), software preinstalado y ubicación:
- Configuración: elija
tariff(plan predefinido) oconfiguration(conjunto flexible de parámetros del configurador). Puede probar las configuraciones disponibles en la página de VPS. - Software: elija
template(para instalar un sistema operativo y opcionalmente, un panel de control de alojamiento) oapp(para instalar una aplicación) osnapshot(para restaurar el VPS desde su instantánea). - País: elija
locationde las opciones disponibles.
Para cancelar y eliminar un VPS a través de API, utilice el método de cancelación de pedidos universal.
/orders/vps/Cuerpo
Obligatoriotariffintegernullablewrite-onlyID del plan predefinido.
Obtenga las opciones disponibles para tariff en Planes VPS.
Para crear una configuración personalizada, utilice el parámetro configuration.
No utilice ambos parámetros al mismo tiempo.
configurationobjectnullablewrite-onlyLos parámetros de configuración personalizada como un objeto (abra la sección desplegable para más detalles). Utilice configurador VPS para obtener una combinación adecuada de parámetros de acuerdo con las restricciones dinámicas.
En lugar de una configuración personalizada, puede desear un plan predefinido, que generalmente es más barato.
Para hacer esto, utilice el parámetro tariff. No utilice ambos parámetros al mismo tiempo.
templateintegerwrite-onlyID de la plantilla para instalar un sistema operativo y, opcionalmente,
un panel de control de alojamiento. Obtenga las opciones disponibles para template en
Plantillas VPS.
En lugar del sistema operativo, puede desear instalar una aplicación (parámetro app) o
restaurar el VPS desde una instantánea (parámetro snapshot). Para hacer esto, utilice el parámetro correspondiente. Utilice solo un parámetro por pedido.
appintegerwrite-onlyID de la aplicación que desea instalar. Obtenga las opciones disponibles para app en
Aplicaciones VPS.
En lugar de una aplicación, puede desear instalar un sistema operativo (parámetro template) o
restaurar el VPS desde una instantánea (parámetro snapshot). Para hacer esto, utilice el parámetro correspondiente. Utilice solo un parámetro por pedido.
snapshotintegerwrite-onlyID de la instantánea desde la que desea restaurar el VPS.
Obtenga las opciones disponibles para snapshot en Instantáneas VPS.
Puede crear una instantánea desde cualquier VPS ya creado en su panel en la página del pedido y utilizarla para restaurar (como copia de seguridad) o crear copias del pedido (como plantilla).
En lugar de restaurar desde una instantánea, puede desear instalar un sistema operativo (parámetro template)
o una aplicación (parámetro app). Para hacer esto, utilice el parámetro correspondiente.
Utilice solo un parámetro por pedido.
locationstringmin length: 1write-onlyObligatorioCódigo de país de dos letras de la ubicación del pedido.
Obtenga las opciones disponibles para location en Ubicaciones VPS.
termintegerwrite-onlydefault: 113612
El número de meses durante los cuales se renueva el pedido una vez creado (por ejemplo, 3).
Servicios adicionales y su cantidad como una lista (abra la sección desplegable para más detalles).
Obtenga las opciones disponibles para services en Servicios adicionales VPS.
ssh_keysarray integer[]write-onlyIDs de las claves SSH como una lista que se agregan al servidor durante la instalación. Obtenga las opciones disponibles para ssh_keys en Claves SSH. Pase la lista de claves explícitamente. De forma predeterminada, se pasa una lista vacía, incluso si hay claves marcadas como "agregar por defecto" en su panel.
namestringlength 1…25write-onlydefault: Nombre personalizado para el VPS. Por defecto, el servidor se crea sin nombre.
projectintegernullablewrite-onlyID del proyecto. Las opciones disponibles para project se pueden obtener
en la lista de proyectos.
disk_classintegernullablewrite-onlyID de la clase de disco VPS.
Obtenga las opciones disponibles para tariff en Discos VPS.
Al utilizar una configuración personalizada, utilice el atributo dentro del parámetro configuration.
No utilice ambos parámetros al mismo tiempo.
bandwidthintegernullablewrite-onlyLímite de ancho de banda a establecer para el pedido VPS. El precio por unidad se define en el valor bandwidth_tariff
webhookobjectwrite-onlyConfiguración de webhook como un objeto (abra la sección desplegable para más detalles). Es necesario para recibir una solicitud POST con los detalles del pedido y las credenciales de acceso una vez que se crea el VPS
placement_policystringwrite-onlydefault: OPTIONALSTRICTOPTIONAL
placement_groupintegernullablewrite-onlyprivate_networkintegernullablewrite-onlytagsarray string[]write-onlyEtiquetas para el VPS. Por defecto, el servidor se crea sin etiquetas.
Respuestas
201application/jsonorder_idstringread-onlyObligatorio
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"tariff": 1, "template": 1, "location": "DE", "term": 3, "services": [{"service": 1, "count": 1}], "ssh_keys": [1, 3]}' \
"https://fornex.com/api/orders/vps/"201{
"order_id": "34-1"
}Plantillas de VPS
Listar todas las plantillas disponibles para crear un VPS. La información sobre los parámetros de VPS requeridos también se incluirá para cada plantilla.
/orders/vps/templates/Respuestas
200application/jsonarray object[]Template[]idintegerread-onlyObligatorioID de la plantilla.
namestringmax length: 64ObligatorioNombre de la plantilla.
osstringread-onlyObligatoriopanelnullablePanel de control utilizado en la plantilla, puede estar vacío.
Uno dearchstringvaloresx86_64arm
Tipo de arquitectura de CPU requerida para esta plantilla.
min_storage_spaceinteger (int64)min: 0max: 4294967295nullableEspacio de almacenamiento mínimo requerido para esta plantilla.
min_ram_volumeintegermin: 0max: 65535nullableVolumen mínimo de RAM requerido para esta plantilla.
min_cpu_coresinteger (int64)min: 0max: 4294967295nullableNúmero mínimo de núcleos de CPU requeridos para esta plantilla.
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/templates/"200[
{
"id": 49,
"name": "Ubuntu 20.04 & Hestia",
"os": "Ubuntu 20.04 LTS",
"panel": "hestia",
"min_storage_space": 5,
"min_ram_volume": 2,
"min_cpu_cores": 1,
"arch": "x86-64"
}
]Aplicaciones de VPS
Listar todas las combinaciones disponibles de "aplicación + sistema operativo" que podrían instalarse al crear un VPS.
/orders/vps/apps/Respuestas
200application/jsonarray object[]AppTemplate[]idintegerread-onlyObligatorioID de la aplicación.
namestringmax length: 64ObligatorioNombre de la aplicación.
osstringread-onlyObligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/apps/"200{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "ID de la aplicación."
},
"name": {
"type": "string",
"description": "Nombre de la aplicación.",
"maxLength": 64
},
"os": {
"type": "string",
"readOnly": true
}
},
"required": [
"id",
"name",
"os"
]
}
}Instantáneas de VPS
Listar todas las instantáneas disponibles en su cuenta que podrían usarse para crear un VPS.
/orders/vps/snapshots/Respuestas
200application/jsonarray object[]Snapshot[]idintegerread-onlyObligatorioID de la instantánea.
namestringmax length: 64ObligatorioNombre de la instantánea.
size_gbnumber (double)read-onlyObligatorioTamaño de la instantánea en GB.
created_atstring (date-time)Obligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/snapshots/"200{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "ID de la instantánea."
},
"name": {
"type": "string",
"description": "Nombre de la instantánea.",
"maxLength": 64
},
"size_gb": {
"type": "number",
"format": "double",
"readOnly": true,
"description": "Tamaño de la instantánea en GB."
},
"created_at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"created_at",
"id",
"name",
"size_gb"
]
}
}Ubicaciones de VPS
Listar todos los centros de datos donde están disponibles los servicios de VPS.
/orders/vps/locations/Respuestas
200application/jsonarray object[]VpsLocation[]valuestringObligatoriolabelstringObligatoriolocation_os_typesarray string[]Obligatoriobandwidth_tariffobjectnullabledisabled_by_slotsbooleandefault: truedisabled_by_cpu_freqbooleandefault: truedisabled_by_osbooleandefault: falsedisabled_by_cpu_typebooleandefault: falseavailable_frequenciesobjectObligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/locations/"200[
{
"value": "DE",
"label": "Germany",
"location_os_types": [
"linux",
"windows-trial"
],
"available_frequencies": {
"x86_64": [
"2.1",
"3.8"
],
"arm": [
"1"
]
}
}
]Unidades de VPS
Listar todas las opciones de disco disponibles para un VPS.
/orders/vps/disks/Respuestas
200application/jsonarray object[]VpsDiskClass[]idintegerread-onlyObligatorionamestringmax length: 64Obligatoriolimit_total_mbytes_secintegermin: 0max: 65535ObligatorioМb/sec
limit_read_iops_secintegermin: 0max: 65535ObligatorioOp/sec
limit_write_iops_secintegermin: 0max: 65535ObligatorioOp/sec
price_per_gbstring (decimal)^-?\d{0,2}(?:\.\d{0,4})?$ObligatorioCosto por 1 GB
disk_typeDiskTypeEnumvaloreshddnvmessdsas
disk_type_displaystringObligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/disks/"200[
{
"id": 1,
"name": "Optimal",
"limit_total_mbytes_sec": 250,
"limit_read_iops_sec": 9000,
"limit_write_iops_sec": 7000,
"price_per_gb": "0.0300",
"disk_type": "ssd",
"disk_type_display": "SSD"
}
]Servicios adicionales de VPS
Listar todos los servicios adicionales disponibles para un VPS.
/orders/vps/services/Respuestas
200application/jsonarray object[]Service[]idintegerread-onlyObligatorioID del servicio.
namestringmax length: 128ObligatorioNombre del servicio.
descriptionstringmax length: 255Descripción del servicio.
pricestring (decimal)^-?\d{0,8}(?:\.\d{0,2})?$ObligatorioPrecio del servicio.
billing_typestringObligatoriovaloressingleperiodic
Coste único o mensual.
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/vps/services/"200{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "ID del servicio."
},
"name": {
"type": "string",
"description": "Nombre del servicio.",
"maxLength": 128
},
"description": {
"type": "string",
"description": "Descripción del servicio.",
"maxLength": 255
},
"price": {
"type": "string",
"format": "decimal",
"pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
"description": "Precio del servicio."
},
"billing_type": {
"allOf": [
{
"enum": [
"single",
"periodic"
],
"type": "string"
}
],
"description": "Coste único o mensual."
}
},
"required": [
"billing_type",
"id",
"name",
"price"
]
}
}VPS: Reinstall
Reinstale el sistema operativo en su VPS manteniendo el pedido y la configuración existentes. Esta sección cubre los puntos finales de la API utilizados para recuperar objetivos de instalación disponibles (como plantillas de SO limpias, aplicaciones preconfiguradas o instantáneas existentes) e iniciar el proceso de reinstalación.
Plantillas para reinstalar VPS
Lista de todas las plantillas disponibles para reinstalar el VPS. También se incluirá información sobre los parámetros de VPS necesarios para cada plantilla.
/vps/{order_id}/reinstall/templates/Parámetros de ruta
order_idstringObligatorioID del pedido (incluyendo prefijo 34-...)
Parámetros de consulta
pageintegerNúmero de página dentro del conjunto de resultados paginados.
default: 1page_sizeintegerNúmero de resultados a devolver por página.
default: 10
Respuestas
200application/jsoncountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/reinstall/templates/"200{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": 49,
"name": "Ubuntu 20.04 & Hestia",
"os": "Ubuntu 20.04 LTS",
"panel": "hestia",
"min_storage_space": 5,
"min_ram_volume": 2,
"min_cpu_cores": 1,
"arch": "x86-64"
}
]
}Aplicaciones para reinstalar VPS
Lista de todas las combinaciones disponibles de "aplicación + sistema operativo" que pueden instalarse al reinstalar VPS.
/vps/{order_id}/reinstall/apps/Parámetros de ruta
order_idstringObligatorioID del pedido (incluyendo prefijo 34-...)
Parámetros de consulta
pageintegerNúmero de página dentro del conjunto de resultados paginados.
default: 1page_sizeintegerNúmero de resultados a devolver por página.
default: 10
Respuestas
200application/jsoncountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/reinstall/apps/"200{
"type": "object",
"required": [
"count",
"results"
],
"properties": {
"count": {
"type": "integer",
"example": 123
},
"next": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=4"
},
"previous": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=2"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "ID de la aplicación."
},
"name": {
"type": "string",
"description": "Nombre de la aplicación.",
"maxLength": 64
},
"os": {
"type": "string",
"readOnly": true
}
},
"required": [
"id",
"name",
"os"
]
}
}
}
}Snapshots para reinstalar VPS
Lista de todos los snapshots disponibles en su cuenta que podrían utilizarse para reinstalar el VPS.
/vps/{order_id}/reinstall/snapshots/Parámetros de ruta
order_idstringObligatorioID del pedido (incluyendo prefijo 34-...)
Parámetros de consulta
pageintegerNúmero de página dentro del conjunto de resultados paginados.
default: 1page_sizeintegerNúmero de resultados a devolver por página.
default: 10
Respuestas
200application/jsoncountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/reinstall/snapshots/"200{
"type": "object",
"required": [
"count",
"results"
],
"properties": {
"count": {
"type": "integer",
"example": 123
},
"next": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=4"
},
"previous": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=2"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "ID de la instantánea."
},
"name": {
"type": "string",
"description": "Nombre de la instantánea.",
"maxLength": 64
},
"size_gb": {
"type": "number",
"format": "double",
"readOnly": true,
"description": "Tamaño de la instantánea en GB."
},
"created_at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"created_at",
"id",
"name",
"size_gb"
]
}
}
}
}Reinstalar VPS
Inicia el proceso de reinstalación del VPS. Debe proporcionar un ID de plantilla de VPS o un ID de aplicación para una instalación limpia, o un ID de snapshot para restaurar el servidor a un estado anterior.
Advertencia: Esta acción es destructiva. Todos los datos actuales en el servidor se eliminarán permanentemente y se reemplazarán por la imagen seleccionada.
/vps/{order_id}/reinstall/reinstall/Parámetros de ruta
order_idstringObligatorioID del pedido (incluyendo prefijo 34-...)
Cuerpo
Public API version: exposes template instead of ostemplate.
appintegernullablewrite-onlytemplateintegerwrite-onlysnapshotintegernullablewrite-onlyRespuestas
200application/jsonPublic API version: exposes
templateinstead ofostemplate.display_namestringread-onlyObligatoriostatusstringread-onlyObligatoriodatestring (date-time)read-onlyObligatorio
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"template":0}' \
"https://fornex.com/api/vps/$ORDER_ID/reinstall/reinstall/"200{
"type": "object",
"description": "Public API version: exposes ``template`` instead of ``ostemplate``.",
"properties": {
"display_name": {
"type": "string",
"readOnly": true
},
"status": {
"type": "string",
"readOnly": true
},
"date": {
"type": "string",
"format": "date-time",
"readOnly": true
}
},
"required": [
"date",
"display_name",
"status"
]
}VPS: Controls
Un servidor privado virtual en Fornex admite solicitudes de control remoto. Esta sección cubre los puntos finales de la API utilizados para iniciar, detener o reiniciar su VPS en Fornex, así como otras opciones.
Estado de VPS
/vps/{order_id}/status/Parámetros de ruta
order_idstringObligatorioID del pedido (incluyendo prefijo 34-...)
Respuestas
200application/jsonstatusstringObligatorioon | off | unknown
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/status/"200{
"status": "on"
}Iniciar VPS
/vps/{order_id}/start/Parámetros de ruta
order_idstringObligatorioID del pedido (incluyendo prefijo 34-...)
Respuestas
200application/jsonpkintegerread-onlyObligatorioactionstringread-onlyObligatorionotestringread-onlyObligatoriouserstringread-onlyObligatoriotimestring (date-time)read-onlyObligatoriocompletedbooleanread-onlyObligatoriojob_statestringread-onlyObligatoriovaloresreadyerrordone
job_actionstringread-onlyObligatorio
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/start/"200{
"pk": 1,
"action": "Iniciar",
"note": "Iniciando servidor",
"user": "username@example.com",
"time": "2024-02-15T11:12:11+02:00",
"completed": false,
"job_state": "ready",
"job_action": "start"
}Detener VPS
/vps/{order_id}/stop/Parámetros de ruta
order_idstringObligatorioID del pedido (incluyendo prefijo 34-...)
Respuestas
200application/jsonpkintegerread-onlyObligatorioactionstringread-onlyObligatorionotestringread-onlyObligatoriouserstringread-onlyObligatoriotimestring (date-time)read-onlyObligatoriocompletedbooleanread-onlyObligatoriojob_statestringread-onlyObligatoriovaloresreadyerrordone
job_actionstringread-onlyObligatorio
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/stop/"200{
"pk": 1,
"action": "Iniciar",
"note": "Iniciando servidor",
"user": "username@example.com",
"time": "2024-02-15T11:12:11+02:00",
"completed": false,
"job_state": "ready",
"job_action": "start"
}Reiniciar VPS
/vps/{order_id}/restart/Parámetros de ruta
order_idstringObligatorioID del pedido (incluyendo prefijo 34-...)
Respuestas
200application/jsonpkintegerread-onlyObligatorioactionstringread-onlyObligatorionotestringread-onlyObligatoriouserstringread-onlyObligatoriotimestring (date-time)read-onlyObligatoriocompletedbooleanread-onlyObligatoriojob_statestringread-onlyObligatoriovaloresreadyerrordone
job_actionstringread-onlyObligatorio
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/restart/"200{
"pk": 1,
"action": "Iniciar",
"note": "Iniciando servidor",
"user": "username@example.com",
"time": "2024-02-15T11:12:11+02:00",
"completed": false,
"job_state": "ready",
"job_action": "start"
}Activar Modo de Rescate
/vps/{order_id}/rescue_mode/Parámetros de ruta
order_idstringObligatorioID del pedido (incluyendo prefijo 34-...)
Respuestas
200application/jsonpkintegerread-onlyObligatorioactionstringread-onlyObligatorionotestringread-onlyObligatoriouserstringread-onlyObligatoriotimestring (date-time)read-onlyObligatoriocompletedbooleanread-onlyObligatoriojob_statestringread-onlyObligatoriovaloresreadyerrordone
job_actionstringread-onlyObligatorio
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/rescue_mode/"200{
"pk": 1,
"action": "Iniciar",
"note": "Iniciando servidor",
"user": "username@example.com",
"time": "2024-02-15T11:12:11+02:00",
"completed": false,
"job_state": "ready",
"job_action": "start"
}Desactivar Modo de Rescate
/vps/{order_id}/stop_rescue_mode/Parámetros de ruta
order_idstringObligatorioID del pedido (incluyendo prefijo 34-...)
Respuestas
200application/jsonpkintegerread-onlyObligatorioactionstringread-onlyObligatorionotestringread-onlyObligatoriouserstringread-onlyObligatoriotimestring (date-time)read-onlyObligatoriocompletedbooleanread-onlyObligatoriojob_statestringread-onlyObligatoriovaloresreadyerrordone
job_actionstringread-onlyObligatorio
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/stop_rescue_mode/"200{
"pk": 1,
"action": "Iniciar",
"note": "Iniciando servidor",
"user": "username@example.com",
"time": "2024-02-15T11:12:11+02:00",
"completed": false,
"job_state": "ready",
"job_action": "start"
}Reinicio forzado de VPS
Puede realizar un reinicio forzado, también conocido como hard reboot, para restaurar el rendimiento del VPS.
Se enviará una señal de reinicio a la máquina virtual, que la reiniciará sin preparación previa para el procedimiento de apagado.
Tenga en cuenta que la mayoría de sistemas de archivos que utilizan escritura diferida pueden quedar en estado «no limpio» después de un reinicio forzado. Después de eso, generalmente se ejecuta una verificación automática del sistema de archivos, tras la cual la máquina virtual podrá funcionar normalmente, pero algunos datos aún podrían perderse.
/vps/{order_id}/hard_reset/Parámetros de ruta
order_idstringObligatorioID del pedido (incluyendo prefijo 34-...)
Respuestas
200application/jsonpkintegerread-onlyObligatorioactionstringread-onlyObligatorionotestringread-onlyObligatoriouserstringread-onlyObligatoriotimestring (date-time)read-onlyObligatoriocompletedbooleanread-onlyObligatoriojob_statestringread-onlyObligatoriovaloresreadyerrordone
job_actionstringread-onlyObligatorio
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/hard_reset/"200{
"pk": 1,
"action": "Iniciar",
"note": "Iniciando servidor",
"user": "username@example.com",
"time": "2024-02-15T11:12:11+02:00",
"completed": false,
"job_state": "ready",
"job_action": "start"
}Restablecer contraseña de root
/vps/{order_id}/passwd_reset/Parámetros de ruta
order_idstringObligatorioID del pedido (incluyendo prefijo 34-...)
Respuestas
200application/jsonpasswdstringread-onlyObligatorioSu nueva contraseña.
resp_idintegerread-onlyObligatorioID de la operación para verificar su estado, para más detalles ver. vps_log_details
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/passwd_reset/"200{
"type": "object",
"properties": {
"passwd": {
"type": "string",
"readOnly": true,
"description": "Su nueva contraseña."
},
"resp_id": {
"type": "integer",
"readOnly": true,
"description": "ID de la operación para verificar su estado, para más detalles ver. [vps_log_details](#operation/vps_log_details_retrieve)"
}
},
"required": [
"passwd",
"resp_id"
]
}Estado de la solicitud
/vps/{order_id}/log_details/{log_id}/Parámetros de ruta
log_idintegerObligatorioID de registro
order_idstringObligatorioID del pedido (incluyendo prefijo 34-...)
Respuestas
200application/jsonpkintegerread-onlyObligatorioactionstringread-onlyObligatorionotestringread-onlyObligatoriouserstringread-onlyObligatoriotimestring (date-time)read-onlyObligatoriocompletedbooleanread-onlyObligatoriojob_statestringread-onlyObligatoriovaloresreadyerrordone
job_actionstringread-onlyObligatorio
LOG_ID='1'
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/log_details/$LOG_ID/"200{
"pk": 1,
"action": "Iniciar",
"note": "Iniciando servidor",
"user": "username@example.com",
"time": "2024-02-15T11:12:11+02:00",
"completed": false,
"job_state": "ready",
"job_action": "start"
}VPS: Settings
Puede modificar remotamente la configuración en un servidor virtual de Fornex. Esta sección incluye solicitudes de API para realizar estos cambios.
Ajustar configuración de VPS
Ajuste de varios parámetros de VPS.
/vps/{order_id}/Parámetros de ruta
order_idstringObligatorioID del pedido (incluyendo prefijo 34-...)
Cuerpo
private_network_enabledbooleanConectar el pedido a una red privada. Esto permitirá el intercambio directo de datos con otros pedidos en la misma red, mejorando la velocidad y seguridad. Por el momento, solo se crea una red privada por cuenta.
Respuestas
200application/jsonprivate_network_enabledbooleanObligatorioConectar el pedido a una red privada. Esto permitirá el intercambio directo de datos con otros pedidos en la misma red, mejorando la velocidad y seguridad. Por el momento, solo se crea una red privada por cuenta.
ORDER_ID='34-1234'
curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"private_network_enabled":false}' \
"https://fornex.com/api/vps/$ORDER_ID/"200{
"type": "object",
"properties": {
"private_network_enabled": {
"type": "boolean",
"description": "Conectar el pedido a una red privada. Esto permitirá el intercambio directo de datos con otros pedidos en la misma red, mejorando la velocidad y seguridad. Por el momento, solo se crea una red privada por cuenta."
}
},
"required": [
"private_network_enabled"
]
}VPS: Statistics
En Fornex recopilamos estadísticas sobre el rendimiento y la utilización de recursos de su servidor privado virtual. Esta sección cubre el punto final de la API utilizado para solicitar esas estadísticas.
Estadísticas de VPS
El campo series contiene una lista de pares de valores (timestamp * 1000, valor float).
/vps/{order_id}/stats/{field}/Parámetros de ruta
fieldstringObligatorioCampo de estadísticas
cpudiskiomemorytrafficorder_idstringObligatorioID del pedido (incluyendo prefijo 34-...)
Parámetros de consulta
endstringFin del período (predeterminado -
now)startstringInicio del período (predeterminado -
-1h)
Respuestas
200application/jsonsubtitlestringObligatorio
FIELD='traffic'
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/stats/$FIELD/"200{
"series": [
{
"color": "#60B5FF",
"data": [
[
1677628800000,
0.09553581192531
],
[
1677629088000,
0.09553581192531
],
[
1677629376000,
0.09916645151423
]
],
"name": "Entrante"
},
{
"color": "#61D561",
"data": [
[
1677628800000,
4585.9263464
],
[
1677629088000,
4575.14841552
],
[
1677629376000,
4636.41519648
]
],
"name": "Saliente",
"type": "areaspline"
}
],
"subtitle": "16 de noviembre de 2015, 17:18 - 17 de noviembre de 2015, 17:18 (Europe/Moscow)"
}VPS: Private Network
Gestión de red privada para VPS.
Lista de redes
/private-network/Parámetros de consulta
pageintegerNúmero de página dentro del conjunto de resultados paginados.
default: 1page_sizeintegerNúmero de resultados a devolver por página.
default: 10
Respuestas
200application/jsoncountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/private-network/"200{
"type": "object",
"required": [
"count",
"results"
],
"properties": {
"count": {
"type": "integer",
"example": 123
},
"next": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=4"
},
"previous": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=2"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true
}
},
"required": [
"id"
]
}
}
}
}curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/private-network/"201{
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true
}
},
"required": [
"id"
]
}Ubicaciones admitidas
/private-network/locations/Parámetros de consulta
pageintegerNúmero de página dentro del conjunto de resultados paginados.
default: 1page_sizeintegerNúmero de resultados a devolver por página.
default: 10
Respuestas
200application/jsoncountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/private-network/locations/"200{
"type": "object",
"required": [
"count",
"results"
],
"properties": {
"count": {
"type": "integer",
"example": 123
},
"next": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=4"
},
"previous": {
"type": "string",
"nullable": true,
"format": "uri",
"example": "http://api.example.org/accounts/?page=2"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true
},
"location": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"label": {
"type": "string"
},
"icon": {
"type": "string"
}
},
"required": [
"icon",
"label",
"value"
]
}
},
"required": [
"id",
"location"
]
}
}
}
}Eliminar red
/private-network/{id}/Parámetros de ruta
idintegerObligatorioUn valor de entero único que identifica este User VNI.
Respuestas
204No response body
ID='1'
curl -X DELETE \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/private-network/$ID/"Dedicated Order
Lista de pedidos de DS
Listar todos los pedidos de DS disponibles. La información sobre los parámetros de cada pedido también se incluirá en la respuesta
/orders/ds/Parámetros de consulta
cancel_markbooleanFiltrar los pedidos que serán cancelados.
orderingstringCampo utilizado para ordenar los resultados.
default: idexpiredidpageintegerNúmero de página dentro del conjunto de resultados paginados.
default: 1page_sizeintegerNúmero de resultados a devolver por página.
default: 10
Respuestas
200application/jsoncountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/ds/"200{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": "34-1234",
"name": "DB Host",
"tariff": "VPS Master",
"tariff_price": 140,
"type": "vps",
"hostname": "srv-123.fornex.org",
"ipaddress_set": [
"123.123.123.123"
],
"status": "active",
"cost_month": 148,
"expiration_date": "2015-12-18T17:21:46",
"tags": [
"Database"
],
"configuration": {
"cpu_count": 1,
"cpu": "Intel Xeon Silver 4110 (8×2.1Ghz)",
"motherboard": "Supermicro X9SCM-F",
"chassis": "(1U) Supermicro U1 (BP:no, hdd-3.5x4) (4x 3.5)",
"bandwidth": 1024,
"memory": 16
}
}
]
}Detalle del pedido de DS
Obtener todos los datos disponibles sobre el pedido por su ID.
/orders/ds/{order_id}/Parámetros de ruta
order_idstringObligatorioID del pedido en el formato NN-NNNNNNN.
Respuestas
200application/jsonidstringread-onlyObligatorionamestringmax length: 64tariffstringread-onlyObligatoriotariff_pricenumber (double)nullableread-onlyObligatoriotypestringread-onlyObligatoriohostnamestringnullableread-onlyObligatorioipaddress_setarray string[]nullableread-onlyObligatoriostatusstringread-onlyObligatoriovaloresunpaidpendingactiveexpireddisabledcanceledblockednoprolong
cost_monthnumber (double)read-onlyObligatorioexpiration_datestring (date-time)read-onlyObligatoriotagsarray string[]Obligatoriocancel_markbooleanread-onlyObligatorioMarcador que indica que el pedido será cancelado.
projectobjectnullableread-onlyObligatorioconfigurationobjectread-onlyObligatorioConfiguración del servidor
ORDER_ID='34-123456'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/ds/$ORDER_ID/"200{
"id": "34-1234",
"name": "DB Host",
"tariff": "VPS Master",
"tariff_price": 140,
"type": "vps",
"hostname": "srv-123.fornex.org",
"ipaddress_set": [
"123.123.123.123"
],
"status": "active",
"cost_month": 148,
"expiration_date": "2015-12-18T17:21:46",
"tags": [
"Database"
],
"configuration": {
"cpu_count": 1,
"cpu": "Intel Xeon Silver 4110 (8×2.1Ghz)",
"motherboard": "Supermicro X9SCM-F",
"chassis": "(1U) Supermicro U1 (BP:no, hdd-3.5x4) (4x 3.5)",
"bandwidth": 1024,
"memory": 16
}
}Tráfico
Obtener datos de tráfico para el pedido
/orders/ds/{order_id}/traffic/Parámetros de ruta
order_idstringObligatorioID del pedido (incluyendo prefijo 34-...)
Parámetros de consulta
periodstringPeríodo para mostrar estadísticas
default: monthmonthyearportintegerNúmero de puerto secuencial
default: 0
Respuestas
200application/jsondataarrayObligatorioorderstringObligatorioperiodstringObligatorio
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/ds/$ORDER_ID/traffic/"200{
"data": [
[
"2015-11-11",
{
"input": 41348840999.42331,
"output": 969929788001.3163
}
],
[
"2015-11-12",
{
"input": 44384423647.10196,
"output": 1019910108491.1565
}
]
],
"order": "34-1234 DS HyperXeon (example.net)",
"period": "month"
}Límites de tráfico
/orders/ds/{order_id}/traffic_used/Parámetros de ruta
order_idintegerObligatorioUn valor de entero único que identifica este Pedido DS.
Respuestas
200application/jsonorderstringObligatoriolimitintegerObligatoriorange_startstring (date)Obligatoriorange_endstring (date)ObligatoriousedintegerObligatorioused_ratenumber (double)Obligatorio
ORDER_ID='1'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/ds/$ORDER_ID/traffic_used/"200{
"limit": 14293651161088,
"order": "34-1234 DS XeonNeon (example.net)",
"range_end": "2015-11-21",
"range_start": "2015-10-21",
"used": 3508146044885.079,
"used_rate": 0.24543386468220252
}Domain
Lista de dominios
/dns/domain/Parámetros de consulta
pageintegerNúmero de página dentro del conjunto de resultados paginados.
default: 1page_sizeintegerNúmero de resultados a devolver por página.
default: 10qstringbuscar por nombre o IP
tagstringfiltrar por etiqueta
Respuestas
200application/jsoncountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/dns/domain/"200{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"name": "example.com",
"created": "2024-02-05T21:41:25",
"updated": "2024-02-05T21:41:25",
"entry_set": [
{
"host": "",
"id": 366182,
"type": "A",
"ttl": null,
"value": "192.0.2.1"
}
],
"tags": []
}
]
}Agregar dominio
La posibilidad de agregar dominios a través de la API está deshabilitada de forma predeterminada por razones de seguridad de la cuenta. Si desea utilizar esta función, póngase en contacto con el soporte.
/dns/domain/Cuerpo
Obligatorionamestringlength 1…128Obligatorioipstring (ipv4)min length: 1write-onlyObligatoriocurl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"name": "example.com", "ip": "192.0.2.1"}' \
"https://fornex.com/api/dns/domain/"201{
"name": "example.com",
"created": "2024-02-05T21:41:25",
"updated": "2024-02-05T21:41:25",
"entry_set": [
{
"host": "",
"id": 366182,
"type": "A",
"ttl": null,
"value": "192.0.2.1"
}
],
"tags": []
}Eliminar dominio
/dns/domain/{name}/Parámetros de ruta
namestringObligatorioNombre de dominio
Respuestas
204No response body
NAME='example.com'
curl -X DELETE \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/dns/domain/$NAME/"Archivo de zona
/dns/domain/{name}/zone_file/Parámetros de ruta
namestringObligatorioNombre de dominio
Respuestas
200text/plainZone file content (BIND format)
string
NAME='example.com'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/dns/domain/$NAME/zone_file/"200"$TTL 21600\n@\tIN\tSOA\tns1.fornex.com. hostmaster.fornex.com. (\n...\n"Domain: Entry
Lista de registros
/dns/domain/{name}/entry_set/Parámetros de ruta
namestringObligatorioNombre de dominio
Parámetros de consulta
qstringfiltro de registros
typestringAAAAACAACNAMEMXNSSRVTXTnull
Respuestas
200application/jsonarray object[]Entry[]idintegerread-onlyObligatoriohoststringmax length: 255default:Nombre de host del registro: '@, *, subdomain'
typestringObligatoriovaloresAAAAATXTCNAMENSMXSRVCAA
Tipo de registro
priointeger (int64)min: 0max: 4294967295nullablePrioridad, se utiliza solo para SRV y MX
valuestringmax length: 1024ObligatorioValor del registro según el tipo, por ejemplo IP para registros A
ttlnullableTTL del registro (opcional, predeterminado: 3600 seg.)
Uno de
NAME='example.com'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/dns/domain/$NAME/entry_set/"200[
{
"id": 1,
"host": "www",
"type": "A",
"ttl": null,
"value": "10.10.10.18"
}
]Agregar registro
/dns/domain/{name}/entry_set/Parámetros de ruta
namestringObligatorioNombre de dominio
Cuerpo
Obligatoriohoststringmax length: 255default: Nombre de host del registro: '@, *, subdomain'
typestringObligatorioAAAAATXTCNAMENSMXSRVCAA
Tipo de registro
priointeger (int64)min: 0max: 4294967295nullablePrioridad, se utiliza solo para SRV y MX
valuestringlength 1…1024ObligatorioValor del registro según el tipo, por ejemplo IP para registros A
ttlnullableTTL del registro (opcional, predeterminado: 3600 seg.)
Respuestas
201application/jsonidintegerread-onlyObligatoriohoststringmax length: 255default:Nombre de host del registro: '@, *, subdomain'
typestringObligatoriovaloresAAAAATXTCNAMENSMXSRVCAA
Tipo de registro
priointeger (int64)min: 0max: 4294967295nullablePrioridad, se utiliza solo para SRV y MX
valuestringmax length: 1024ObligatorioValor del registro según el tipo, por ejemplo IP para registros A
ttlnullableTTL del registro (opcional, predeterminado: 3600 seg.)
Uno de
NAME='example.com'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"host": "www", "type": "A", "ttl": null, "value": "10.10.10.18"}' \
"https://fornex.com/api/dns/domain/$NAME/entry_set/"201{
"id": 1,
"host": "www",
"type": "A",
"ttl": null,
"value": "10.10.10.18"
}Actualizar registro
/dns/domain/{name}/entry_set/{id}/Parámetros de ruta
idintegerObligatorioUn valor de entero único que identifica este Registro DNS.
namestringObligatorioNombre de dominio
Cuerpo
Obligatoriohoststringmax length: 255default: Nombre de host del registro: '@, *, subdomain'
typestringObligatorioAAAAATXTCNAMENSMXSRVCAA
Tipo de registro
priointeger (int64)min: 0max: 4294967295nullablePrioridad, se utiliza solo para SRV y MX
valuestringlength 1…1024ObligatorioValor del registro según el tipo, por ejemplo IP para registros A
ttlnullableTTL del registro (opcional, predeterminado: 3600 seg.)
Respuestas
200application/jsonidintegerread-onlyObligatoriohoststringmax length: 255default:Nombre de host del registro: '@, *, subdomain'
typestringObligatoriovaloresAAAAATXTCNAMENSMXSRVCAA
Tipo de registro
priointeger (int64)min: 0max: 4294967295nullablePrioridad, se utiliza solo para SRV y MX
valuestringmax length: 1024ObligatorioValor del registro según el tipo, por ejemplo IP para registros A
ttlnullableTTL del registro (opcional, predeterminado: 3600 seg.)
Uno de
ID='1'
NAME='example.com'
curl -X PUT \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"host": "www", "type": "A", "ttl": null, "value": "10.10.10.18"}' \
"https://fornex.com/api/dns/domain/$NAME/entry_set/$ID/"200{
"id": 1,
"host": "www",
"type": "A",
"ttl": null,
"value": "10.10.10.18"
}Eliminar registro
/dns/domain/{name}/entry_set/{id}/Parámetros de ruta
idintegerObligatorioUn valor de entero único que identifica este Registro DNS.
namestringObligatorioNombre de dominio
Respuestas
204No response body
ID='1'
NAME='example.com'
curl -X DELETE \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/dns/domain/$NAME/entry_set/$ID/"Domain Order
Cambiar NS
Solicitud para cambiar Nameservers para el pedido de Dominio.
/dns/order/{order_id}/change_ns/Parámetros de ruta
order_idstringObligatorionúmero de pedido
Cuerpo
Obligatorionssstringmin length: 1Obligatoriolista de NS, separados por coma
Respuestas
200application/jsonnssstringObligatoriolista de NS, separados por coma
ORDER_ID='375-13'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"nss": "ns1.examle.com,ns2.example.com"}' \
"https://fornex.com/api/dns/order/$ORDER_ID/change_ns/"200{
"type": "object",
"properties": {
"nss": {
"type": "string",
"title": "Nameservers",
"description": "lista de NS, separados por coma"
}
},
"required": [
"nss"
]
}SSH Keys
Lista de claves
/ssh_keys/Respuestas
200application/jsonarray object[]SshKey[]idintegerread-onlyObligatoriouserstringread-onlyObligatoriokeystringmax length: 16384ObligatorioClave pública en texto sin formato.
titlestringmax length: 128Obligatoriodatestring (date-time)read-onlyObligatoriodefaultboolean
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/ssh_keys/"200[
{
"id": 1,
"key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test",
"title": "Dev Laptop",
"date": "2019-08-24T14:15:22Z",
"default": true
}
]Añadir clave
Al añadir una clave nueva, se vinculará automáticamente a todos sus VPS. La clave se añade directamente al VPS solo al crear o reinstalar.
/ssh_keys/Cuerpo
Obligatoriokeystringlength 1…16384ObligatorioClave pública en texto sin formato.
titlestringlength 1…128ObligatoriodefaultbooleanRespuestas
201application/jsonidintegerread-onlyObligatoriouserstringread-onlyObligatoriokeystringmax length: 16384ObligatorioClave pública en texto sin formato.
titlestringmax length: 128Obligatoriodatestring (date-time)read-onlyObligatoriodefaultboolean
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test", "title": "Dev Laptop", "default": true}' \
"https://fornex.com/api/ssh_keys/"201{
"id": 1,
"key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test",
"title": "Dev Laptop",
"date": "2019-08-24T14:15:22Z",
"default": true
}Eliminar clave
/ssh_keys/{key_id}/Parámetros de ruta
key_idintegerObligatorioUn valor de entero único que identifica este user ssh key.
Respuestas
204No response body
KEY_ID='1'
curl -X DELETE \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/ssh_keys/$KEY_ID/"VPS SSH Keys
Lista de claves del pedido
/vps/{order_id}/ssh_keys/Parámetros de ruta
order_idstringObligatorioID del pedido (incluyendo prefijo 34-...)
Respuestas
200application/jsonarray object[]SshKey[]idintegerread-onlyObligatoriouserstringread-onlyObligatoriokeystringmax length: 16384ObligatorioClave pública en texto sin formato.
titlestringmax length: 128Obligatoriodatestring (date-time)read-onlyObligatoriodefaultboolean
ORDER_ID='34-1234'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vps/$ORDER_ID/ssh_keys/"200[
{
"id": 1,
"key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test",
"title": "Dev Laptop",
"date": "2019-08-24T14:15:22Z",
"default": true
}
]Agregar clave al pedido
/vps/{order_id}/ssh_keys/add/Parámetros de ruta
order_idstringObligatorioID del pedido (incluyendo prefijo 34-...)
Cuerpo
Obligatoriokey_pkintegerwrite-onlyObligatorioRespuestas
200No response body
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"key_pk": 1}' \
"https://fornex.com/api/vps/$ORDER_ID/ssh_keys/add/"Eliminar clave del pedido
/vps/{order_id}/ssh_keys/delete/Parámetros de ruta
order_idstringObligatorioID del pedido (incluyendo prefijo 34-...)
Cuerpo
Obligatoriokey_pkintegerwrite-onlyObligatorioRespuestas
200No response body
ORDER_ID='34-1234'
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"key_pk": 1}' \
"https://fornex.com/api/vps/$ORDER_ID/ssh_keys/delete/"S3 Storage
Lista de pedidos S3
Obtener una lista de todos los pedidos S3 disponibles. La información sobre los parámetros de cada pedido también se incluirá en la respuesta
/orders/s3/Parámetros de consulta
cancel_markbooleanFiltrar los pedidos que serán cancelados.
orderingstringCampo utilizado para ordenar los resultados.
default: idexpiredidpageintegerNúmero de página dentro del conjunto de resultados paginados.
default: 1page_sizeintegerNúmero de resultados a devolver por página.
default: 10
Respuestas
200application/jsoncountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/s3/"200{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": "34-1234",
"name": "DB Host",
"hostname": "srv-123.fornex.org",
"status": "active",
"cost_month": 148,
"expiration_date": "2015-12-18T17:21:46",
"tags": [
"Database"
],
"access_key": "user.8cab052ag4",
"secret_key": "hisQNeOv2ZgjzSCSA1JJDLOhwAcA8s17",
"bucket_name": "user.8cab052ag4.main",
"space_used": "18"
}
]
}Detalle de pedido S3
Obtener todos los datos disponibles sobre el pedido por su ID.
/orders/s3/{order_id}/Parámetros de ruta
order_idstringObligatorioID de pedido en formato NNN-NN.
Respuestas
200application/jsonidstringread-onlyObligatorionamestringread-onlyObligatoriohostnamestringObligatorioaccess_keystringread-onlyObligatoriosecret_keystringread-onlyObligatoriobucket_namestringread-onlyObligatoriospace_usedintegerObligatoriocost_monthnumber (double)read-onlyObligatorioexpiration_datestring (date-time)read-onlyObligatoriotagsarray string[]Obligatoriocancel_markbooleanread-onlyObligatorioMarcador que indica que el pedido será cancelado.
projectobjectnullableread-onlyObligatorio
ORDER_ID='664-7'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/orders/s3/$ORDER_ID/"200{
"id": "34-1234",
"name": "DB Host",
"hostname": "srv-123.fornex.org",
"status": "active",
"cost_month": 148,
"expiration_date": "2015-12-18T17:21:46",
"tags": [
"Database"
],
"access_key": "user.8cab052ag4",
"secret_key": "hisQNeOv2ZgjzSCSA1JJDLOhwAcA8s17",
"bucket_name": "user.8cab052ag4.main",
"space_used": "18"
}Límite de espacio bajo S3
Establezca el umbral de espacio libre en el que se envía una advertencia de espacio bajo. Pase 0 para desactivar la notificación.
/orders/s3/{order_id}/notification_threshold/Parámetros de ruta
order_idintegerObligatorioUn valor de entero único que identifica este Pedido S3.
Cuerpo
Obligatoriospace_warning_notify_gbintegermin: 0ObligatorioRespuestas
200application/jsonspace_warning_notify_gbintegermin: 0Obligatorio
ORDER_ID='1'
curl -X PUT \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"space_warning_notify_gb":0}' \
"https://fornex.com/api/orders/s3/$ORDER_ID/notification_threshold/"200{
"type": "object",
"properties": {
"space_warning_notify_gb": {
"type": "integer",
"minimum": 0
}
},
"required": [
"space_warning_notify_gb"
]
}VPN
Configuración OpenVPN
/vpn/{order_id}/config-{proto}.ovpnParámetros de ruta
order_idstringObligatorionúmero de pedido
protostringObligatorioProtocolo
tcpudp
Respuestas
200text/plainOpenVPN profile
string
ORDER_ID='301-12312'
PROTO='udp'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vpn/$ORDER_ID/config-$PROTO.ovpn"200{
"type": "string"
}Configuración IKEv2 para MacOS/iOS
/vpn/{order_id}/config-ikev2.mobileconfigParámetros de ruta
order_idstringObligatorionúmero de pedido
Respuestas
200text/plainIKEv2 mobileconfig
string
ORDER_ID='301-12312'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vpn/$ORDER_ID/config-ikev2.mobileconfig"200{
"type": "string"
}Configuración IKEv2 para Android
/vpn/{order_id}/config-ikev2.sswanParámetros de ruta
order_idstringObligatorionúmero de pedido
Respuestas
200application/jsonIKEv2 sswan
string
ORDER_ID='301-12312'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vpn/$ORDER_ID/config-ikev2.sswan"200{
"type": "string"
}Configuración WireGuard
/vpn/{order_id}/config-wireguard.confParámetros de ruta
order_idstringObligatorionúmero de pedido
Respuestas
200text/plainWireGuard config
string
ORDER_ID='301-12312'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vpn/$ORDER_ID/config-wireguard.conf"200{
"type": "string"
}Configuración Outline VPN
/vpn/{order_id}/config_outlineParámetros de ruta
order_idstringObligatorionúmero de pedido
Respuestas
200application/jsonaccess_urlstring (uri)Obligatorio
ORDER_ID='301-12312'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vpn/$ORDER_ID/config_outline"200{
"type": "object",
"properties": {
"access_url": {
"type": "string",
"format": "uri"
}
},
"required": [
"access_url"
]
}Configuración Xray VPN
/vpn/{order_id}/config_xrayParámetros de ruta
order_idstringObligatorionúmero de pedido
Respuestas
200application/jsonaccess_urlstring (uri)Obligatorio
ORDER_ID='301-12312'
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/vpn/$ORDER_ID/config_xray"200{
"type": "object",
"properties": {
"access_url": {
"type": "string",
"format": "uri"
}
},
"required": [
"access_url"
]
}IP Addresses
Direcciones IP asignadas a sus servicios.
Lista de direcciones IP
/network/ip-address/Parámetros de consulta
orderingstringQué campo usar para ordenar los resultados.
searchstringtypestring
Respuestas
200application/jsonarray object[]PublicNetworkAddress[]idintegerread-onlyObligatorioipstringObligatoriordnsstringObligatorioorderobjectnullableread-onlyObligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/network/ip-address/"200{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true
},
"ip": {
"type": "string",
"title": "IP Address"
},
"location": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"label": {
"type": "string"
},
"icon": {
"type": "string"
}
},
"required": [
"icon",
"label",
"value"
]
},
"rdns": {
"type": "string"
},
"order": {
"allOf": [
{
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"link": {
"type": "string",
"readOnly": true
},
"unique_number": {
"type": "string"
}
},
"required": [
"id",
"link",
"name",
"type",
"unique_number"
]
}
],
"nullable": true,
"readOnly": true
}
},
"required": [
"id",
"ip",
"location",
"order",
"rdns"
]
}
}Tickets
Esta sección describe solicitudes de API que le permiten configurar la operación remota con nuestro sistema de tickets. Esta sección cubre los puntos finales principales y auxiliares de la API utilizados para administrar el acceso remoto al sistema de tickets de Fornex.
Crear tiquete
Para crear un ticket, indique el asunto y el cuerpo de su consulta. Además, puede establecer la prioridad de su solicitud y el pedido al que se relaciona.
/tickets/ticket/Cuerpo
ObligatorioСоздание тикета пользователем
subjectstringlength 1…64ObligatorioUna descripción breve de la esencia de su consulta.
messagestringlength 1…49152ObligatorioUna descripción detallada del problema y otros detalles de la solicitud.
priorityintegerdefault: 101234
Una de las opciones que refleja la urgencia de su solicitud:
0- No urgente (hasta 24 horas)1- Normal (hasta 8 horas)2- Importante (hasta 6 horas)3- Urgente (dentro de 1 hora)4- Muy urgente (lo antes posible)
Por defecto, un ticket se crea con prioridad normal.
La prioridad "muy urgente" solo se puede establecer para pedidos con servicio de administración completo.
No establezca la prioridad "muy urgente" para consultas que no estén relacionadas con problemas técnicos de sus pedidos o alguna emergencia. Tampoco aumente innecesariamente la prioridad de un ticket si no es necesario, solo complica el procesamiento de sus solicitudes.
orderstringmin length: 1nullableID del pedido como "34-NNNN", que se relaciona con su consulta. Por ahora, un ticket solo puede estar relacionado con un pedido. Por defecto, un ticket se crea sin un pedido relacionado.
credentialsobjectwrite-onlyRespuestas
201application/jsonСоздание тикета пользователем
subjectstringmax length: 64ObligatorioUna descripción breve de la esencia de su consulta.
messagestringmax length: 49152ObligatorioUna descripción detallada del problema y otros detalles de la solicitud.
priorityintegerdefault: 1valores01234
Una de las opciones que refleja la urgencia de su solicitud:
0- No urgente (hasta 24 horas)1- Normal (hasta 8 horas)2- Importante (hasta 6 horas)3- Urgente (dentro de 1 hora)4- Muy urgente (lo antes posible)
Por defecto, un ticket se crea con prioridad normal.
La prioridad "muy urgente" solo se puede establecer para pedidos con servicio de administración completo.
No establezca la prioridad "muy urgente" para consultas que no estén relacionadas con problemas técnicos de sus pedidos o alguna emergencia. Tampoco aumente innecesariamente la prioridad de un ticket si no es necesario, solo complica el procesamiento de sus solicitudes.
orderstringnullableID del pedido como "34-NNNN", que se relaciona con su consulta. Por ahora, un ticket solo puede estar relacionado con un pedido. Por defecto, un ticket se crea sin un pedido relacionado.
urlstringread-onlyObligatorioidstringread-onlyObligatoriostatusstringread-onlyObligatorio
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"subject": "Hello, we need some help", "message": "We need some help with updating software..."}' \
"https://fornex.com/api/tickets/ticket/"201{
"subject": "Hello, we need some help",
"message": "We need some help with updating software...",
"priority": 1,
"order": null,
"url": "https://fornex.com/my/tickets/66a8968a01027a2c2f241e6c/",
"id": "66a8968a01027a2c2f241e6c",
"status": "new"
}Estado del webhook
/tickets/webhook_info/Respuestas
200application/jsonurlstring (uri)max length: 512URL para enviar la solicitud, dejar en blanco para desactivar
last_error_datestring (date-time)nullableread-onlyObligatoriolast_error_messagestringnullableread-onlyObligatorio
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
"https://fornex.com/api/tickets/webhook_info/"200{
"last_error_date": null,
"last_error_message": null,
"url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
}Configurar webhook
Se enviará una solicitud POST
ContentType: 'application/json'
{"text": "Se agregó un nuevo comentario al ticket..."}
al URL especificado. Por defecto funciona con Slack, pero puede especificar su propio webhook y procesar la notificación por su cuenta.
/tickets/webhook_set/Cuerpo
urlstring (uri)max length: 512URL para enviar la solicitud, dejar en blanco para desactivar
Respuestas
201application/jsonurlstring (uri)max length: 512URL para enviar la solicitud, dejar en blanco para desactivar
last_error_datestring (date-time)nullableread-onlyObligatoriolast_error_messagestringnullableread-onlyObligatorio
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Api-Key $FORNEX_API_KEY" \
--data '{"last_error_date": null, "last_error_message": null, "url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"}' \
"https://fornex.com/api/tickets/webhook_set/"201{
"last_error_date": null,
"last_error_message": null,
"url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
}Esquemas
AccountBalancebalancenumber (double)ObligatoriocurrencystringObligatorioAccountInfoemailstring (email)max length: 254namestringObligatorioAccountInvoicesunpaid_invoices_countintegerObligatoriounpaid_invoices_amountnumber (double)ObligatoriocurrencystringObligatorioAppTemplateidintegerread-onlyObligatorioID de la aplicación.
namestringmax length: 64ObligatorioNombre de la aplicación.
osstringread-onlyObligatorioBackupTariffspaceintegerObligatoriopricenumber (double)Obligatoriounitsstringread-onlyObligatoriodefault: GBBandwidthEnum1015202540
BillingTypeEnumsingleperiodic
BlankEnumCancelOrderstatusstringread-onlyObligatoriocanceledcancel_pending
messagestringread-onlyObligatorioCancelOrderRequestwhenstringwrite-onlydefault: expirednowexpired
El parámetro describe cuándo debe cancelarse el pedido: ahora o una vez que expire el período de pago.
save_backupbooleanwrite-onlydefault: trueEl parámetro describe si se debe tomar una instantánea del VPS antes de eliminar la máquina virtual o no.
CancelOrderStatusEnumcanceledcancel_pending
CpuArchEnumx86_64arm
DedicatedTariffidintegerread-onlyObligatorionamestringmax length: 128ObligatorioEl nombre del plan aparece en las facturas, por lo que debe ser corto y estar escrito en caracteres latinos, por ejemplo Cloud NVMe 1.
cpu_modelstringread-onlyObligatoriocpu_countintegermin: 0max: 65535ramstringObligatoriodiskstringObligatoriobandwidthstringObligatoriopricenumber (double)Obligatoriolocationsarray array[]ObligatorioDiskTypeEnumhddnvmessdsas
DnsOrderNameserversnssstringObligatoriolista de NS, separados por coma
DnsOrderNameserversRequestnssstringmin length: 1Obligatoriolista de NS, separados por coma
Domainnamestringmax length: 128Obligatoriocreatedstring (date-time)read-onlyObligatorioupdatedstring (date-time)read-onlyObligatoriotagsarray string[]read-onlyObligatorioDomainRequestnamestringlength 1…128Obligatorioipstring (ipv4)min length: 1write-onlyObligatorioDomainTagstagsarray string[]ObligatorioDomainTagsRequesttagsarray string[]ObligatorioDSConfigurationcpu_countintegermin: 0max: 65535cpustringObligatoriomotherboardstringObligatoriochassisstringObligatorioraid_controllerstringObligatorionetwork_adapterstringObligatoriobandwidthnullablememoryinteger (int64)min: 0max: 4294967295Obligatoriodisksstringread-onlyObligatorioDSOrderidstringread-onlyObligatorionamestringmax length: 64tariffstringread-onlyObligatoriotariff_pricenumber (double)nullableread-onlyObligatoriotypestringread-onlyObligatoriohostnamestringnullableread-onlyObligatorioipaddress_setarray string[]nullableread-onlyObligatoriostatusstringread-onlyObligatoriounpaidpendingactiveexpireddisabledcanceledblockednoprolong
cost_monthnumber (double)read-onlyObligatorioexpiration_datestring (date-time)read-onlyObligatoriotagsarray string[]Obligatoriocancel_markbooleanread-onlyObligatorioMarcador que indica que el pedido será cancelado.
projectobjectnullableread-onlyObligatorioconfigurationobjectread-onlyObligatorioConfiguración del servidor
DSTrafficdataarrayObligatorioorderstringObligatorioperiodstringObligatorioDSTrafficUsedorderstringObligatoriolimitintegerObligatoriorange_startstring (date)Obligatoriorange_endstring (date)ObligatoriousedintegerObligatorioused_ratenumber (double)ObligatorioEntryidintegerread-onlyObligatoriohoststringmax length: 255default: Nombre de host del registro: '@, *, subdomain'
typestringObligatorioAAAAATXTCNAMENSMXSRVCAA
Tipo de registro
priointeger (int64)min: 0max: 4294967295nullablePrioridad, se utiliza solo para SRV y MX
valuestringmax length: 1024ObligatorioValor del registro según el tipo, por ejemplo IP para registros A
ttlnullableTTL del registro (opcional, predeterminado: 3600 seg.)
EntryRequesthoststringmax length: 255default: Nombre de host del registro: '@, *, subdomain'
typestringObligatorioAAAAATXTCNAMENSMXSRVCAA
Tipo de registro
priointeger (int64)min: 0max: 4294967295nullablePrioridad, se utiliza solo para SRV y MX
valuestringlength 1…1024ObligatorioValor del registro según el tipo, por ejemplo IP para registros A
ttlnullableTTL del registro (opcional, predeterminado: 3600 seg.)
EntryTypeEnumAAAAATXTCNAMENSMXSRVCAA
JobStateEnumreadyerrordone
LocationChoicevaluestringObligatoriolabelstringObligatorioiconstringObligatorioNetworkOrderidintegerObligatorionamestringObligatoriotypestringObligatoriolinkstringread-onlyObligatoriounique_numberstringObligatorioNullEnumnull
Orderidstringread-onlyObligatorionamestringmax length: 64tariffstringread-onlyObligatoriotariff_pricenumber (double)nullableread-onlyObligatoriotypestringread-onlyObligatoriohostnamestringnullableread-onlyObligatorioipaddress_setarray string[]nullableread-onlyObligatoriostatusstringread-onlyObligatoriounpaidpendingactiveexpireddisabledcanceledblockednoprolong
cost_monthnumber (double)read-onlyObligatorioexpiration_datestring (date-time)read-onlyObligatoriotagsarray string[]Obligatoriocancel_markbooleanread-onlyObligatorioMarcador que indica que el pedido será cancelado.
projectobjectnullableread-onlyObligatorioOrderCredentialsusernamestringpasswordstringcommentstringOrderCredentialsRequestusernamestringmin length: 1passwordstringmin length: 1commentstringmin length: 1OrderServiceCreateserviceintegerObligatorioID del servicio adicional.
countintegermin: 1default: 1La cantidad de esta servicio adicional.
OrderServiceCreateRequestserviceintegerObligatorioID del servicio adicional.
countintegermin: 1default: 1La cantidad de esta servicio adicional.
OrderSSHKeyAddRequestkey_pkintegerwrite-onlyObligatorioOrderSSHKeyRemoveRequestkey_pkintegerwrite-onlyObligatorioOrderStatusunpaidpendingactiveexpireddisabledcanceledblockednoprolong
OrderUpdatenamestringmax length: 64default: Nombre personalizado para el pedido.
tagsarray string[]ObligatorioEtiquetas para el pedido como lista.
projectintegernullableObligatorioProyecto del pedido.
PaginatedAppTemplateListcountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedDomainListcountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedDSOrderListcountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedOrderListcountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedPrivateNetworkListcountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedPrivateNetworkLocationListcountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedProjectListcountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedS3OrderListcountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedSnapshotListcountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedTemplateListcountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PaginatedVPSOrderListcountintegerObligatorioexample: 123nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2PanelEnumvestahestiaaapanelbrainycpcloudpanelcyberpanelbeadminopenpanel
PatchedOrderUpdateRequestnamestringlength 1…64default: Nombre personalizado para el pedido. Introduzca una cadena vacía si desea eliminar el nombre.
tagsarray string[]Etiquetas para el pedido como lista. Las nuevas etiquetas reemplazarán completamente las antiguas si las hay. Introduzca una lista vacía si desea eliminar todas las etiquetas.
projectintegernullableProyecto del pedido. Introduzca una cadena vacía si desea eliminar el proyecto.
PatchedProjectRequestnamestringlength 1…40commentstringmax length: 256PatchedVpsUpdateRequestprivate_network_enabledbooleanConectar el pedido a una red privada. Esto permitirá el intercambio directo de datos con otros pedidos en la misma red, mejorando la velocidad y seguridad. Por el momento, solo se crea una red privada por cuenta.
PlacementPolicyEnumSTRICTOPTIONAL
PriorityEnum01234
PrivateNetworkidintegerread-onlyObligatorioPrivateNetworkLocationidintegerread-onlyObligatorioProjectidintegerread-onlyObligatorionamestringmax length: 40Obligatoriocommentstringmax length: 256logostring (uri)read-onlyObligatorioProjectAddOrdersRequestordersarray string[]write-onlyObligatorioProjectLogologostring (uri)Ruta al archivo.
ProjectLogoRequestlogostring (binary)Ruta al archivo.
ProjectRemoveOrdersRequestordersarray string[]write-onlyObligatorioProjectRequestnamestringlength 1…40Obligatoriocommentstringmax length: 256PublicChartsubtitlestringObligatorioPublicChartSeriesnamestringObligatoriodataarrayObligatoriotypestringcolorstringPublicNetworkAddressidintegerread-onlyObligatorioipstringObligatoriordnsstringObligatorioorderobjectnullableread-onlyObligatorioPublicReinstallRequestPublic API version: exposes template instead of ostemplate.
display_namestringread-onlyObligatoriostatusstringread-onlyObligatoriodatestring (date-time)read-onlyObligatorioPublicReinstallRequestRequestPublic API version: exposes template instead of ostemplate.
appintegernullablewrite-onlytemplateintegerwrite-onlysnapshotintegernullablewrite-onlyPublicTicketСоздание тикета пользователем
subjectstringmax length: 64ObligatorioUna descripción breve de la esencia de su consulta.
messagestringmax length: 49152ObligatorioUna descripción detallada del problema y otros detalles de la solicitud.
priorityintegerdefault: 101234
Una de las opciones que refleja la urgencia de su solicitud:
0- No urgente (hasta 24 horas)1- Normal (hasta 8 horas)2- Importante (hasta 6 horas)3- Urgente (dentro de 1 hora)4- Muy urgente (lo antes posible)
Por defecto, un ticket se crea con prioridad normal.
La prioridad "muy urgente" solo se puede establecer para pedidos con servicio de administración completo.
No establezca la prioridad "muy urgente" para consultas que no estén relacionadas con problemas técnicos de sus pedidos o alguna emergencia. Tampoco aumente innecesariamente la prioridad de un ticket si no es necesario, solo complica el procesamiento de sus solicitudes.
orderstringnullableID del pedido como "34-NNNN", que se relaciona con su consulta. Por ahora, un ticket solo puede estar relacionado con un pedido. Por defecto, un ticket se crea sin un pedido relacionado.
urlstringread-onlyObligatorioidstringread-onlyObligatoriostatusstringread-onlyObligatorioPublicTicketRequestСоздание тикета пользователем
subjectstringlength 1…64ObligatorioUna descripción breve de la esencia de su consulta.
messagestringlength 1…49152ObligatorioUna descripción detallada del problema y otros detalles de la solicitud.
priorityintegerdefault: 101234
Una de las opciones que refleja la urgencia de su solicitud:
0- No urgente (hasta 24 horas)1- Normal (hasta 8 horas)2- Importante (hasta 6 horas)3- Urgente (dentro de 1 hora)4- Muy urgente (lo antes posible)
Por defecto, un ticket se crea con prioridad normal.
La prioridad "muy urgente" solo se puede establecer para pedidos con servicio de administración completo.
No establezca la prioridad "muy urgente" para consultas que no estén relacionadas con problemas técnicos de sus pedidos o alguna emergencia. Tampoco aumente innecesariamente la prioridad de un ticket si no es necesario, solo complica el procesamiento de sus solicitudes.
orderstringmin length: 1nullableID del pedido como "34-NNNN", que se relaciona con su consulta. Por ahora, un ticket solo puede estar relacionado con un pedido. Por defecto, un ticket se crea sin un pedido relacionado.
credentialsobjectwrite-onlyS3NotificationThresholdspace_warning_notify_gbintegermin: 0ObligatorioS3NotificationThresholdRequestspace_warning_notify_gbintegermin: 0ObligatorioS3Orderidstringread-onlyObligatorionamestringread-onlyObligatoriohostnamestringObligatorioaccess_keystringread-onlyObligatoriosecret_keystringread-onlyObligatoriobucket_namestringread-onlyObligatoriospace_usedintegerObligatoriocost_monthnumber (double)read-onlyObligatorioexpiration_datestring (date-time)read-onlyObligatoriotagsarray string[]Obligatoriocancel_markbooleanread-onlyObligatorioMarcador que indica que el pedido será cancelado.
projectobjectnullableread-onlyObligatorioServerBandwidthTariffmin_valuestring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$Obligatoriomax_valuestring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$Obligatoriostepstring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$ObligatorioDiferencia entre dos valores de ancho de banda consecutivos
pricestring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$ObligatoriounitUnitEnumgbpsmbps
Serviceidintegerread-onlyObligatorioID del servicio.
namestringmax length: 128ObligatorioNombre del servicio.
descriptionstringmax length: 255Descripción del servicio.
pricestring (decimal)^-?\d{0,8}(?:\.\d{0,2})?$ObligatorioPrecio del servicio.
billing_typestringObligatoriosingleperiodic
Coste único o mensual.
Snapshotidintegerread-onlyObligatorioID de la instantánea.
namestringmax length: 64ObligatorioNombre de la instantánea.
size_gbnumber (double)read-onlyObligatorioTamaño de la instantánea en GB.
created_atstring (date-time)ObligatorioSshKeyidintegerread-onlyObligatoriouserstringread-onlyObligatoriokeystringmax length: 16384ObligatorioClave pública en texto sin formato.
titlestringmax length: 128Obligatoriodatestring (date-time)read-onlyObligatoriodefaultbooleanSshKeyRequestkeystringlength 1…16384ObligatorioClave pública en texto sin formato.
titlestringlength 1…128ObligatoriodefaultbooleanTemplateidintegerread-onlyObligatorioID de la plantilla.
namestringmax length: 64ObligatorioNombre de la plantilla.
osstringread-onlyObligatoriopanelnullablePanel de control utilizado en la plantilla, puede estar vacío.
archstringx86_64arm
Tipo de arquitectura de CPU requerida para esta plantilla.
min_storage_spaceinteger (int64)min: 0max: 4294967295nullableEspacio de almacenamiento mínimo requerido para esta plantilla.
min_ram_volumeintegermin: 0max: 65535nullableVolumen mínimo de RAM requerido para esta plantilla.
min_cpu_coresinteger (int64)min: 0max: 4294967295nullableNúmero mínimo de núcleos de CPU requeridos para esta plantilla.
TermEnum13612
TicketsWebhookurlstring (uri)max length: 512URL para enviar la solicitud, dejar en blanco para desactivar
last_error_datestring (date-time)nullableread-onlyObligatoriolast_error_messagestringnullableread-onlyObligatorioTicketsWebhookRequesturlstring (uri)max length: 512URL para enviar la solicitud, dejar en blanco para desactivar
TtlEnum1203006009001800
UnitEnumgbpsmbps
VHTariffidintegerread-onlyObligatorionamestringmax length: 128ObligatorioEl nombre del plan aparece en las facturas, por lo que debe ser corto y estar escrito en caracteres latinos, por ejemplo Cloud NVMe 1.
sitesintegermin: 0max: 65535nullablepricenumber (double)Obligatoriocpu_coresintegermin: 0max: 65535nullablehdd_spaceinteger (int64)min: 0max: 4294967295nullableGB
available_locationsarray string[]read-onlyObligatorioVpnConfigaccess_urlstring (uri)ObligatorioVpnTariffidintegerread-onlyObligatoriopricenumber (double)Obligatorioshareddedicatedmulti-hop
available_locationsarray string[]read-onlyObligatorioVpnTariffTypeEnumshareddedicatedmulti-hop
VpsConfigurationcpu_countintegermin: 1max: 16Número de núcleos.
ram_sizeintegermin: 2max: 32Volumen de RAM en gigabytes (GB).
disk_classintegernullableClase de disco.
disk_sizeintegermin: 20max: 300Volumen de almacenamiento en gigabytes (GB).
cpu_archstringx86_64arm
Arquitectura de CPU.
min_cpu_freqstring (decimal)^-?\d{0,2}(?:\.\d{0,1})?$Frecuencia mínima del núcleo de CPU en gigahertz (GHz). Afecta el costo del pedido (mayor frecuencia - mayor precio) y la selección del hipervisor al crear un VPS. Recomendamos establecer el valor exacto del configurador de VPS, ya que en caso de discrepancia se aplicará la frecuencia más cercana superior (por ejemplo, un pedido con 2.4 GHz se procesará como 3.0 GHz).
VpsConfigurationRequestcpu_countintegermin: 1max: 16Número de núcleos.
ram_sizeintegermin: 2max: 32Volumen de RAM en gigabytes (GB).
disk_classintegernullableClase de disco.
disk_sizeintegermin: 20max: 300Volumen de almacenamiento en gigabytes (GB).
cpu_archstringx86_64arm
Arquitectura de CPU.
min_cpu_freqstring (decimal)^-?\d{0,2}(?:\.\d{0,1})?$Frecuencia mínima del núcleo de CPU en gigahertz (GHz). Afecta el costo del pedido (mayor frecuencia - mayor precio) y la selección del hipervisor al crear un VPS. Recomendamos establecer el valor exacto del configurador de VPS, ya que en caso de discrepancia se aplicará la frecuencia más cercana superior (por ejemplo, un pedido con 2.4 GHz se procesará como 3.0 GHz).
VpsDiskClassidintegerread-onlyObligatorionamestringmax length: 64Obligatoriolimit_total_mbytes_secintegermin: 0max: 65535ObligatorioМb/sec
limit_read_iops_secintegermin: 0max: 65535ObligatorioOp/sec
limit_write_iops_secintegermin: 0max: 65535ObligatorioOp/sec
price_per_gbstring (decimal)^-?\d{0,2}(?:\.\d{0,4})?$ObligatorioCosto por 1 GB
disk_typeDiskTypeEnumhddnvmessdsas
disk_type_displaystringObligatorioVpsLocationvaluestringObligatoriolabelstringObligatoriolocation_os_typesarray string[]Obligatoriobandwidth_tariffobjectnullabledisabled_by_slotsbooleandefault: truedisabled_by_cpu_freqbooleandefault: truedisabled_by_osbooleandefault: falsedisabled_by_cpu_typebooleandefault: falseavailable_frequenciesobjectObligatorioVpsLogEntrypkintegerread-onlyObligatorioactionstringread-onlyObligatorionotestringread-onlyObligatoriouserstringread-onlyObligatoriotimestring (date-time)read-onlyObligatoriocompletedbooleanread-onlyObligatoriojob_statestringread-onlyObligatorioreadyerrordone
job_actionstringread-onlyObligatorioVPSOrderidstringread-onlyObligatorionamestringmax length: 64tariffstringread-onlyObligatoriotariff_pricenumber (double)nullableread-onlyObligatoriotypestringread-onlyObligatoriohostnamestringnullableread-onlyObligatorioipaddress_setarray string[]nullableread-onlyObligatoriostatusstringread-onlyObligatoriounpaidpendingactiveexpireddisabledcanceledblockednoprolong
cost_monthnumber (double)read-onlyObligatorioexpiration_datestring (date-time)read-onlyObligatoriotagsarray string[]Obligatoriocancel_markbooleanread-onlyObligatorioMarcador que indica que el pedido será cancelado.
projectobjectnullableread-onlyObligatorioconfigurationobjectread-onlyObligatorioConfiguración del servidor
VpsOrderCreateorder_idstringread-onlyObligatorioVpsOrderCreateRequesttariffintegernullablewrite-onlyID del plan predefinido.
Obtenga las opciones disponibles para tariff en Planes VPS.
Para crear una configuración personalizada, utilice el parámetro configuration.
No utilice ambos parámetros al mismo tiempo.
configurationobjectnullablewrite-onlyLos parámetros de configuración personalizada como un objeto (abra la sección desplegable para más detalles). Utilice configurador VPS para obtener una combinación adecuada de parámetros de acuerdo con las restricciones dinámicas.
En lugar de una configuración personalizada, puede desear un plan predefinido, que generalmente es más barato.
Para hacer esto, utilice el parámetro tariff. No utilice ambos parámetros al mismo tiempo.
templateintegerwrite-onlyID de la plantilla para instalar un sistema operativo y, opcionalmente,
un panel de control de alojamiento. Obtenga las opciones disponibles para template en
Plantillas VPS.
En lugar del sistema operativo, puede desear instalar una aplicación (parámetro app) o
restaurar el VPS desde una instantánea (parámetro snapshot). Para hacer esto, utilice el parámetro correspondiente. Utilice solo un parámetro por pedido.
appintegerwrite-onlyID de la aplicación que desea instalar. Obtenga las opciones disponibles para app en
Aplicaciones VPS.
En lugar de una aplicación, puede desear instalar un sistema operativo (parámetro template) o
restaurar el VPS desde una instantánea (parámetro snapshot). Para hacer esto, utilice el parámetro correspondiente. Utilice solo un parámetro por pedido.
snapshotintegerwrite-onlyID de la instantánea desde la que desea restaurar el VPS.
Obtenga las opciones disponibles para snapshot en Instantáneas VPS.
Puede crear una instantánea desde cualquier VPS ya creado en su panel en la página del pedido y utilizarla para restaurar (como copia de seguridad) o crear copias del pedido (como plantilla).
En lugar de restaurar desde una instantánea, puede desear instalar un sistema operativo (parámetro template)
o una aplicación (parámetro app). Para hacer esto, utilice el parámetro correspondiente.
Utilice solo un parámetro por pedido.
locationstringmin length: 1write-onlyObligatorioCódigo de país de dos letras de la ubicación del pedido.
Obtenga las opciones disponibles para location en Ubicaciones VPS.
termintegerwrite-onlydefault: 113612
El número de meses durante los cuales se renueva el pedido una vez creado (por ejemplo, 3).
Servicios adicionales y su cantidad como una lista (abra la sección desplegable para más detalles).
Obtenga las opciones disponibles para services en Servicios adicionales VPS.
ssh_keysarray integer[]write-onlyIDs de las claves SSH como una lista que se agregan al servidor durante la instalación. Obtenga las opciones disponibles para ssh_keys en Claves SSH. Pase la lista de claves explícitamente. De forma predeterminada, se pasa una lista vacía, incluso si hay claves marcadas como "agregar por defecto" en su panel.
namestringlength 1…25write-onlydefault: Nombre personalizado para el VPS. Por defecto, el servidor se crea sin nombre.
projectintegernullablewrite-onlyID del proyecto. Las opciones disponibles para project se pueden obtener
en la lista de proyectos.
disk_classintegernullablewrite-onlyID de la clase de disco VPS.
Obtenga las opciones disponibles para tariff en Discos VPS.
Al utilizar una configuración personalizada, utilice el atributo dentro del parámetro configuration.
No utilice ambos parámetros al mismo tiempo.
bandwidthintegernullablewrite-onlyLímite de ancho de banda a establecer para el pedido VPS. El precio por unidad se define en el valor bandwidth_tariff
webhookobjectwrite-onlyConfiguración de webhook como un objeto (abra la sección desplegable para más detalles). Es necesario para recibir una solicitud POST con los detalles del pedido y las credenciales de acceso una vez que se crea el VPS
placement_policystringwrite-onlydefault: OPTIONALSTRICTOPTIONAL
placement_groupintegernullablewrite-onlyprivate_networkintegernullablewrite-onlytagsarray string[]write-onlyEtiquetas para el VPS. Por defecto, el servidor se crea sin etiquetas.
VpsOrderCreateWebhookurlstring (uri)max length: 512ObligatorioLa URL a la que se envía la solicitud POST.
Se envía la lista completa de detalles (como en el método Detalles del pedido), pero con un campo adicional llamado credentials:
{
"credentials": {
"ip_address": "127.0.0.1",
"username": "root",
"password": "root_pass"
}
}
secretstringmax length: 64ObligatorioFrase secreta utilizada para la firma.
Al procesar una solicitud de webhook, utilice el encabezado "Fornex-Signature" para la validación.
Ejemplo en python:
import hmac
from hashlib import sha256
import json
from django.views.decorators.csrf import csrf_exempt
from django.http import HttpRequest, HttpResponse
@csrf_exempt
def webhook_handler(request: HttpRequest):
signature = request.headers["Fornex-Signature"]
secret = "secret"
expected_signature = hmac.new(secret.encode(), request.body, sha256).hexdigest()
if signature != expected_signature:
raise ValueError("Invalid signature.")
print(json.loads(request.body.decode()))
return HttpResponse()
VpsOrderCreateWebhookRequesturlstring (uri)length 1…512ObligatorioLa URL a la que se envía la solicitud POST.
Se envía la lista completa de detalles (como en el método Detalles del pedido), pero con un campo adicional llamado credentials:
{
"credentials": {
"ip_address": "127.0.0.1",
"username": "root",
"password": "root_pass"
}
}
secretstringlength 1…64ObligatorioFrase secreta utilizada para la firma.
Al procesar una solicitud de webhook, utilice el encabezado "Fornex-Signature" para la validación.
Ejemplo en python:
import hmac
from hashlib import sha256
import json
from django.views.decorators.csrf import csrf_exempt
from django.http import HttpRequest, HttpResponse
@csrf_exempt
def webhook_handler(request: HttpRequest):
signature = request.headers["Fornex-Signature"]
secret = "secret"
expected_signature = hmac.new(secret.encode(), request.body, sha256).hexdigest()
if signature != expected_signature:
raise ValueError("Invalid signature.")
print(json.loads(request.body.decode()))
return HttpResponse()
VpsResetPasswordpasswdstringread-onlyObligatorioSu nueva contraseña.
resp_idintegerread-onlyObligatorioID de la operación para verificar su estado, para más detalles ver. vps_log_details
VpsStatusstatusstringObligatorioon | off | unknown
VpsTariffidintegerread-onlyObligatorionamestringmax length: 128ObligatorioEl nombre del plan aparece en las facturas, por lo que debe ser corto y estar escrito en caracteres latinos, por ejemplo Cloud NVMe 1.
cpu_countintegerObligatorioramstringObligatoriodiskstringObligatoriobandwidthstringObligatoriopricenumber (double)ObligatorioVpsUpdateprivate_network_enabledbooleanObligatorioConectar el pedido a una red privada. Esto permitirá el intercambio directo de datos con otros pedidos en la misma red, mejorando la velocidad y seguridad. Por el momento, solo se crea una red privada por cuenta.
WhenEnumnowexpired