Private Network

Private Network provides private L2 networking functionality between Compute instances.

Read more

create-private-network

Create a Private Network

POST /private-network

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
namestringyesPrivate Network name
descriptionstringnoPrivate Network description
end-ipstringnoPrivate Network end IP address
labelsobjectnoResource labels
netmaskstringnoPrivate Network netmask
optionsPrivate Network DHCP OptionsnoDHCP options
start-ipstringnoPrivate Network start IP address
Example
{
  "description": "string",
  "end-ip": "string",
  "labels": {},
  "name": "string",
  "netmask": "string",
  "options": {
    "dns-servers": [
      "string"
    ],
    "domain-search": [
      "string"
    ],
    "ntp-servers": [
      "string"
    ],
    "routers": [
      "string"
    ]
  },
  "start-ip": "string"
}

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for create-private-network: golang | Python | Java

CLI: exo api create-private-network

get-private-network

Retrieve Private Network details

GET /private-network/{id}

Path parameters

NameInDescription
idpath

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
descriptionstringPrivate Network description
end-ipstringPrivate Network end IP address
idstringPrivate Network ID
labelsobjectResource labels
leasesarray of Private Network leased IP addressPrivate Network leased IP addresses
namestringPrivate Network name
netmaskstringPrivate Network netmask
optionsPrivate Network DHCP OptionsDHCP options
start-ipstringPrivate Network start IP address
vniintegerPrivate Network VXLAN ID
Example output
{
  "description": "string",
  "end-ip": "string",
  "id": "string",
  "labels": {},
  "leases": [
    {
      "instance-id": "string",
      "ip": "string"
    }
  ],
  "name": "string",
  "netmask": "string",
  "options": {
    "dns-servers": [
      "string"
    ],
    "domain-search": [
      "string"
    ],
    "ntp-servers": [
      "string"
    ],
    "routers": [
      "string"
    ]
  },
  "start-ip": "string",
  "vni": 0
}

SDK reference for get-private-network: golang | Python | Java

CLI: exo api get-private-network

update-private-network

Update a Private Network

PUT /private-network/{id}

Path parameters

NameInDescription
idpath

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
descriptionstringnoPrivate Network description
end-ipstringnoPrivate Network end IP address
labelsobjectnoResource labels
namestringnoPrivate Network name
netmaskstringnoPrivate Network netmask
optionsPrivate Network DHCP OptionsnoDHCP options
start-ipstringnoPrivate Network start IP address
Example
{
  "description": "string",
  "end-ip": "string",
  "labels": {},
  "name": "string",
  "netmask": "string",
  "options": {
    "dns-servers": [
      "string"
    ],
    "domain-search": [
      "string"
    ],
    "ntp-servers": [
      "string"
    ],
    "routers": [
      "string"
    ]
  },
  "start-ip": "string"
}

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for update-private-network: golang | Python | Java

CLI: exo api update-private-network

delete-private-network

Delete a Private Network

DELETE /private-network/{id}

Path parameters

NameInDescription
idpath

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for delete-private-network: golang | Python | Java

CLI: exo api delete-private-network


Other Operations

detach-instance-from-private-network

Detach a Compute instance from a Private Network

PUT /private-network/{id}:detach

Path parameters

NameInDescription
idpath

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
instanceInstanceyesCompute instance
Example
{
  "instance": {
    "anti-affinity-groups": [
      {
        "description": "string",
        "id": "string",
        "instances": [
          {
            "anti-affinity-groups": null,
            "application-consistent-snapshot-enabled": null,
            "created-at": null,
            "deploy-target": null,
            "disk-size": null,
            "elastic-ips": null,
            "id": null,
            "instance-type": null,
            "ipv6-address": null,
            "labels": null,
            "mac-address": null,
            "manager": null,
            "name": null,
            "private-networks": null,
            "public-ip": null,
            "public-ip-assignment": null,
            "secureboot-enabled": null,
            "security-groups": null,
            "snapshots": null,
            "ssh-key": null,
            "ssh-keys": null,
            "state": null,
            "template": null,
            "tpm-enabled": null,
            "user-data": null
          }
        ],
        "name": "string"
      }
    ],
    "application-consistent-snapshot-enabled": true,
    "created-at": "2024-01-01T12:00:00Z",
    "deploy-target": {
      "description": "string",
      "id": "string",
      "name": "string",
      "type": "edge"
    },
    "disk-size": 0,
    "elastic-ips": [
      {
        "addressfamily": "inet4",
        "cidr": "string",
        "description": "string",
        "healthcheck": {
          "interval": 0,
          "mode": "tcp",
          "port": 0,
          "strikes-fail": 0,
          "strikes-ok": 0,
          "timeout": 0,
          "tls-skip-verify": true,
          "tls-sni": "string",
          "uri": "string"
        },
        "id": "string",
        "ip": "string",
        "labels": {}
      }
    ],
    "id": "string",
    "instance-type": {
      "authorized": true,
      "cpus": 0,
      "family": "gpu3",
      "gpus": 0,
      "id": "string",
      "memory": 0,
      "size": "large",
      "zones": [
        "ch-dk-2"
      ]
    },
    "ipv6-address": "string",
    "labels": {},
    "mac-address": "string",
    "manager": {
      "id": "string",
      "type": "sks-nodepool"
    },
    "name": "string",
    "private-networks": [
      {
        "id": "string",
        "mac-address": "string"
      }
    ],
    "public-ip": "string",
    "public-ip-assignment": "inet4",
    "secureboot-enabled": true,
    "security-groups": [
      {
        "description": "string",
        "external-sources": [
          "string"
        ],
        "id": "string",
        "name": "string",
        "rules": [
          {
            "description": null,
            "end-port": null,
            "flow-direction": null,
            "icmp": null,
            "id": null,
            "network": null,
            "protocol": null,
            "security-group": null,
            "start-port": null
          }
        ]
      }
    ],
    "snapshots": [
      {
        "application-consistent": true,
        "created-at": "2024-01-01T12:00:00Z",
        "export": {
          "md5sum": "string",
          "presigned-url": "string"
        },
        "id": "string",
        "instance": {
          "anti-affinity-groups": [
            null
          ],
          "application-consistent-snapshot-enabled": true,
          "created-at": "2024-01-01T12:00:00Z",
          "deploy-target": {
            "description": null,
            "id": null,
            "name": null,
            "type": null
          },
          "disk-size": 0,
          "elastic-ips": [
            null
          ],
          "id": "string",
          "instance-type": {
            "authorized": null,
            "cpus": null,
            "family": null,
            "gpus": null,
            "id": null,
            "memory": null,
            "size": null,
            "zones": null
          },
          "ipv6-address": "string",
          "labels": {},
          "mac-address": "string",
          "manager": {
            "id": null,
            "type": null
          },
          "name": "string",
          "private-networks": [
            null
          ],
          "public-ip": "string",
          "public-ip-assignment": "inet4",
          "secureboot-enabled": true,
          "security-groups": [
            null
          ],
          "snapshots": [
            null
          ],
          "ssh-key": {
            "fingerprint": null,
            "name": null
          },
          "ssh-keys": [
            null
          ],
          "state": "expunging",
          "template": {
            "application-consistent-snapshot-enabled": null,
            "boot-mode": null,
            "build": null,
            "checksum": null,
            "created-at": null,
            "default-user": null,
            "description": null,
            "family": null,
            "id": null,
            "maintainer": null,
            "name": null,
            "password-enabled": null,
            "size": null,
            "ssh-key-enabled": null,
            "url": null,
            "version": null,
            "visibility": null,
            "zones": null
          },
          "tpm-enabled": true,
          "user-data": "string"
        },
        "name": "string",
        "size": 0,
        "state": "snapshotting"
      }
    ],
    "ssh-key": {
      "fingerprint": "string",
      "name": "string"
    },
    "ssh-keys": [
      {
        "fingerprint": "string",
        "name": "string"
      }
    ],
    "state": "expunging",
    "template": {
      "application-consistent-snapshot-enabled": true,
      "boot-mode": "legacy",
      "build": "string",
      "checksum": "string",
      "created-at": "2024-01-01T12:00:00Z",
      "default-user": "string",
      "description": "string",
      "family": "string",
      "id": "string",
      "maintainer": "string",
      "name": "string",
      "password-enabled": true,
      "size": 0,
      "ssh-key-enabled": true,
      "url": "string",
      "version": "string",
      "visibility": "private",
      "zones": [
        "ch-dk-2"
      ]
    },
    "tpm-enabled": true,
    "user-data": "string"
  }
}

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for detach-instance-from-private-network: golang | Python | Java

CLI: exo api detach-instance-from-private-network

attach-instance-to-private-network

Attach a Compute instance to a Private Network

PUT /private-network/{id}:attach

Path parameters

NameInDescription
idpath

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
instanceInstanceyesCompute instance
ipstringnoStatic IP address lease for the corresponding network interface
Example
{
  "instance": {
    "id": "string"
  },
  "ip": "string"
}

Instance

Compute instance

PropertyTypeRequiredDescription
idstringnoInstance ID

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for attach-instance-to-private-network: golang | Python | Java

CLI: exo api attach-instance-to-private-network

reset-private-network-field

Reset Private Network field

DELETE /private-network/{id}/{field}

Path parameters

NameInDescription
idpath
fieldpath

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for reset-private-network-field: golang | Python | Java

CLI: exo api reset-private-network-field

update-private-network-instance-ip

Update the IP address of an instance attached to a managed private network

PUT /private-network/{id}:update-ip

Path parameters

NameInDescription
idpath

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
instanceInstanceno
ipstringnoStatic IP address lease for the corresponding network interface
Example
{
  "instance": {
    "id": "string"
  },
  "ip": "string"
}

Instance

PropertyTypeRequiredDescription
idstringyesInstance ID

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

SDK reference for update-private-network-instance-ip: golang | Python | Java

CLI: exo api update-private-network-instance-ip

list-private-networks

List Private Networks

GET /private-network

Responses

Status: 200 - 200

Content-Type: application/json

PropertyTypeDescription
private-networksarray of Private Network
Example output
{
  "private-networks": [
    {
      "description": "string",
      "end-ip": "string",
      "id": "string",
      "labels": {},
      "leases": [
        {
          "instance-id": "string",
          "ip": "string"
        }
      ],
      "name": "string",
      "netmask": "string",
      "options": {
        "dns-servers": [
          "string"
        ],
        "domain-search": [
          "string"
        ],
        "ntp-servers": [
          "string"
        ],
        "routers": [
          "string"
        ]
      },
      "start-ip": "string",
      "vni": 0
    }
  ]
}

SDK reference for list-private-networks: golang | Python | Java

CLI: exo api list-private-networks

Last updated on