Aura Infrastructure API v1

Configure the compute layer for applications on the Aura platform.

Learn more:


Overview

This API allows the Licensed CDN (LCDN) Operator to create sites, nodes, and attribute types for LCDN or LMS products on the Aura platform. This API does not support the deployment of individual product components on the sites and nodes.

Getting started

Before you use the Aura Infrastructure API for the first time, you must obtain an authorization token by creating and registering an application using the Aura Management Center (AMC) GUI. For detailed information about obtaining a token, see the “Managing OAuth2 Applications” section in the latest version of the Aura LCDN Administration Guide.

Resources

This section provides details on the Aura Infrastructure API’s various operations.

The following list provides a road map of all the conceptual objects you deal with when interacting with this API.

  • Site. A site assigns a name to a group of nodes.

  • Node. A node represents an aggregation of relevant parts including a list of interfaces, each containing a list of addresses and routes, and a list of attribute values.

  • Attribute type. A CDN Operator has the option to create a global set of node attribute types that provide additional node information to CDN Operators, IT, or support organizations.

  • Settings. A set of values the CDN Operator creates to apply to an attribute type.

  • Node boot medium image. Allows a CDN Operator to retrieve a node boot medium image in usb or iso format.

Before you begin any API operations, you must obtain an authorization token that you need from the AMC GUI. Please refer to the Getting Started section for detailed information.

API summary

Download the RAML descriptors for this API.

Operation Method Endpoint
Nodes  
Create a new node POST /api/infrastructure/v1/nodes
List nodes GET /api/infrastructure/v1/nodes
Update a node PUT /api/infrastructure/v1/nodes/{nodeId}
Remove a node DELETE /api/infrastructure/v1/nodes/{nodeId}
Get a node GET /api/infrastructure/v1/nodes/{nodeId}
Get a node boot image GET /api/infrastructure/v1/nodes/boot-medium{?format}
Attribute types  
Create a new attribute type POST /api/infrastructure/v1/attribute-types
List attribute types GET /api/infrastructure/v1/attribute-types
Update an attribute type PUT /api/infrastructure/v1/attribute-types/{attributeTypeId}
Remove an attribute type DELETE /api/infrastructure/v1/attribute-types/{attributeTypeId}
Get an attribute type GET /api/infrastructure/v1/attribute-types/{attributeTypeId}
Update settings PUT /api/infrastructure/v1/attribute-types/settings
Get settings GET /api/infrastructure/v1/attribute-types/settings
Sites  
Create a new site POST /api/infrastructure/v1/sites
List sites GET /api/infrastructure/v1/sites
Update a site PUT /api/infrastructure/v1/sites/{siteId}
Remove a site DELETE /api/infrastructure/v1/sites/{siteId}
Get a site GET /api/infrastructure/v1/sites/{siteId}
List nodes per site GET /api/infrastructure/v1/sites/{siteId}/nodes

Create a new node

This operation creates a new node.

POST /api/infrastructure/v1/nodes

Content-Type: application/json

Object type: Node

Download schema: node.create.schema.json

Request body:

{
    "hostname": "node1.us-ma-east-1.example.com",
    "siteId": 1,
    "bootState": "BOOT",
    "administrativeState": "ACTIVE",
    "dnsServers": [
        "8.8.8.8"
    ],
    "attributes": [
        {
            "attributeTypeId": 1,
            "value": "MA"
        },
        {
            "attributeTypeId": 2,
            "value": "Cambridge"
        }
    ],
    "interfaces": [
        {
            "name": "eth0",
            "macAddress": "00:11:22:33:44:55",
            "type": "ETHERNET",
            "ip4Addresses": [
                {
                    "ipAddress": "1.1.1.1/24",
                    "management": true
                }
            ],
            "ip4Routes": [
                {
                    "destination": "2.2.2.0/24",
                    "nextHop": "1.1.1.10",
                    "metric": 1
                }
            ],
            "ip6Addresses": [
                {
                    "ipAddress": "2001::8000:1234/64"
                }
            ],
            "ip6Routes": [
                {
                    "destination": "2001::8000:2000/64",
                    "nextHop": "2001::8000:1",
                    "metric": 100
                }
            ]
        },
        {
            "name": "eth1",
            "macAddress": "00:11:22:33:44:61",
            "type": "ETHERNET",
            "master": "lag0"
        },
        {
            "name": "eth2",
            "macAddress": "00:11:22:33:44:62",
            "type": "ETHERNET",
            "master": "lag0"
        },
        {
            "name": "lag0",
            "type": "BOND",
            "slaveInterfaces": [
                "eth1",
                "eth2"
            ]
        }
    ]
}

Status 200 application/json

Headers:

Location: https://akzz-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx.luna.akamaiapis.net/api/infrastructure/v1/nodes/1

Object type: Node

Download schema: node.read-detailed.schema.json

Response body:

{
    "nodes": [
        {
            "nodeId": 1,
            "hostname": "node1.us-ma-east-1.example.com"
        },
        {
            "nodeId": 2,
            "hostname": "node2.us-ma-east-1.example.com"
        }
    ],
    "page": {
        "pageNumber": 1,
        "pageSize": 100,
        "totalPages": 1,
        "totalResults": 2
    }
}

Status 201

Headers:

Location: https://akzz-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx.luna.akamaiapis.net/api/infrastructure/v1/attribute-types/1
  1. Build a Node object.

  2. POST the object to /api/infrastructure/v1/nodes.

  3. The Location response header provides a link where you can GET the newly created node.

List nodes

This operation returns a list of all configured nodes.

GET /api/infrastructure/v1/nodes

Status 200

Status 201 application/json

Object type: Node

Download schema: node.collection.schema.json

Response body:

{
    "nodes": [
        {
            "nodeId": 1,
            "hostname": "node1.us-ma-east-1.example.com"
        },
        {
            "nodeId": 2,
            "hostname": "node2.us-ma-east-1.example.com"
        }
    ],
    "page": {
        "pageNumber": 1,
        "pageSize": 100,
        "totalPages": 1,
        "totalResults": 2
    }
}
  1. To generate a list of all configured nodes, make a GET request to /api/infrastructure/v1/nodes.

  2. The operation responds with a list of nodes.

Update a node

This operation updates the details of a node.

PUT /api/infrastructure/v1/nodes/{nodeId}

Sample: /api/infrastructure/v1/nodes/1

Content-Type: application/json

Object type: Node

Download schema: node.update.schema.json

Request body:

{
    "nodeId": 1,
    "hostname": "node1.us-ma-east-1.example.com",
    "siteId": 1,
    "bootState": "BOOT",
    "administrativeState": "ACTIVE",
    "dnsServers": [
        "8.8.8.8"
    ],
    "attributes": [
        {
            "attributeTypeId": 1,
            "value": "MA"
        },
        {
            "attributeTypeId": 2,
            "value": "Cambridge"
        }
    ],
    "interfaces": [
        {
            "name": "eth0",
            "macAddress": "00:11:22:33:44:55",
            "type": "ETHERNET",
            "ipAddresses": [
                {
                    "ipAddress": "1.1.1.1/24",
                    "management": true
                }
            ],
            "routes": [
                {
                    "destination": "2.2.2.0/24",
                    "nextHop": "1.1.1.10",
                    "metric": 1
                }
            ]
        }
    ]
}
Parameter Type Sample Description
URL path parameters
nodeId Integer 1 Uniquely identifies a node.

Status 200 application/json

Object type: Node

Download schema: node.read-detailed.schema.json

Response body:

{
    "nodeId": 1,
    "hostname": "node1.us-ma-east-1.example.com",
    "siteId": 1,
    "bootState": "BOOT",
    "administrativeState": "ACTIVE",
    "dnsServers": [
        "8.8.8.8"
    ],
    "attributes": [
        {
            "attributeTypeId": 1,
            "value": "MA"
        },
        {
            "attributeTypeId": 2,
            "value": "Cambridge"
        }
    ],
    "interfaces": [
        {
            "name": "eth0",
            "macAddress": "00:11:22:33:44:55",
            "type": "ETHERNET",
            "ipAddresses": [
                {
                    "ipAddress": "1.1.1.1/24",
                    "management": true
                }
            ],
            "routes": [
                {
                    "destination": "2.2.2.0/24",
                    "nextHop": "1.1.1.10",
                    "metric": 1
                }
            ]
        }
    ]
}
  1. To generate a list of all configured nodes, make a GET request to /api/infrastructure/v1/nodes. Store the nodeId of the node you want to update from the response.

  2. Make a GET request to /api/infrastructure/v1/nodes/{nodeId}.

  3. The operation responds with the Node object.

  4. Update the desired properties in the Node object.

  5. PUT the object to /api/infrastructure/v1/nodes/{nodeId}. The operation responds with the updated Node object.

Remove a node

This operation removes a node.

DELETE /api/infrastructure/v1/nodes/{nodeId}

Sample: /api/infrastructure/v1/nodes/1

Parameter Type Sample Description
URL path parameters
nodeId Integer 1 Uniquely identifies a node.

Status 204

  1. To generate a list of all configured nodes, make a GET request to /api/infrastructure/v1/nodes. Store the nodeId of the node you want to delete from the response.

  2. Make a DELETE request to /api/infrastructure/v1/nodes/{nodeId}.

Get a node

This operation retrieves the details of a node.

GET /api/infrastructure/v1/nodes/{nodeId}

Sample: /api/infrastructure/v1/nodes/1

Parameter Type Sample Description
URL path parameters
nodeId Integer 1 Uniquely identifies a node.

Status 200 application/json

Object type: Node

Download schema: node.read-detailed.schema.json

Response body:

{
    "nodeId": 1,
    "hostname": "node1.us-ma-east-1.example.com",
    "siteId": 1,
    "bootState": "BOOT",
    "administrativeState": "ACTIVE",
    "dnsServers": [
        "8.8.8.8"
    ],
    "attributes": [
        {
            "attributeTypeId": 1,
            "value": "MA"
        },
        {
            "attributeTypeId": 2,
            "value": "Cambridge"
        }
    ],
    "interfaces": [
        {
            "name": "eth0",
            "macAddress": "00:11:22:33:44:55",
            "type": "ETHERNET",
            "ipAddresses": [
                {
                    "ipAddress": "1.1.1.1/24",
                    "management": true
                }
            ],
            "routes": [
                {
                    "destination": "2.2.2.0/24",
                    "nextHop": "1.1.1.10",
                    "metric": 1
                }
            ]
        }
    ]
}
  1. To generate a list of all configured nodes, make a GET request to /api/infrastructure/v1/nodes. Store the nodeId of the relevant node from the response.

  2. Make a GET request to /api/infrastructure/v1/nodes/{nodeId}.

  3. The operation responds with the Node object.

Get a node boot image

Before you install a service node, you must create a Service Node Installation Image on a USB device. You can create either a USB image or an ISO image. Each new LCDN or LMS service node boots the first time from the Service Node Installation Image to install the required service node software on each service node. After the installation is complete, you must remove the USB device so that from that point forward the node boots off its hard disk.

GET /api/infrastructure/v1/nodes/boot-medium{?format}

Sample: /api/infrastructure/v1/nodes/boot-medium?format=usb

Parameter Type Sample Description
Required query parameters
format Enumeration usb usb or iso.

Status 200

  1. Decide the format of the node boot medium image, either usb or iso, and use this as the value of the format query parameter.

  2. Make a GET request to /api/infrastructure/v1/nodes/boot-medium{?format}.

Create a new attribute type

This operation creates a new attribute type. A CDN Operator has the option to create a global set of node attribute types that provide additional node information to CDN Operators, IT, or support organizations.

POST /api/infrastructure/v1/attribute-types

Content-Type: application/json

Object type: AttributeType

Download schema: attribute-type.create.schema.json

Request body:

{
    "name": "Rack"
}

Status 201 application/json

Headers:

Location: https://akzz-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx.luna.akamaiapis.net/api/infrastructure/v1/attribute-types/1

Object type: AttributeType

Download schema: attribute-type.read.schema.json

Response body:

{
    "name": "Room",
    "attributeTypeId": 5
}

List attribute types

This operation returns a list of all configured attribute types.

GET /api/infrastructure/v1/attribute-types

Status 200 application/json

Object type: AttributeType

Download schema: attribute-type.collection.schema.json

Response body:

{
    "attributeTypes": [
        {
            "attributeTypeId": 1,
            "name": "Country"
        },
        {
            "attributeTypeId": 2,
            "name": "State/Province"
        },
        {
            "attributeTypeId": 3,
            "name": "City"
        },
        {
            "attributeTypeId": 4,
            "name": "Building"
        },
        {
            "attributeTypeId": 5,
            "name": "Room"
        },
        {
            "attributeTypeId": 6,
            "name": "Rack"
        }
    ],
    "page": {
        "pageNumber": 1,
        "pageSize": 100,
        "totalPages": 1,
        "totalResults": 6
    }
}

Update an attribute type

This operation updates the details of an attribute type. A CDN Operator has the option to create a global set of node attribute types that provide additional node information to CDN Operators, IT, or support organizations.

PUT /api/infrastructure/v1/attribute-types/{attributeTypeId}

Sample: /api/infrastructure/v1/attribute-types/5

Content-Type: application/json

Object type: AttributeType

Download schema: attribute-type.update.schema.json

Request body:

{
    "name": "Room",
    "attributeTypeId": 5
}
Parameter Type Sample Description
URL path parameters
attributeTypeId Integer 5 Uniquely identifies an attribute type.

Status 200 application/json

Object type: AttributeType

Download schema: attribute-type.read.schema.json

Response body:

{
    "name": "Room",
    "attributeTypeId": 5
}
  1. To generate a list of all configured attribute types, make a GET request to /api/infrastructure/v1/attribute-types. Store the attributeTypeId of the attribute type you want to update from the response.

  2. Make a GET request to /api/infrastructure/v1/attribute-types/{attributeTypeId}.

  3. The operation responds with the details of the AttributeType object.

  4. Update the desired properties in the AttributeType object.

  5. PUT the object to /api/infrastructure/v1/attribute-types/{attributeTypeId}.

  6. The operation responds with the updated AttributeType object.

Remove an attribute type

This operation removes an attribute type. A CDN Operator has the option to create a global set of node attribute types that provide additional node information to CDN Operators, IT, or support organizations. Removing an attribute type removes that attribute type and its values from all nodes to which it is assigned.

DELETE /api/infrastructure/v1/attribute-types/{attributeTypeId}

Sample: /api/infrastructure/v1/attribute-types/5

Parameter Type Sample Description
URL path parameters
attributeTypeId Integer 5 Uniquely identifies an attribute type.

Status 204

  1. To generate a list of all configured attribute types, make a GET request to /api/infrastructure/v1/attribute-types. Store the attributeTypeId of the attribute type you want to delete from the response.

  2. Make a DELETE request to /api/infrastructure/v1/attribute-types/{attributeTypeId}.

Get an attribute type

This operation retrieves the details of an attribute type.

GET /api/infrastructure/v1/attribute-types/{attributeTypeId}

Sample: /api/infrastructure/v1/attribute-types/5

Parameter Type Sample Description
URL path parameters
attributeTypeId Integer 5 Uniquely identifies an attribute type.

Status 200 application/json

Object type: AttributeType

Download schema: attribute-type.read.schema.json

Response body:

{
    "name": "Room",
    "attributeTypeId": 5
}
  1. To generate a list of all configured attribute types, make a GET request to /api/infrastructure/v1/attribute-types. Store the attributeTypeId of the relevant attribute type from the response.

  2. Make a GET request to /api/infrastructure/v1/attribute-types/{attributeTypeId}.

  3. The operation responds with an AttributeType object.

Update settings

This operation updates attribute type settings which are a set of values the CDN Operator creates to apply to an attribute type.

PUT /api/infrastructure/v1/attribute-types/settings

Content-Type: application/json

Object type: Settings

Download schema: attribute-type-settings.schema.json

Request body:

{
    "attributeTypePriority": [
        1,
        2,
        3,
        4,
        5
    ]
}

Status 200 application/json

Object type: Settings

Download schema: attribute-type-settings.schema.json

Response body:

{
    "attributeTypePriority": [
        1,
        2,
        3,
        4,
        5
    ]
}
  1. Make a GET request to /api/infrastructure/v1/attribute-types/settings to retrieve a list of all configured attribute types. Store the attributeTypeId of the relevant attribute type from the response.

  2. To retrieve the details of the attribute type, make a GET request to /api/infrastructure/v1/attribute-types/{attributeTypeId}.

  3. The operation responds with the details of the attribute type Settings object.

  4. Update the desired properties in the Settings object.

  5. PUT the object to /api/infrastructure/v1/attribute-types/settings.

  6. The operation responds with the updated Settings object.

Get settings

This operation gets the configured attribute type settings which are a set of values the CDN Operator creates to apply to an attribute type.

GET /api/infrastructure/v1/attribute-types/settings

Status 200 application/json

Object type: Settings

Download schema: attribute-type-settings.schema.json

Response body:

{
    "attributeTypePriority": [
        1,
        2,
        3,
        4,
        5
    ]
}
  1. To get the configured settings for an attributeType, make a GET request to /api/infrastructure/v1/attribute-types/settings.

  2. The operation responds with a Settings object.

Create a new site

This operation creates a new site.

POST /api/infrastructure/v1/sites

Content-Type: application/json

Object type: Site

Download schema: site.create.schema.json

Request body:

{
    "name": "us-ma-east-1",
    "abbreviatedName": "usmae1"
}

Status 201 application/json

Headers:

Location: https://akzz-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx.luna.akamaiapis.net/api/infrastructure/v1/sites/1

Object type: Site

Download schema: site.read-detailed.schema.json

Response body:

{
    "sites": [
        {
            "siteId": 1,
            "name": "us-ma-east-1"
        }
    ],
    "page": {
        "pageNumber": 1,
        "pageSize": 100,
        "totalPages": 1,
        "totalResults": 1
    }
}
  1. Build a Site object.

  2. POST the object to /api/infrastructure/v1/sites.

  3. The Location response header provides a link where you can GET the newly created site.

List sites

This operation returns a list of all configured sites.

GET /api/infrastructure/v1/sites

Status 200 application/json

Object type: Site

Download schema: site.collection.schema.json

Response body:

{
    "sites": [
        {
            "siteId": 1,
            "name": "us-ma-east-1"
        }
    ],
    "page": {
        "pageNumber": 1,
        "pageSize": 100,
        "totalPages": 1,
        "totalResults": 1
    }
}
  1. To generate a list of all configured sites, make a GET request to /api/infrastructure/v1/sites.

  2. The operation responds with a list of sites.

Update a site

This operation updates the details of a site.

PUT /api/infrastructure/v1/sites/{siteId}

Sample: /api/infrastructure/v1/sites/1

Content-Type: application/json

Object type: Site

Download schema: site.update.schema.json

Request body:

{
    "siteId": 1,
    "name": "us-ma-east-1",
    "abbreviatedName": "usmae1"
}
Parameter Type Sample Description
URL path parameters
siteId Integer 1 Uniquely identifies a site.

Status 200 application/json

Object type: Site

Download schema: site.read-detailed.schema.json

Response body:

{
    "siteId": 1,
    "name": "us-ma-east-1",
    "abbreviatedName": "usmae1"
}
  1. To generate a list of all configured sites, make a GET request to /api/infrastructure/v1/sites. Store the siteId of the node you want to update from the response.

  2. Make a GET request to /api/infrastructure/v1/sites/{siteId}.

  3. The operation responds with the Site object.

  4. PUT the object to /api/infrastructure/v1/sites/{siteId}. The operation responds with the updated Site object.

Remove a site

Remove a site.

DELETE /api/infrastructure/v1/sites/{siteId}

Sample: /api/infrastructure/v1/sites/1

Parameter Type Sample Description
URL path parameters
siteId Integer 1 Uniquely identifies a site.

Status 204

  1. To generate a list of all configured sites, make a GET request to /api/infrastructure/v1/sites. Store the siteId of the node you want to remove from the response.

  2. Make a DELETE request to /api/infrastructure/v1/sites/{siteId}.

Get a site

This operation retrieves the details of a site.

GET /api/infrastructure/v1/sites/{siteId}

Sample: /api/infrastructure/v1/sites/1

Parameter Type Sample Description
URL path parameters
siteId Integer 1 Uniquely identifies a site.

Status 200 application/json

Object type: Site

Download schema: site.read-detailed.schema.json

Response body:

{
    "siteId": 1,
    "name": "us-ma-east-1",
    "abbreviatedName": "usmae1"
}
  1. Make a GET request to /api/infrastructure/v1/sites to retrieve a list of all configured sites. Store the siteId of the relevant node from the response.

  2. Make a GET request to /api/infrastructure/v1/sites/{siteId}.

  3. The operation responds with a Site object.

List nodes per site

This operation lists the nodes belonging to this site.

GET /api/infrastructure/v1/sites/{siteId}/nodes

Sample: /api/infrastructure/v1/sites/1/nodes

Parameter Type Sample Description
URL path parameters
siteId Integer 1 Uniquely identifies a site.

Status 200 application/json

Object type: Node

Download schema: node.collection.schema.json

Response body:

{
    "nodes": [
        {
            "nodeId": 1,
            "hostname": "node1.us-ma-east-1.example.com"
        },
        {
            "nodeId": 2,
            "hostname": "node2.us-ma-east-1.example.com"
        }
    ],
    "page": {
        "pageNumber": 1,
        "pageSize": 100,
        "totalPages": 1,
        "totalResults": 2
    }
}

Data

This section describes the Aura Infrastructure API’s data objects that the API exposes.

Download the JSON schemas for this API.

The data schema tables below list membership requirements as follows:

Member is required in requests, or always present in responses, even if its value is empty or null.
Member is optional, and may be omitted in some cases.
Member is out of scope, and irrelevant to the specified interaction context. If you include the member in that context, it either triggers an error, or is ignored.

Node

A node represents an aggregation of relevant parts that include a list of interfaces, each containing a list of addresses and routes, and a list of attribute values.

Download schema: node.create.schema.json, node.update.schema.json

Sample PUT request:

{
    "nodeId": 1,
    "hostname": "node1.us-ma-east-1.example.com",
    "siteId": 1,
    "bootState": "BOOT",
    "administrativeState": "ACTIVE",
    "dnsServers": [
        "8.8.8.8"
    ],
    "attributes": [
        {
            "attributeTypeId": 1,
            "value": "MA"
        },
        {
            "attributeTypeId": 2,
            "value": "Cambridge"
        }
    ],
    "interfaces": [
        {
            "name": "eth0",
            "macAddress": "00:11:22:33:44:55",
            "type": "ETHERNET",
            "ipAddresses": [
                {
                    "ipAddress": "1.1.1.1/24",
                    "management": true
                }
            ],
            "routes": [
                {
                    "destination": "2.2.2.0/24",
                    "nextHop": "1.1.1.10",
                    "metric": 1
                }
            ]
        }
    ]
}

Node members

Member Type Required Description
Node: A node represents an aggregation of relevant parts that include a list of interfaces, each containing a list of addresses and routes, and a list of attribute values.
administrativeState Enumeration The administrative state of the node, either ACTIVE or MAINTENANCE. The default is ACTIVE. Use MAINTENANCE to remove a node from service, do routine software maintenance, or add or remove storage devices on a service node.
attributes Node.attributes[] Array of mappings of attributeType to value for this node.
bootState Enumeration When booting, the action the node should take BOOT, REINSTALL, INSTALL, or UPGRADE. In BOOT state, the node completes a normal boot process and runs in production mode. REINSTALL causes the node to reinstall and overwrite the system partition and boot partition on all disks and the associated data, but does not update the kernel partition. Use the INSTALL state for a node on which no Aura software is installed. Do not use UPGRADE to upgrade the software on a service node; use the upgrade_step.py script. For detailed information about upgrading a service node using the upgrade_step.py script, see the “Service Node Upgrade with upgrade_step.py” in the Aura LCDN/LMS Upgrade Guide.
dnsServers Array List of DNS Server IP addresses.
hostname String The unique fully qualified domain name (FQDN) for this node.
interfaces Node.interfaces{bonding} A node bonding virtual interface.
interfaces Node.interfaces{ethernet} A node ethernet interface.
nodeId Integer The unique identifier for a node.
siteId Integer The unique identifier for a site.
Node.attributes[]: Array of mappings of attributeType to value for this node.
attributeTypeId Integer Unique identifier for attributeType.
value String Value to assign for this node.
Node.interfaces{bonding}: A node bonding virtual interface.
ip4Addresses Ip4Address[] An IPv4 address.
ip4Routes Ip4Route[] A single IPv4 route.
ip6Addresses Ip6Address[] An IPv6 address.
ip6Routes Ip6Route[] A single IPv6 route.
name String Interface name, such as lag0.
slaveInterfaces Array Interface name of slave interface.
type Enumeration Identifies the interface type. The only supported type is BOND.
Node.interfaces{ethernet}: A node ethernet interface.
ip4Addresses Ip4Address[] An IPv4 address.
ip4Routes Ip4Route[] A single IPv4 route.
ip6Addresses Ip6Address[] An IPv6 address.
ip6Routes Ip6Route[] A single IPv6 route.
macAddress String Interface MAC address.
master String Read-only. Designates the master bonding interface for this interface.
name String Interface name, such as eth0.
type Enumeration Identifies the interface type. The only supported type is ETHERNET.

AttributeType

A CDN Operator has the option to create a global set of node attribute types that provide additional node information to CDN operators, IT, or support organizations.

Download schema: attribute-type.create.schema.json, attribute-type.update.schema.json

Sample PUT request:

{
    "name": "Room",
    "attributeTypeId": 5
}

AttributeType members

Member Type Required Description
AttributeType: A CDN Operator has the option to create a global set of node attribute types that provide additional node information to CDN operators, IT, or support organizations.
attributeTypeId Integer Read-only. The unique identifier for an attribute type.
name String The unique name for an attribute type.

Settings

Settings for an attributeType. A set of values the CDN Operator creates to apply to an attributeType.

Download schema: attribute-type-settings.schema.json

Sample PUT request:

{
    "attributeTypePriority": [
        1,
        2,
        3,
        4,
        5
    ]
}

Settings members

Member Type Required Description
Settings: Settings for an attributeType. A set of values the CDN Operator creates to apply to an attributeType.
attributeTypePriority Integer Must refer to a valid attributeTypeId.

Site

A site assigns a name to a group of nodes.

Download schema: site.create.schema.json, site.update.schema.json

Sample PUT request:

{
    "siteId": 1,
    "name": "us-ma-east-1",
    "abbreviatedName": "usmae1"
}

Site members

Member Type Required Description
Site: A site assigns a name to a group of nodes.
abbreviatedName String A shortened name for this site.
name String The unique name for this site.
siteId Integer The unique identifier for a site.

Ip4Address

An IPv4 address.

Download schema: node.definitions.schema.json

Ip4Address members

Member Type Required Description
Ip4Address: An IPv4 address.
ipAddress String An IPv4 address.
management Boolean Indicates whether this is the management address. There may only be one management address.

Ip4Route

A single IPv4 route.

Download schema: node.definitions.schema.json

Ip4Route members

Member Type Required Description
Ip4Route: A single IPv4 route.
destination String An IPv4 address.
metric Integer A value up to 9999 that represents the cost metric for this static route. The route with the lowest metric is chosen among multiple routes that most closely match the destination address of a packet being forwarded.
nextHop String The address of the next gateway to which packets should be forwarded along the path to their final destination.
sourceIpAddress String The IPv4 source address for this IPv4 route.

Ip6Address

An IPv6 address.

Download schema: node.definitions.schema.json

Ip6Address members

Member Type Required Description
Ip6Address: An IPv6 address.
ipAddress String An IPv6 address.
ipAddress String An IPv6 address.

Ip6Route

A single IPv6 route.

Download schema: node.definitions.schema.json

Ip6Route members

Member Type Required Description
Ip6Route: A single IPv6 route.
destination String An IPv6 address.
destination String An IPv6 address.
metric Integer A value up to 9999 that represents the cost metric for this static route. The route with the lowest metric is chosen among multiple routes that most closely match the destination address of a packet being forwarded.
nextHop String The address of the next gateway to which packets should be forwarded along the path to their final destination.
sourceIpAddress String The IPv6 source address for this IPv6 route.

Errors

This section provides details on the data object that reflects the API’s common response to error cases, and lists the API’s range of response status codes for both error and success cases.

Error responses

In the case of errors, the API returns an HTTP Problem JSON object with the application/problem+json media type. For example, when you try to GET a node that does not exist, the API responds with a JSON object such as the following:

{
  "type" : "https://akzz-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx.luna.akamaiapis.net/api/infrastructure/errors#core.entity-not-found",
  "title" : "The requested entity could not be found",
  "detail" : "Node 99999 does not exist",
  "instance" : "https://akzz-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx.luna.akamaiapis.net/api/infrastructure/v1/nodes/99999#fae1fd860940d25d",
  "entityType" : "Node",
  "entityId" : 99999
}

HTTP status codes

This section lists the full range of response codes the API may generate.

Code Description
200 The operation was successful.
201 Resource successfully created.
400 Bad request.
401 Authentication failure.
403 The client doesn’t have the appropriate authority to perform the requested operation.
404 Resource not found.
405 Method not supported.
409 The operation couldn’t be completed due to a conflict with the current state of the resource.
415 Unsupported media type.
503 Service is temporarily unavailable.

Last modified: 7/19/2019