API Reference

Create firewall inbound rule

Pasos a seguir para crear una regla de entrada de firewall.

Prerequisitos

OrganizationId

Necesitaremos conocer nuestro organizacionId.

Para obtener dicha información utilizaremos este endpoint :

GET : /api-gateway/core/v1/organizations

Ejemplo Respuesta :

{
	"data": [
		{
			"id": "1",
			"name": "Nombre Organizacion"
		}
	],
	"meta": {
		"correlationId": "5b1c3dc2-ffe9-4a72-8944-a75d385094f1",
		"timestamp": "2025-05-05T14:26:10Z"
	}
}

ServerSubscriptionId

Necesitamos obtener el serverSubscriptionId del servidor del que queremos obtener los datos. Será el valor de id el que recuperaremos. Para ello utilizamos este endpoint :

GET: /api-gateway/servers/v1/organizations/{organizationId}/subscriptions

Ejemplo Respuesta:

{
  "data": [
    {
      "id": "7002",
      "name": "Test Server",
      "createdAt": "2025-04-11T12:03:15.000Z",
      "updatedAt": "2025-04-11T12:03:31.000Z"
    },
    {
      "id": "7005",
      "name": "Servidores #1",
      "createdAt": "2025-04-11T12:15:03.000Z",
      "updatedAt": "2025-04-11T12:15:05.000Z"
    }
  ],
  "meta": {
    "correlationId": "72569db4-32a8-42d1-ae66-6fcd65794dcb",
    "timestamp": "2025-05-07T15:26:15Z"
  }
}

MainNetworkId

Necesitamos obtener el mainNetworkId que ira asociada a esta regla de firewall. A día de hoy, las que pueden ser mainNetworkId son las redes isoladas.

Si no tenemos ninguna red compatible con mainNetwork, tendremos primero que crearla. Para ello seguir estos pasos: Crear red isolada.

Necesitaremos obtener el id en este endpoint :

GET: /api-gateway/servers/v1/subscriptions/{subscriptionId}/networks/isolated-networks

Ejemplo Respuesta:

{
  "data": [
    {
      "id": "2229",
      "subscriptionId": "7002",
      "mainNetworkId": "2229",
      "name": "INT-pre15-SAJU00-EU-DEV1-556",
      "gateway": "10.0.0.254",
      "netmask": "255.255.255.0",
      "cidr": "10.0.0.0/24",
      "zone": "EU-DEV1",
      "createdAt": "2025-04-11T12:03:55.000Z",
      "updatedAt": "2025-04-11T12:03:55.000Z"
    },
    {
      "id": "2232",
      "subscriptionId": "7002",
      "mainNetworkId": "2232",
      "name": "Test Network 0",
      "gateway": "192.168.10.1",
      "netmask": "255.255.255.0",
      "cidr": "192.168.10.0/24",
      "zone": "EU-DEV1",
      "createdAt": "2025-04-11T12:07:18.000Z",
      "updatedAt": "2025-04-11T12:07:18.000Z"
    }
  ],
  "meta": {
    "correlationId": "fc48de38-32d5-4c79-9003-06ea3da8a363",
    "timestamp": "2025-05-07T15:50:08Z"
  }
}

PublicNetworkId

Así mismo, se necesita el id de una ip pública que ya tengamos dada de alta en nuestro servidor.

Podemos acceder su id a través del siguiente endpoint:

GET: /api-gateway/servers/v1/subscriptions/{subscriptionId}/networks/public-ips

Ejemplo Respuesta:

{
  "data": [
    {
      "id": "2100",
      "ipAddress": "149.88.9.5",
      "mainNetworkId": "2229",
      "sourceNat": true,
      "staticNat": false,
      "zone": "EU-DEV1"
    },
    {
      "id": "2103",
      "ipAddress": "149.88.9.47",
      "mainNetworkId": "2232",
      "sourceNat": true,
      "staticNat": false,
      "zone": "EU-DEV1"
    }
  ],
  "meta": {
    "correlationId": "70573895-223e-4dab-b5ff-94ba05b8017c",
    "timestamp": "2025-05-08T12:48:15Z"
  }
}

ServerInstanceId (Sólo para protocolos UCP/UDP)

Necesitamos obtener el serverInstanceId del servidor del que queremos obtener los datos. Será el valor de id el que recuperaremos. Para ello utilizamos este endpoint :

GET: /api-gateway/servers/v1/subscriptions/{subscriptionId}/instances

Ejemplo Respuesta:

{
  "data": [
    {
      "id": "3333",
      "subscriptionId": "7002",
      "zone": "EU-DEV1",
      "templateId": "Ubuntu 24.04 LTS x64",
      "offeringId": "1 Core - 1GB RAM",
      "state": "running",
      "name": "Test",
      "createdAt": "2025-04-11T12:03:52.000Z",
      "updatedAt": "2025-04-11T12:04:48.000Z"
    }
  ],
  "meta": {
    "correlationId": "e8a85097-e478-4c4e-8ead-80adeac5437b",
    "timestamp": "2025-05-07T15:33:33Z"
  }
}

NicId (Sólo para protocolos UCP/UDP)

Necesitamos obtener el nicId (identificador de la tarjeta de red). Para ello utilizamos este endpoint y recuperaremos el valor id, de la tarjeta de red que queramos utilizar :

GET: /api-gateway/servers/v1/subscriptions/{subscriptionId}/instances/{instanceId}/nics

Ejemplo Respuesta:

{
  "data": [
    {
      "id": "2163",
      "mainNetworkId": "2229",
      "addressIpPrimary": "10.0.0.248",
      "isDefault": true,
      "mac": "02:00:7b:2f:00:01"
    },
    {
      "id": "2166",
      "mainNetworkId": "2232",
      "addressIpPrimary": "192.168.10.149",
      "isDefault": false,
      "mac": "02:00:17:74:00:01"
    }
  ],
  "meta": {
    "correlationId": "f9361103-c1a4-412a-a005-5e307de13d46",
    "timestamp": "2025-05-07T15:44:16Z"
  }
}

PrivateNicAddressIpId (Sólo para protocolos UCP/UDP)

Por último necesitamos obtener el El Id de la dirección IP interna de la tarjeta de red de la instancia.

Podemos acceder su id a través del siguiente endpoint:

GET: /api-gateway/servers/v1/subscriptions/{subscriptionId}/instances/{instanceId}/nics/{nicId}/ips

Ejemplo Respuesta:

{
  "data": [
    {
      "id": "2160",
      "ip": "10.0.0.248",
      "instanceNicId": "2163"
    }
  ],
  "meta": {
    "correlationId": "9e19e6df-1782-47a9-b9e3-9a79c1405452",
    "timestamp": "2025-05-07T16:34:42Z"
  }
}

Resumen

  • Verbo HTTPS : POST

  • Endpoint : /api-gateway/servers/v1/subscriptions/{subscriptionId}/networks/{mainNetworkId}/firewalls/inbounds/rules

  • Parámetros en el path :

    • subscriptionId (del servidor)

    • mainNetworkId

  • Parámetros en el body

CampoTipoObligatorioDescripciónEjemplo
protocolenumProtocolo a utilizar: TCP, UDP, ICMP"TCP"
publicNetworkIdstringId de la red pública a asociar"2100"
privateNicAddressIpIdstringSí para protocolos TCP/UDPID de la dirección IP interna de la tarjeta de red de la instancia"2160"
icmpTypeintegerSí para protocolo ICMPValor de icmpType. Por defecto -1-1
icmpCodeintegerSí para protocolo ICMPCódigo ICMP. Por defecto -1-1
publicPortintegerSí para protocolos TCP/UDPPuerto público0
privatePortintegerSí para protocolos TCP/UDPPuerto privado0
originstringOrigen de la IP10.0.0.1
  • Request Body (TCP/UDP)
{
  "data": {
    "protocol": "TCP",
    "publicNetworkId": "2100",
    "privateNicAddressIpId": "2160",
    "publicPort": 0,
    "privatePort": 0,
    "origin": "10.0.0.1"
  },
  "meta": {
    "requestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "timestamp": "2025-05-08T13:12:18.023Z"
  }
}
  • Request Body (ICMP)
{
  "data": {
    "protocol": "TCP",
    "publicNetworkId": "2100",
    "icmpType": -1,
    "icmpCode": -1,
    "origin": "10.0.0.1"
  },
  "meta": {
    "requestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "timestamp": "2025-05-08T13:12:18.023Z"
  }
}
  • Response (201 Created)
{
  "data": {
    "protocol": "TCP",
    "publicNetworkId": "2100",
    "privateNicAddressIpId": "2160",
    "publicPort": 0,
    "privatePort": 0,
    "origin": "10.0.0.1"
    "id": "1058"
  },
  "meta": {
    "correlationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    "timestamp": "2025-05-08T13:12:18.023Z"
  }
}
Language
URL
Click Try It! to start a request and see the response here!