v2.3.23OpenAPI 3.0.3

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>

Crea una clave API en el área de cliente

Account

#

Saldo de la cuenta

Devuelve el saldo de la cuenta actual

get/account/balance

Respuestas

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

Información

get/account/info

Respuestas

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

Facturas

Devuelve el número y el importe total de las facturas no pagadas.

get/account/invoices

Respuestas

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

Plans

#

Copias de seguridad

get/plans/backups

Respuestas

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

Servidores dedicados

get/plans/dedicated

Respuestas

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

    El 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-onlyObligatorio
    cpu_countintegermin: 0max: 65535
    ramstringObligatorio
    diskstringObligatorio
    bandwidthstringObligatorio
    pricenumber (double)Obligatorio
    locationsarray array[]Obligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/plans/dedicated"
Respuesta200
[
  {
    "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

get/plans/hosting

Respuestas

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

    El 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: 65535nullable
    pricenumber (double)Obligatorio
    cpu_coresintegermin: 0max: 65535nullable
    hdd_spaceinteger (int64)min: 0max: 4294967295nullable

    GB

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

VPN

get/plans/vpn

Respuestas

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

VPS

get/plans/vps

Respuestas

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

    El 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_countintegerObligatorio
    ramstringObligatorio
    diskstringObligatorio
    bandwidthstringObligatorio
    pricenumber (double)Obligatorio
    disk_classVpsDiskClassObligatorio
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/plans/vps"
Respuesta200
[
  {
    "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

get/project/

Parámetros de consulta

  • pageinteger

    Número de página dentro del conjunto de resultados paginados.

    default: 1
  • page_sizeinteger

    Número de resultados a devolver por página.

    default: 10

Respuestas

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

post/project/

Cuerpo

Obligatorio
namestringlength 1…40Obligatorio
commentstringmax length: 256

Respuestas

  • 201application/json
    idintegerread-onlyObligatorio
    namestringmax length: 40Obligatorio
    commentstringmax length: 256
    logostring (uri)read-onlyObligatorio
Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"name":"string","comment":"string"}' \
  "https://fornex.com/api/project/"
Respuesta201
{
  "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

get/project/{id}/

Parámetros de ruta

  • idintegerObligatorio

    Un valor de entero único que identifica este project.

Respuestas

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

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

patch/project/{id}/

Parámetros de ruta

  • idintegerObligatorio

    Un valor de entero único que identifica este project.

Cuerpo

namestringlength 1…40
commentstringmax length: 256

Respuestas

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

curl -X PATCH \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"name":"string","comment":"string"}' \
  "https://fornex.com/api/project/$ID/"
Respuesta200
{
  "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

delete/project/{id}/

Parámetros de ruta

  • idintegerObligatorio

    Un valor de entero único que identifica este project.

Respuestas

  • 204

    No response body

Fornex API Key
ID='1'

curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/project/$ID/"
#

Agregar pedido

Solicitud para agregar un pedido del Proyecto.

post/project/{id}/add_orders/

Parámetros de ruta

  • idintegerObligatorio

    Un valor de entero único que identifica este project.

Cuerpo

Obligatorio
ordersarray string[]write-onlyObligatorio

Respuestas

  • 200

    No response body

Fornex API Key
ID='1'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"orders":["string"]}' \
  "https://fornex.com/api/project/$ID/add_orders/"
#

Editar logo

Solicitud para editar el logotipo del Proyecto.

put/project/{id}/edit_logo/

Parámetros de ruta

  • idintegerObligatorio

    Un valor de entero único que identifica este project.

Cuerpo

multipart/form-data
logostring (binary)

Ruta al archivo.

Respuestas

  • 200application/json
    logostring (uri)

    Ruta al archivo.

Fornex API Key
ID='1'

curl -X PUT \
  -H "Content-Type: multipart/form-data" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  -F "logo=@\"path/to/file\"" \
  "https://fornex.com/api/project/$ID/edit_logo/"
Respuesta200
{
  "type": "object",
  "properties": {
    "logo": {
      "type": "string",
      "format": "uri",
      "description": "Ruta al archivo."
    }
  }
}
#

Eliminar pedido

Solicitud para eliminar un pedido del Proyecto.

post/project/{id}/remove_orders/

Parámetros de ruta

  • idintegerObligatorio

    Un valor de entero único que identifica este project.

Cuerpo

Obligatorio
ordersarray string[]write-onlyObligatorio

Respuestas

  • 200

    No response body

Fornex API Key
ID='1'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"orders":["string"]}' \
  "https://fornex.com/api/project/$ID/remove_orders/"

Orders

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

get/orders/

Parámetros de consulta

  • cancel_markboolean

    Filtrar los pedidos que serán cancelados.

  • orderingstring

    Campo utilizado para ordenar los resultados.

    default: id
    expiredid
  • pageinteger

    Número de página dentro del conjunto de resultados paginados.

    default: 1
  • page_sizeinteger

    Número de resultados a devolver por página.

    default: 10

Respuestas

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

get/orders/{order_id}/

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido en el formato NN-NNNNN. El prefijo puede variar según el tipo de pedido.

Respuestas

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

    Marcador que indica que el pedido será cancelado.

    projectobjectnullableread-onlyObligatorio
Fornex API Key
ORDER_ID='34-1234'

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

patch/orders/{order_id}/

Parámetros de ruta

  • order_idstringObligatorio

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

projectintegernullable

Proyecto del pedido. Introduzca una cadena vacía si desea eliminar el proyecto.

Respuestas

  • 200application/json
    namestringmax length: 64default:

    Nombre personalizado para el pedido.

    tagsarray string[]Obligatorio

    Etiquetas para el pedido como lista.

    projectintegernullableObligatorio

    Proyecto del pedido.

Fornex API Key
ORDER_ID='34-1234'

curl -X PATCH \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"name": "DB Host"}' \
  "https://fornex.com/api/orders/$ORDER_ID/"
Respuesta200
{
  "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.

post/orders/{order_id}/cancel/

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido en el formato NN-NNNNN. El prefijo puede variar según el tipo de pedido.

Cuerpo

whenstringwrite-onlydefault: expired
valores
  • now
  • expired

El parámetro describe cuándo debe cancelarse el pedido: ahora o una vez que expire el período de pago.

save_backupbooleanwrite-onlydefault: true

El parámetro describe si se debe tomar una instantánea del VPS antes de eliminar la máquina virtual o no.

Respuestas

  • 200application/json
    statusstringread-onlyObligatorio
    valores
    • canceled
    • cancel_pending
    messagestringread-onlyObligatorio
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"when": "expired", "save_backup": true}' \
  "https://fornex.com/api/orders/$ORDER_ID/cancel/"
Respuesta200
{
  "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.

delete/orders/{order_id}/cancel/

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido en el formato NN-NNNNN. El prefijo puede variar según el tipo de pedido.

Respuestas

  • 204

    No response body

Fornex API Key
ORDER_ID='34-1234'

curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/$ORDER_ID/cancel/"

VPS: Orders

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

get/orders/vps/

Parámetros de consulta

  • cancel_markboolean

    Filtrar los pedidos que serán cancelados.

  • orderingstring

    Campo utilizado para ordenar los resultados.

    default: id
    expiredid
  • pageinteger

    Número de página dentro del conjunto de resultados paginados.

    default: 1
  • page_sizeinteger

    Número de resultados a devolver por página.

    default: 10

Respuestas

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

get/orders/vps/{order_id}/

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido en el formato NN-NNNNN.

Respuestas

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

    Marcador que indica que el pedido será cancelado.

    projectobjectnullableread-onlyObligatorio
    configurationobjectread-onlyObligatorio

    Configuración del servidor

Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/$ORDER_ID/"
Respuesta200
{
  "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) o configuration (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) o app (para instalar una aplicación) o snapshot (para restaurar el VPS desde su instantánea).
  • País: elija location de las opciones disponibles.

Para cancelar y eliminar un VPS a través de API, utilice el método de cancelación de pedidos universal.

post/orders/vps/

Cuerpo

Obligatorio
tariffintegernullablewrite-only

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

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

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

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

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

Código de país de dos letras de la ubicación del pedido. Obtenga las opciones disponibles para location en Ubicaciones VPS.

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

El número de meses durante los cuales se renueva el pedido una vez creado (por ejemplo, 3).

servicesarray object[]OrderServiceCreateRequest[]write-only

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

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

ID del proyecto. Las opciones disponibles para project se pueden obtener en la lista de proyectos.

disk_classintegernullablewrite-only

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

Límite de ancho de banda a establecer para el pedido VPS. El precio por unidad se define en el valor bandwidth_tariff

webhookobjectwrite-only

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

Etiquetas para el VPS. Por defecto, el servidor se crea sin etiquetas.

Respuestas

Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"tariff": 1, "template": 1, "location": "DE", "term": 3, "services": [{"service": 1, "count": 1}], "ssh_keys": [1, 3]}' \
  "https://fornex.com/api/orders/vps/"
Respuesta201
{
  "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.

get/orders/vps/templates/

Respuestas

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

    ID de la plantilla.

    namestringmax length: 64Obligatorio

    Nombre de la plantilla.

    osstringread-onlyObligatorio
    panelnullable

    Panel de control utilizado en la plantilla, puede estar vacío.

    Uno de
    archstring
    valores
    • x86_64
    • arm

    Tipo de arquitectura de CPU requerida para esta plantilla.

    min_storage_spaceinteger (int64)min: 0max: 4294967295nullable

    Espacio de almacenamiento mínimo requerido para esta plantilla.

    min_ram_volumeintegermin: 0max: 65535nullable

    Volumen mínimo de RAM requerido para esta plantilla.

    min_cpu_coresinteger (int64)min: 0max: 4294967295nullable

    Número mínimo de núcleos de CPU requeridos para esta plantilla.

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

get/orders/vps/apps/

Respuestas

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

    ID de la aplicación.

    namestringmax length: 64Obligatorio

    Nombre de la aplicación.

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

get/orders/vps/snapshots/

Respuestas

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

    ID de la instantánea.

    namestringmax length: 64Obligatorio

    Nombre de la instantánea.

    size_gbnumber (double)read-onlyObligatorio

    Tamaño de la instantánea en GB.

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

get/orders/vps/locations/

Respuestas

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

get/orders/vps/disks/

Respuestas

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

    Мb/sec

    limit_read_iops_secintegermin: 0max: 65535Obligatorio

    Op/sec

    limit_write_iops_secintegermin: 0max: 65535Obligatorio

    Op/sec

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

    Costo por 1 GB

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

get/orders/vps/services/

Respuestas

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

    ID del servicio.

    namestringmax length: 128Obligatorio

    Nombre del servicio.

    descriptionstringmax length: 255

    Descripción del servicio.

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

    Precio del servicio.

    billing_typestringObligatorio
    valores
    • single
    • periodic

    Coste único o mensual.

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

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

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido (incluyendo prefijo 34-...)

Parámetros de consulta

  • pageinteger

    Número de página dentro del conjunto de resultados paginados.

    default: 1
  • page_sizeinteger

    Número de resultados a devolver por página.

    default: 10

Respuestas

  • 200application/json
    countintegerObligatorioexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]Template[]Obligatorio
Fornex API Key
ORDER_ID='34-1234'

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

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

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido (incluyendo prefijo 34-...)

Parámetros de consulta

  • pageinteger

    Número de página dentro del conjunto de resultados paginados.

    default: 1
  • page_sizeinteger

    Número de resultados a devolver por página.

    default: 10

Respuestas

  • 200application/json
    countintegerObligatorioexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]AppTemplate[]Obligatorio
Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/reinstall/apps/"
Respuesta200
{
  "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.

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

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido (incluyendo prefijo 34-...)

Parámetros de consulta

  • pageinteger

    Número de página dentro del conjunto de resultados paginados.

    default: 1
  • page_sizeinteger

    Número de resultados a devolver por página.

    default: 10

Respuestas

  • 200application/json
    countintegerObligatorioexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]Snapshot[]Obligatorio
Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/reinstall/snapshots/"
Respuesta200
{
  "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.

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

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido (incluyendo prefijo 34-...)

Cuerpo

Public API version: exposes template instead of ostemplate.

appintegernullablewrite-only
templateintegerwrite-only
snapshotintegernullablewrite-only

Respuestas

  • 200application/json

    Public API version: exposes template instead of ostemplate.

    display_namestringread-onlyObligatorio
    statusstringread-onlyObligatorio
    datestring (date-time)read-onlyObligatorio
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"template":0}' \
  "https://fornex.com/api/vps/$ORDER_ID/reinstall/reinstall/"
Respuesta200
{
  "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

get/vps/{order_id}/status/

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido (incluyendo prefijo 34-...)

Respuestas

  • 200application/json
    statusstringObligatorio

    on | off | unknown

Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/status/"
Respuesta200
{
  "status": "on"
}
#

Iniciar VPS

post/vps/{order_id}/start/

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido (incluyendo prefijo 34-...)

Respuestas

  • 200application/json
    pkintegerread-onlyObligatorio
    actionstringread-onlyObligatorio
    notestringread-onlyObligatorio
    userstringread-onlyObligatorio
    timestring (date-time)read-onlyObligatorio
    completedbooleanread-onlyObligatorio
    job_statestringread-onlyObligatorio
    valores
    • ready
    • error
    • done
    job_actionstringread-onlyObligatorio
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/start/"
Respuesta200
{
  "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

post/vps/{order_id}/stop/

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido (incluyendo prefijo 34-...)

Respuestas

  • 200application/json
    pkintegerread-onlyObligatorio
    actionstringread-onlyObligatorio
    notestringread-onlyObligatorio
    userstringread-onlyObligatorio
    timestring (date-time)read-onlyObligatorio
    completedbooleanread-onlyObligatorio
    job_statestringread-onlyObligatorio
    valores
    • ready
    • error
    • done
    job_actionstringread-onlyObligatorio
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/stop/"
Respuesta200
{
  "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

post/vps/{order_id}/restart/

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido (incluyendo prefijo 34-...)

Respuestas

  • 200application/json
    pkintegerread-onlyObligatorio
    actionstringread-onlyObligatorio
    notestringread-onlyObligatorio
    userstringread-onlyObligatorio
    timestring (date-time)read-onlyObligatorio
    completedbooleanread-onlyObligatorio
    job_statestringread-onlyObligatorio
    valores
    • ready
    • error
    • done
    job_actionstringread-onlyObligatorio
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/restart/"
Respuesta200
{
  "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

post/vps/{order_id}/rescue_mode/

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido (incluyendo prefijo 34-...)

Respuestas

  • 200application/json
    pkintegerread-onlyObligatorio
    actionstringread-onlyObligatorio
    notestringread-onlyObligatorio
    userstringread-onlyObligatorio
    timestring (date-time)read-onlyObligatorio
    completedbooleanread-onlyObligatorio
    job_statestringread-onlyObligatorio
    valores
    • ready
    • error
    • done
    job_actionstringread-onlyObligatorio
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/rescue_mode/"
Respuesta200
{
  "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

post/vps/{order_id}/stop_rescue_mode/

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido (incluyendo prefijo 34-...)

Respuestas

  • 200application/json
    pkintegerread-onlyObligatorio
    actionstringread-onlyObligatorio
    notestringread-onlyObligatorio
    userstringread-onlyObligatorio
    timestring (date-time)read-onlyObligatorio
    completedbooleanread-onlyObligatorio
    job_statestringread-onlyObligatorio
    valores
    • ready
    • error
    • done
    job_actionstringread-onlyObligatorio
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/stop_rescue_mode/"
Respuesta200
{
  "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.

post/vps/{order_id}/hard_reset/

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido (incluyendo prefijo 34-...)

Respuestas

  • 200application/json
    pkintegerread-onlyObligatorio
    actionstringread-onlyObligatorio
    notestringread-onlyObligatorio
    userstringread-onlyObligatorio
    timestring (date-time)read-onlyObligatorio
    completedbooleanread-onlyObligatorio
    job_statestringread-onlyObligatorio
    valores
    • ready
    • error
    • done
    job_actionstringread-onlyObligatorio
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/hard_reset/"
Respuesta200
{
  "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

post/vps/{order_id}/passwd_reset/

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido (incluyendo prefijo 34-...)

Respuestas

  • 200application/json
    passwdstringread-onlyObligatorio

    Su nueva contraseña.

    resp_idintegerread-onlyObligatorio

    ID de la operación para verificar su estado, para más detalles ver. vps_log_details

Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/passwd_reset/"
Respuesta200
{
  "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

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

Parámetros de ruta

  • log_idintegerObligatorio

    ID de registro

  • order_idstringObligatorio

    ID del pedido (incluyendo prefijo 34-...)

Respuestas

  • 200application/json
    pkintegerread-onlyObligatorio
    actionstringread-onlyObligatorio
    notestringread-onlyObligatorio
    userstringread-onlyObligatorio
    timestring (date-time)read-onlyObligatorio
    completedbooleanread-onlyObligatorio
    job_statestringread-onlyObligatorio
    valores
    • ready
    • error
    • done
    job_actionstringread-onlyObligatorio
Fornex API Key
LOG_ID='1'
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/log_details/$LOG_ID/"
Respuesta200
{
  "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.

patch/vps/{order_id}/

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido (incluyendo prefijo 34-...)

Cuerpo

private_network_enabledboolean

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.

Respuestas

  • 200application/json
    private_network_enabledbooleanObligatorio

    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.

Fornex API Key
ORDER_ID='34-1234'

curl -X PATCH \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"private_network_enabled":false}' \
  "https://fornex.com/api/vps/$ORDER_ID/"
Respuesta200
{
  "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).

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

Parámetros de ruta

  • fieldstringObligatorio

    Campo de estadísticas

    cpudiskiomemorytraffic
  • order_idstringObligatorio

    ID del pedido (incluyendo prefijo 34-...)

Parámetros de consulta

  • endstring

    Fin del período (predeterminado - now)

  • startstring

    Inicio del período (predeterminado - -1h)

Respuestas

Fornex API Key
FIELD='traffic'
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/stats/$FIELD/"
Respuesta200
{
  "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

get/private-network/

Parámetros de consulta

  • pageinteger

    Número de página dentro del conjunto de resultados paginados.

    default: 1
  • page_sizeinteger

    Número de resultados a devolver por página.

    default: 10

Respuestas

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

Crear red

post/private-network/

Respuestas

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

Ubicaciones admitidas

get/private-network/locations/

Parámetros de consulta

  • pageinteger

    Número de página dentro del conjunto de resultados paginados.

    default: 1
  • page_sizeinteger

    Número de resultados a devolver por página.

    default: 10

Respuestas

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

delete/private-network/{id}/

Parámetros de ruta

  • idintegerObligatorio

    Un valor de entero único que identifica este User VNI.

Respuestas

  • 204

    No response body

Fornex API Key
ID='1'

curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/private-network/$ID/"

Dedicated Order

#

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

get/orders/ds/

Parámetros de consulta

  • cancel_markboolean

    Filtrar los pedidos que serán cancelados.

  • orderingstring

    Campo utilizado para ordenar los resultados.

    default: id
    expiredid
  • pageinteger

    Número de página dentro del conjunto de resultados paginados.

    default: 1
  • page_sizeinteger

    Número de resultados a devolver por página.

    default: 10

Respuestas

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

get/orders/ds/{order_id}/

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido en el formato NN-NNNNNNN.

Respuestas

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

    Marcador que indica que el pedido será cancelado.

    projectobjectnullableread-onlyObligatorio
    configurationobjectread-onlyObligatorio

    Configuración del servidor

Fornex API Key
ORDER_ID='34-123456'

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

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

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido (incluyendo prefijo 34-...)

Parámetros de consulta

  • periodstring

    Período para mostrar estadísticas

    default: month
    monthyear
  • portinteger

    Número de puerto secuencial

    default: 0

Respuestas

  • 200application/json
    dataarrayObligatorio
    orderstringObligatorio
    periodstringObligatorio
Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/ds/$ORDER_ID/traffic/"
Respuesta200
{
  "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

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

Parámetros de ruta

  • order_idintegerObligatorio

    Un valor de entero único que identifica este Pedido DS.

Respuestas

  • 200application/json
    orderstringObligatorio
    limitintegerObligatorio
    range_startstring (date)Obligatorio
    range_endstring (date)Obligatorio
    usedintegerObligatorio
    used_ratenumber (double)Obligatorio
Fornex API Key
ORDER_ID='1'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/ds/$ORDER_ID/traffic_used/"
Respuesta200
{
  "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

get/dns/domain/

Parámetros de consulta

  • pageinteger

    Número de página dentro del conjunto de resultados paginados.

    default: 1
  • page_sizeinteger

    Número de resultados a devolver por página.

    default: 10
  • qstring

    buscar por nombre o IP

  • tagstring

    filtrar por etiqueta

Respuestas

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

post/dns/domain/

Cuerpo

Obligatorio
namestringlength 1…128Obligatorio
ipstring (ipv4)min length: 1write-onlyObligatorio

Respuestas

  • 201application/json
    namestringmax length: 128Obligatorio
    createdstring (date-time)read-onlyObligatorio
    updatedstring (date-time)read-onlyObligatorio
    tagsarray string[]read-onlyObligatorio
    entry_setarray object[]Entry[]read-onlyObligatorio
Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"name": "example.com", "ip": "192.0.2.1"}' \
  "https://fornex.com/api/dns/domain/"
Respuesta201
{
  "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

delete/dns/domain/{name}/

Parámetros de ruta

  • namestringObligatorio

    Nombre de dominio

Respuestas

  • 204

    No response body

Fornex API Key
NAME='example.com'

curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/dns/domain/$NAME/"
#

Archivo de zona

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

Parámetros de ruta

  • namestringObligatorio

    Nombre de dominio

Respuestas

  • 200text/plain

    Zone file content (BIND format)

    string
Fornex API Key
NAME='example.com'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/dns/domain/$NAME/zone_file/"
Respuesta200
"$TTL 21600\n@\tIN\tSOA\tns1.fornex.com. hostmaster.fornex.com. (\n...\n"
#

Actualizar etiquetas

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

Parámetros de ruta

  • namestringObligatorio

    Nombre de dominio

Cuerpo

Obligatorio
tagsarray string[]Obligatorio

Respuestas

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

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

Domain: Entry

#

Lista de registros

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

Parámetros de ruta

  • namestringObligatorio

    Nombre de dominio

Parámetros de consulta

  • qstring

    filtro de registros

  • typestring
    AAAAACAACNAMEMXNSSRVTXTnull

Respuestas

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

    Nombre de host del registro: '@, *, subdomain'

    typestringObligatorio
    valores
    • A
    • AAAA
    • TXT
    • CNAME
    • NS
    • MX
    • SRV
    • CAA

    Tipo de registro

    priointeger (int64)min: 0max: 4294967295nullable

    Prioridad, se utiliza solo para SRV y MX

    valuestringmax length: 1024Obligatorio

    Valor del registro según el tipo, por ejemplo IP para registros A

    ttlnullable

    TTL del registro (opcional, predeterminado: 3600 seg.)

    Uno de
Fornex API Key
NAME='example.com'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/dns/domain/$NAME/entry_set/"
Respuesta200
[
  {
    "id": 1,
    "host": "www",
    "type": "A",
    "ttl": null,
    "value": "10.10.10.18"
  }
]
#

Agregar registro

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

Parámetros de ruta

  • namestringObligatorio

    Nombre de dominio

Cuerpo

Obligatorio
hoststringmax length: 255default:

Nombre de host del registro: '@, *, subdomain'

typestringObligatorio
valores
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA

Tipo de registro

priointeger (int64)min: 0max: 4294967295nullable

Prioridad, se utiliza solo para SRV y MX

valuestringlength 1…1024Obligatorio

Valor del registro según el tipo, por ejemplo IP para registros A

ttlnullable

TTL del registro (opcional, predeterminado: 3600 seg.)

Uno de

Respuestas

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

    Nombre de host del registro: '@, *, subdomain'

    typestringObligatorio
    valores
    • A
    • AAAA
    • TXT
    • CNAME
    • NS
    • MX
    • SRV
    • CAA

    Tipo de registro

    priointeger (int64)min: 0max: 4294967295nullable

    Prioridad, se utiliza solo para SRV y MX

    valuestringmax length: 1024Obligatorio

    Valor del registro según el tipo, por ejemplo IP para registros A

    ttlnullable

    TTL del registro (opcional, predeterminado: 3600 seg.)

    Uno de
Fornex API Key
NAME='example.com'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"host": "www", "type": "A", "ttl": null, "value": "10.10.10.18"}' \
  "https://fornex.com/api/dns/domain/$NAME/entry_set/"
Respuesta201
{
  "id": 1,
  "host": "www",
  "type": "A",
  "ttl": null,
  "value": "10.10.10.18"
}
#

Actualizar registro

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

Parámetros de ruta

  • idintegerObligatorio

    Un valor de entero único que identifica este Registro DNS.

  • namestringObligatorio

    Nombre de dominio

Cuerpo

Obligatorio
hoststringmax length: 255default:

Nombre de host del registro: '@, *, subdomain'

typestringObligatorio
valores
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA

Tipo de registro

priointeger (int64)min: 0max: 4294967295nullable

Prioridad, se utiliza solo para SRV y MX

valuestringlength 1…1024Obligatorio

Valor del registro según el tipo, por ejemplo IP para registros A

ttlnullable

TTL del registro (opcional, predeterminado: 3600 seg.)

Uno de

Respuestas

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

    Nombre de host del registro: '@, *, subdomain'

    typestringObligatorio
    valores
    • A
    • AAAA
    • TXT
    • CNAME
    • NS
    • MX
    • SRV
    • CAA

    Tipo de registro

    priointeger (int64)min: 0max: 4294967295nullable

    Prioridad, se utiliza solo para SRV y MX

    valuestringmax length: 1024Obligatorio

    Valor del registro según el tipo, por ejemplo IP para registros A

    ttlnullable

    TTL del registro (opcional, predeterminado: 3600 seg.)

    Uno de
Fornex API Key
ID='1'
NAME='example.com'

curl -X PUT \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"host": "www", "type": "A", "ttl": null, "value": "10.10.10.18"}' \
  "https://fornex.com/api/dns/domain/$NAME/entry_set/$ID/"
Respuesta200
{
  "id": 1,
  "host": "www",
  "type": "A",
  "ttl": null,
  "value": "10.10.10.18"
}
#

Eliminar registro

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

Parámetros de ruta

  • idintegerObligatorio

    Un valor de entero único que identifica este Registro DNS.

  • namestringObligatorio

    Nombre de dominio

Respuestas

  • 204

    No response body

Fornex API Key
ID='1'
NAME='example.com'

curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/dns/domain/$NAME/entry_set/$ID/"

Domain Order

#

Cambiar NS

Solicitud para cambiar Nameservers para el pedido de Dominio.

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

Parámetros de ruta

  • order_idstringObligatorio

    número de pedido

Cuerpo

Obligatorio
nssstringmin length: 1Obligatorio

lista de NS, separados por coma

Respuestas

Fornex API Key
ORDER_ID='375-13'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"nss": "ns1.examle.com,ns2.example.com"}' \
  "https://fornex.com/api/dns/order/$ORDER_ID/change_ns/"
Respuesta200
{
  "type": "object",
  "properties": {
    "nss": {
      "type": "string",
      "title": "Nameservers",
      "description": "lista de NS, separados por coma"
    }
  },
  "required": [
    "nss"
  ]
}

SSH Keys

#

Lista de claves

get/ssh_keys/

Respuestas

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

    Clave pública en texto sin formato.

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

post/ssh_keys/

Cuerpo

Obligatorio
keystringlength 1…16384Obligatorio

Clave pública en texto sin formato.

titlestringlength 1…128Obligatorio
defaultboolean

Respuestas

  • 201application/json
    idintegerread-onlyObligatorio
    userstringread-onlyObligatorio
    keystringmax length: 16384Obligatorio

    Clave pública en texto sin formato.

    titlestringmax length: 128Obligatorio
    datestring (date-time)read-onlyObligatorio
    defaultboolean
Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test", "title": "Dev Laptop", "default": true}' \
  "https://fornex.com/api/ssh_keys/"
Respuesta201
{
  "id": 1,
  "key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test",
  "title": "Dev Laptop",
  "date": "2019-08-24T14:15:22Z",
  "default": true
}
#

Eliminar clave

delete/ssh_keys/{key_id}/

Parámetros de ruta

  • key_idintegerObligatorio

    Un valor de entero único que identifica este user ssh key.

Respuestas

  • 204

    No response body

Fornex API Key
KEY_ID='1'

curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/ssh_keys/$KEY_ID/"

VPS SSH Keys

#

Lista de claves del pedido

get/vps/{order_id}/ssh_keys/

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido (incluyendo prefijo 34-...)

Respuestas

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

    Clave pública en texto sin formato.

    titlestringmax length: 128Obligatorio
    datestring (date-time)read-onlyObligatorio
    defaultboolean
Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/ssh_keys/"
Respuesta200
[
  {
    "id": 1,
    "key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test",
    "title": "Dev Laptop",
    "date": "2019-08-24T14:15:22Z",
    "default": true
  }
]
#

Agregar clave al pedido

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

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido (incluyendo prefijo 34-...)

Cuerpo

Obligatorio
key_pkintegerwrite-onlyObligatorio

Respuestas

  • 200

    No response body

Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"key_pk": 1}' \
  "https://fornex.com/api/vps/$ORDER_ID/ssh_keys/add/"
#

Eliminar clave del pedido

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

Parámetros de ruta

  • order_idstringObligatorio

    ID del pedido (incluyendo prefijo 34-...)

Cuerpo

Obligatorio
key_pkintegerwrite-onlyObligatorio

Respuestas

  • 200

    No response body

Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"key_pk": 1}' \
  "https://fornex.com/api/vps/$ORDER_ID/ssh_keys/delete/"

S3 Storage

#

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

get/orders/s3/

Parámetros de consulta

  • cancel_markboolean

    Filtrar los pedidos que serán cancelados.

  • orderingstring

    Campo utilizado para ordenar los resultados.

    default: id
    expiredid
  • pageinteger

    Número de página dentro del conjunto de resultados paginados.

    default: 1
  • page_sizeinteger

    Número de resultados a devolver por página.

    default: 10

Respuestas

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

get/orders/s3/{order_id}/

Parámetros de ruta

  • order_idstringObligatorio

    ID de pedido en formato NNN-NN.

Respuestas

  • 200application/json
    idstringread-onlyObligatorio
    namestringread-onlyObligatorio
    hostnamestringObligatorio
    access_keystringread-onlyObligatorio
    secret_keystringread-onlyObligatorio
    bucket_namestringread-onlyObligatorio
    space_usedintegerObligatorio
    cost_monthnumber (double)read-onlyObligatorio
    expiration_datestring (date-time)read-onlyObligatorio
    tagsarray string[]Obligatorio
    cancel_markbooleanread-onlyObligatorio

    Marcador que indica que el pedido será cancelado.

    projectobjectnullableread-onlyObligatorio
Fornex API Key
ORDER_ID='664-7'

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

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

Parámetros de ruta

  • order_idintegerObligatorio

    Un valor de entero único que identifica este Pedido S3.

Cuerpo

Obligatorio
space_warning_notify_gbintegermin: 0Obligatorio

Respuestas

Fornex API Key
ORDER_ID='1'

curl -X PUT \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"space_warning_notify_gb":0}' \
  "https://fornex.com/api/orders/s3/$ORDER_ID/notification_threshold/"
Respuesta200
{
  "type": "object",
  "properties": {
    "space_warning_notify_gb": {
      "type": "integer",
      "minimum": 0
    }
  },
  "required": [
    "space_warning_notify_gb"
  ]
}

VPN

#

Configuración OpenVPN

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

Parámetros de ruta

  • order_idstringObligatorio

    número de pedido

  • protostringObligatorio

    Protocolo

    tcpudp

Respuestas

  • 200text/plain

    OpenVPN profile

    string
Fornex API Key
ORDER_ID='301-12312'
PROTO='udp'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vpn/$ORDER_ID/config-$PROTO.ovpn"
Respuesta200
{
  "type": "string"
}
#

Configuración IKEv2 para MacOS/iOS

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

Parámetros de ruta

  • order_idstringObligatorio

    número de pedido

Respuestas

  • 200text/plain

    IKEv2 mobileconfig

    string
Fornex API Key
ORDER_ID='301-12312'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vpn/$ORDER_ID/config-ikev2.mobileconfig"
Respuesta200
{
  "type": "string"
}
#

Configuración IKEv2 para Android

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

Parámetros de ruta

  • order_idstringObligatorio

    número de pedido

Respuestas

  • 200application/json

    IKEv2 sswan

    string
Fornex API Key
ORDER_ID='301-12312'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vpn/$ORDER_ID/config-ikev2.sswan"
Respuesta200
{
  "type": "string"
}
#

Configuración WireGuard

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

Parámetros de ruta

  • order_idstringObligatorio

    número de pedido

Respuestas

  • 200text/plain

    WireGuard config

    string
Fornex API Key
ORDER_ID='301-12312'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vpn/$ORDER_ID/config-wireguard.conf"
Respuesta200
{
  "type": "string"
}
#

Configuración Outline VPN

get/vpn/{order_id}/config_outline

Parámetros de ruta

  • order_idstringObligatorio

    número de pedido

Respuestas

  • 200application/json
    access_urlstring (uri)Obligatorio
Fornex API Key
ORDER_ID='301-12312'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vpn/$ORDER_ID/config_outline"
Respuesta200
{
  "type": "object",
  "properties": {
    "access_url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "access_url"
  ]
}
#

Configuración Xray VPN

get/vpn/{order_id}/config_xray

Parámetros de ruta

  • order_idstringObligatorio

    número de pedido

Respuestas

  • 200application/json
    access_urlstring (uri)Obligatorio
Fornex API Key
ORDER_ID='301-12312'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vpn/$ORDER_ID/config_xray"
Respuesta200
{
  "type": "object",
  "properties": {
    "access_url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "access_url"
  ]
}

IP Addresses

Direcciones IP asignadas a sus servicios.

#

Lista de direcciones IP

get/network/ip-address/

Parámetros de consulta

  • orderingstring

    Qué campo usar para ordenar los resultados.

  • searchstring
  • typestring

Respuestas

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

post/tickets/ticket/

Cuerpo

Obligatorio

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

subjectstringlength 1…64Obligatorio

Una descripción breve de la esencia de su consulta.

messagestringlength 1…49152Obligatorio

Una descripción detallada del problema y otros detalles de la solicitud.

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

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

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

Respuestas

  • 201application/json

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

    subjectstringmax length: 64Obligatorio

    Una descripción breve de la esencia de su consulta.

    messagestringmax length: 49152Obligatorio

    Una descripción detallada del problema y otros detalles de la solicitud.

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

    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.

    orderstringnullable

    ID 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-onlyObligatorio
    idstringread-onlyObligatorio
    statusstringread-onlyObligatorio
Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"subject": "Hello, we need some help", "message": "We need some help with updating software..."}' \
  "https://fornex.com/api/tickets/ticket/"
Respuesta201
{
  "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

get/tickets/webhook_info/

Respuestas

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

    URL para enviar la solicitud, dejar en blanco para desactivar

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

post/tickets/webhook_set/

Cuerpo

urlstring (uri)max length: 512

URL para enviar la solicitud, dejar en blanco para desactivar

Respuestas

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

    URL para enviar la solicitud, dejar en blanco para desactivar

    last_error_datestring (date-time)nullableread-onlyObligatorio
    last_error_messagestringnullableread-onlyObligatorio
Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"last_error_date": null, "last_error_message": null, "url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"}' \
  "https://fornex.com/api/tickets/webhook_set/"
Respuesta201
{
  "last_error_date": null,
  "last_error_message": null,
  "url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
}

Esquemas

#AccountBalance
object
balancenumber (double)Obligatorio
currencystringObligatorio
#AccountInfo
object
emailstring (email)max length: 254
namestringObligatorio
#AccountInvoices
object
unpaid_invoices_countintegerObligatorio
unpaid_invoices_amountnumber (double)Obligatorio
currencystringObligatorio
#AppTemplate
object
idintegerread-onlyObligatorio

ID de la aplicación.

namestringmax length: 64Obligatorio

Nombre de la aplicación.

osstringread-onlyObligatorio
#BackupTariff
object
spaceintegerObligatorio
pricenumber (double)Obligatorio
unitsstringread-onlyObligatoriodefault: GB
#BandwidthEnum
valores
  • 10
  • 15
  • 20
  • 25
  • 40
#BillingTypeEnum
string
valores
  • single
  • periodic
#BlankEnum
valores
#CancelOrder
object
statusstringread-onlyObligatorio
valores
  • canceled
  • cancel_pending
messagestringread-onlyObligatorio
#CancelOrderRequest
object
whenstringwrite-onlydefault: expired
valores
  • now
  • expired

El parámetro describe cuándo debe cancelarse el pedido: ahora o una vez que expire el período de pago.

save_backupbooleanwrite-onlydefault: true

El parámetro describe si se debe tomar una instantánea del VPS antes de eliminar la máquina virtual o no.

#CancelOrderStatusEnum
string
valores
  • canceled
  • cancel_pending
#CpuArchEnum
string
valores
  • x86_64
  • arm
#DedicatedTariff
object
idintegerread-onlyObligatorio
namestringmax length: 128Obligatorio

El 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-onlyObligatorio
cpu_countintegermin: 0max: 65535
ramstringObligatorio
diskstringObligatorio
bandwidthstringObligatorio
pricenumber (double)Obligatorio
locationsarray array[]Obligatorio
#DiskTypeEnum
string
valores
  • hdd
  • nvme
  • ssd
  • sas
#DnsOrderNameservers
object
nssstringObligatorio

lista de NS, separados por coma

#DnsOrderNameserversRequest
object
nssstringmin length: 1Obligatorio

lista de NS, separados por coma

#Domain
object
namestringmax length: 128Obligatorio
createdstring (date-time)read-onlyObligatorio
updatedstring (date-time)read-onlyObligatorio
tagsarray string[]read-onlyObligatorio
entry_setarray object[]Entry[]read-onlyObligatorio
#DomainRequest
object
namestringlength 1…128Obligatorio
ipstring (ipv4)min length: 1write-onlyObligatorio
#DomainTags
object
tagsarray string[]Obligatorio
#DomainTagsRequest
object
tagsarray string[]Obligatorio
#DSConfiguration
object
cpu_countintegermin: 0max: 65535
cpustringObligatorio
motherboardstringObligatorio
chassisstringObligatorio
raid_controllerstringObligatorio
network_adapterstringObligatorio
bandwidthnullable
Uno de
memoryinteger (int64)min: 0max: 4294967295Obligatorio
disksstringread-onlyObligatorio
#DSOrder
object
idstringread-onlyObligatorio
namestringmax length: 64
tariffstringread-onlyObligatorio
tariff_pricenumber (double)nullableread-onlyObligatorio
typestringread-onlyObligatorio
hostnamestringnullableread-onlyObligatorio
ipaddress_setarray string[]nullableread-onlyObligatorio
statusstringread-onlyObligatorio
valores
  • unpaid
  • pending
  • active
  • expired
  • disabled
  • canceled
  • blocked
  • noprolong
cost_monthnumber (double)read-onlyObligatorio
expiration_datestring (date-time)read-onlyObligatorio
tagsarray string[]Obligatorio
cancel_markbooleanread-onlyObligatorio

Marcador que indica que el pedido será cancelado.

projectobjectnullableread-onlyObligatorio
configurationobjectread-onlyObligatorio

Configuración del servidor

#DSTraffic
object
dataarrayObligatorio
orderstringObligatorio
periodstringObligatorio
#DSTrafficUsed
object
orderstringObligatorio
limitintegerObligatorio
range_startstring (date)Obligatorio
range_endstring (date)Obligatorio
usedintegerObligatorio
used_ratenumber (double)Obligatorio
#Entry
object
idintegerread-onlyObligatorio
hoststringmax length: 255default:

Nombre de host del registro: '@, *, subdomain'

typestringObligatorio
valores
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA

Tipo de registro

priointeger (int64)min: 0max: 4294967295nullable

Prioridad, se utiliza solo para SRV y MX

valuestringmax length: 1024Obligatorio

Valor del registro según el tipo, por ejemplo IP para registros A

ttlnullable

TTL del registro (opcional, predeterminado: 3600 seg.)

Uno de
#EntryRequest
object
hoststringmax length: 255default:

Nombre de host del registro: '@, *, subdomain'

typestringObligatorio
valores
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA

Tipo de registro

priointeger (int64)min: 0max: 4294967295nullable

Prioridad, se utiliza solo para SRV y MX

valuestringlength 1…1024Obligatorio

Valor del registro según el tipo, por ejemplo IP para registros A

ttlnullable

TTL del registro (opcional, predeterminado: 3600 seg.)

Uno de
#EntryTypeEnum
string
valores
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA
#JobStateEnum
string
valores
  • ready
  • error
  • done
#LocationChoice
object
valuestringObligatorio
labelstringObligatorio
iconstringObligatorio
#NetworkOrder
object
idintegerObligatorio
namestringObligatorio
typestringObligatorio
linkstringread-onlyObligatorio
unique_numberstringObligatorio
#NullEnum
valores
  • null
#Order
object
idstringread-onlyObligatorio
namestringmax length: 64
tariffstringread-onlyObligatorio
tariff_pricenumber (double)nullableread-onlyObligatorio
typestringread-onlyObligatorio
hostnamestringnullableread-onlyObligatorio
ipaddress_setarray string[]nullableread-onlyObligatorio
statusstringread-onlyObligatorio
valores
  • unpaid
  • pending
  • active
  • expired
  • disabled
  • canceled
  • blocked
  • noprolong
cost_monthnumber (double)read-onlyObligatorio
expiration_datestring (date-time)read-onlyObligatorio
tagsarray string[]Obligatorio
cancel_markbooleanread-onlyObligatorio

Marcador que indica que el pedido será cancelado.

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

ID del servicio adicional.

countintegermin: 1default: 1

La cantidad de esta servicio adicional.

#OrderServiceCreateRequest
object
serviceintegerObligatorio

ID del servicio adicional.

countintegermin: 1default: 1

La cantidad de esta servicio adicional.

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

Nombre personalizado para el pedido.

tagsarray string[]Obligatorio

Etiquetas para el pedido como lista.

projectintegernullableObligatorio

Proyecto del pedido.

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

projectintegernullable

Proyecto del pedido. Introduzca una cadena vacía si desea eliminar el proyecto.

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

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.

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

Ruta al archivo.

#ProjectRemoveOrdersRequest
object
ordersarray string[]write-onlyObligatorio
#ProjectRequest
object
namestringlength 1…40Obligatorio
commentstringmax length: 256
#PublicChart
object
seriesarray object[]PublicChartSeries[]Obligatorio
subtitlestringObligatorio
#PublicChartSeries
object
namestringObligatorio
dataarrayObligatorio
typestring
colorstring
#PublicNetworkAddress
object
idintegerread-onlyObligatorio
ipstringObligatorio
locationLocationChoiceObligatorio
rdnsstringObligatorio
orderobjectnullableread-onlyObligatorio
#PublicReinstallRequest
object

Public API version: exposes template instead of ostemplate.

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

Public API version: exposes template instead of ostemplate.

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

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

subjectstringmax length: 64Obligatorio

Una descripción breve de la esencia de su consulta.

messagestringmax length: 49152Obligatorio

Una descripción detallada del problema y otros detalles de la solicitud.

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

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.

orderstringnullable

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

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

subjectstringlength 1…64Obligatorio

Una descripción breve de la esencia de su consulta.

messagestringlength 1…49152Obligatorio

Una descripción detallada del problema y otros detalles de la solicitud.

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

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

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

Marcador que indica que el pedido será cancelado.

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

Diferencia entre dos valores de ancho de banda consecutivos

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

ID del servicio.

namestringmax length: 128Obligatorio

Nombre del servicio.

descriptionstringmax length: 255

Descripción del servicio.

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

Precio del servicio.

billing_typestringObligatorio
valores
  • single
  • periodic

Coste único o mensual.

#Snapshot
object
idintegerread-onlyObligatorio

ID de la instantánea.

namestringmax length: 64Obligatorio

Nombre de la instantánea.

size_gbnumber (double)read-onlyObligatorio

Tamaño de la instantánea en GB.

created_atstring (date-time)Obligatorio
#SshKey
object
idintegerread-onlyObligatorio
userstringread-onlyObligatorio
keystringmax length: 16384Obligatorio

Clave pública en texto sin formato.

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

Clave pública en texto sin formato.

titlestringlength 1…128Obligatorio
defaultboolean
#Template
object
idintegerread-onlyObligatorio

ID de la plantilla.

namestringmax length: 64Obligatorio

Nombre de la plantilla.

osstringread-onlyObligatorio
panelnullable

Panel de control utilizado en la plantilla, puede estar vacío.

Uno de
archstring
valores
  • x86_64
  • arm

Tipo de arquitectura de CPU requerida para esta plantilla.

min_storage_spaceinteger (int64)min: 0max: 4294967295nullable

Espacio de almacenamiento mínimo requerido para esta plantilla.

min_ram_volumeintegermin: 0max: 65535nullable

Volumen mínimo de RAM requerido para esta plantilla.

min_cpu_coresinteger (int64)min: 0max: 4294967295nullable

Número mínimo de núcleos de CPU requeridos para esta plantilla.

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

URL para enviar la solicitud, dejar en blanco para desactivar

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

URL para enviar la solicitud, dejar en blanco para desactivar

#TtlEnum
valores
  • 120
  • 300
  • 600
  • 900
  • 1800
#UnitEnum
string
valores
  • gbps
  • mbps
#VHTariff
object
idintegerread-onlyObligatorio
namestringmax length: 128Obligatorio

El 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: 65535nullable
pricenumber (double)Obligatorio
cpu_coresintegermin: 0max: 65535nullable
hdd_spaceinteger (int64)min: 0max: 4294967295nullable

GB

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

Número de núcleos.

ram_sizeintegermin: 2max: 32

Volumen de RAM en gigabytes (GB).

disk_classintegernullable

Clase de disco.

disk_sizeintegermin: 20max: 300

Volumen de almacenamiento en gigabytes (GB).

cpu_archstring
valores
  • x86_64
  • arm

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

#VpsConfigurationRequest
object
cpu_countintegermin: 1max: 16

Número de núcleos.

ram_sizeintegermin: 2max: 32

Volumen de RAM en gigabytes (GB).

disk_classintegernullable

Clase de disco.

disk_sizeintegermin: 20max: 300

Volumen de almacenamiento en gigabytes (GB).

cpu_archstring
valores
  • x86_64
  • arm

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

#VpsDiskClass
object
idintegerread-onlyObligatorio
namestringmax length: 64Obligatorio
limit_total_mbytes_secintegermin: 0max: 65535Obligatorio

Мb/sec

limit_read_iops_secintegermin: 0max: 65535Obligatorio

Op/sec

limit_write_iops_secintegermin: 0max: 65535Obligatorio

Op/sec

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

Costo por 1 GB

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

Marcador que indica que el pedido será cancelado.

projectobjectnullableread-onlyObligatorio
configurationobjectread-onlyObligatorio

Configuración del servidor

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

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

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

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

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

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

Código de país de dos letras de la ubicación del pedido. Obtenga las opciones disponibles para location en Ubicaciones VPS.

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

El número de meses durante los cuales se renueva el pedido una vez creado (por ejemplo, 3).

servicesarray object[]OrderServiceCreateRequest[]write-only

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

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

ID del proyecto. Las opciones disponibles para project se pueden obtener en la lista de proyectos.

disk_classintegernullablewrite-only

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

Límite de ancho de banda a establecer para el pedido VPS. El precio por unidad se define en el valor bandwidth_tariff

webhookobjectwrite-only

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

Etiquetas para el VPS. Por defecto, el servidor se crea sin etiquetas.

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

La 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: 64Obligatorio

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

La 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…64Obligatorio

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

Su nueva contraseña.

resp_idintegerread-onlyObligatorio

ID de la operación para verificar su estado, para más detalles ver. vps_log_details

#VpsStatus
object
statusstringObligatorio

on | off | unknown

#VpsTariff
object
idintegerread-onlyObligatorio
namestringmax length: 128Obligatorio

El 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_countintegerObligatorio
ramstringObligatorio
diskstringObligatorio
bandwidthstringObligatorio
pricenumber (double)Obligatorio
disk_classVpsDiskClassObligatorio
#VpsUpdate
object
private_network_enabledbooleanObligatorio

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.

#WhenEnum
string
valores
  • now
  • expired