Global Traffic Management API v1

Manage Global Traffic Management (GTM) load balancing configurations.

Learn more:


Overview

The Internet domain name system (DNS) is a distributed system. It allows computer programs to issue queries about domain names which the DNS returns one or more answers to. The most common use for DNS is to convert hostnames, such as www.example.com, into IP addresses, which identify a particular computer at a particular Internet location. In the most traditional usage, a query’s answers are static. Someone types the answers into a configuration file, and the answers change only when the file changes.

A dynamic DNS system computes and returns answers on the fly. This can vary from one query to the next. A typical usage returns the IP address of a server assigned dynamically through dynamic host configuration protocol (DHCP). This address changes, which is common with most home Internet connections.

Global Traffic Management (GTM) is a dynamic DNS system that manages traffic to your data centers. From one moment to the next, GTM chooses the best answers and returns them to client name servers in response to their queries about your domains.

Akamai Control Center provides a graphical interface to GTM for content administrators. For more information on GTM, see the Global Traffic Management User Guide.

Get started

To configure this API for the first time:

  • Review Get Started with APIs for details on how to set up client tokens to access any Akamai API. These tokens appear as custom hostnames that look like this: https://akzz-XXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXX.luna.akamaiapis.net.

  • To enable this API, choose the API service named Global Traffic Management, and set the access level to READ-WRITE.

API concepts

This section provides a guide to the set of resources this API makes available, and provides links to where you can learn more.

  • Identity: Provides high-level information about the API client, the Akamai user that it’s linked to, and contracts available to the client. Each contract lists available load balancing features, and the permissions the client has on the domains tied to the contract.

  • Contract: Each account has one or more contracts with a fixed term of service that specifies the active Akamai products and modules. Along with information about the group, you may need the contractId to create a new domain.

  • Group: Each account has a hierarchy of groups that control access to domains and help to consolidate reporting functions that typically map to an organizational hierarchy. Each group lists the GTM contracts that the group has access to, and the set of permissions the API client has on the group such as READ, WRITE, ADD, and ADD_DATACENTER.

    With either Control Center or the User Admin API, account administrators can assign GTM domains to specific groups, each with its own set of users and accompanying roles. Your access to any given domain depends on the role set for you in its group. Along with information about the contract, you may need the groupId to create a new domain.

    The Identity and Access Management application lets you limit the groups a client has access to. If you are able to limit access to a single group, one linked with only one contract, then the client doesn’t need the groupId or contractId when creating domains.

  • Domain: The basic building block of a traffic management configuration is a Domain. The DNS defines a tree-structured namespace. For example, in the following list, each item is a domain and each domain is a subdomain of the one above it in the list:

    • com
    • customer.com
    • sales.customer.com

    Akamai’s GTM system uses the term domain in a slightly restricted sense. A GTM domain is a DNS domain, whose name usually ends in .akadns.net. Several important attributes exist at the GTM domain level such as access control. Anyone with permission to edit a GTM domain has permission to modify or delete any of the properties (subdomains) within that domain.

    A GTM domain has one or more subdomains that share a number of attributes that are only configured domain-wide. These attributes include use of load feedback, load imbalance factor, the set of available data centers, and so forth. Each domain object is a representation of a complete GTM domain, such as example.akadns.net. Your contract determines the set of GTM domain types available to you. For details on domain types, see Domain members.

  • Property: A set of IP addresses or CNAMEs that GTM provides in response to DNS queries based on a set of rules. In GTM, properties are subdomains, and do not relate to Property Manager and PAPI. A GTM property type specifies the load balancing behavior for the property. For example, www, which in DNS terms is a subdomain of the domain, combined with its domain example.akadns.net, the fully qualified domain name www.example.akadns.net used for load balancing. For details on property types, see Property members.

  • Liveness Test: Configure GTM to perform liveness tests periodically to determine whether your servers respond to requests. When you do this, GTM tries to return answers that contain only the A records for live servers. Systems called liveness testing agents, also known as servermonitors, perform liveness tests. GTM allocates a set of seven agents for each of your data centers, chosen for proximity to your data center and for network diversity. Many agents conduct liveness tests to avoid the possibility of an ISP falsely declaring your data center down due to local network issues. If all servers for a property fail their liveness tests, GTM considers all the servers up, as it has no basis to prefer any of them. When any server in a data center is up, GTM considers the data center up.

  • Datacenter: Represents a customer data center, also known as a traffic target, which is a location that contains many servers to which GTM directs traffic. More generally, a data center is a name for a set of possible answers that GTM can return for a query and the unit GTM uses to scale load balancing. For example, you might have data centers in New York and in Amsterdam, and want to balance load between them, but prefer that U.S. users are sent to the New York data center and European users are sent to the Amsterdam data center.

  • Data center affinity: A mechanism that helps reduce, but not eliminate, reassignment of your end users from one data center to another. GTM attempts to map users to the data center where they have the best connectivity to improve performance for them. However, if a user is roughly the same distance from two data centers, making their ping scores similar, small variations in ping scores might cause GTM’s choice of the best data center to vary. Thus, GTM frequently reassigns the user to these two data centers. Data center affinity lets you determine when user reassignment occurs for the best connectivity and performance.

    Two Property object members control data center affinity, stickinessBonusPercentage and stickinessBonusConstant. The stickinessBonusPercentage object member is a percentage of a data center’s score and stickinessBonusConstant is an absolute number. For example, when stickinessBonusPercentage is set at 10, users are not reassigned from their currently assigned data center to another data center with a better ping score unless the better ping score is more than 10% better than that of the currently assigned data center. Similarly, when stickinessBonusConstant is set at 100, users are not reassigned from their currently assigned data center to another data center with a better ping score unless the better ping score is more than 100 milliseconds better than that of the currently assigned data center. Note that ping scores are used only for Performance Plus domains, with performance properties that have ping scores available in their data centers.

  • CidrMap: Classless Inter-Domain Routing (CIDR) mapping uses the IP addresses of the requesting name server to provide IP-specific CNAME entries, which lets you direct internal users to a specific environment or direct to the origin. This provides different responses to an internal corporate DNS infrastructure such as internal test environments and another answer for all other (defaultDatacenter) name servers. CIDR maps split the Internet into multiple CIDR block zones. Properties that use a map can specify a handout CNAME for each zone on the property’s editing page. To configure a property for CIDR mapping, your domain must have at least one CIDR map defined.

  • AsMap: Autonomous System (AS) mapping lets you configure a property that returns a CNAME based on the AS number of the IP address of the requester. You can reuse maps for multiple properties or create new ones. AS maps split the Internet into multiple AS block zones. Properties that use AS maps can specify handout integers for each zone. AS mapping lets you configure a property that directs users to a specific environment or to the origin.

  • GeographicMap: Geographic mapping lets you configure a property that returns a CNAME based on the geographic location of the request. You can reuse maps for multiple properties or create new ones. To configure a property for geographic mapping, your domain needs at least one geographic map defined. Each map needs at least two definitions. This ensures that at least one definition maps one or more countries to a data center, and the second definition routes all other traffic.

  • Resource: Represents a constraint on how much load a data center can absorb. Consider a Resource as something that can impose a capacity constraint on the load associated with one or more properties in a data center. Examples of resources include: bandwidth, CPU load average, database queries per second, or disk operations per second.

    Resources contain the architecture and topology of the network in a data center. For example, each property normally has a resource that represents the capacity of the servers for that property. In addition, there might be a resource that constrains the aggregate bandwidth available to all properties in a data center. As an example, for a database application, you might decide that the most important measurement of load is queries per second. For a static web server, you might choose to measure HTTP GET requests per second. A resource is just a name for something that you measure that reflects how you want to balance load across your data centers. You report the load in whatever units make sense to you. To GTM, loads are just relative unit-less quantities.

    A resource constrains a property if it’s affected or consumed by load on that property. A resource can be configured to constrain one or all properties. Resources can constrain multiple properties only if you are using XML load objects. With non-XML load objects, or with download score based load balancing, resources and properties correspond to each other on a one-to-one basis. For example, you may decide that you need to balance your use of Internet bandwidth. Since all Internet traffic consumes bandwidth, configure your bandwidth resource to constrain all of your properties.

  • Status: Specifies the current condition of the change in the domain’s activation.

  • UpdateResponse: A common object wrapper that reflects back the data that you just updated, and tracks the update’s status.

  • Hypermedia: The API’s data objects feature embedded link relations that provide URL paths that allow direct navigation to each object. For example, when you List domains, items within the list include link relations where the href link relation responds to a GET request for a specific GTM domain and the rel link relation self indicates that is the link you need to GET for that specific object, as shown here.

    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net",
            "rel": "self"
        }
    ],
    

Data conventions

This API’s JSON data follows these overall conventions:

  • *Id members are generated identifiers you use to key URL inputs to API operations.

  • *Name members provide descriptive, human-readable text.

  • *Date members represent ISO 8601 timestamps in UTC format.

Sample workflow

A GTM domain requires two Datacenters and at least one Property. Your contract determines the set of domain types that are available to you. The domain’s type places a restriction on the property type you can create under a domain.

This table lists each domain type, along with the property types you can associate with them:

  Domain types
Property type failover-only static weighted basic full
failover
qtr
geographic
cidrmapping
asmapping
weighted-round-robin
weighted-hashed
weighted-round-robin-load-feedback
performance

This sample workflow shows you how to create a new GTM domain named example.akadns.net, complete with two data centers (Winterfell and Frostfangs) and a property (origin). You’ll also see how to configure a liveness test to determine if your servers are responding to requests.

NOTE: When you create a new GTM domain, you may need identifiers associated with your account such as the contractId and groupId. If you need to provide IDs and don’t know what they are, run List contracts or List groups for the information.

  1. To create a new domain, run the Create a domain operation and use example.akadns.net as the domainName. This operation creates a weighted domain type named example.akadns.net, and specifies that our.admin@example.com is sent an email for each change the GTM system processes, as shown in this example. Notifications such as error messages and the domain’s current propagation progress and validation Status are also sent to this email address.

    PUT /config-gtm/v1/domains/example.akadns.net HTTP/1.1
    Accept: application/json
    Content-type: application/json
    Content-Length: 173
    
        {
            "name": "example.akadns.net",
            "type": "weighted",
            "emailNotificationList": ["our.admin@example.com"],
            "modificationComments": "New Traffic Management domain."
        }
    

    In this example, GTM confirms the domain creation with a 201 status code and returns a full representation of the new domain. Note that the API server fills in many fields such as defaultErrorPenalty and defaultTimeoutPenalty with default values:

    HTTP/1.1 201 Created
    Date: Mon, 04 Aug 2014 15:30:39 GMT
    Content-Type: application/vnd.config-gtm.v1.0+json;charset=UTF-8
    
    {
        "resource": {
            "cidrMaps": [],
            "datacenters": [],
            "defaultErrorPenalty": 75,
            "defaultSslClientCertificate": null,
            "defaultSslClientPrivateKey": null,
            "defaultTimeoutPenalty": 25,
            "emailNotificationList": [ "our.admin@example.com" ],
            "geographicMaps": [],
            "lastModified": "2014-08-04T15:30:40.057+0000",
            "lastModifiedBy": "admin",
            "loadFeedback": false,
            "loadImbalancePercentage": null,
            "modificationComments": "New Traffic Management domain.",
            "name": "example.akadns.net",
            "properties": [],
            "resources": [],
            "status": {
                "changeId": "abb94136-dd94-4779-bfb0-fcfac67fb843",
                "message": "Change Pending",
                "passingValidation": true,
                "propagationStatus": "PENDING",
                "propagationStatusDate": "2014-08-04T15:30:40.057+0000"
            },
            "type": "weighted"
        },
        "status": {
            "changeId": "abb94136-dd94-4779-bfb0-fcfac67fb843",
            "message": "Change Pending",
            "passingValidation": true,
            "propagationStatus": "PENDING",
            "propagationStatusDate": "2014-08-04T15:30:40.057+0000"
        }
    }
    
  2. Now that you created the example.akadns.net domain, run the Create a data center operation to create the first of two Datacenters for the domain, starting with the Winterfell data center, as shown in this example:

    POST /config-gtm/v1/domains/example.akadns.net/datacenters HTTP/1.1
    Accept: application/json
    Content-type: application/json
    Content-Length: 145
    
    {
        "city": "Downpatrick",
        "continent": "EU",
        "country": "GB",
        "latitude": 54.367,
        "longitude": -5.582,
        "nickname": "Winterfell"
    }
    

    This operation assigns a datacenterId of 3131 to the Winterfell data center. The datacenterId is important because it’s referenced by many other entities across the domain and helps form the Location header that you can use to navigate directly to access the new data center. The datacenterId appears as a member in the data center’s JSON response, as shown in this example:

    HTTP/1.1 201 Created
    Date: Mon, 04 Aug 2014 15:49:08 GMT
    Location: /config-gtm/v1/domains/example.akadns.net/datacenters/3131
    Transfer-Encoding: chunked
    Content-Type: application/vnd.config-gtm.v1.0+json;charset=UTF-8
    
    {
        "resource": {
            "city": "Downpatrick",
            "cloneOf": null,
            "continent": "EU",
            "country": "GB",
            "datacenterId": 3131,
            "defaultLoadObject": null,
            "latitude": 54.367,
            "longitude": -5.582,
            "nickname": "Winterfell",
            "stateOrProvince": null,
            "virtual": true
        },
        "status": {
            "changeId": "0a580f0a-d585-4fc0-a3ff-47c79e8fd7fc",
            "message": "Change Pending",
            "passingValidation": true,
            "propagationStatus": "PENDING",
            "propagationStatusDate": "2014-08-04T15:49:10.111+0000"
        }
    }
    
  3. Run the Create a data center operation again to add the Frostfangs data center, as shown in this example:

    POST /config-gtm/v1/domains/example.akadns.net/datacenters HTTP/1.1
    Accept: application/json
    Content-type: application/json
    Content-Length: 248
    
    {
        "city": "Snaefellsjokull",
        "continent": "EU",
        "country": "IS",
        "latitude": 64.808,
        "longitude": -23.776,
        "nickname": "Frostfangs"
    }
    
  4. Then, run the List data centers operation to see the data centers within this domain. The Frostfangs data center is assigned a datacenterId of 3132, as shown in this example.

    GET /config-gtm/v1/domains/example.akadns.net/datacenters
    Content-Type: application/vnd.config-gtm.v1.0+json;charset=UTF-8
    
    {
        "items": [
            {
                "city": "Downpatrick",
                "cloneOf": null,
                "continent": "EU",
                "country": "GB",
                "datacenterId": 3131,
                "defaultLoadObject": {
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "loadServers": null
                },
                "latitude": 54.367,
                "longitude": -5.582,
                "nickname": "Winterfell",
                "stateOrProvince": null,
                "virtual": true
            },
            {
                "city": "Snaefellsjokull",
                "cloneOf": null,
                "continent": "EU",
                "country": "IS",
                "datacenterId": 3132,
                "defaultLoadObject": {
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "loadServers": null
                },
                "latitude": 64.808,
                "longitude": -23.776,
                "nickname": "Frostfangs",
                "stateOrProvince": null,
                "virtual": true
            }
        ]
    }
    
  5. Finally, run the Create or update a property operation to create a property named origin, as a weighted-round-robin load balanced property with a 50/50 split. This basic setup splits requests evenly between the Winterfell data center and the Frostfangs data center, as shown in this example:

    PUT /config-gtm/v1/domains/example.akadns.net/properties/origin HTTP/1.1
    Content-type: application/json
    Accept: application/json
    Content-Length: 534
    
    {
        "name": "origin",
        "handoutMode": "normal",
        "failoverDelay" : 0,
        "failbackDelay" : 0,
        "trafficTargets": [
            {
                "datacenterId": 3131,
                "enabled": true,
                "servers": [ "1.2.3.5" ],
                "weight": 50.0
            },
            {
                "datacenterId": 3132,
                "enabled": true,
                "servers": [ "1.2.3.4" ],
                "weight": 50.0
            }
        ],
        "type": "weighted-round-robin",
        "scoreAggregationType": "mean"
    }
    
  6. If you’d like GTM to only provide IPs for servers that respond to requests, run the Create or update a property operation again and store the livenessTests array objects as shown in this example:

    PUT /config-gtm/v1/domains/example.akadns.net/properties/origin HTTP/1.1
    Host: iamakamai.qaextranet.akamai.com
    Content-type: application/json
    Accept: application/json
    Content-Length: 982
    
    {
        "name": "origin",
        "handoutMode": "normal",
        "failoverDelay" : 0,
        "failbackDelay" : 0,
        "trafficTargets": [
            {
                "datacenterId": 3131,
                "enabled": true,
                "servers": [ "1.2.3.5" ],
                "weight": 50.0
            },
            {
                "datacenterId": 3132,
                "enabled": true,
                "servers": [ "1.2.3.4" ],
                "weight": 50.0
            }
        ],
        "type": "weighted-round-robin",
        "scoreAggregationType": "mean",
        "livenessTests": [
            {
                "disableNonstandardPortWarning": false,
                "hostHeader": "123.example.com",
                "httpError3xx": true,
                "httpError4xx": true,
                "httpError5xx": true,
                "name": "health-check",
                "testInterval": 60,
                "testObject": "/status",
                "testObjectPort": 80,
                "testObjectProtocol": "HTTP",
                "testTimeout": 25.0
            }
        ]
    }
    

    With this configuration, servermonitors assigned to your domain test each IP address every 60 seconds (the testInterval) by running the equivalent of this command:

    curl -H "Host: 123.example.com" http://1.2.3.5/status
    

    The server monitor treats status codes in the 300, 400, and 500 range as errors, controlled by the httpError3xx, httpError4xx, httpError3xx members, respectively. Test agents also time out tests after 25 seconds (the testTimeout).

API versioning

The API currently supports the following response media types:

  • application/json
  • application/vnd.config-gtm.v1.0+json
  • application/vnd.config-gtm.v1.1+json
  • application/vnd.config-gtm.v1.2+json
  • application/vnd.config-gtm.v1.3+json

The application/json type is synonymous with the earliest application/vnd.config-gtm.v1.0+json version, regardless of how many other versions are incrementally added over time as the service evolves. API clients may choose to adopt the new resource versions, or stay on the initial v1.0 version until the need arises to upgrade. For example, upgrading to a v1.3 domain lets you determine what fraction (minLiveFraction) of your servers need to respond to requests for GTM to consider the data center up and able to receive traffic. Note that nothing from the original v1.0 object gets lost as you migrate to a later version. Clients should specify the exact version of the representation, for example:

Accept: application/vnd.config-gtm.v1.0+json

API hypermedia

The API’s data objects feature embedded link relations that provide URL paths that allow direct navigation to each object. For example, items within a list of domains feature link relations such as the following, where the href responds to a GET request, and a rel of self indicates that it identifies the unique object.

"links": [
    {
        "href": "/config-gtm/v1/domains/example.akadns.net",
        "rel": "self"
    }
],

Resources

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

API summary

Download the RAML descriptors for this API.

Operation Method Endpoint
Identity  
Get identity GET /config-gtm/v1/identity
List contracts GET /config-gtm/v1/identity/contracts
List groups GET /config-gtm/v1/identity/groups
Domains  
List domains GET /config-gtm/v1/domains
Get a domain GET /config-gtm/v1/domains/{domainName}
Create a domain POST /config-gtm/v1/domains/{domainName}{?contractId,gid}
Update a domain PUT /config-gtm/v1/domains/{domainName}{?contractId,gid}
Resources  
List resources GET /config-gtm/v1/domains/{domainName}/resources
Get a resource GET /config-gtm/v1/domains/{domainName}/resources/{resourceName}
Create or update a resource PUT /config-gtm/v1/domains/{domainName}/resources/{resourceName}
Remove a resource DELETE /config-gtm/v1/domains/{domainName}/resources/{resourceName}
Properties  
List properties GET /config-gtm/v1/domains/{domainName}/properties
Get a property GET /config-gtm/v1/domains/{domainName}/properties/{propertyName}
Create or update a property PUT /config-gtm/v1/domains/{domainName}/properties/{propertyName}
Remove a property DELETE /config-gtm/v1/domains/{domainName}/properties/{propertyName}
CIDR maps  
List CIDR maps GET /config-gtm/v1/domains/{domainName}/cidr-maps
Get a CIDR map GET /config-gtm/v1/domains/{domainName}/cidr-maps/{mapName}
Create or update a CIDR map PUT /config-gtm/v1/domains/{domainName}/cidr-maps/{mapName}
Remove a CIDR map DELETE /config-gtm/v1/domains/{domainName}/cidr-maps/{mapName}
Autonomous system maps  
List AS maps GET /config-gtm/v1/domains/{domainName}/as-maps
Get an AS map GET /config-gtm/v1/domains/{domainName}/as-maps/{mapName}
Create or update an AS map PUT /config-gtm/v1/domains/{domainName}/as-maps/{mapName}
Remove an AS map DELETE /config-gtm/v1/domains/{domainName}/as-maps/{mapName}
Geographic maps  
List geographic maps GET /config-gtm/v1/domains/{domainName}/geographic-maps
Get a geographic map GET /config-gtm/v1/domains/{domainName}/geographic-maps/{mapName}
Create or update a geographic map PUT /config-gtm/v1/domains/{domainName}/geographic-maps/{mapName}
Remove a geographic map DELETE /config-gtm/v1/domains/{domainName}/geographic-maps/{mapName}
Data centers  
List data centers GET /config-gtm/v1/domains/{domainName}/datacenters
Create a data center POST /config-gtm/v1/domains/{domainName}/datacenters
Get a data center GET /config-gtm/v1/domains/{domainName}/datacenters/{datacenterId}
Update a data center PUT /config-gtm/v1/domains/{domainName}/datacenters/{datacenterId}
Remove a data center DELETE /config-gtm/v1/domains/{domainName}/datacenters/{datacenterId}
Status  
Get current status GET /config-gtm/v1/domains/{domainName}/status/current

Get identity

Returns information about the API client. Run this operation for details on the API client contract such as available load balancing features and permissions the client has on the domains tied to the contract.

GET /config-gtm/v1/identity

Status 200 application/json

Object type: Identity

Download schema: identity.json

Response body:

{
    "accountId": "1-1TJZFB",
    "userName": "ed@example.com",
    "userTimeZone": "-05:00",
    "locale": "en_US",
    "firstName": "Eddard",
    "lastName": "Stark",
    "email": "ed@example.com",
    "active": true,
    "contracts": [
        {
            "contractId": "1-1TJZH5",
            "features": [
                "FAILOVER",
                "QTR",
                "ASMAPPING",
                "CIDRMAPPING",
                "GEOGRAPHIC",
                "WEIGHTED_ROUND_ROBIN",
                "WEIGHTED_ROUND_ROBIN_LOAD_FEEDBACK",
                "WEIGHTED_HASHED",
                "PERFORMANCE"
            ],
            "permissions": [
                "READ",
                "WRITE",
                "ADD"
            ]
        },
        {
            "contractId": "3-ZQ0H6H",
            "features": [
                "FAILOVER",
                "QTR",
                "ASMAPPING",
                "CIDRMAPPING",
                "GEOGRAPHIC"
            ],
            "permissions": [
                "READ",
                "WRITE"
            ]
        }
    ]
}

List contracts

Returns a list of API client contracts. When you Create a domain, you may need a contractId under certain circumstances. Run this operation to view available values.

GET /config-gtm/v1/identity/contracts

Status 200 application/json

Object type: Contracts

Download schema: identity-contracts.json

Response body:

{
    "accountId": "1-1TJZFB",
    "contracts": [
        {
            "contractId": "1-1TJZH5",
            "contractName": "Wolves",
            "contractTypeName": "DIRECT_CUSTOMER"
        },
        {
            "contractId": "3-ZQ0H6H",
            "contractName": "Stags",
            "contractTypeName": "DIRECT_CUSTOMER"
        }
    ]
}

List groups

Returns a list of API client groups and their parameters. When you Create a domain, you may need a groupId under certain circumstances. Run this operation to view available values.

GET /config-gtm/v1/identity/groups

Status 200 application/json

Object type: Group

Download schema: identity-groups.json

Response body:

{
    "groups": [
        {
            "groupId": 15166,
            "groupName": "House Stark",
            "contractIds": [
                "1-1TJZH5"
            ],
            "permissions": [
                "ADD",
                "READ",
                "WRITE"
            ]
        },
        {
            "groupId": 41443,
            "groupName": "House Baratheon",
            "contractIds": [
                "1-1TJZH5",
                "3-ZQ0H6H"
            ],
            "permissions": [
                "READ",
                "WRITE"
            ]
        }
    ]
}

List domains

Returns a list of GTM domains under your contract.

GET /config-gtm/v1/domains

Status 200 application/json

Object type: Domain

Download schema: domain-list.json

Response body:

{
    "items": [
        {
            "acgId": "1-2345",
            "lastModified": "2014-03-03T16:02:45.000+0000",
            "name": "example.akadns.net",
            "status": "2014-02-20 22:56 GMT: Current configuration has been propagated to all GTM name servers",
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net",
                    "rel": "self"
                }
            ]
        },
        {
            "acgId": "1-2345",
            "lastModified": "2013-11-09T12:04:45.000+0000",
            "name": "demo.akadns.net",
            "status": "2014-02-20 22:56 GMT: Current configuration has been propagated to all GTM name servers",
            "links": [
                {
                    "href": "/config-gtm/v1/domains/demo.akadns.net",
                    "rel": "self"
                }
            ]
        }
    ]
}

Get a domain

Returns information for a specific GTM domain.

GET /config-gtm/v1/domains/{domainName}

Sample: /config-gtm/v1/domains/example.akadns.net

Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.

Status 200 application/json

Object type: Domain

Download schema: domain-vnd-config-gtm.v1.0.json

Response body:

{
    "defaultSslClientCertificate": null,
    "defaultSslClientPrivateKey": null,
    "defaultUnreachableThreshold": null,
    "lastModified": "2014-04-08T18:25:51.000+0000",
    "lastModifiedBy": "admin@example.com",
    "loadFeedback": true,
    "loadImbalancePercentage": 10.0,
    "minPingableRegionFraction": null,
    "modificationComments": "CIDRMap example",
    "name": "example.akadns.net",
    "pingInterval": null,
    "roundRobinPrefix": null,
    "servermonitorLivenessCount": null,
    "servermonitorLoadCount": null,
    "type": "full",
    "emailNotificationList": [],
    "status": {
        "changeId": "5beb11ae-8908-4bfe-8459-e88efc4d2fdc",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-08T18:25:51.000+0000",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ]
    },
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net",
            "rel": "self"
        },
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/datacenters",
            "rel": "datacenters"
        },
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/properties",
            "rel": "properties"
        },
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/geographic-maps",
            "rel": "geographic-maps"
        },
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/cidr-maps",
            "rel": "cidr-maps"
        },
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/resources",
            "rel": "resources"
        }
    ],
    "cidrMaps": [
        {
            "name": "The North",
            "defaultDatacenter": {
                "datacenterId": 5400,
                "nickname": "All Other CIDR Blocks"
            },
            "assignments": [
                {
                    "datacenterId": 3134,
                    "nickname": "Frostfangs and the Fist of First Men",
                    "blocks": [
                        "1.3.5.9",
                        "1.2.3.0/24"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "nickname": "Winterfell",
                    "blocks": [
                        "1.2.4.0/24"
                    ]
                }
            ],
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/cidr-maps/The%20North",
                    "rel": "self"
                }
            ]
        }
    ],
    "datacenters": [
        {
            "city": "Downpatrick",
            "cloneOf": 0,
            "continent": "EU",
            "country": "GB",
            "datacenterId": 3133,
            "latitude": 54.367,
            "longitude": -5.582,
            "nickname": "Winterfell",
            "stateOrProvince": null,
            "virtual": true,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            },
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3133",
                    "rel": "self"
                }
            ]
        },
        {
            "city": "Doune",
            "cloneOf": 0,
            "continent": "EU",
            "country": "GB",
            "datacenterId": 3134,
            "latitude": 56.185097,
            "longitude": -4.050264,
            "nickname": "Winterfell",
            "stateOrProvince": "Perthshire",
            "virtual": true,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            },
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3134",
                    "rel": "self"
                }
            ]
        },
        {
            "city": null,
            "cloneOf": 0,
            "continent": null,
            "country": null,
            "datacenterId": 5400,
            "latitude": 0.0,
            "longitude": 0.0,
            "nickname": "Default Datacenter",
            "stateOrProvince": null,
            "virtual": true,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            },
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/5400",
                    "rel": "self"
                }
            ]
        }
    ],
    "geographicMaps": [
        {
            "name": "UK Delivery",
            "defaultDatacenter": {
                "datacenterId": 5400,
                "nickname": "Default Mapping"
            },
            "assignments": [
                {
                    "datacenterId": 3133,
                    "nickname": "UK users",
                    "countries": [
                        "GB"
                    ]
                }
            ],
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/geographic-maps/UK%20Delivery",
                    "rel": "self"
                }
            ]
        }
    ],
    "properties": [
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": false,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "mapName": null,
            "maxUnreachablePenalty": null,
            "name": "www",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "type": "failover",
            "unreachableThreshold": null,
            "useComputedTargets": false,
            "mxRecords": [],
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/properties/www",
                    "rel": "self"
                }
            ],
            "livenessTests": [
                {
                    "disableNonstandardPortWarning": false,
                    "hostHeader": "foo.example.com",
                    "httpError3xx": true,
                    "httpError4xx": true,
                    "httpError5xx": true,
                    "name": "health-check",
                    "requestString": null,
                    "responseString": null,
                    "sslClientCertificate": null,
                    "sslClientPrivateKey": null,
                    "testInterval": 60,
                    "testObject": "/status",
                    "testObjectPassword": null,
                    "testObjectPort": 80,
                    "testObjectProtocol": "HTTP",
                    "testObjectUsername": null,
                    "testTimeout": 25.0,
                    "links": []
                }
            ],
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": false,
                    "handoutCName": null,
                    "name": null,
                    "weight": 0.0,
                    "servers": []
                },
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "weight": 0.0,
                    "servers": [
                        "1.2.3.5"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "weight": 1.0,
                    "servers": [
                        "1.2.3.4"
                    ]
                }
            ]
        },
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": true,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "loadImbalancePercentage": null,
            "mapName": null,
            "maxUnreachablePenalty": null,
            "name": "mail",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "type": "weighted-round-robin",
            "unreachableThreshold": null,
            "useComputedTargets": false,
            "livenessTests": [],
            "mxRecords": [],
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/properties/mail",
                    "rel": "self"
                }
            ],
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": false,
                    "handoutCName": null,
                    "name": null,
                    "weight": 0.0,
                    "servers": []
                },
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "weight": 1.0,
                    "servers": [
                        "2001:4878::5043:4078"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "weight": 1.0,
                    "servers": [
                        "2001:4878::5043:4072",
                        "2001:4878::5043:4071"
                    ]
                }
            ]
        },
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": false,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "loadImbalancePercentage": null,
            "mapName": null,
            "maxUnreachablePenalty": null,
            "name": "supplies",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "type": "failover",
            "unreachableThreshold": null,
            "useComputedTargets": false,
            "livenessTests": [],
            "mxRecords": [],
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/properties/supplies",
                    "rel": "self"
                }
            ],
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": false,
                    "handoutCName": "supplies.example.com",
                    "name": null,
                    "weight": 0.0,
                    "servers": []
                },
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "handoutCName": "winter.supplies.example.com",
                    "name": null,
                    "weight": 0.0,
                    "servers": []
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": "redcross.org",
                    "name": null,
                    "weight": 0.0,
                    "servers": []
                }
            ]
        },
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": false,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "loadImbalancePercentage": null,
            "mapName": "UK Delivery",
            "maxUnreachablePenalty": null,
            "name": "shop",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "type": "geographic",
            "unreachableThreshold": null,
            "useComputedTargets": false,
            "livenessTests": [],
            "mxRecords": [],
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/properties/shop",
                    "rel": "self"
                }
            ],
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": true,
                    "handoutCName": "shop.example.com",
                    "name": null,
                    "weight": 1.0,
                    "servers": []
                },
                {
                    "datacenterId": 3134,
                    "enabled": false,
                    "handoutCName": null,
                    "name": null,
                    "weight": 1.0,
                    "servers": []
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": "uk.shop.example.com",
                    "name": null,
                    "weight": 1.0,
                    "servers": []
                }
            ]
        }
    ],
    "resources": [
        {
            "aggregationType": "latest",
            "constrainedProperty": "mail",
            "decayRate": null,
            "description": "CPU utilization",
            "hostHeader": null,
            "leaderString": null,
            "leastSquaresDecay": null,
            "loadImbalancePercentage": null,
            "maxUMultiplicativeIncrement": null,
            "name": "cpu",
            "type": "XML load object via HTTP",
            "upperBound": 0,
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/resources/cpu",
                    "rel": "self"
                }
            ],
            "resourceInstances": [
                {
                    "datacenterId": 3134,
                    "loadObject": "/cpu",
                    "loadObjectPort": 80,
                    "useDefaultLoadObject": false,
                    "loadServers": [
                        "1.2.3.8"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "loadObject": "/cpu",
                    "loadObjectPort": 80,
                    "useDefaultLoadObject": false,
                    "loadServers": [
                        "1.2.3.7"
                    ]
                },
                {
                    "datacenterId": 5400,
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "useDefaultLoadObject": false,
                    "loadServers": []
                }
            ]
        },
        {
            "aggregationType": "latest",
            "constrainedProperty": "**",
            "decayRate": null,
            "description": "Supply levels of Arbor Gold",
            "hostHeader": null,
            "leaderString": null,
            "leastSquaresDecay": null,
            "loadImbalancePercentage": null,
            "maxUMultiplicativeIncrement": null,
            "name": "arbor-gold",
            "type": "Non-XML load object via HTTP",
            "upperBound": 0,
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/resources/arbor-gold",
                    "rel": "self"
                }
            ],
            "resourceInstances": [
                {
                    "datacenterId": 3134,
                    "loadObject": "/cups",
                    "loadObjectPort": 80,
                    "useDefaultLoadObject": false,
                    "loadServers": [
                        "1.2.3.8"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "loadObject": "/cups",
                    "loadObjectPort": 80,
                    "useDefaultLoadObject": false,
                    "loadServers": [
                        "1.2.3.7"
                    ]
                },
                {
                    "datacenterId": 5400,
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "useDefaultLoadObject": false,
                    "loadServers": []
                }
            ]
        }
    ]
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Make a GET request to /config-gtm/v1/domains/{domainName}, which responds with a Domain object.

Create a domain

Creates a new GTM domain.

POST /config-gtm/v1/domains/{domainName}{?contractId,gid}

Sample: /config-gtm/v1/domains/example.akadns.net?contractId=1-1TJZFW&gid=15166

Content-Type: application/json

Object type: Domain

Download schema: domain-vnd-config-gtm.v1.0.json

Request body:

{
    "defaultSslClientCertificate": null,
    "defaultSslClientPrivateKey": null,
    "defaultUnreachableThreshold": null,
    "lastModified": "2014-04-08T18:25:51.000+0000",
    "lastModifiedBy": "admin@example.com",
    "loadFeedback": true,
    "loadImbalancePercentage": 10.0,
    "minPingableRegionFraction": null,
    "modificationComments": "CIDRMap example",
    "name": "example.akadns.net",
    "pingInterval": null,
    "roundRobinPrefix": null,
    "servermonitorLivenessCount": null,
    "servermonitorLoadCount": null,
    "type": "full",
    "emailNotificationList": [],
    "cidrMaps": [
        {
            "name": "The North",
            "defaultDatacenter": {
                "datacenterId": 5400,
                "nickname": "All Other CIDR Blocks"
            },
            "assignments": [
                {
                    "datacenterId": 3134,
                    "nickname": "Frostfangs and the Fist of First Men",
                    "blocks": [
                        "1.3.5.9",
                        "1.2.3.0/24"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "nickname": "Winterfell",
                    "blocks": [
                        "1.2.4.0/24"
                    ]
                }
            ]
        }
    ],
    "datacenters": [
        {
            "city": "Doune",
            "cloneOf": 0,
            "continent": "EU",
            "country": "GB",
            "datacenterId": 3133,
            "latitude": 56.185097,
            "longitude": -4.050264,
            "nickname": "Winterfell",
            "stateOrProvince": "Perthshire",
            "virtual": true,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            }
        },
        {
            "city": "Sn\u00e6fellsj\u00f6kull",
            "cloneOf": 0,
            "continent": "EU",
            "country": "IS",
            "datacenterId": 3134,
            "latitude": 64.808,
            "longitude": -23.776,
            "nickname": "Frostfangs",
            "stateOrProvince": null,
            "virtual": true,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            }
        },
        {
            "city": null,
            "cloneOf": 0,
            "continent": null,
            "country": null,
            "datacenterId": 5400,
            "latitude": 0.0,
            "longitude": 0.0,
            "nickname": "Default Datacenter",
            "stateOrProvince": null,
            "virtual": true,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            }
        }
    ],
    "geographicMaps": [
        {
            "name": "UK Delivery",
            "defaultDatacenter": {
                "datacenterId": 5400,
                "nickname": "Default Mapping"
            },
            "assignments": [
                {
                    "datacenterId": 3133,
                    "nickname": "UK users",
                    "countries": [
                        "GB"
                    ]
                }
            ]
        }
    ],
    "properties": [
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": false,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "mapName": null,
            "maxUnreachablePenalty": null,
            "name": "www",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "type": "failover",
            "unreachableThreshold": null,
            "useComputedTargets": false,
            "mxRecords": [],
            "livenessTests": [
                {
                    "disableNonstandardPortWarning": false,
                    "hostHeader": "foo.example.com",
                    "httpError3xx": true,
                    "httpError4xx": true,
                    "httpError5xx": true,
                    "name": "health-check",
                    "requestString": null,
                    "responseString": null,
                    "sslClientCertificate": null,
                    "sslClientPrivateKey": null,
                    "testInterval": 60,
                    "testObject": "/status",
                    "testObjectPassword": null,
                    "testObjectPort": 80,
                    "testObjectProtocol": "HTTP",
                    "testObjectUsername": null,
                    "testTimeout": 25.0
                }
            ],
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": false,
                    "handoutCName": null,
                    "name": null,
                    "weight": 0.0,
                    "servers": []
                },
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "weight": 0.0,
                    "servers": [
                        "1.2.3.5"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "weight": 1.0,
                    "servers": [
                        "1.2.3.4"
                    ]
                }
            ]
        },
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": true,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "mapName": null,
            "maxUnreachablePenalty": null,
            "name": "mail",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "type": "weighted-round-robin",
            "unreachableThreshold": null,
            "useComputedTargets": false,
            "livenessTests": [],
            "mxRecords": [],
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": false,
                    "handoutCName": null,
                    "name": null,
                    "weight": 1.0,
                    "servers": []
                },
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "weight": 1.0,
                    "servers": [
                        "2001:4878::5043:4078"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "weight": 1.0,
                    "servers": [
                        "2001:4878::5043:4072",
                        "2001:4878::5043:4071"
                    ]
                }
            ]
        },
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": false,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "loadImbalancePercentage": null,
            "mapName": null,
            "maxUnreachablePenalty": null,
            "name": "supplies",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "type": "failover",
            "unreachableThreshold": null,
            "useComputedTargets": false,
            "livenessTests": [],
            "mxRecords": [],
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": true,
                    "handoutCName": "supplies.example.com",
                    "name": null,
                    "weight": 1.0,
                    "servers": []
                },
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "handoutCName": "winter.supplies.example.com",
                    "name": null,
                    "weight": 0.0,
                    "servers": []
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": "redcross.org",
                    "name": null,
                    "weight": 0.0,
                    "servers": []
                }
            ]
        },
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": false,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "loadImbalancePercentage": null,
            "mapName": "UK Delivery",
            "maxUnreachablePenalty": null,
            "name": "shop",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "type": "geographic",
            "unreachableThreshold": null,
            "useComputedTargets": false,
            "livenessTests": [],
            "mxRecords": [],
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": true,
                    "handoutCName": "shop.example.com",
                    "name": null,
                    "weight": 1.0,
                    "servers": []
                },
                {
                    "datacenterId": 3134,
                    "enabled": false,
                    "handoutCName": null,
                    "name": null,
                    "weight": 1.0,
                    "servers": []
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": "uk.shop.example.com",
                    "name": null,
                    "weight": 1.0,
                    "servers": []
                }
            ]
        }
    ],
    "resources": [
        {
            "aggregationType": "latest",
            "constrainedProperty": "mail",
            "decayRate": null,
            "description": "CPU utilization",
            "hostHeader": null,
            "leaderString": null,
            "leastSquaresDecay": null,
            "loadImbalancePercentage": null,
            "maxUMultiplicativeIncrement": null,
            "name": "cpu",
            "type": "XML load object via HTTP",
            "upperBound": 0,
            "resourceInstances": [
                {
                    "datacenterId": 3134,
                    "loadObject": "/cpu",
                    "loadObjectPort": 80,
                    "useDefaultLoadObject": false,
                    "loadServers": [
                        "1.2.3.8"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "loadObject": "/cpu",
                    "loadObjectPort": 80,
                    "useDefaultLoadObject": false,
                    "loadServers": [
                        "1.2.3.7"
                    ]
                },
                {
                    "datacenterId": 5400,
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "useDefaultLoadObject": false,
                    "loadServers": []
                }
            ]
        },
        {
            "aggregationType": "latest",
            "constrainedProperty": "**",
            "decayRate": null,
            "description": "Supply levels of Arbor Gold",
            "hostHeader": null,
            "leaderString": null,
            "leastSquaresDecay": null,
            "loadImbalancePercentage": null,
            "maxUMultiplicativeIncrement": null,
            "name": "arbor-gold",
            "type": "Non-XML load object via HTTP",
            "upperBound": 0,
            "resourceInstances": [
                {
                    "datacenterId": 3134,
                    "loadObject": "/cups",
                    "loadObjectPort": 80,
                    "useDefaultLoadObject": false,
                    "loadServers": [
                        "1.2.3.8"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "loadObject": "/cups",
                    "loadObjectPort": 80,
                    "useDefaultLoadObject": false,
                    "loadServers": [
                        "1.2.3.7"
                    ]
                },
                {
                    "datacenterId": 5400,
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "useDefaultLoadObject": false,
                    "loadServers": []
                }
            ]
        }
    ]
}
Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
Optional query parameters
contractId String 1-1TJZFW A unique identifier for the contract. If your GTM client credential has access to more than one contract, you need to specify under which contract to provision the domain. For more information, see API concepts.
gid Integer 15166 A unique identifier for the group. If your GTM client credential has access to more than one group, you need to specify which group to assign to the domain. For more information, see API concepts.

Status 201 application/json

Object type: UpdateResponse

Download schema: property-update-response.json

Response body:

{
    "resource": {
        "defaultSslClientCertificate": null,
        "defaultSslClientPrivateKey": null,
        "defaultUnreachableThreshold": null,
        "lastModified": "2014-04-08T18:25:51.000+0000",
        "lastModifiedBy": "admin@example.com",
        "loadFeedback": true,
        "loadImbalancePercentage": 10.0,
        "minPingableRegionFraction": null,
        "modificationComments": "CIDRMap example",
        "name": "example.akadns.net",
        "pingInterval": null,
        "roundRobinPrefix": null,
        "servermonitorLivenessCount": null,
        "servermonitorLoadCount": null,
        "type": "full",
        "emailNotificationList": [],
        "status": {
            "changeId": "5beb11ae-8908-4bfe-8459-e88efc4d2fdc",
            "message": "Change Pending",
            "passingValidation": true,
            "propagationStatus": "PENDING",
            "propagationStatusDate": "2014-04-08T18:25:51.000+0000",
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                    "rel": "self"
                }
            ]
        },
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net",
                "rel": "self"
            },
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/datacenters",
                "rel": "datacenters"
            },
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/properties",
                "rel": "properties"
            },
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/geographic-maps",
                "rel": "geographic-maps"
            },
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/cidr-maps",
                "rel": "cidr-maps"
            },
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/resources",
                "rel": "resources"
            }
        ],
        "cidrMaps": [
            {
                "name": "The North",
                "defaultDatacenter": {
                    "datacenterId": 5400,
                    "nickname": "All Other CIDR Blocks"
                },
                "assignments": [
                    {
                        "datacenterId": 3134,
                        "nickname": "Frostfangs and the Fist of First Men",
                        "blocks": [
                            "1.3.5.9",
                            "1.2.3.0/24"
                        ]
                    },
                    {
                        "datacenterId": 3133,
                        "nickname": "Winterfell",
                        "blocks": [
                            "1.2.4.0/24"
                        ]
                    }
                ],
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/cidr-maps/The%20North",
                        "rel": "self"
                    }
                ]
            }
        ],
        "datacenters": [
            {
                "city": "Doune",
                "cloneOf": 0,
                "continent": "EU",
                "country": "GB",
                "datacenterId": 3133,
                "latitude": 56.185097,
                "longitude": -4.050264,
                "nickname": "Winterfell",
                "stateOrProvince": "Perthshire",
                "virtual": true,
                "defaultLoadObject": {
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "loadServers": null
                },
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3133",
                        "rel": "self"
                    }
                ]
            },
            {
                "city": "Sn\u00e6fellsj\u00f6kull",
                "cloneOf": 0,
                "continent": "EU",
                "country": "IS",
                "datacenterId": 3134,
                "latitude": 64.808,
                "longitude": -23.776,
                "nickname": "Frostfangs",
                "stateOrProvince": null,
                "virtual": true,
                "defaultLoadObject": {
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "loadServers": null
                },
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3134",
                        "rel": "self"
                    }
                ]
            },
            {
                "city": null,
                "cloneOf": 0,
                "continent": null,
                "country": null,
                "datacenterId": 5400,
                "latitude": 0.0,
                "longitude": 0.0,
                "nickname": "Default Datacenter",
                "stateOrProvince": null,
                "virtual": true,
                "defaultLoadObject": {
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "loadServers": null
                },
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/5400",
                        "rel": "self"
                    }
                ]
            }
        ],
        "geographicMaps": [
            {
                "name": "UK Delivery",
                "defaultDatacenter": {
                    "datacenterId": 5400,
                    "nickname": "Default Mapping"
                },
                "assignments": [
                    {
                        "datacenterId": 3133,
                        "nickname": "UK users",
                        "countries": [
                            "GB"
                        ]
                    }
                ],
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/geographic-maps/UK%20Delivery",
                        "rel": "self"
                    }
                ]
            }
        ],
        "properties": [
            {
                "backupCName": null,
                "backupIp": null,
                "balanceByDownloadScore": false,
                "cname": null,
                "comments": null,
                "dynamicTTL": 300,
                "failbackDelay": 0,
                "failoverDelay": 0,
                "handoutMode": "normal",
                "healthMax": null,
                "healthMultiplier": null,
                "healthThreshold": null,
                "ipv6": false,
                "lastModified": "2014-04-08T18:25:52.000+0000",
                "mapName": null,
                "maxUnreachablePenalty": null,
                "name": "www",
                "scoreAggregationType": "mean",
                "staticTTL": 600,
                "stickinessBonusConstant": 0,
                "stickinessBonusPercentage": 0,
                "type": "failover",
                "unreachableThreshold": null,
                "useComputedTargets": false,
                "mxRecords": [],
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/properties/www",
                        "rel": "self"
                    }
                ],
                "livenessTests": [
                    {
                        "disableNonstandardPortWarning": false,
                        "hostHeader": "foo.example.com",
                        "httpError3xx": true,
                        "httpError4xx": true,
                        "httpError5xx": true,
                        "name": "health-check",
                        "requestString": null,
                        "responseString": null,
                        "sslClientCertificate": null,
                        "sslClientPrivateKey": null,
                        "testInterval": 60,
                        "testObject": "/status",
                        "testObjectPassword": null,
                        "testObjectPort": 80,
                        "testObjectProtocol": "HTTP",
                        "testObjectUsername": null,
                        "testTimeout": 25.0,
                        "links": []
                    }
                ],
                "trafficTargets": [
                    {
                        "datacenterId": 5400,
                        "enabled": false,
                        "handoutCName": null,
                        "name": null,
                        "weight": 0.0,
                        "servers": []
                    },
                    {
                        "datacenterId": 3134,
                        "enabled": true,
                        "handoutCName": null,
                        "name": null,
                        "weight": 0.0,
                        "servers": [
                            "1.2.3.5"
                        ]
                    },
                    {
                        "datacenterId": 3133,
                        "enabled": true,
                        "handoutCName": null,
                        "name": null,
                        "weight": 1.0,
                        "servers": [
                            "1.2.3.4"
                        ]
                    }
                ]
            },
            {
                "backupCName": null,
                "backupIp": null,
                "balanceByDownloadScore": false,
                "cname": null,
                "comments": null,
                "dynamicTTL": 300,
                "failbackDelay": 0,
                "failoverDelay": 0,
                "handoutMode": "normal",
                "healthMax": null,
                "healthMultiplier": null,
                "healthThreshold": null,
                "ipv6": true,
                "lastModified": "2014-04-08T18:25:52.000+0000",
                "mapName": null,
                "maxUnreachablePenalty": null,
                "name": "mail",
                "scoreAggregationType": "mean",
                "staticTTL": 600,
                "stickinessBonusConstant": 0,
                "stickinessBonusPercentage": 0,
                "type": "weighted-round-robin",
                "unreachableThreshold": null,
                "useComputedTargets": false,
                "livenessTests": [],
                "mxRecords": [],
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/properties/mail",
                        "rel": "self"
                    }
                ],
                "trafficTargets": [
                    {
                        "datacenterId": 5400,
                        "enabled": false,
                        "handoutCName": null,
                        "name": null,
                        "weight": 1.0,
                        "servers": []
                    },
                    {
                        "datacenterId": 3134,
                        "enabled": true,
                        "handoutCName": null,
                        "name": null,
                        "weight": 1.0,
                        "servers": [
                            "2001:4878::5043:4078"
                        ]
                    },
                    {
                        "datacenterId": 3133,
                        "enabled": true,
                        "handoutCName": null,
                        "name": null,
                        "weight": 1.0,
                        "servers": [
                            "2001:4878::5043:4072",
                            "2001:4878::5043:4071"
                        ]
                    }
                ]
            },
            {
                "backupCName": null,
                "backupIp": null,
                "balanceByDownloadScore": false,
                "cname": null,
                "comments": null,
                "dynamicTTL": 300,
                "failbackDelay": 0,
                "failoverDelay": 0,
                "handoutMode": "normal",
                "healthMax": null,
                "healthMultiplier": null,
                "healthThreshold": null,
                "ipv6": false,
                "lastModified": "2014-04-08T18:25:52.000+0000",
                "loadImbalancePercentage": null,
                "mapName": null,
                "maxUnreachablePenalty": null,
                "name": "supplies",
                "scoreAggregationType": "mean",
                "staticTTL": 600,
                "stickinessBonusConstant": 0,
                "stickinessBonusPercentage": 0,
                "type": "failover",
                "unreachableThreshold": null,
                "useComputedTargets": false,
                "livenessTests": [],
                "mxRecords": [],
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/properties/supplies",
                        "rel": "self"
                    }
                ],
                "trafficTargets": [
                    {
                        "datacenterId": 5400,
                        "enabled": true,
                        "handoutCName": "supplies.example.com",
                        "name": null,
                        "weight": 1.0,
                        "servers": []
                    },
                    {
                        "datacenterId": 3134,
                        "enabled": true,
                        "handoutCName": "winter.supplies.example.com",
                        "name": null,
                        "weight": 0.0,
                        "servers": []
                    },
                    {
                        "datacenterId": 3133,
                        "enabled": true,
                        "handoutCName": "redcross.org",
                        "name": null,
                        "weight": 0.0,
                        "servers": []
                    }
                ]
            },
            {
                "backupCName": null,
                "backupIp": null,
                "balanceByDownloadScore": false,
                "cname": null,
                "comments": null,
                "dynamicTTL": 300,
                "failbackDelay": 0,
                "failoverDelay": 0,
                "handoutMode": "normal",
                "healthMax": null,
                "healthMultiplier": null,
                "healthThreshold": null,
                "ipv6": false,
                "lastModified": "2014-04-08T18:25:52.000+0000",
                "loadImbalancePercentage": null,
                "mapName": "UK Delivery",
                "maxUnreachablePenalty": null,
                "name": "shop",
                "scoreAggregationType": "mean",
                "staticTTL": 600,
                "stickinessBonusConstant": 0,
                "stickinessBonusPercentage": 0,
                "type": "geographic",
                "unreachableThreshold": null,
                "useComputedTargets": false,
                "livenessTests": [],
                "mxRecords": [],
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/properties/shop",
                        "rel": "self"
                    }
                ],
                "trafficTargets": [
                    {
                        "datacenterId": 5400,
                        "enabled": true,
                        "handoutCName": "shop.example.com",
                        "name": null,
                        "weight": 1.0,
                        "servers": []
                    },
                    {
                        "datacenterId": 3134,
                        "enabled": false,
                        "handoutCName": null,
                        "name": null,
                        "weight": 1.0,
                        "servers": []
                    },
                    {
                        "datacenterId": 3133,
                        "enabled": true,
                        "handoutCName": "uk.shop.example.com",
                        "name": null,
                        "weight": 1.0,
                        "servers": []
                    }
                ]
            }
        ],
        "resources": [
            {
                "aggregationType": "latest",
                "constrainedProperty": "mail",
                "decayRate": null,
                "description": "CPU utilization",
                "hostHeader": null,
                "leaderString": null,
                "leastSquaresDecay": null,
                "loadImbalancePercentage": null,
                "maxUMultiplicativeIncrement": null,
                "name": "cpu",
                "type": "XML load object via HTTP",
                "upperBound": 0,
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/resources/cpu",
                        "rel": "self"
                    }
                ],
                "resourceInstances": [
                    {
                        "datacenterId": 3134,
                        "loadObject": "/cpu",
                        "loadObjectPort": 80,
                        "useDefaultLoadObject": false,
                        "loadServers": [
                            "1.2.3.8"
                        ]
                    },
                    {
                        "datacenterId": 3133,
                        "loadObject": "/cpu",
                        "loadObjectPort": 80,
                        "useDefaultLoadObject": false,
                        "loadServers": [
                            "1.2.3.7"
                        ]
                    },
                    {
                        "datacenterId": 5400,
                        "loadObject": null,
                        "loadObjectPort": 0,
                        "useDefaultLoadObject": false,
                        "loadServers": []
                    }
                ]
            },
            {
                "aggregationType": "latest",
                "constrainedProperty": "**",
                "decayRate": null,
                "description": "Supply levels of Arbor Gold",
                "hostHeader": null,
                "leaderString": null,
                "leastSquaresDecay": null,
                "loadImbalancePercentage": null,
                "maxUMultiplicativeIncrement": null,
                "name": "arbor-gold",
                "type": "Non-XML load object via HTTP",
                "upperBound": 0,
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/resources/arbor-gold",
                        "rel": "self"
                    }
                ],
                "resourceInstances": [
                    {
                        "datacenterId": 3134,
                        "loadObject": "/cups",
                        "loadObjectPort": 80,
                        "useDefaultLoadObject": false,
                        "loadServers": [
                            "1.2.3.8"
                        ]
                    },
                    {
                        "datacenterId": 3133,
                        "loadObject": "/cups",
                        "loadObjectPort": 80,
                        "useDefaultLoadObject": false,
                        "loadServers": [
                            "1.2.3.7"
                        ]
                    },
                    {
                        "datacenterId": 5400,
                        "loadObject": null,
                        "loadObjectPort": 0,
                        "useDefaultLoadObject": false,
                        "loadServers": []
                    }
                ]
            }
        ]
    },
    "status": {
        "changeId": "5beb11ae-8908-4bfe-8459-e88efc4d2fdc",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-08T18:25:51.000+0000",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ]
    }
}

When you create a new GTM domain, if you have access to:

  • One contract and several groups, you need to include the gid query parameter in the request object.

  • One group and several contracts, you need to include the contractId query parameter in the request object.

  • One or more contracts and groups, you need to include both the contractId and the gid query parameters in the request object.

Use this procedure to create a new domain:

  1. If you need a contractId value, run List contracts, then from the response’s contracts array, select the relevant contractId.

  2. If you need a gid value, run List groups, then from the response’s groups array, select the relevant groupId and store the value as the gid parameter.

  3. For cidrmapping property types, if you need a name value for the CIDR map, run the List CIDR maps operation, then select one from the list.

  4. For geographic property types, if you need a name value for the geographic map, run List geographic maps, then select one from the list.

  5. If you need a datacenterId value, run List data centers, then select one from the list.

  6. Build a new Domain POST object, specifying whatever query parameters and members above are necessary such as gid, contractId, datacenterId, and name.

  7. If you need to include either the contractId, gid, or both query parameters, POST the object to /config-gtm/v1/domains/{domainName}/{?contractId,gid}. Otherwise, POST the object to /config-gtm/v1/domains/{domainName}.

  8. This operation responds with a Domain object.

Update a domain

Updates a specific GTM domain.

PUT /config-gtm/v1/domains/{domainName}{?contractId,gid}

Sample: /config-gtm/v1/domains/example.akadns.net?contractId=1-1TJZFW&gid=15166

Content-Type: application/json

Object type: Domain

Download schema: domain-vnd-config-gtm.v1.0.json

Request body:

{
    "defaultSslClientCertificate": null,
    "defaultSslClientPrivateKey": null,
    "defaultUnreachableThreshold": null,
    "lastModified": "2014-04-08T18:25:51.000+0000",
    "lastModifiedBy": "admin@example.com",
    "loadFeedback": true,
    "loadImbalancePercentage": 10.0,
    "minPingableRegionFraction": null,
    "modificationComments": "CIDRMap example",
    "name": "example.akadns.net",
    "pingInterval": null,
    "roundRobinPrefix": null,
    "servermonitorLivenessCount": null,
    "servermonitorLoadCount": null,
    "type": "full",
    "emailNotificationList": [],
    "cidrMaps": [
        {
            "name": "The North",
            "defaultDatacenter": {
                "datacenterId": 5400,
                "nickname": "All Other CIDR Blocks"
            },
            "assignments": [
                {
                    "datacenterId": 3134,
                    "nickname": "Frostfangs and the Fist of First Men",
                    "blocks": [
                        "1.3.5.9",
                        "1.2.3.0/24"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "nickname": "Winterfell",
                    "blocks": [
                        "1.2.4.0/24"
                    ]
                }
            ]
        }
    ],
    "datacenters": [
        {
            "city": "Doune",
            "cloneOf": 0,
            "continent": "EU",
            "country": "GB",
            "datacenterId": 3133,
            "latitude": 56.185097,
            "longitude": -4.050264,
            "nickname": "Winterfell",
            "stateOrProvince": "Perthshire",
            "virtual": true,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            }
        },
        {
            "city": "Sn\u00e6fellsj\u00f6kull",
            "cloneOf": 0,
            "continent": "EU",
            "country": "IS",
            "datacenterId": 3134,
            "latitude": 64.808,
            "longitude": -23.776,
            "nickname": "Frostfangs",
            "stateOrProvince": null,
            "virtual": true,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            }
        },
        {
            "city": null,
            "cloneOf": 0,
            "continent": null,
            "country": null,
            "datacenterId": 5400,
            "latitude": 0.0,
            "longitude": 0.0,
            "nickname": "Default Datacenter",
            "stateOrProvince": null,
            "virtual": true,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            }
        }
    ],
    "geographicMaps": [
        {
            "name": "UK Delivery",
            "defaultDatacenter": {
                "datacenterId": 5400,
                "nickname": "Default Mapping"
            },
            "assignments": [
                {
                    "datacenterId": 3133,
                    "nickname": "UK users",
                    "countries": [
                        "GB"
                    ]
                }
            ]
        }
    ],
    "properties": [
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": false,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "mapName": null,
            "maxUnreachablePenalty": null,
            "name": "www",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "type": "failover",
            "unreachableThreshold": null,
            "useComputedTargets": false,
            "mxRecords": [],
            "livenessTests": [
                {
                    "disableNonstandardPortWarning": false,
                    "hostHeader": "foo.example.com",
                    "httpError3xx": true,
                    "httpError4xx": true,
                    "httpError5xx": true,
                    "name": "health-check",
                    "requestString": null,
                    "responseString": null,
                    "sslClientCertificate": null,
                    "sslClientPrivateKey": null,
                    "testInterval": 60,
                    "testObject": "/status",
                    "testObjectPassword": null,
                    "testObjectPort": 80,
                    "testObjectProtocol": "HTTP",
                    "testObjectUsername": null,
                    "testTimeout": 25.0
                }
            ],
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": false,
                    "handoutCName": null,
                    "name": null,
                    "weight": 0.0,
                    "servers": []
                },
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "weight": 0.0,
                    "servers": [
                        "1.2.3.5"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "weight": 1.0,
                    "servers": [
                        "1.2.3.4"
                    ]
                }
            ]
        },
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": true,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "mapName": null,
            "maxUnreachablePenalty": null,
            "name": "mail",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "type": "weighted-round-robin",
            "unreachableThreshold": null,
            "useComputedTargets": false,
            "livenessTests": [],
            "mxRecords": [],
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": false,
                    "handoutCName": null,
                    "name": null,
                    "weight": 1.0,
                    "servers": []
                },
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "weight": 1.0,
                    "servers": [
                        "2001:4878::5043:4078"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "weight": 1.0,
                    "servers": [
                        "2001:4878::5043:4072",
                        "2001:4878::5043:4071"
                    ]
                }
            ]
        },
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": false,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "loadImbalancePercentage": null,
            "mapName": null,
            "maxUnreachablePenalty": null,
            "name": "supplies",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "type": "failover",
            "unreachableThreshold": null,
            "useComputedTargets": false,
            "livenessTests": [],
            "mxRecords": [],
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": true,
                    "handoutCName": "supplies.example.com",
                    "name": null,
                    "weight": 1.0,
                    "servers": []
                },
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "handoutCName": "winter.supplies.example.com",
                    "name": null,
                    "weight": 0.0,
                    "servers": []
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": "redcross.org",
                    "name": null,
                    "weight": 0.0,
                    "servers": []
                }
            ]
        },
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": false,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "loadImbalancePercentage": null,
            "mapName": "UK Delivery",
            "maxUnreachablePenalty": null,
            "name": "shop",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "type": "geographic",
            "unreachableThreshold": null,
            "useComputedTargets": false,
            "livenessTests": [],
            "mxRecords": [],
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": true,
                    "handoutCName": "shop.example.com",
                    "name": null,
                    "weight": 1.0,
                    "servers": []
                },
                {
                    "datacenterId": 3134,
                    "enabled": false,
                    "handoutCName": null,
                    "name": null,
                    "weight": 1.0,
                    "servers": []
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": "uk.shop.example.com",
                    "name": null,
                    "weight": 1.0,
                    "servers": []
                }
            ]
        }
    ],
    "resources": [
        {
            "aggregationType": "latest",
            "constrainedProperty": "mail",
            "decayRate": null,
            "description": "CPU utilization",
            "hostHeader": null,
            "leaderString": null,
            "leastSquaresDecay": null,
            "loadImbalancePercentage": null,
            "maxUMultiplicativeIncrement": null,
            "name": "cpu",
            "type": "XML load object via HTTP",
            "upperBound": 0,
            "resourceInstances": [
                {
                    "datacenterId": 3134,
                    "loadObject": "/cpu",
                    "loadObjectPort": 80,
                    "useDefaultLoadObject": false,
                    "loadServers": [
                        "1.2.3.8"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "loadObject": "/cpu",
                    "loadObjectPort": 80,
                    "useDefaultLoadObject": false,
                    "loadServers": [
                        "1.2.3.7"
                    ]
                },
                {
                    "datacenterId": 5400,
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "useDefaultLoadObject": false,
                    "loadServers": []
                }
            ]
        },
        {
            "aggregationType": "latest",
            "constrainedProperty": "**",
            "decayRate": null,
            "description": "Supply levels of Arbor Gold",
            "hostHeader": null,
            "leaderString": null,
            "leastSquaresDecay": null,
            "loadImbalancePercentage": null,
            "maxUMultiplicativeIncrement": null,
            "name": "arbor-gold",
            "type": "Non-XML load object via HTTP",
            "upperBound": 0,
            "resourceInstances": [
                {
                    "datacenterId": 3134,
                    "loadObject": "/cups",
                    "loadObjectPort": 80,
                    "useDefaultLoadObject": false,
                    "loadServers": [
                        "1.2.3.8"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "loadObject": "/cups",
                    "loadObjectPort": 80,
                    "useDefaultLoadObject": false,
                    "loadServers": [
                        "1.2.3.7"
                    ]
                },
                {
                    "datacenterId": 5400,
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "useDefaultLoadObject": false,
                    "loadServers": []
                }
            ]
        }
    ]
}
Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
Optional query parameters
contractId String 1-1TJZFW A unique identifier for the contract. If your GTM client credential has access to more than one contract, you need to specify under which contract to provision the domain. For more information, see API concepts.
gid Integer 15166 A unique identifier for the group. If your GTM client credential has access to more than one group, you need to specify which group to assign to the domain. For more information, see API concepts.

Status 200 application/json

Object type: UpdateResponse

Download schema: property-update-response.json

Response body:

{
    "resource": {
        "defaultSslClientCertificate": null,
        "defaultSslClientPrivateKey": null,
        "defaultUnreachableThreshold": null,
        "lastModified": "2014-04-08T18:25:51.000+0000",
        "lastModifiedBy": "admin@example.com",
        "loadFeedback": true,
        "loadImbalancePercentage": 10.0,
        "minPingableRegionFraction": null,
        "modificationComments": "CIDRMap example",
        "name": "example.akadns.net",
        "pingInterval": null,
        "roundRobinPrefix": null,
        "servermonitorLivenessCount": null,
        "servermonitorLoadCount": null,
        "type": "full",
        "emailNotificationList": [],
        "status": {
            "changeId": "5beb11ae-8908-4bfe-8459-e88efc4d2fdc",
            "message": "Change Pending",
            "passingValidation": true,
            "propagationStatus": "PENDING",
            "propagationStatusDate": "2014-04-08T18:25:51.000+0000",
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                    "rel": "self"
                }
            ]
        },
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net",
                "rel": "self"
            },
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/datacenters",
                "rel": "datacenters"
            },
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/properties",
                "rel": "properties"
            },
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/geographic-maps",
                "rel": "geographic-maps"
            },
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/cidr-maps",
                "rel": "cidr-maps"
            },
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/resources",
                "rel": "resources"
            }
        ],
        "cidrMaps": [
            {
                "name": "The North",
                "defaultDatacenter": {
                    "datacenterId": 5400,
                    "nickname": "All Other CIDR Blocks"
                },
                "assignments": [
                    {
                        "datacenterId": 3134,
                        "nickname": "Frostfangs and the Fist of First Men",
                        "blocks": [
                            "1.3.5.9",
                            "1.2.3.0/24"
                        ]
                    },
                    {
                        "datacenterId": 3133,
                        "nickname": "Winterfell",
                        "blocks": [
                            "1.2.4.0/24"
                        ]
                    }
                ],
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/cidr-maps/The%20North",
                        "rel": "self"
                    }
                ]
            }
        ],
        "datacenters": [
            {
                "city": "Doune",
                "cloneOf": 0,
                "continent": "EU",
                "country": "GB",
                "datacenterId": 3133,
                "latitude": 56.185097,
                "longitude": -4.050264,
                "nickname": "Winterfell",
                "stateOrProvince": "Perthshire",
                "virtual": true,
                "defaultLoadObject": {
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "loadServers": null
                },
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3133",
                        "rel": "self"
                    }
                ]
            },
            {
                "city": "Sn\u00e6fellsj\u00f6kull",
                "cloneOf": 0,
                "continent": "EU",
                "country": "IS",
                "datacenterId": 3134,
                "latitude": 64.808,
                "longitude": -23.776,
                "nickname": "Frostfangs",
                "stateOrProvince": null,
                "virtual": true,
                "defaultLoadObject": {
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "loadServers": null
                },
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3134",
                        "rel": "self"
                    }
                ]
            },
            {
                "city": null,
                "cloneOf": 0,
                "continent": null,
                "country": null,
                "datacenterId": 5400,
                "latitude": 0.0,
                "longitude": 0.0,
                "nickname": "Default Datacenter",
                "stateOrProvince": null,
                "virtual": true,
                "defaultLoadObject": {
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "loadServers": null
                },
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/5400",
                        "rel": "self"
                    }
                ]
            }
        ],
        "geographicMaps": [
            {
                "name": "UK Delivery",
                "defaultDatacenter": {
                    "datacenterId": 5400,
                    "nickname": "Default Mapping"
                },
                "assignments": [
                    {
                        "datacenterId": 3133,
                        "nickname": "UK users",
                        "countries": [
                            "GB"
                        ]
                    }
                ],
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/geographic-maps/UK%20Delivery",
                        "rel": "self"
                    }
                ]
            }
        ],
        "properties": [
            {
                "backupCName": null,
                "backupIp": null,
                "balanceByDownloadScore": false,
                "cname": null,
                "comments": null,
                "dynamicTTL": 300,
                "failbackDelay": 0,
                "failoverDelay": 0,
                "handoutMode": "normal",
                "healthMax": null,
                "healthMultiplier": null,
                "healthThreshold": null,
                "ipv6": false,
                "lastModified": "2014-04-08T18:25:52.000+0000",
                "mapName": null,
                "maxUnreachablePenalty": null,
                "name": "www",
                "scoreAggregationType": "mean",
                "staticTTL": 600,
                "stickinessBonusConstant": 0,
                "stickinessBonusPercentage": 0,
                "type": "failover",
                "unreachableThreshold": null,
                "useComputedTargets": false,
                "mxRecords": [],
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/properties/www",
                        "rel": "self"
                    }
                ],
                "livenessTests": [
                    {
                        "disableNonstandardPortWarning": false,
                        "hostHeader": "foo.example.com",
                        "httpError3xx": true,
                        "httpError4xx": true,
                        "httpError5xx": true,
                        "name": "health-check",
                        "requestString": null,
                        "responseString": null,
                        "sslClientCertificate": null,
                        "sslClientPrivateKey": null,
                        "testInterval": 60,
                        "testObject": "/status",
                        "testObjectPassword": null,
                        "testObjectPort": 80,
                        "testObjectProtocol": "HTTP",
                        "testObjectUsername": null,
                        "testTimeout": 25.0,
                        "links": []
                    }
                ],
                "trafficTargets": [
                    {
                        "datacenterId": 5400,
                        "enabled": false,
                        "handoutCName": null,
                        "name": null,
                        "weight": 0.0,
                        "servers": []
                    },
                    {
                        "datacenterId": 3134,
                        "enabled": true,
                        "handoutCName": null,
                        "name": null,
                        "weight": 0.0,
                        "servers": [
                            "1.2.3.5"
                        ]
                    },
                    {
                        "datacenterId": 3133,
                        "enabled": true,
                        "handoutCName": null,
                        "name": null,
                        "weight": 1.0,
                        "servers": [
                            "1.2.3.4"
                        ]
                    }
                ]
            },
            {
                "backupCName": null,
                "backupIp": null,
                "balanceByDownloadScore": false,
                "cname": null,
                "comments": null,
                "dynamicTTL": 300,
                "failbackDelay": 0,
                "failoverDelay": 0,
                "handoutMode": "normal",
                "healthMax": null,
                "healthMultiplier": null,
                "healthThreshold": null,
                "ipv6": true,
                "lastModified": "2014-04-08T18:25:52.000+0000",
                "mapName": null,
                "maxUnreachablePenalty": null,
                "name": "mail",
                "scoreAggregationType": "mean",
                "staticTTL": 600,
                "stickinessBonusConstant": 0,
                "stickinessBonusPercentage": 0,
                "type": "weighted-round-robin",
                "unreachableThreshold": null,
                "useComputedTargets": false,
                "livenessTests": [],
                "mxRecords": [],
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/properties/mail",
                        "rel": "self"
                    }
                ],
                "trafficTargets": [
                    {
                        "datacenterId": 5400,
                        "enabled": false,
                        "handoutCName": null,
                        "name": null,
                        "weight": 1.0,
                        "servers": []
                    },
                    {
                        "datacenterId": 3134,
                        "enabled": true,
                        "handoutCName": null,
                        "name": null,
                        "weight": 1.0,
                        "servers": [
                            "2001:4878::5043:4078"
                        ]
                    },
                    {
                        "datacenterId": 3133,
                        "enabled": true,
                        "handoutCName": null,
                        "name": null,
                        "weight": 1.0,
                        "servers": [
                            "2001:4878::5043:4072",
                            "2001:4878::5043:4071"
                        ]
                    }
                ]
            },
            {
                "backupCName": null,
                "backupIp": null,
                "balanceByDownloadScore": false,
                "cname": null,
                "comments": null,
                "dynamicTTL": 300,
                "failbackDelay": 0,
                "failoverDelay": 0,
                "handoutMode": "normal",
                "healthMax": null,
                "healthMultiplier": null,
                "healthThreshold": null,
                "ipv6": false,
                "lastModified": "2014-04-08T18:25:52.000+0000",
                "loadImbalancePercentage": null,
                "mapName": null,
                "maxUnreachablePenalty": null,
                "name": "supplies",
                "scoreAggregationType": "mean",
                "staticTTL": 600,
                "stickinessBonusConstant": 0,
                "stickinessBonusPercentage": 0,
                "type": "failover",
                "unreachableThreshold": null,
                "useComputedTargets": false,
                "livenessTests": [],
                "mxRecords": [],
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/properties/supplies",
                        "rel": "self"
                    }
                ],
                "trafficTargets": [
                    {
                        "datacenterId": 5400,
                        "enabled": true,
                        "handoutCName": "supplies.example.com",
                        "name": null,
                        "weight": 1.0,
                        "servers": []
                    },
                    {
                        "datacenterId": 3134,
                        "enabled": true,
                        "handoutCName": "winter.supplies.example.com",
                        "name": null,
                        "weight": 0.0,
                        "servers": []
                    },
                    {
                        "datacenterId": 3133,
                        "enabled": true,
                        "handoutCName": "redcross.org",
                        "name": null,
                        "weight": 0.0,
                        "servers": []
                    }
                ]
            },
            {
                "backupCName": null,
                "backupIp": null,
                "balanceByDownloadScore": false,
                "cname": null,
                "comments": null,
                "dynamicTTL": 300,
                "failbackDelay": 0,
                "failoverDelay": 0,
                "handoutMode": "normal",
                "healthMax": null,
                "healthMultiplier": null,
                "healthThreshold": null,
                "ipv6": false,
                "lastModified": "2014-04-08T18:25:52.000+0000",
                "loadImbalancePercentage": null,
                "mapName": "UK Delivery",
                "maxUnreachablePenalty": null,
                "name": "shop",
                "scoreAggregationType": "mean",
                "staticTTL": 600,
                "stickinessBonusConstant": 0,
                "stickinessBonusPercentage": 0,
                "type": "geographic",
                "unreachableThreshold": null,
                "useComputedTargets": false,
                "livenessTests": [],
                "mxRecords": [],
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/properties/shop",
                        "rel": "self"
                    }
                ],
                "trafficTargets": [
                    {
                        "datacenterId": 5400,
                        "enabled": true,
                        "handoutCName": "shop.example.com",
                        "name": null,
                        "weight": 1.0,
                        "servers": []
                    },
                    {
                        "datacenterId": 3134,
                        "enabled": false,
                        "handoutCName": null,
                        "name": null,
                        "weight": 1.0,
                        "servers": []
                    },
                    {
                        "datacenterId": 3133,
                        "enabled": true,
                        "handoutCName": "uk.shop.example.com",
                        "name": null,
                        "weight": 1.0,
                        "servers": []
                    }
                ]
            }
        ],
        "resources": [
            {
                "aggregationType": "latest",
                "constrainedProperty": "mail",
                "decayRate": null,
                "description": "CPU utilization",
                "hostHeader": null,
                "leaderString": null,
                "leastSquaresDecay": null,
                "loadImbalancePercentage": null,
                "maxUMultiplicativeIncrement": null,
                "name": "cpu",
                "type": "XML load object via HTTP",
                "upperBound": 0,
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/resources/cpu",
                        "rel": "self"
                    }
                ],
                "resourceInstances": [
                    {
                        "datacenterId": 3134,
                        "loadObject": "/cpu",
                        "loadObjectPort": 80,
                        "useDefaultLoadObject": false,
                        "loadServers": [
                            "1.2.3.8"
                        ]
                    },
                    {
                        "datacenterId": 3133,
                        "loadObject": "/cpu",
                        "loadObjectPort": 80,
                        "useDefaultLoadObject": false,
                        "loadServers": [
                            "1.2.3.7"
                        ]
                    },
                    {
                        "datacenterId": 5400,
                        "loadObject": null,
                        "loadObjectPort": 0,
                        "useDefaultLoadObject": false,
                        "loadServers": []
                    }
                ]
            },
            {
                "aggregationType": "latest",
                "constrainedProperty": "**",
                "decayRate": null,
                "description": "Supply levels of Arbor Gold",
                "hostHeader": null,
                "leaderString": null,
                "leastSquaresDecay": null,
                "loadImbalancePercentage": null,
                "maxUMultiplicativeIncrement": null,
                "name": "arbor-gold",
                "type": "Non-XML load object via HTTP",
                "upperBound": 0,
                "links": [
                    {
                        "href": "/config-gtm/v1/domains/example.akadns.net/resources/arbor-gold",
                        "rel": "self"
                    }
                ],
                "resourceInstances": [
                    {
                        "datacenterId": 3134,
                        "loadObject": "/cups",
                        "loadObjectPort": 80,
                        "useDefaultLoadObject": false,
                        "loadServers": [
                            "1.2.3.8"
                        ]
                    },
                    {
                        "datacenterId": 3133,
                        "loadObject": "/cups",
                        "loadObjectPort": 80,
                        "useDefaultLoadObject": false,
                        "loadServers": [
                            "1.2.3.7"
                        ]
                    },
                    {
                        "datacenterId": 5400,
                        "loadObject": null,
                        "loadObjectPort": 0,
                        "useDefaultLoadObject": false,
                        "loadServers": []
                    }
                ]
            }
        ]
    },
    "status": {
        "changeId": "5beb11ae-8908-4bfe-8459-e88efc4d2fdc",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-08T18:25:51.000+0000",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ]
    }
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Make a GET request to /config-gtm/v1/domains/{domainName}, which responds with a Domain object.

  3. Modify the Domain object.

  4. PUT the object back to the same URL.

  5. This operation responds with an UpdateResponse object that provides details about the changes made to the domain.

List resources

Returns a list of resources created within the domain that constrain one or more properties in a data center.

GET /config-gtm/v1/domains/{domainName}/resources

Sample: /config-gtm/v1/domains/example.akadns.net/resources

Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.

Status 200 application/json

Object type: Resource

Download schema: resource.json

Response body:

{
    "items": [
        {
            "aggregationType": "latest",
            "constrainedProperty": "**",
            "decayRate": null,
            "description": "Supply levels of Arbor Gold",
            "hostHeader": null,
            "leaderString": null,
            "leastSquaresDecay": null,
            "loadImbalancePercentage": null,
            "maxUMultiplicativeIncrement": null,
            "name": "arbor-gold",
            "type": "Non-XML load object via HTTP",
            "upperBound": 0,
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/resources/arbor-gold",
                    "rel": "self"
                }
            ],
            "resourceInstances": [
                {
                    "datacenterId": 3134,
                    "loadObject": "/cups",
                    "loadObjectPort": 80,
                    "useDefaultLoadObject": false,
                    "loadServers": [
                        "1.2.3.8"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "loadObject": "/cups",
                    "loadObjectPort": 80,
                    "useDefaultLoadObject": false,
                    "loadServers": [
                        "1.2.3.7"
                    ]
                }
            ]
        }
    ]
}
  1. Run List domains, then from the response’s items array, store the name value as the domainName parameter.

  2. Make a GET request to /config-gtm/v1/domains/{domainName}/resources, which responds with an array of Resource objects.

Get a resource

Returns information for a specific resource.

GET /config-gtm/v1/domains/{domainName}/resources/{resourceName}

Sample: /config-gtm/v1/domains/example.akadns.net/resources/cpu

Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
resourceName String cpu Name of the resource to create or update.

Status 200 application/json

Object type: Resource

Download schema: resource.json

Response body:

{
    "aggregationType": "latest",
    "constrainedProperty": "**",
    "decayRate": null,
    "description": "Supply levels of Arbor Gold",
    "hostHeader": null,
    "leaderString": null,
    "leastSquaresDecay": null,
    "loadImbalancePercentage": null,
    "maxUMultiplicativeIncrement": null,
    "name": "arbor-gold",
    "type": "Non-XML load object via HTTP",
    "upperBound": 0,
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/resources/arbor-gold",
            "rel": "self"
        }
    ],
    "resourceInstances": [
        {
            "datacenterId": 3134,
            "loadObject": "/cups",
            "loadObjectPort": 80,
            "useDefaultLoadObject": false,
            "loadServers": [
                "1.2.3.8"
            ]
        },
        {
            "datacenterId": 3133,
            "loadObject": "/cups",
            "loadObjectPort": 80,
            "useDefaultLoadObject": false,
            "loadServers": [
                "1.2.3.7"
            ]
        }
    ]
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Run List resources, then from the response’s items array, store the relevant name value as the resourceName parameter.

  3. Make a GET request to /config-gtm/v1/domains/{domainName}/resources/{resourceName}, which responds with a Resource object.

Create or update a resource

Run this operation to create or update a resource.

PUT /config-gtm/v1/domains/{domainName}/resources/{resourceName}

Sample: /config-gtm/v1/domains/example.akadns.net/resources/cpu

Content-Type: application/json

Object type: Resource

Download schema: resource.json

Request body:

{
    "aggregationType": "latest",
    "constrainedProperty": "mail",
    "decayRate": null,
    "description": "Disk utilization",
    "hostHeader": null,
    "leaderString": null,
    "leastSquaresDecay": null,
    "loadImbalancePercentage": null,
    "maxUMultiplicativeIncrement": null,
    "name": "disk",
    "type": "XML load object via HTTP",
    "upperBound": 0,
    "resourceInstances": [
        {
            "datacenterId": 3134,
            "loadObject": "/disk",
            "loadObjectPort": 80,
            "useDefaultLoadObject": false,
            "loadServers": [
                "1.2.3.9"
            ]
        },
        {
            "datacenterId": 3133,
            "loadObject": "/disk",
            "loadObjectPort": 80,
            "useDefaultLoadObject": false,
            "loadServers": [
                "1.2.3.10"
            ]
        }
    ]
}
Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
resourceName String cpu Name of the resource to create or update.

Status 200 application/json

Object type: Resource

Download schema: resource.json

Response body:

{
    "resource": {
        "aggregationType": "latest",
        "constrainedProperty": "mail",
        "decayRate": null,
        "description": "Disk utilization",
        "hostHeader": null,
        "leaderString": null,
        "leastSquaresDecay": null,
        "loadImbalancePercentage": null,
        "maxUMultiplicativeIncrement": null,
        "name": "disk",
        "type": "XML load object via HTTP",
        "upperBound": 0,
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/resources/disk",
                "rel": "self"
            }
        ],
        "resourceInstances": [
            {
                "datacenterId": 3134,
                "loadObject": "/disk",
                "loadObjectPort": 80,
                "useDefaultLoadObject": false,
                "loadServers": [
                    "1.2.3.9"
                ]
            },
            {
                "datacenterId": 3133,
                "loadObject": "/disk",
                "loadObjectPort": 80,
                "useDefaultLoadObject": false,
                "loadServers": [
                    "1.2.3.10"
                ]
            }
        ]
    },
    "status": {
        "changeId": "79255c00-f6b6-48ea-9d67-c6d02a8742c9",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-15T11:30:27.000+0000",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ]
    }
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Run List resources.

  3. Decide which resourceName you want to create or modify.

If resourceName does not appear as the name within one of the objects in the response’s items array and you want to create a new resource with that name:

  1. Build a new Resource object.

  2. PUT the object to /config-gtm/v1/domains/{domainName}/resources/{resourceName}, which responds with a Resource object.

If resourceName appears in the response as the name within one of the objects in items array and you want to modify it:

  1. Make a GET request to /config-gtm/v1/domains/{domainName}/resources/{resourceName}, which responds with a Resource object.

  2. Modify the Resource object.

  3. PUT the object back to the same URL.

  4. This operation responds with an UpdateResponse object that provides details about the changes made to the resource.

Remove a resource

Removes a specific resource.

DELETE /config-gtm/v1/domains/{domainName}/resources/{resourceName}

Sample: /config-gtm/v1/domains/example.akadns.net/resources/cpu

Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
resourceName String cpu Name of the resource to create or update.

Status 200 application/json

Object type: UpdateResponse

Download schema: resource-update-response.json

Response body:

{
    "resource": null,
    "status": {
        "changeId": "a97bedfe-c997-4634-84a4-cdb31529fb4c",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-08T13:44:53.000+0000",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ]
    }
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Run List resources, then from the response’s items array, store the relevant name value as the resourceName parameter.

  3. Make a DELETE request to /config-gtm/v1/domains/{domainName}/resources/{resourceName}, which responds with an UpdateResponse object.

List properties

Returns a list of GTM properties.

GET /config-gtm/v1/domains/{domainName}/properties

Sample: /config-gtm/v1/domains/example.akadns.net/properties

Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.

Status 200 application/json

Object type: Property

Download schema: property-list.json

Response body:

{
    "items": [
        {
            "balanceByDownloadScore": false,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "ipv6": false,
            "lastModified": "2014-04-07T16:21:27.000+0000",
            "name": "www",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "type": "failover",
            "useComputedTargets": false,
            "mxRecords": [],
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/properties/www",
                    "rel": "self"
                }
            ],
            "livenessTests": [
                {
                    "disableNonstandardPortWarning": false,
                    "hostHeader": "foo.example.com",
                    "httpError3xx": true,
                    "httpError4xx": true,
                    "httpError5xx": true,
                    "name": "health-check",
                    "testInterval": 60,
                    "testObject": "/status",
                    "testObjectPort": 80,
                    "testObjectProtocol": "HTTP",
                    "testTimeout": 25.0
                }
            ],
            "trafficTargets": [
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "weight": 0.0,
                    "servers": [
                        "1.2.3.5"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "weight": 1.0,
                    "servers": [
                        "1.2.3.4"
                    ]
                }
            ]
        },
        {
            "balanceByDownloadScore": false,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "ipv6": true,
            "lastModified": "2014-04-07T16:21:27.000+0000",
            "name": "mail",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "type": "weighted-round-robin",
            "useComputedTargets": false,
            "livenessTests": [],
            "mxRecords": [],
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/properties/mail",
                    "rel": "self"
                }
            ],
            "trafficTargets": [
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "weight": 1.0,
                    "servers": [
                        "2001:4878::5043:4078"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "weight": 1.0,
                    "servers": [
                        "2001:4878::5043:4072",
                        "2001:4878::5043:4071"
                    ]
                }
            ]
        }
    ]
}
  1. Run List domains, then from the response’s items array, store the name value as the domainName parameter.

  2. Make a GET request to /config-gtm/v1/domains/{domainName}/properties, which responds with an array of Property objects.

Get a property

Returns information for a specific GTM property.

GET /config-gtm/v1/domains/{domainName}/properties/{propertyName}

Sample: /config-gtm/v1/domains/example.akadns.net/properties/www

Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
propertyName String www A unique name for the property that when joined to the domainName with a dot (.) separator, it forms a valid RFC 1123 hostname.

Status 200 application/json

Object type: Property

Download schema: property-vnd-config-gtm.v1.0.json

Response body:

{
    "backupCName": null,
    "backupIp": null,
    "balanceByDownloadScore": false,
    "cname": null,
    "comments": null,
    "dynamicTTL": 300,
    "failbackDelay": 0,
    "failoverDelay": 0,
    "handoutMode": "normal",
    "healthMax": null,
    "healthMultiplier": null,
    "healthThreshold": null,
    "ipv6": false,
    "lastModified": "2014-04-08T15:11:10.000+0000",
    "loadImbalancePercentage": null,
    "mapName": null,
    "maxUnreachablePenalty": null,
    "name": "www",
    "scoreAggregationType": "mean",
    "staticTTL": 600,
    "stickinessBonusConstant": 0,
    "stickinessBonusPercentage": 0,
    "type": "failover",
    "unreachableThreshold": null,
    "useComputedTargets": false,
    "mxRecords": [],
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/properties/www",
            "rel": "self"
        }
    ],
    "livenessTests": [
        {
            "disableNonstandardPortWarning": false,
            "hostHeader": "foo.example.com",
            "httpError3xx": true,
            "httpError4xx": true,
            "httpError5xx": true,
            "name": "health-check",
            "requestString": null,
            "responseString": null,
            "sslClientCertificate": null,
            "sslClientPrivateKey": null,
            "testInterval": 60,
            "testObject": "/status",
            "testObjectPassword": null,
            "testObjectPort": 80,
            "testObjectProtocol": "HTTP",
            "testObjectUsername": null,
            "testTimeout": 25.0
        }
    ],
    "trafficTargets": [
        {
            "datacenterId": 3134,
            "enabled": true,
            "handoutCName": null,
            "name": null,
            "weight": 0.0,
            "servers": [
                "1.2.3.5"
            ]
        },
        {
            "datacenterId": 3133,
            "enabled": true,
            "handoutCName": null,
            "name": null,
            "weight": 1.0,
            "servers": [
                "1.2.3.4"
            ]
        }
    ]
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Run List properties, then from the response’s items array, store the relevant name value as the propertyName parameter.

  3. Make a GET request to /config-gtm/v1/domains/{domainName}/properties/{propertyName}, which responds with a Property object.

Create or update a property

Run this operation to create or update a GTM property.

PUT /config-gtm/v1/domains/{domainName}/properties/{propertyName}

Sample: /config-gtm/v1/domains/example.akadns.net/properties/www

Content-Type: application/json

Object type: Property

Download schema: property-vnd-config-gtm.v1.0.json

Request body:

{
    "balanceByDownloadScore": false,
    "failbackDelay": 0,
    "failoverDelay": 0,
    "handoutMode": "normal",
    "healthMax": null,
    "healthMultiplier": null,
    "healthThreshold": null,
    "ipv6": false,
    "name": "origin",
    "scoreAggregationType": "mean",
    "staticTTL": 600,
    "stickinessBonusConstant": 0,
    "stickinessBonusPercentage": 0,
    "type": "weighted-round-robin",
    "useComputedTargets": false,
    "mxRecords": [],
    "livenessTests": [
        {
            "disableNonstandardPortWarning": false,
            "hostHeader": "foo.example.com",
            "httpError3xx": true,
            "httpError4xx": true,
            "httpError5xx": true,
            "name": "health-check",
            "requestString": null,
            "responseString": null,
            "sslClientCertificate": null,
            "sslClientPrivateKey": null,
            "testInterval": 60,
            "testObject": "/status",
            "testObjectPassword": null,
            "testObjectPort": 80,
            "testObjectProtocol": "HTTP",
            "testObjectUsername": null,
            "testTimeout": 25.0
        }
    ],
    "trafficTargets": [
        {
            "datacenterId": 3134,
            "enabled": true,
            "weight": 50.0,
            "servers": [
                "1.2.3.5"
            ]
        },
        {
            "datacenterId": 3133,
            "enabled": true,
            "weight": 50.0,
            "servers": [
                "1.2.3.4"
            ]
        }
    ]
}
Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
propertyName String www A unique name for the property that when joined to the domainName with a dot (.) separator, it forms a valid RFC 1123 hostname.

Status 201 application/json

Object type: UpdateResponse

Download schema: property-update-response.json

Response body:

{
    "resource": {
        "backupCName": null,
        "backupIp": null,
        "balanceByDownloadScore": false,
        "cname": null,
        "comments": null,
        "dynamicTTL": 300,
        "failbackDelay": 0,
        "failoverDelay": 0,
        "handoutMode": "normal",
        "healthMax": null,
        "healthMultiplier": null,
        "healthThreshold": null,
        "ipv6": false,
        "lastModified": null,
        "loadImbalancePercentage": null,
        "mapName": null,
        "maxUnreachablePenalty": null,
        "name": "origin",
        "scoreAggregationType": "mean",
        "staticTTL": 600,
        "stickinessBonusConstant": 0,
        "stickinessBonusPercentage": 0,
        "type": "weighted-round-robin",
        "unreachableThreshold": null,
        "useComputedTargets": false,
        "mxRecords": [],
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/properties/origin",
                "rel": "self"
            }
        ],
        "livenessTests": [
            {
                "disableNonstandardPortWarning": false,
                "hostHeader": "foo.example.com",
                "httpError3xx": true,
                "httpError4xx": true,
                "httpError5xx": true,
                "name": "health-check",
                "requestString": null,
                "responseString": null,
                "sslClientCertificate": null,
                "sslClientPrivateKey": null,
                "testInterval": 60,
                "testObject": "/status",
                "testObjectPassword": null,
                "testObjectPort": 80,
                "testObjectProtocol": "HTTP",
                "testObjectUsername": null,
                "testTimeout": 25.0
            }
        ],
        "trafficTargets": [
            {
                "datacenterId": 3134,
                "enabled": true,
                "handoutCName": null,
                "name": null,
                "weight": 50.0,
                "servers": [
                    "1.2.3.5"
                ]
            },
            {
                "datacenterId": 3133,
                "enabled": true,
                "handoutCName": null,
                "name": null,
                "weight": 50.0,
                "servers": [
                    "1.2.3.4"
                ]
            }
        ]
    },
    "status": {
        "changeId": "eee0c3b4-0e45-4f4b-822c-7dbc60764d18",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-15T11:30:27.000+0000",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ]
    }
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Run List properties.

  3. Decide which propertyName you want to create or modify.

If propertyName does not appear as the name within one of the objects in the response’s items array and you want to create a new property with that name:

  1. If you need a datacenterId value, run List data centers, then select one from the list.

  2. Build a new Property object.

  3. PUT the object to /config-gtm/v1/domains/{domainName}/properties/{propertyName}, which reflects back the new Property object.

If propertyName appears in the response as the name within one of the objects in items array and you want to modify it:

  1. Make a GET request to /config-gtm/v1/domains/{domainName}/properties/{propertyName}, which responds with a Property object.

  2. Modify the Property object.

  3. PUT the object back to the same URL.

  4. This operation responds with an UpdateResponse object that provides details about the changes made to the property.

Remove a property

Removes a specific GTM property.

DELETE /config-gtm/v1/domains/{domainName}/properties/{propertyName}

Sample: /config-gtm/v1/domains/example.akadns.net/properties/www

Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
propertyName String www A unique name for the property that when joined to the domainName with a dot (.) separator, it forms a valid RFC 1123 hostname.

Status 200 application/json

Object type: UpdateResponse

Download schema: property-update-response.json

Response body:

{
    "resource": null,
    "status": {
        "changeId": "426e9ea3-c968-47df-a41b-43a993c6f873",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-08T12:52:46.000+0000",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ]
    }
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Run List properties, then from the response’s items array, store the relevant name value as the propertyName parameter.

  3. Make a DELETE request to /config-gtm/v1/domains/{domainName}/properties/{propertyName}, which responds with an UpdateResponse object.

List CIDR maps

Returns a list of CIDR maps.

GET /config-gtm/v1/domains/{domainName}/cidr-maps

Sample: /config-gtm/v1/domains/example.akadns.net/cidr-maps

Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.

Status 200 application/json

Object type: CidrMap

Download schema: cidr-map-list.json

Response body:

{
    "items": [
        {
            "name": "The North",
            "defaultDatacenter": {
                "datacenterId": 5400,
                "nickname": "All Other CIDR Blocks"
            },
            "assignments": [
                {
                    "datacenterId": 3134,
                    "nickname": "Frostfangs and the Fist of First Men",
                    "blocks": [
                        "1.2.3.0/24"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "nickname": "Winterfell",
                    "blocks": [
                        "1.2.4.0/24"
                    ]
                }
            ],
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/cidr-maps/The%20North",
                    "rel": "self"
                }
            ]
        }
    ]
}
  1. Run List domains, then from the response’s items array, store the name value as the domainName parameter.

  2. Make a GET request to /config-gtm/v1/domains/{domainName}/cidr-maps, which responds with an array of CidrMap objects.

Get a CIDR map

Returns information for a specific CIDR map.

GET /config-gtm/v1/domains/{domainName}/cidr-maps/{mapName}

Sample: /config-gtm/v1/domains/example.akadns.net/cidr-maps/Software-rollout

Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
mapName String Software-rollout Unique name for the CIDR map.

Status 200 application/json

Object type: Property

Download schema: property-vnd-config-gtm.v1.0.json

Response body:

{
    "name": "The North",
    "defaultDatacenter": {
        "datacenterId": 5400,
        "nickname": "All Other CIDR Blocks"
    },
    "assignments": [
        {
            "datacenterId": 3134,
            "nickname": "Frostfangs and the Fist of First Men",
            "blocks": [
                "1.2.3.0/24"
            ]
        },
        {
            "datacenterId": 3133,
            "nickname": "Winterfell",
            "blocks": [
                "1.2.4.0/24"
            ]
        }
    ],
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/cidr-maps/The%20North",
            "rel": "self"
        }
    ]
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Run List CIDR maps, then from the response’s items array, store the relevant name value as the mapName parameter.

  3. Make a GET request to /config-gtm/v1/domains/{domainName}/cidr-maps/{mapName}, which responds with a CidrMap object.

Create or update a CIDR map

Run this operation to create or update a CIDR map.

PUT /config-gtm/v1/domains/{domainName}/cidr-maps/{mapName}

Sample: /config-gtm/v1/domains/example.akadns.net/cidr-maps/Software-rollout

Content-Type: application/json

Object type: CidrMap

Download schema: cidr-map.json

Request body:

{
    "name": "The North",
    "defaultDatacenter": {
        "datacenterId": 5400,
        "nickname": "All Other CIDR Blocks"
    },
    "assignments": [
        {
            "datacenterId": 3134,
            "nickname": "Frostfangs and the Fist of First Men",
            "blocks": [
                "1.3.5.9",
                "1.2.3.0/24"
            ]
        },
        {
            "datacenterId": 3133,
            "nickname": "Winterfell",
            "blocks": [
                "1.2.4.0/24"
            ]
        }
    ]
}
Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
mapName String Software-rollout Unique name for the CIDR map.

Status 200 application/json

Object type: UpdateResponse

Download schema: cidr-map-update-response.json

Response body:

{
    "resource": {
        "name": "The North",
        "defaultDatacenter": {
            "datacenterId": 5400,
            "nickname": "All Other CIDR Blocks"
        },
        "assignments": [
            {
                "datacenterId": 3134,
                "nickname": "Frostfangs and the Fist of First Men",
                "blocks": [
                    "1.3.5.9",
                    "1.2.3.0/24"
                ]
            },
            {
                "datacenterId": 3133,
                "nickname": "Winterfell",
                "blocks": [
                    "1.2.4.0/24"
                ]
            }
        ],
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/cidr-maps/The%2520North",
                "rel": "self"
            }
        ]
    },
    "status": {
        "changeId": "93a48b86-4fc3-4a5f-9ca2-036835034cc6",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-15T11:30:27.000+0000",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ]
    }
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Run List CIDR maps.

  3. Decide which mapName you want to create or modify.

If mapName does not appear in the response as the name within one of the objects in the items array and you want to create a new CIDR map with that name:

  1. If you need a datacenterId value, run List data centers, then select one from the list.

  2. Build a new CidrMap object.

  3. PUT the object to /config-gtm/v1/domains/{domainName}/cidr-maps/{mapName}, which reflects back the new CidrMap object.

If mapName appears in the response as the name within one of the objects in items array and you want to modify it:

  1. Make a GET request to /config-gtm/v1/domains/{domainName}/cidr-maps/{mapName}, which responds with a CidrMap object.

  2. Modify the CidrMap object.

  3. PUT the object back to the same URL.

  4. This operation responds with an UpdateResponse object that provides details about the changes made to the CIDR map.

Remove a CIDR map

Removes a specific CIDR map.

DELETE /config-gtm/v1/domains/{domainName}/cidr-maps/{mapName}

Sample: /config-gtm/v1/domains/example.akadns.net/cidr-maps/Software-rollout

Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
mapName String Software-rollout Unique name for the CIDR map.

Status 200 application/json

Object type: UpdateResponse

Download schema: cidr-map-update-response.json

Response body:

{
    "resource": null,
    "status": {
        "changeId": "5beb11ae-8908-4bfe-8459-e88efc4d2fdc",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-08T18:25:51.000+0000",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ]
    }
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Run List CIDR maps, then from the response’s items array, store the relevant name value as the mapName parameter.

  3. Make a DELETE request to /config-gtm/v1/domains/{domainName}/cidr-maps/{mapName}, which responds with an UpdateResponse object.

List AS maps

Returns a list of AS maps.

GET /config-gtm/v1/domains/{domainName}/as-maps

Status 200 application/json

Object type: CidrMap

Download schema: cidr-map-list.json

Response body:

{
    "items": [
        {
            "name": "The North",
            "defaultDatacenter": {
                "datacenterId": 5400,
                "nickname": "All Other AS numbers"
            },
            "assignments": [
                {
                    "datacenterId": 3134,
                    "nickname": "Frostfangs and the Fist of First Men",
                    "asNumbers": [
                        12222,
                        16702,
                        17334
                    ]
                },
                {
                    "datacenterId": 3133,
                    "nickname": "Winterfell",
                    "asNumbers": [
                        16625
                    ]
                }
            ],
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/as-maps/The%20North",
                    "rel": "self"
                }
            ]
        }
    ]
}
  1. Run List domains, then from the response’s items array, store the name value as the domainName parameter.

  2. Make a GET request to /config-gtm/v1/domains/{domainName}/as-maps, which responds with an array of AsMap objects.

Get an AS map

Returns information for a specific AS map.

GET /config-gtm/v1/domains/{domainName}/as-maps/{mapName}

Sample: /config-gtm/v1/domains/example.akadns.net/as-maps/Software-rollout

Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
mapName String Software-rollout Unique name for the AS map.

Status 200 application/json

Object type: AsMap

Download schema: as-map.json

Response body:

{
    "name": "The North",
    "defaultDatacenter": {
        "datacenterId": 5400,
        "nickname": "All Other AS numbers"
    },
    "assignments": [
        {
            "datacenterId": 3134,
            "nickname": "Frostfangs and the Fist of First Men",
            "asNumbers": [
                12222,
                16702,
                17334
            ]
        },
        {
            "datacenterId": 3133,
            "nickname": "Winterfell",
            "asNumbers": [
                16625
            ]
        }
    ],
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/as-maps/The%20North",
            "rel": "self"
        }
    ]
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Run List AS maps, then from the response’s items array, store the relevant name value as the mapName parameter.

  3. Make a GET request to /config-gtm/v1/domains/{domainName}/as-maps/{mapName}, which responds with an AsMap object.

Create or update an AS map

Run this operation to create or update an AS map.

PUT /config-gtm/v1/domains/{domainName}/as-maps/{mapName}

Sample: /config-gtm/v1/domains/example.akadns.net/as-maps/Software-rollout

Content-Type: application/json

Object type: AsMap

Download schema: as-map.json

Request body:

{
    "name": "The North",
    "defaultDatacenter": {
        "datacenterId": 5400,
        "nickname": "All Other AS numbers"
    },
    "assignments": [
        {
            "datacenterId": 3134,
            "nickname": "Frostfangs and the Fist of First Men",
            "asNumbers": [
                12222,
                16702,
                17334
            ]
        },
        {
            "datacenterId": 3133,
            "nickname": "Winterfell",
            "asNumbers": [
                16625
            ]
        }
    ],
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/as-maps/The%20North",
            "rel": "self"
        }
    ]
}
Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
mapName String Software-rollout Unique name for the AS map.

Status 200 application/json

Object type: UpdateResponse

Download schema: as-map-update-response.json

Response body:

{
    "resource": {
        "name": "The North",
        "defaultDatacenter": {
            "datacenterId": 5400,
            "nickname": "All Other AS Numbers"
        },
        "assignments": [
            {
                "datacenterId": 3134,
                "nickname": "Frostfangs and the Fist of First Men",
                "asNumbers": [
                    16625
                ]
            },
            {
                "datacenterId": 3133,
                "nickname": "Winterfell",
                "asNumbers": [
                    12222,
                    16702,
                    17334
                ]
            }
        ]
    },
    "status": {
        "changeId": "bd69be9b-ff44-433d-bff8-ae00d270ea33",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-15T11:30:27.000+0000",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ]
    }
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Run List AS maps.

  3. Decide which mapName you want to create or modify.

If mapName does not appear in the response as the name within one of the objects in the items array and you want to create a new AS map with that name:

  1. If you need a datacenterId value, run List data centers, then select one from the list.

  2. Build a new AsMap object.

  3. PUT the object to /config-gtm/v1/domains/{domainName}/as-maps/{mapName}, which reflects back the new AsMap object.

If mapName appears in the response as the name within one of the objects in the items array and you want to modify it:

  1. Make a GET request to /config-gtm/v1/domains/{domainName}/as-maps/{mapName}, which responds with a AsMap object.

  2. Modify the AsMap object.

  3. PUT the object back to the same URL.

  4. This operation responds with an UpdateResponse object that provides details about the changes made to the AS map.

Remove an AS map

Removes a specific AS map.

DELETE /config-gtm/v1/domains/{domainName}/as-maps/{mapName}

Sample: /config-gtm/v1/domains/example.akadns.net/as-maps/Software-rollout

Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
mapName String Software-rollout Unique name for the AS map.

Status 200 application/json

Object type: UpdateResponse

Download schema: as-map-update-response.json

Response body:

{
    "resource": null,
    "status": {
        "changeId": "5beb11ae-8908-4bfe-8459-e88efc4d2fdc",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-08T18:25:51.000+0000",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ]
    }
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Run List AS maps, then from the response’s items array, store the relevant name value as the mapName parameter.

  3. Make a DELETE request to /config-gtm/v1/domains/{domainName}/as-maps/{mapName}, which responds with an UpdateResponse object.

List geographic maps

Returns a list of geographic maps.

GET /config-gtm/v1/domains/{domainName}/geographic-maps

Sample: /config-gtm/v1/domains/example.akadns.net/geographic-maps

Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.

Status 200 application/json

Object type: GeographicMap

Download schema: geographic-map-list.json

Response body:

{
    "items": [
        {
            "name": "UK Delivery",
            "defaultDatacenter": {
                "datacenterId": 5400,
                "nickname": "Default Mapping"
            },
            "assignments": [
                {
                    "datacenterId": 3133,
                    "nickname": "UK users",
                    "countries": [
                        "GB"
                    ]
                }
            ],
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/geographic-maps/UK%20Delivery",
                    "rel": "self"
                }
            ]
        }
    ]
}
  1. Run List domains, then from the response’s items array, store the name value as the domainName parameter.

  2. Make a GET request to /config-gtm/v1/domains/{domainName}/geographic-maps, which responds with an array of GeographicMap objects.

Get a geographic map

Returns information for a specific geographic map.

GET /config-gtm/v1/domains/{domainName}/geographic-maps/{mapName}

Sample: /config-gtm/v1/domains/example.akadns.net/geographic-maps/Software-rollout

Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
mapName String Software-rollout Unique name for the geographic map.

Status 200 application/json

Object type: GeographicMap

Download schema: geographic-map.json

Response body:

{
    "name": "UK Delivery",
    "defaultDatacenter": {
        "datacenterId": 5400,
        "nickname": "Default Mapping"
    },
    "assignments": [
        {
            "datacenterId": 3133,
            "nickname": "UK users",
            "countries": [
                "GB"
            ]
        }
    ],
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/geographic-maps/UK%20Delivery",
            "rel": "self"
        }
    ]
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Run List geographic maps, then from the response’s items array, store the relevant name value as the mapName parameter.

  3. Make a GET request to /config-gtm/v1/domains/{domainName}/geographic-maps/{mapName}, which responds with a GeographicMap object.

Create or update a geographic map

Run this operation to create or update a geographic map.

PUT /config-gtm/v1/domains/{domainName}/geographic-maps/{mapName}

Sample: /config-gtm/v1/domains/example.akadns.net/geographic-maps/Software-rollout

Content-Type: application/json

Object type: GeographicMap

Download schema: geographic-map.json

Request body:

{
    "name": "UK Delivery",
    "defaultDatacenter": {
        "datacenterId": 5400,
        "nickname": "Default Mapping"
    },
    "assignments": [
        {
            "datacenterId": 3133,
            "nickname": "UK users",
            "countries": [
                "GB"
            ]
        }
    ]
}
Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
mapName String Software-rollout Unique name for the geographic map.

Status 200 application/json

Object type: UpdateResponse

Download schema: geographic-map-update-response.json

Response body:

{
    "resource": {
        "name": "UK Delivery",
        "defaultDatacenter": {
            "datacenterId": 5400,
            "nickname": "Default Mapping"
        },
        "assignments": [
            {
                "datacenterId": 3133,
                "nickname": "UK users",
                "countries": [
                    "GB"
                ]
            }
        ],
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/geographic-maps/UK%20Delivery",
                "rel": "self"
            }
        ]
    },
    "status": {
        "changeId": "f2977f97-565b-46af-abfb-1da7e3e8c54b",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-15T11:30:27.000+0000",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ]
    }
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Run List geographic maps.

  3. Decide which mapName you want to create or modify.

If mapName does not appear in the response as the name within one of the objects in the items array and you want to create a new AS map with that name:

  1. If you need a datacenterId value, run List data centers, then select one from the list.

  2. Build a new GeographicMap object.

  3. PUT the object to /config-gtm/v1/domains/{domainName}/geographic-maps/{mapName}, which reflects back the new GeographicMap object.

If mapName appears in the response as the name within one of the objects in the items array and you want to modify it:

  1. Make a GET request to /config-gtm/v1/domains/{domainName}/geographic-maps/{mapName}, which responds with a GeographicMap object.

  2. Modify the GeographicMap object.

  3. PUT the object back to the same URL.

  4. This operation responds with an UpdateResponse object that provides details about the changes made to the geographic map.

Remove a geographic map

Removes a geographic map.

DELETE /config-gtm/v1/domains/{domainName}/geographic-maps/{mapName}

Sample: /config-gtm/v1/domains/example.akadns.net/geographic-maps/Software-rollout

Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
mapName String Software-rollout Unique name for the geographic map.

Status 200 application/json

Object type: UpdateResponse

Download schema: geographic-map-update-response.json

Response body:

{
    "resource": null,
    "status": {
        "changeId": "a97bedfe-c997-4634-84a4-cdb31529fb4c",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-08T13:44:53.000+0000",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ]
    }
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Run List geographic maps, then from the response’s items array, store the relevant name value as the mapName parameter.

  3. Make a DELETE request to /config-gtm/v1/domains/{domainName}/geographic-maps/{mapName}, which responds with an UpdateResponse object.

List data centers

Returns a list of data centers.

GET /config-gtm/v1/domains/{domainName}/datacenters

Sample: /config-gtm/v1/domains/example.akadns.net/datacenters

Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.

Status 200 application/json

Object type: Datacenter

Download schema: datacenter-list.json

Response body:

{
    "items": [
        {
            "city": "Doune",
            "cloneOf": 0,
            "continent": "EU",
            "country": "GB",
            "datacenterId": 3133,
            "latitude": 56.185097,
            "longitude": -4.050264,
            "nickname": "Winterfell",
            "stateOrProvince": "Perthshire",
            "virtual": true,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            },
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3133",
                    "rel": "self"
                }
            ]
        },
        {
            "city": "Sn\u00e6fellsj\u00f6kull",
            "cloneOf": 0,
            "continent": "EU",
            "country": "IS",
            "datacenterId": 3134,
            "latitude": 64.808,
            "longitude": -23.776,
            "nickname": "Frostfangs",
            "stateOrProvince": null,
            "virtual": true,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            },
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3134",
                    "rel": "self"
                }
            ]
        }
    ]
}
  1. Run List domains, then from the response’s items array, store the name value as the domainName parameter.

  2. Make a GET request to /config-gtm/v1/domains/{domainName}/datacenters, which responds with an array of Datacenter objects.

Create a data center

Creates a specific data center.

POST /config-gtm/v1/domains/{domainName}/datacenters

Sample: /config-gtm/v1/domains/example.akadns.net/datacenters

Content-Type: application/json

Object type: Datacenter

Download schema: datacenter.json

Request body:

{
    "city": "Doune",
    "stateOrProvince": "Perthshire",
    "cloneOf": 0,
    "continent": "EU",
    "country": "GB",
    "latitude": 56.185096,
    "longitude": -4.050264,
    "nickname": "Winterfell",
    "defaultLoadObject": {
        "loadObject": null,
        "loadObjectPort": 0,
        "loadServers": null
    }
}
Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.

Status 201 application/json

Headers:

Location: /config-gtm/v1/domains/example.akadns.net/datacenters/3133

Object type: UpdateResponse

Download schema: datacenter-update-response.json

Response body:

{
    "resource": {
        "city": "Doune",
        "cloneOf": 0,
        "continent": "EU",
        "country": "GB",
        "datacenterId": 3133,
        "latitude": 56.185097,
        "longitude": -4.050264,
        "nickname": "Winterfell",
        "stateOrProvince": "Perthshire",
        "virtual": true,
        "defaultLoadObject": {
            "loadObject": null,
            "loadObjectPort": 0,
            "loadServers": null
        },
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3133",
                "rel": "self"
            }
        ]
    },
    "status": {
        "changeId": "f0c51967-d119-4665-9403-364a57ea5530",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-15T11:30:27.000+0000",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ]
    }
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Build a new Datacenter POST object.

  3. Make a POST request to /config-gtm/v1/domains/{domainName}/datacenters.

  4. Optionally, store the responses Location header value, which you can use to GET the new data center.

Get a data center

Returns information for a specific data center.

GET /config-gtm/v1/domains/{domainName}/datacenters/{datacenterId}

Sample: /config-gtm/v1/domains/example.akadns.net/datacenters/1

Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
datacenterId Number 1 Numeric id of the data center.

Status 200 application/json

Object type: Datacenter

Download schema: datacenter.json

Response body:

{
    "city": "Downpatrick",
    "cloneOf": 0,
    "continent": "EU",
    "country": "GB",
    "datacenterId": 3133,
    "latitude": 54.367,
    "longitude": -5.582,
    "nickname": "Winterfell",
    "stateOrProvince": null,
    "virtual": true,
    "defaultLoadObject": {
        "loadObject": null,
        "loadObjectPort": 0,
        "loadServers": null
    },
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3133",
            "rel": "self"
        }
    ]
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Run List data centers, then from the response’s items array, store the relevant datacenterId.

  3. Make a GET request to /config-gtm/v1/domains/{domainName}/datacenters/{datacenterId}, which responds with a Datacenter object.

Update a data center

Updates a specific data center.

PUT /config-gtm/v1/domains/{domainName}/datacenters/{datacenterId}

Sample: /config-gtm/v1/domains/example.akadns.net/datacenters/1

Content-Type: application/json

Object type: Datacenter

Download schema: datacenter.json

Request body:

{
    "city": "Downpatrick",
    "cloneOf": 0,
    "continent": "EU",
    "country": "GB",
    "datacenterId": 3133,
    "latitude": 54.367,
    "longitude": -5.582,
    "nickname": "Winterfell",
    "defaultLoadObject": {
        "loadObject": null,
        "loadObjectPort": 0,
        "loadServers": null
    }
}
Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
datacenterId Number 1 Numeric id of the data center.

Status 200 application/json

Object type: UpdateResponse

Download schema: datacenter-update-response.json

Response body:

{
    "resource": {
        "city": "Downpatrick",
        "cloneOf": 0,
        "continent": "EU",
        "country": "GB",
        "datacenterId": 3133,
        "latitude": 54.367,
        "longitude": -5.582,
        "nickname": "Winterfell",
        "stateOrProvince": null,
        "virtual": true,
        "defaultLoadObject": {
            "loadObject": null,
            "loadObjectPort": 0,
            "loadServers": null
        },
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3133",
                "rel": "self"
            }
        ]
    },
    "status": {
        "changeId": "bd69be9b-ff44-433d-bff8-ae00d270ea33",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-15T11:30:27.000+0000",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ]
    }
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Make a GET request to /config-gtm/v1/domains/{domainName}/datacenters, which responds with a Datacenter object.

  3. Modify the Datacenter object.

  4. PUT the object back to the same URL.

  5. This operation responds with an UpdateResponse object that provides details about the changes made to the data center.

Remove a data center

Removes a data center. Removes a data center, which is only possible when no properties or resources are assigned to it.

DELETE /config-gtm/v1/domains/{domainName}/datacenters/{datacenterId}

Sample: /config-gtm/v1/domains/example.akadns.net/datacenters/1

Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.
datacenterId Number 1 Numeric id of the data center.

Status 200 application/json

Object type: UpdateResponse

Download schema: datacenter-update-response.json

Response body:

{
    "resource": null,
    "status": {
        "changeId": "66c7ff0b-4b9e-41cc-9fd0-34d4f75c2484",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-03T21:18:01.000+0000",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ]
    }
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Run List data centers, then from the response’s items array, store the relevant datacenterId.

  3. Make a DELETE request to /config-gtm/v1/domains/{domainName}/datacenters/{datacenterId}, which responds with an UpdateResponse object.

Get current status

Returns information about the current condition of the change in the domain’s activation.

GET /config-gtm/v1/domains/{domainName}/status/current

Sample: /config-gtm/v1/domains/example.akadns.net/status/current

Parameter Type Sample Description
URL path parameters
domainName String example.akadns.net The full GTM domain name.

Status 200 application/json

Object type: Status

Download schema: status.json

Response body:

{
    "changeId": "5beb11ae-8908-4bfe-8459-e88efc4d2fdc",
    "message": "Current configuration has been propagated to all GTM name servers.",
    "passingValidation": true,
    "propagationStatus": "COMPLETE",
    "propagationStatusDate": "2014-03-08T15:39:00.000+0000",
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
            "rel": "self"
        }
    ]
}
  1. Run List domains, then from the response’s items array, store the relevant name value as the domainName parameter.

  2. Make a GET request to /config-gtm/v1/domains/{domainName}/status/current, which responds with a Status object.

Data

This section provides details for each type of data object the API exchanges.

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.

Identity

Collects high-level information about the API client for a specific GTM account.

Download schema: identity.json

Sample GET response:

{
    "accountId": "1-1TJZFB",
    "userName": "ed@example.com",
    "userTimeZone": "-05:00",
    "locale": "en_US",
    "firstName": "Eddard",
    "lastName": "Stark",
    "email": "ed@example.com",
    "active": true,
    "contracts": [
        {
            "contractId": "1-1TJZH5",
            "features": [
                "FAILOVER",
                "QTR",
                "ASMAPPING",
                "CIDRMAPPING",
                "GEOGRAPHIC",
                "WEIGHTED_ROUND_ROBIN",
                "WEIGHTED_ROUND_ROBIN_LOAD_FEEDBACK",
                "WEIGHTED_HASHED",
                "PERFORMANCE"
            ],
            "permissions": [
                "READ",
                "WRITE",
                "ADD"
            ]
        },
        {
            "contractId": "3-ZQ0H6H",
            "features": [
                "FAILOVER",
                "QTR",
                "ASMAPPING",
                "CIDRMAPPING",
                "GEOGRAPHIC"
            ],
            "permissions": [
                "READ",
                "WRITE"
            ]
        }
    ]
}

Identity members

Member Type Description
Identity: Collects high-level information about the API client for a specific GTM account.
accountId String A unique API client identity for a specific account, created in Control Center.
active Boolean Enabled if the account is active.
contracts Identity.contracts[] Lists information about each contract under a specific account.
email String The email address of the client on the account.
firstName String The first name of the client on the account.
lastName String The last name of the client on the account.
locale String Indicates the client’s language and country in RFC 5646 format.
userName String The username of the client on the account.
userTimeZone String The time zone of the client on the account, which specifies an offset from GTM.
Identity.contracts[]: Lists information about each contract under a specific account.
contractId String A unique identifier for the contract.
features Array Indicates the available property types for a specific domain. Types include: FAILOVER, QTR, ASMAPPING, CIDRMAPPING, GEOGRAPHIC, WEIGHTED_ROUND_ROBIN, WEIGHTED_ROUND_ROBIN_LOAD_FEEDBACK, WEIGHTED_HASHED, and PERFORMANCE.
permissions Array Identifies the privileges set to modify or delete any of the properties within a specific domain. Values include: READ, WRITE, ADD, and ADD_DATACENTER.

Contracts

Collects information about each contract under a specific GTM account.

Download schema: identity-contracts.json

Sample GET response:

{
    "accountId": "1-1TJZFB",
    "contracts": [
        {
            "contractId": "1-1TJZH5",
            "contractName": "Wolves",
            "contractTypeName": "DIRECT_CUSTOMER"
        },
        {
            "contractId": "3-ZQ0H6H",
            "contractName": "Stags",
            "contractTypeName": "DIRECT_CUSTOMER"
        }
    ]
}

Contracts members

Member Type Description
Contracts: Collects information about each contract under a specific GTM account.
accountId String A unique identifier for the account where the contract exists.
contracts Contracts.contracts[] Collects information about each contract under a specific account.
Contracts.contracts[]: Collects information about each contract under a specific account.
contractId String A unique identifier for the contract.
contractName String A descriptive name for the contract.
contractTypeName String A descriptive name for the contract type.

Group

Collects information about each group under a specific GTM account. For details on how to modify group permissions, see the Identity Management: User Administration API.

Download schema: identity-groups.json

Sample GET response:

{
    "groups": [
        {
            "groupId": 15166,
            "groupName": "House Stark",
            "contractIds": [
                "1-1TJZH5"
            ],
            "permissions": [
                "ADD",
                "READ",
                "WRITE"
            ]
        },
        {
            "groupId": 41443,
            "groupName": "House Baratheon",
            "contractIds": [
                "1-1TJZH5",
                "3-ZQ0H6H"
            ],
            "permissions": [
                "READ",
                "WRITE"
            ]
        }
    ]
}

Group members

Member Type Description
Group: Collects information about each group under a specific GTM account. For details on how to modify group permissions, see the Identity Management: User Administration API.
contractIds Array A unique identifier for the contract.
groupId Integer A unique identifier for the group.
groupName String A descriptive name for the group.
permissions Array Identifies the privileges set for each group under the account. These privileges let you create a domain, modify, or delete any of the properties within a specific domain. Values include: READ, WRITE, ADD, and ADD_DATACENTER.

Domain

Contains information about the basic building block of a traffic management configuration. Each domain object is a representation of a complete GTM domain such as example.akadns.net.

Download schema: domain-vnd-config-gtm.v1.3.json

Sample GET response:

{
    "defaultSslClientCertificate": null,
    "defaultSslClientPrivateKey": null,
    "defaultUnreachableThreshold": null,
    "lastModified": "2014-04-08T18:25:51.000+0000",
    "lastModifiedBy": "admin@example.com",
    "loadFeedback": true,
    "loadImbalancePercentage": 10.0,
    "minPingableRegionFraction": null,
    "modificationComments": "CIDRMap example",
    "name": "example.akadns.net",
    "pingInterval": null,
    "roundRobinPrefix": null,
    "servermonitorLivenessCount": null,
    "servermonitorLoadCount": null,
    "type": "full",
    "emailNotificationList": [],
    "status": {
        "changeId": "5beb11ae-8908-4bfe-8459-e88efc4d2fdc",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-08T18:25:51.000+0000",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ]
    },
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net",
            "rel": "self"
        },
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/datacenters",
            "rel": "datacenters"
        },
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/properties",
            "rel": "properties"
        },
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/geographic-maps",
            "rel": "geographic-maps"
        },
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/cidr-maps",
            "rel": "cidr-maps"
        },
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/resources",
            "rel": "resources"
        }
    ],
    "cidrMaps": [
        {
            "name": "The North",
            "defaultDatacenter": {
                "datacenterId": 5400,
                "nickname": "All Other CIDR Blocks"
            },
            "assignments": [
                {
                    "datacenterId": 3134,
                    "nickname": "Frostfangs and the Fist of First Men",
                    "blocks": [
                        "1.3.5.9",
                        "1.2.3.0/24"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "nickname": "Winterfell",
                    "blocks": [
                        "1.2.4.0/24"
                    ]
                }
            ],
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/cidr-maps/The%20North",
                    "rel": "self"
                }
            ]
        }
    ],
    "datacenters": [
        {
            "city": "Downpatrick",
            "cloneOf": 0,
            "continent": "EU",
            "country": "GB",
            "datacenterId": 3133,
            "latitude": 54.367,
            "longitude": -5.582,
            "nickname": "Winterfell",
            "stateOrProvince": null,
            "virtual": true,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            },
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3133",
                    "rel": "self"
                }
            ]
        },
        {
            "city": "Doune",
            "cloneOf": 0,
            "continent": "EU",
            "country": "GB",
            "datacenterId": 3134,
            "latitude": 56.185097,
            "longitude": -4.050264,
            "nickname": "Winterfell",
            "stateOrProvince": "Perthshire",
            "virtual": true,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            },
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3134",
                    "rel": "self"
                }
            ]
        },
        {
            "city": null,
            "cloneOf": 0,
            "continent": null,
            "country": null,
            "datacenterId": 5400,
            "latitude": 0.0,
            "longitude": 0.0,
            "nickname": "Default Datacenter",
            "stateOrProvince": null,
            "virtual": true,
            "defaultLoadObject": {
                "loadObject": null,
                "loadObjectPort": 0,
                "loadServers": null
            },
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/5400",
                    "rel": "self"
                }
            ]
        }
    ],
    "geographicMaps": [
        {
            "name": "UK Delivery",
            "defaultDatacenter": {
                "datacenterId": 5400,
                "nickname": "Default Mapping"
            },
            "assignments": [
                {
                    "datacenterId": 3133,
                    "nickname": "UK users",
                    "countries": [
                        "GB"
                    ]
                }
            ],
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/geographic-maps/UK%20Delivery",
                    "rel": "self"
                }
            ]
        }
    ],
    "properties": [
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": false,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "mapName": null,
            "maxUnreachablePenalty": null,
            "name": "www",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "type": "failover",
            "unreachableThreshold": null,
            "useComputedTargets": false,
            "mxRecords": [],
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/properties/www",
                    "rel": "self"
                }
            ],
            "livenessTests": [
                {
                    "disableNonstandardPortWarning": false,
                    "hostHeader": "foo.example.com",
                    "httpError3xx": true,
                    "httpError4xx": true,
                    "httpError5xx": true,
                    "name": "health-check",
                    "requestString": null,
                    "responseString": null,
                    "sslClientCertificate": null,
                    "sslClientPrivateKey": null,
                    "testInterval": 60,
                    "testObject": "/status",
                    "testObjectPassword": null,
                    "testObjectPort": 80,
                    "testObjectProtocol": "HTTP",
                    "testObjectUsername": null,
                    "testTimeout": 25.0,
                    "links": []
                }
            ],
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": false,
                    "handoutCName": null,
                    "name": null,
                    "weight": 0.0,
                    "servers": []
                },
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "weight": 0.0,
                    "servers": [
                        "1.2.3.5"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "weight": 1.0,
                    "servers": [
                        "1.2.3.4"
                    ]
                }
            ]
        },
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": true,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "loadImbalancePercentage": null,
            "mapName": null,
            "maxUnreachablePenalty": null,
            "name": "mail",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "type": "weighted-round-robin",
            "unreachableThreshold": null,
            "useComputedTargets": false,
            "livenessTests": [],
            "mxRecords": [],
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/properties/mail",
                    "rel": "self"
                }
            ],
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": false,
                    "handoutCName": null,
                    "name": null,
                    "weight": 0.0,
                    "servers": []
                },
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "weight": 1.0,
                    "servers": [
                        "2001:4878::5043:4078"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": null,
                    "name": null,
                    "weight": 1.0,
                    "servers": [
                        "2001:4878::5043:4072",
                        "2001:4878::5043:4071"
                    ]
                }
            ]
        },
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": false,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "loadImbalancePercentage": null,
            "mapName": null,
            "maxUnreachablePenalty": null,
            "name": "supplies",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "type": "failover",
            "unreachableThreshold": null,
            "useComputedTargets": false,
            "livenessTests": [],
            "mxRecords": [],
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/properties/supplies",
                    "rel": "self"
                }
            ],
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": false,
                    "handoutCName": "supplies.example.com",
                    "name": null,
                    "weight": 0.0,
                    "servers": []
                },
                {
                    "datacenterId": 3134,
                    "enabled": true,
                    "handoutCName": "winter.supplies.example.com",
                    "name": null,
                    "weight": 0.0,
                    "servers": []
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": "redcross.org",
                    "name": null,
                    "weight": 0.0,
                    "servers": []
                }
            ]
        },
        {
            "backupCName": null,
            "backupIp": null,
            "balanceByDownloadScore": false,
            "cname": null,
            "comments": null,
            "dynamicTTL": 300,
            "failbackDelay": 0,
            "failoverDelay": 0,
            "handoutMode": "normal",
            "healthMax": null,
            "healthMultiplier": null,
            "healthThreshold": null,
            "ipv6": false,
            "lastModified": "2014-04-08T18:25:52.000+0000",
            "loadImbalancePercentage": null,
            "mapName": "UK Delivery",
            "maxUnreachablePenalty": null,
            "name": "shop",
            "scoreAggregationType": "mean",
            "staticTTL": 600,
            "stickinessBonusConstant": 0,
            "stickinessBonusPercentage": 0,
            "type": "geographic",
            "unreachableThreshold": null,
            "useComputedTargets": false,
            "livenessTests": [],
            "mxRecords": [],
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/properties/shop",
                    "rel": "self"
                }
            ],
            "trafficTargets": [
                {
                    "datacenterId": 5400,
                    "enabled": true,
                    "handoutCName": "shop.example.com",
                    "name": null,
                    "weight": 1.0,
                    "servers": []
                },
                {
                    "datacenterId": 3134,
                    "enabled": false,
                    "handoutCName": null,
                    "name": null,
                    "weight": 1.0,
                    "servers": []
                },
                {
                    "datacenterId": 3133,
                    "enabled": true,
                    "handoutCName": "uk.shop.example.com",
                    "name": null,
                    "weight": 1.0,
                    "servers": []
                }
            ]
        }
    ],
    "resources": [
        {
            "aggregationType": "latest",
            "constrainedProperty": "mail",
            "decayRate": null,
            "description": "CPU utilization",
            "hostHeader": null,
            "leaderString": null,
            "leastSquaresDecay": null,
            "loadImbalancePercentage": null,
            "maxUMultiplicativeIncrement": null,
            "name": "cpu",
            "type": "XML load object via HTTP",
            "upperBound": 0,
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/resources/cpu",
                    "rel": "self"
                }
            ],
            "resourceInstances": [
                {
                    "datacenterId": 3134,
                    "loadObject": "/cpu",
                    "loadObjectPort": 80,
                    "useDefaultLoadObject": false,
                    "loadServers": [
                        "1.2.3.8"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "loadObject": "/cpu",
                    "loadObjectPort": 80,
                    "useDefaultLoadObject": false,
                    "loadServers": [
                        "1.2.3.7"
                    ]
                },
                {
                    "datacenterId": 5400,
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "useDefaultLoadObject": false,
                    "loadServers": []
                }
            ]
        },
        {
            "aggregationType": "latest",
            "constrainedProperty": "**",
            "decayRate": null,
            "description": "Supply levels of Arbor Gold",
            "hostHeader": null,
            "leaderString": null,
            "leastSquaresDecay": null,
            "loadImbalancePercentage": null,
            "maxUMultiplicativeIncrement": null,
            "name": "arbor-gold",
            "type": "Non-XML load object via HTTP",
            "upperBound": 0,
            "links": [
                {
                    "href": "/config-gtm/v1/domains/example.akadns.net/resources/arbor-gold",
                    "rel": "self"
                }
            ],
            "resourceInstances": [
                {
                    "datacenterId": 3134,
                    "loadObject": "/cups",
                    "loadObjectPort": 80,
                    "useDefaultLoadObject": false,
                    "loadServers": [
                        "1.2.3.8"
                    ]
                },
                {
                    "datacenterId": 3133,
                    "loadObject": "/cups",
                    "loadObjectPort": 80,
                    "useDefaultLoadObject": false,
                    "loadServers": [
                        "1.2.3.7"
                    ]
                },
                {
                    "datacenterId": 5400,
                    "loadObject": null,
                    "loadObjectPort": 0,
                    "useDefaultLoadObject": false,
                    "loadServers": []
                }
            ]
        }
    ]
}

Domain members

Member Type Required Description
Domain: Contains information about the basic building block of a traffic management configuration. Each domain object is a representation of a complete GTM domain such as example.akadns.net.
asMaps AsMap[] v1.1. Contains information about the set of AS maps assigned to this domain.
cidrMaps CidrMap[] Contains information about the set of CIDR maps assigned to this domain.
cnameCoalescingEnabled Boolean v1.1. If enabled, GTM collapses CNAME redirections in DNS answers when it knows the target of the CNAME. The default value is false.
datacenters Datacenter[] Contains information about the set of data centers assigned to this domain.
defaultErrorPenalty Integer Specifies the download penalty score. If the download encounters an error, the web agent computes a score that is either the download time in seconds or a penalty score. The default penalty is 75.
defaultSslClientCertificate String, Null Specifies an optional Base64-encoded certificate that corresponds with the private key for TLS-based liveness tests (HTTPS, SMTPS, POPS, and TCPS). When the liveness test does not contain sslClientCertificate and sslClientPrivateKey values, use this and the defaultSslClientPrivateKey object members to generate a certificate. Note that the private key used to generate a certificate (or the CSR used to request the certificate) for this purpose needs to be throwaway, meaning that it is not used for any other purpose. See also defaultSslClientPrivateKey within this object.
defaultSslClientPrivateKey String, Null Specifies an optional Base64-encoded private key that corresponds with the TLS certificate for TLS-based liveness tests (HTTPS, SMTPS, POPS, and TCPS). See also defaultSslClientCertificate within this object.
defaultTimeoutPenalty Integer Specifies the timeout penalty score. The web agent then computes a score that is either the download time in seconds or a penalty score if the download request times out. The default penalty for a time out is 25.
emailNotificationList Array A list of email addresses to notify when a change is made to the domain.
geographicMaps GeographicMap[] Contains information about the set of geographic maps assigned to this domain.
lastModified String An ISO 8601 timestamp that indicates when the domain was last changed.
lastModifiedBy String, Null The email address of the administrator who made the last change to the domain.
links Hypermedia[] v1.1. Provides a URL path that allows direct navigation to the domain.
loadFeedback Boolean Indicates whether one or more measurements of load (resources) are defined by you and supplied by each data center in real time to balance load. The value is true if load balance is used.
loadImbalancePercentage Number, Null Indicates the percent of load imbalance factor (LIF) for the domain. The LIF controls how imbalanced GTM allows the load to be. That is the factor by which the demand sent to a data center is permitted to exceed the configured value. For example, with a data center traffic allocation of 25 percent and an LIF of 1.5, the demand sent to the data center is allowed to grow to 37.5 percent (25% × 1.5) before the load balancer starts shifting load away from it. The LIF is represented as a percentage. Zero means no load imbalance is allowed at all. However, internally, GTM adds one to the LIF so that it can be used as a multiplier. The default LIF is 1.1, which is displayed as 10.0 percent. The value ranges from 0 to 1000000 percent.
modificationComments String, Null A descriptive note about changes to the domain. The maximum is 4000 characters.
name String The full GTM domain name that needs to end in .akadns.net, up to 100 characters.
properties Property[] Contains information about the properties in the GTM domain.
resources Resource[] Contains information about the resources in the GTM domain.
status Status Specifies the condition of the change in the domain’s activation.
type Enumeration Indicates the type of domain available based on your contract. Either failover-only, static, weighted, basic, or full.

Property

Contains information about the entire GTM property configuration.

Download schema: property-vnd-config-gtm.v1.3.json

Sample GET response:

{
    "backupCName": null,
    "backupIp": null,
    "balanceByDownloadScore": false,
    "cname": null,
    "comments": null,
    "dynamicTTL": 300,
    "failbackDelay": 0,
    "failoverDelay": 0,
    "handoutMode": "normal",
    "healthMax": null,
    "healthMultiplier": null,
    "healthThreshold": null,
    "ipv6": false,
    "lastModified": "2014-04-08T15:11:10.000+0000",
    "loadImbalancePercentage": null,
    "mapName": null,
    "maxUnreachablePenalty": null,
    "name": "www",
    "scoreAggregationType": "mean",
    "staticTTL": 600,
    "stickinessBonusConstant": 0,
    "stickinessBonusPercentage": 0,
    "type": "failover",
    "unreachableThreshold": null,
    "useComputedTargets": false,
    "mxRecords": [],
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/properties/www",
            "rel": "self"
        }
    ],
    "livenessTests": [
        {
            "disableNonstandardPortWarning": false,
            "hostHeader": "foo.example.com",
            "httpError3xx": true,
            "httpError4xx": true,
            "httpError5xx": true,
            "name": "health-check",
            "requestString": null,
            "responseString": null,
            "sslClientCertificate": null,
            "sslClientPrivateKey": null,
            "testInterval": 60,
            "testObject": "/status",
            "testObjectPassword": null,
            "testObjectPort": 80,
            "testObjectProtocol": "HTTP",
            "testObjectUsername": null,
            "testTimeout": 25.0
        }
    ],
    "trafficTargets": [
        {
            "datacenterId": 3134,
            "enabled": true,
            "handoutCName": null,
            "name": null,
            "weight": 0.0,
            "servers": [
                "1.2.3.5"
            ]
        },
        {
            "datacenterId": 3133,
            "enabled": true,
            "handoutCName": null,
            "name": null,
            "weight": 1.0,
            "servers": [
                "1.2.3.4"
            ]
        }
    ]
}

Property members

Member Type Required Description
Property: Contains information about the entire GTM property configuration.
backupCName String, Null Specifies a backupCName. If GTM declares that all of the servers configured for your property are down, and you configured a backupCName, then queries for the property return the backupCName. If a backupCName is set, do not set a backupIp.
backupIp String, Null Specifies a backup IP. When GTM declares that all of the targets are down, the backupIP is handed out. The IP type coincides with the property’s iPv6 setting. If a backupIp is set, do not set a backupCName.
balanceByDownloadScore Boolean Indicates whether download score based load balancing is enabled. GTM estimates the load on your data centers based on how long they take to respond to GTM liveness tests. The advantage: you do not need to implement a load object. The disadvantage: it’s a very crude measure of load, and usually highly nonlinear. As load increases, download times do not increase significantly, until there is too much load. When that happens, the download times skyrocket. This can easily cause erratic load balancing or load oscillations.
cname String, Null Indicates the fully qualified name aliased to a particular property. The public name of the property.
dynamicTTL Integer Indicates the TTL in seconds for records that might change dynamically based on liveness and load balancing such as A and AAAA records, and CNAMEs. The value ranges from 30 to 3600 and can change on request. The default is 60.
failbackDelay Integer, Null Specifies the failback delay in seconds. The minimum value is 0. If specified, when a server has been down and comes back up, (that is, its liveness test starts succeeding again), GTM only considers it up after the failback delay has elapsed and tests continue to succeed.
failoverDelay Integer, Null Specifies the failover delay in seconds. The minimum value is 0. If specified, when a server begins failing its liveness test, GTM only considers it down after the failover delay has elapsed and the errors persist.
handoutLimit Integer, Null v1.3. Indicates the limit for the number of live IPs handed out to a DNS request. The handoutLimit applies only if handoutMode is set to either normal or persistent for the property. If applicable, the handoutLimit default value is 8 or null if not.
handoutMode Enumeration Specifies how IPs are returned when more than one IP is alive and available. Either normal, persistent, one-ip, one-ip-hashed, or all-live-ips. The default is normal. Handout mode is relevant only when you have more than one server IP in a data center.
healthMax Number, Null Defines the absolute limit beyond which IPs are declared unhealthy. If backup CNAMEs are provided for a property, then it is reasonable for all IPs to be declared unhealthy. The healthMax value is multiplied by the smaller of the timeoutPenalty and the errorPenalty. Any server with a score greater than this product is declared down. The default value is null.
healthMultiplier Number, Null Configures a cutoff value that is computed from the median scores. Any server with a score over the cutoff value is considered down, and load is not sent to it. The cutoff is computed from the minimum score across all data centers, for a given property and two object members: healthMultiplier and healthThreshold. The cutoff is either healthMultiplier (default value: 1.5) times the minimum score, or the healthThreshold (default value: 4), whichever is greater. See also healthThreshold within this object. For more information on how to determine server liveness, see the Global Traffic Management User Guide.
healthThreshold Number, Null Configures a cutoff value that is computed from the median scores. Any server with a score over the cutoff value is considered down, and load is not sent to it. See also healthMultiplier within this object. For more information on how to determine server liveness, see the Global Traffic Management User Guide.
ipv6 Boolean Indicates the type of IP address handed out by a property. A true value indicates that all IP addresses specified are IPv6, and all hostnames need to resolve to AAAA records. A false value indicates IPv4 addresses, and all hostnames need to resolve to A records.
lastModified String, Null An ISO 8601 timestamp that indicates when the property was last changed.
links Hypermedia[] Provides a URL path that allows direct navigation to the property.
livenessTests Property.livenessTests[] Contains information about the liveness tests, which are run periodically to determine whether your servers respond to requests, as discussed in API concepts.
loadImbalancePercentage Number, Null Indicates the percent of load imbalance factor (LIF) for the property. The LIF controls how imbalanced GTM allows the load to be. That is the factor by which the demand sent to a data center is permitted to exceed the configured value. For example, with a data center traffic allocation of 25 percent and an LIF of 1.5, the demand sent to the data center is allowed to grow to 37.5 percent (25% × 1.5) before the load balancer starts shifting load away from it. The LIF is represented as a percentage; zero means no load imbalance is allowed at all. However, GTM adds one to the LIF so that it can be used as a multiplier. The default LIF is 1.1, which is displayed as 10.0 percent. The allowable range is 0 to 1000000 percent.
mapName String, Null A descriptive label for a GeographicMap or a CidrMap that’s required if the property is either geographic or cidrmapping, in which case mapName needs to reference either an existing GeographicMap or CidrMap in the same domain.
maxUnreachablePenalty Number, Null For performance domains, this specifies a penalty value that’s added to liveness test scores when data centers show an aggregated loss fraction higher than the penalty value. The penalty value is either maxUnreachablePenalty (minimum value is 0 and the default is null) or unreachableThreshold (decimal between 0 and 1. A value of 1.0 or null disables an unreachable penalty). See also unreachableThreshold within this object.
minLiveFraction Number, Null v1.3. Specifies what fraction of the servers need to respond to requests so GTM considers the data center up and able to receive traffic. For example, if your data center contains eight servers, and the minLiveFraction value is 0.5, then at least four servers need to respond to requests. Conversely, if five servers are down, and three servers are up, then GTM considers the entire data center down. Optional when a minLiveFraction value exists or not null.
mxRecords Property.mxRecords[] Specifies the MX records handed out to MX record type queries. Note that mapping and liveness testing aren’t done. The same MX records are handed out for every request.
name String The value, together with the GTM domainName, forms the property’s hostname. The value should not begin or end with a dot (.), and needs to be a valid RFC 1123 hostname.
scoreAggregationType Enumeration Specifies how GTM aggregates liveness test scores across different tests, when multiple tests are configured. Values are mean, median, best, or the default worst.
staticTTL Integer, Null Specifies the TTL in seconds for static resource records that do not change based on the requesting name server IP. This includes MX, TXT, and SPF records.
stickinessBonusConstant Integer, Null Specifies a constant used to configure data center affinity. This only applies if the property type is performance and the domain type is full. The value ranges from 0 to 30000. See also stickinessBonusPercentage within this object. To learn more about how these object members relate to each other, see API concepts.
stickinessBonusPercentage Integer, Null Specifies a percentage used to configure data center affinity. This only applies if the property type is performance and the domain type is full. The value ranges from 0 to 100. See also stickinessBonusConstant within this object. To learn more about how these object members relate to each other, see API concepts.
trafficTargets Property.trafficTargets[] Contains information about where to direct data center traffic. For geographic mapped properties, it is always a cname. For mirror failover properties, it can be any set of servers. For load balanced properties, this is a set of servers that are all within the same data center. You can have multiple traffic targets associated with the same data center.
type Enumeration Specifies the load balancing behavior for the property. Either failover, geographic, cidrmapping, weighted-round-robin, weighted-hashed, weighted-round-robin-load-feedback, qtr, or performance. An additional value of asmapping requires the application/vnd.config-gtm.v1.1+json media type. See API versioning for more information.
unreachableThreshold Number, Null For performance domains, this specifies a penalty value that’s added to liveness test scores when data centers have an aggregated loss fraction higher than this value. The value is a decimal between 0 and 1. A value of 1.0 or null disables an unreachable penalty. See also maxUnreachablePenalty within this object.
useComputedTargets Boolean For load-feedback domains only, this specifies that you want GTM to automatically compute target load. Report only the current load objects, either by omission, or by using non-XML load objects.
Property.livenessTests[]: Contains information about the liveness tests, which are run periodically to determine whether your servers respond to requests, as discussed in API concepts.
answersRequired Boolean v1.3. If testObjectProtocol is DNS, requires an answer to the DNS query to be considered a success. The default is false.
disableNonstandardPortWarning Boolean Disables warnings when non-standard ports are used. For example, GTM does not emit a warning to specify port 1234 when the testObjectProtocol is http, as HTTP typically uses port 80. The default is false.
errorPenalty Number v1.2. Specifies the score that’s reported if the liveness test encounters an error other than timeout, such as connection refused, and 404. The default value is 75.
hostHeader String, Null Sent if the testObjectProtocol is http or https, up to 256 non-space, alphanumeric characters.
httpError3xx Boolean Treats a 3xx HTTP response as a failure if the testObjectProtocol is http, https, or ftp.
httpError4xx Boolean Treats a 4xx HTTP response as a failure if the testObjectProtocol is http, https, or ftp.
httpError5xx Boolean Treats a 5xx HTTP response as a failure if the testObjectProtocol is http, https, or ftp.
name String A descriptive name for the liveness test.
peerCertificateVerification Boolean v1.3. Validates the origin certificate. Applies only to tests with testObjectProtocol of https. The default is false.
recursionRequested Boolean v1.3. Indicates that testObjectProtocol is DNS. The DNS query is recursive. The default is false.
requestString String, Null Specifies a request string. Required if testObjectProtocol is tcp or tcps. The value is a maximum of 4000 non-space, alphanumeric characters.
resourceType Enumeration, Null v1.3. Specifies the query type, if testObjectProtocol is DNS. Types include: A, AAAA, AFSDB, CNAME, HINFO, LOC, MX, NAPTR, NS, PTR, RP, SOA, SPF, SRV, SSHFP, TXT, DNSKEY, DS, NSEC3, NSEC3PARAM, or RRSIG. Additional support for unknown types (TYPENNNNN) where NNNNN is an integer from 1 through 65535.
responseString String, Null Specifies a response string. Required if testObjectProtocol is tcp or tcps. Maximum 4000 characters.
sslClientCertificate String, Null Indicates a Base64-encoded certificate. SSL client certificates are available for livenessTests that use secure protocols.
sslClientPrivateKey String, Null Indicates a Base64-encoded private key. The private key used to generate or request a certificate for livenessTests can’t have a passphrase nor be used for any other purpose.
testInterval Integer Indicates the interval at which the liveness test is run, in seconds. Requires a minimum of 10 seconds.
testObject String, Null Specifies the static text that acts as a stand-in for the data that you’re sending on the network.
testObjectPassword String, Null Specifies the test object’s password. It is required if testObjectProtocol is ftp. Maximum is 128 characters.
testObjectPort Integer Specifies the port number for the testObject. Value from 1 to 65535.
testObjectProtocol Enumeration Specifies the test protocol. EitherDNS, HTTP, HTTPS, FTP, POP, POPS, SMTP, SMTPS, TCP, or TCPS. Enable the testObjectProtocol for DNS. Requires application/vnd.config-gtm.v1.3+json.
testObjectUsername String, Null A descriptive name for the testObject. If testObjectProtocol is ftp, then testObjectUsername is required. The value is a maximum of 256 non-space, alphanumeric characters.
testTimeout Number Specifies the duration of the liveness test before it fails. The range is from 0.001 to 60 seconds. The default value is 25 seconds.
timeoutPenalty Number v1.2. Specifies the score to be reported if the liveness test times out. This is independent of the liveness testTimeout value. The default value is 25 seconds.
Property.mxRecords[]: Specifies the MX records handed out to MX record type queries. Note that mapping and liveness testing aren’t done. The same MX records are handed out for every request.
exchange String MX record exchange field.
preference Number MX record preference field.
Property.trafficTargets[]: Contains information about where to direct data center traffic. For geographic mapped properties, it is always a cname. For mirror failover properties, it can be any set of servers. For load balanced properties, this is a set of servers that are all within the same data center. You can have multiple traffic targets associated with the same data center.
datacenterId Integer A unique identifier for an existing data center in the domain.
enabled Boolean Indicates whether the traffic target is used. You can also omit the traffic target, which has the same result as the false value. However, when the value is false, GTM continues to store the other traffic target fields in the database. There’s no need to store them locally should you want to use the traffic target at a later time.
handoutCName String, Null Specifies an optional data center for the property. The handoutCName is used when there are no servers configured for the property. Maximum 63 characters for the labels, 255 characters overall. May contain alphanumeric, hyphens, and underscores, but not literal IP addresses. Leading or trailing hyphens are not allowed.
name String, Null An alternative label for the traffic target.
servers Array Identifies the IP address or the hostnames of the servers. For hostnames that return IP addresses, all IP addresses are tested for liveness.
weight Number Specifies the traffic weight for the target. This parameter is required when the enclosing property is failover, weighted, weighted-with-load-feedback, or performance. The sum of this value, for all enabled targets, needs to add up to 100. For failover properties, set this value to 1 for the traffic target you want to mark as primary. For weighted, weighted-with-load-feedback or performance, set this to the percentage of the total load.

Datacenter

Contains information about the data centers in the GTM domain.

Download schema: datacenter.json

Sample GET response:

{
    "city": "Downpatrick",
    "cloneOf": 0,
    "continent": "EU",
    "country": "GB",
    "datacenterId": 3133,
    "latitude": 54.367,
    "longitude": -5.582,
    "nickname": "Winterfell",
    "stateOrProvince": null,
    "virtual": true,
    "defaultLoadObject": {
        "loadObject": null,
        "loadObjectPort": 0,
        "loadServers": null
    },
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/datacenters/3133",
            "rel": "self"
        }
    ]
}

Datacenter members

Member Type Description
Datacenter: Contains information about the data centers in the GTM domain.
city String, Null The name of the city where the data center is located.
cloneOf Integer, Null Identifies the data center’s datacenterId of which this data center is a clone. A data center clone is just like any other data center except that it inherits its geographic attributes (continent, country, stateOrProvince, city, latitude, and longitude) from the data center of which it is a clone.
cloudServerTargeting Boolean Balances load between two or more servers in a cloud environment. Either true if cloud server targeting is enabled or false if not.
continent Enumeration, Null A two-letter code that specifies the continent where the data center maps to. If omitted, GTM populates this parameter. Either AF, AS, EU, NA, OC, OT, or SA.
country String, Null A two-letter ISO 3166 country code that specifies the country where the data center maps to.
datacenterId Integer A unique identifier for an existing data center in the domain.
defaultLoadObject Datacenter.defaultLoadObject Specifies the load reporting interface between you and the GTM system. A load object is a file that provides real-time information about the current load, maximum allowable load, and target load on each resource. This default load object is intended to be shared. Individual Resources can specify useDefaultLoadObject to use it instead of specifying their own.
latitude Number Specifies the geographical latitude of the data center’s position. See also longitude within this object.
links Hypermedia[] Provides a URL path that allows direct navigation to a data center.
longitude Number Specifies the geographic longitude of the data center’s position. See also latitude within this object.
nickname String A descriptive label for the data center.
stateOrProvince String, Null Specifies a two-letter ISO 3166 country code for the state or province where the data center is located.
virtual Boolean Read-only. Indicates whether or not the data center is virtual or physical, the latter meaning the data center has an Akamai Network Agent installed, and its physical location (latitude, longitude) is fixed. Either true if virtual or false if physical.
Datacenter.defaultLoadObject: Specifies the load reporting interface between you and the GTM system. A load object is a file that provides real-time information about the current load, maximum allowable load, and target load on each resource. This default load object is intended to be shared. Individual Resources can specify useDefaultLoadObject to use it instead of specifying their own.
loadObject String Specifies the load object that GTM requests. A load object is a file that provides real-time information about the current load, maximum allowable load, and target load on each resource. The value cannot begin with a : character, and is limited to a maximum of 256 characters.
loadObjectPort Integer Specifies the TCP port to connect to when requesting the load object. A value of 0 means to use the default port, equivalent to either 80 or 443.
loadServers Array Specifies a list of servers to request the load object from. The value needs to contain IPv4 or IPv6 addresses, or DNS names that contain A or AAAA records. If a DNS name has both A and AAAA records, then GTM picks one randomly. For IP addresses, do not use non-routable RFC 1918 addresses.

CidrMap

Contains information about the CIDR map configured for the property.

Download schema: cidr-map.json

Sample GET response:

{
    "name": "The North",
    "defaultDatacenter": {
        "datacenterId": 5400,
        "nickname": "All Other CIDR Blocks"
    },
    "assignments": [
        {
            "datacenterId": 3134,
            "nickname": "Frostfangs and the Fist of First Men",
            "blocks": [
                "1.2.3.0/24"
            ]
        },
        {
            "datacenterId": 3133,
            "nickname": "Winterfell",
            "blocks": [
                "1.2.4.0/24"
            ]
        }
    ],
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/cidr-maps/The%20North",
            "rel": "self"
        }
    ]
}

CidrMap members

Member Type Description
CidrMap: Contains information about the CIDR map configured for the property.
assignments CidrMap.assignments[] Contains information about the CIDR zone groupings of CIDR blocks.
defaultDatacenter CidrMap.defaultDatacenter A placeholder for all other CIDR zones, CIDR blocks not found in these CIDR zones. Note that a CIDR map can’t have the same CIDR block in multiple CIDR zones.
links Hypermedia[] Specifies the URL path that allows direct navigation to the CIDR map.
name String A descriptive label for the CIDR map, up to 255 characters.
CidrMap.assignments[]: Contains information about the CIDR zone groupings of CIDR blocks.
blocks Array Specifies an array of CIDR blocks.
datacenterId Integer A unique identifier for an existing data center in the domain.
nickname String A descriptive label for the CIDR zone group, up to 256 characters.
CidrMap.defaultDatacenter: A placeholder for all other CIDR zones, CIDR blocks not found in these CIDR zones. Note that a CIDR map can’t have the same CIDR block in multiple CIDR zones.
datacenterId Integer For each property, an identifier for all other CIDR zones’ CNAME. For example, 5400.
nickname String A descriptive label for the all other CIDR blocks. If omitted, the default is All Other CIDR Blocks.

AsMap

Contains information about the AS map configured for the property.

Download schema: as-map.json

Sample GET response:

{
    "name": "The North",
    "defaultDatacenter": {
        "datacenterId": 5400,
        "nickname": "All Other AS numbers"
    },
    "assignments": [
        {
            "datacenterId": 3134,
            "nickname": "Frostfangs and the Fist of First Men",
            "asNumbers": [
                12222,
                16702,
                17334
            ]
        },
        {
            "datacenterId": 3133,
            "nickname": "Winterfell",
            "asNumbers": [
                16625
            ]
        }
    ],
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/as-maps/The%20North",
            "rel": "self"
        }
    ]
}

AsMap members

Member Type Required Description
AsMap: Contains information about the AS map configured for the property.
assignments AsMap.assignments[] Contains information about the AS zone groupings of AS IDs.
defaultDatacenter AsMap.defaultDatacenter A placeholder for all other AS zones, AS IDs not found in these AS zones. Note that an AS map can’t have the same AS ID in multiple AS zones.
links Hypermedia[] Specifies the URL path that allows direct navigation to the As map.
name String A descriptive label for the AS map. Properties set up for asmapping can use this as reference.
AsMap.assignments[]: Contains information about the AS zone groupings of AS IDs.
asNumbers Array Specifies an array of AS numbers.
datacenterId Integer A unique identifier for an existing data center in the domain.
nickname String A descriptive label for the group.
AsMap.defaultDatacenter: A placeholder for all other AS zones, AS IDs not found in these AS zones. Note that an AS map can’t have the same AS ID in multiple AS zones.
datacenterId Integer For each property, an identifier for all other AS zones’ CNAME. For example, 5400.
nickname String A descriptive label for all other AS zones, up to 128 characters. If the value is empty or null, the default is Default Mapping.

GeographicMap

Contains information about the geographic map configured for the property.

Download schema: geographic-map.json

Sample GET response:

{
    "name": "UK Delivery",
    "defaultDatacenter": {
        "datacenterId": 5400,
        "nickname": "Default Mapping"
    },
    "assignments": [
        {
            "datacenterId": 3133,
            "nickname": "UK users",
            "countries": [
                "GB"
            ]
        }
    ],
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/geographic-maps/UK%20Delivery",
            "rel": "self"
        }
    ]
}

GeographicMap members

Member Type Description
GeographicMap: Contains information about the geographic map configured for the property.
assignments GeographicMap.assignments[] Contains information about the geographic zone groupings of countries.
defaultDatacenter GeographicMap.defaultDatacenter A placeholder for all other geographic zones, countries not found in these geographic zones. Note that a geographic map cannot have the same countries in multiple geographic zones.
links Hypermedia[] Specifies the URL path that allows direct navigation to the geographic map.
name String A descriptive label for the geographic map, up to 128 characters.
GeographicMap.assignments[]: Contains information about the geographic zone groupings of countries.
countries Array Specifies an array of two-letter ISO 3166 country codes, or for finer subdivisions, the two-letter country code and the two-letter stateOrProvince code separated by a forward slash. For example, US/TX.
datacenterId Integer A unique identifier for an existing data center in the domain.
nickname String A descriptive label for the group.
GeographicMap.defaultDatacenter: A placeholder for all other geographic zones, countries not found in these geographic zones. Note that a geographic map cannot have the same countries in multiple geographic zones.
datacenterId Integer For each property, an identifier for all other geographic zones’ CNAME. For example, 5400.
nickname String A descriptive label for all other geographic zones. The value ranges from 1 to 128 characters. If omitted, defaults to Default Mapping.

Resource

Contains information about the resources in the GTM domain.

Download schema: resource.json

Sample GET response:

{
    "aggregationType": "latest",
    "constrainedProperty": "**",
    "decayRate": null,
    "description": "Supply levels of Arbor Gold",
    "hostHeader": null,
    "leaderString": null,
    "leastSquaresDecay": null,
    "loadImbalancePercentage": null,
    "maxUMultiplicativeIncrement": null,
    "name": "arbor-gold",
    "type": "Non-XML load object via HTTP",
    "upperBound": 0,
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/resources/arbor-gold",
            "rel": "self"
        }
    ],
    "resourceInstances": [
        {
            "datacenterId": 3134,
            "loadObject": "/cups",
            "loadObjectPort": 80,
            "useDefaultLoadObject": false,
            "loadServers": [
                "1.2.3.8"
            ]
        },
        {
            "datacenterId": 3133,
            "loadObject": "/cups",
            "loadObjectPort": 80,
            "useDefaultLoadObject": false,
            "loadServers": [
                "1.2.3.7"
            ]
        }
    ]
}

Resource members

Member Type Description
Resource: Contains information about the resources in the GTM domain.
aggregationType Enumeration Specifies how GTM handles different load numbers when multiple load servers are used for a data center or property. Either sum, median, or latest. For test time load feedback, consider median. (Akamai conducts tests from multiple locations, so you can ignore outlying values.) For load feedback with manual targets or dynamic targets, consider latest because all load servers normally report similar numbers.
constrainedProperty String, Null Specifies the name of the property that this resource constrains, or ** to constrain all properties.
decayRate Number, Null For internal use only. Unless Akamai indicates otherwise, omit the value or set it to null.
description String, Null A descriptive note to help you track what the resource constrains. For example, aggregate bandwidth for all properties. A maximum of 256 characters.
hostHeader String, Null Optionally specifies the host header used when fetching the load object.
leaderString String, Null Specifies the text that comes before the loadObject. GTM assumes that the current load is the first number to appear after this text, minus any white space. The value is a maximum of 256 characters. The default is null. For example, suppose your loadObject file contains, This is a load object. TheLoadIs:497. This is the end of the load object. Then GTM reads the current load as 497 if the leaderString is set to TheLoadIs.
leastSquaresDecay Number, Null For internal use only. Unless Akamai indicates otherwise, omit the value or set it to null.
links Hypermedia[] Specifies the URL path that allows direct navigation to the resource.
loadImbalancePercentage Number, Null Indicates the percent of load imbalance factor (LIF) for the property. The LIF controls how imbalanced GTM allows the load to be. That is the factor by which the demand sent to a data center is permitted to exceed the configured value. For example, with a data center traffic allocation of 25 percent and an LIF of 1.5, the demand sent to the data center is allowed to grow to 37.5 percent (25% × 1.5) before the load balancer starts shifting load away from it. The LIF is represented as a percentage; zero means no load imbalance is allowed at all. However, GTM adds one to the LIF so that it can be used as a multiplier. The default LIF is 1.1, and displayed as 10.0 percent. The allowable range is 0 to 1000000 percent.
maxUMultiplicativeIncrement Number, Null For internal use only. Unless Akamai indicates otherwise, omit the value or set it to null.
name String A descriptive label for the resource. A maximum 150 non-space characters.
resourceInstances Resource.resourceInstances[] Contains information about the resources that constrain the properties within the data center.
type Enumeration Indicates the kind of loadObject format used to determine the load on the resource. Either XML load object via HTTP, XML load object via HTTPS, Non-XML load object via HTTP, Non-XML load object via HTTPS, or Download score.
upperBound Integer, Null An optional sanity check that specifies the maximum allowed value for any component of the load object. If the loadObject contains a number that exceeds this value, the entire load object is rejected as invalid and GTM continues to use the load values from the most recently acquired loadObject. To receive an alert when a load object is rejected, log in to Control Center, from the Common Services category select Alerts, then create a Load Object File Invalid or Cannot be Fetched alert. Learn more.
Resource.resourceInstances[]: Contains information about the resources that constrain the properties within the data center.
datacenterId Integer A unique identifier for an existing data center in the domain.
loadObject String Identifies the load object file used to report real-time information about the current load, maximum allowable load, and target load on each resource. The maximum permitted length is 256 characters. Learn more.
loadObjectPort Integer Specifies the TCP port of the loadObject. The value ranges from 0 to 65535. If the value is 0, the default port is either 80 or 443.
loadServers Array Specifies a list of servers from which to request the load object. The value needs to contain IPv4 or IPv6 addresses, or DNS names that contain A or AAAA records. If a DNS name has both A and AAAA records, then GTM picks one randomly. For IP addresses, do not use non-routable RFC 1918 addresses.
useDefaultLoadObject Boolean Indicates whether a default loadObject is used for the resources.

Status

Contains information about the condition of the change in the domain’s activation. Any change that returns a 200 series response and goes to propagationStatus PENDING, propagates within a few minutes. To query the activation status, run the Get current status operation, which returns information about the current condition of the change in the domain’s activation.

Download schema: status.json

Sample GET response:

{
    "changeId": "5beb11ae-8908-4bfe-8459-e88efc4d2fdc",
    "message": "Current configuration has been propagated to all GTM name servers.",
    "passingValidation": true,
    "propagationStatus": "COMPLETE",
    "propagationStatusDate": "2014-03-08T15:39:00.000+0000",
    "links": [
        {
            "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
            "rel": "self"
        }
    ]
}

Status members

Member Type Description
Status: Contains information about the condition of the change in the domain’s activation. Any change that returns a 200 series response and goes to propagationStatus PENDING, propagates within a few minutes. To query the activation status, run the Get current status operation, which returns information about the current condition of the change in the domain’s activation.
changeId String Read-only. A unique identifier that is generated when a change occurs to the domain. The maximum length is 36 characters.
links Hypermedia[] Specifies the URL path that allows direct navigation to the domain.
message String Read-only. A notification that is generated when a change occurs to the domain. The maximum length is 4000 characters.
passingValidation Boolean Read-only. Indicates if the domain validates.
propagationStatus Enumeration Tracks the status of the domain’s propagation state. Either PENDING, COMPLETE, or DENIED. A DENIED value indicates that the domain configuration is invalid, and does not propagate until the validation errors are resolved.
propagationStatusDate String Read-only. An ISO 8601 timestamp indicating when a change occurs to the domain.

UpdateResponse

Returns information about updates made to the domain, and tracks the update’s status.

Download schema: as-map-update-response.json

Sample DELETE response:

{
    "resource": null,
    "status": {
        "changeId": "a97bedfe-c997-4634-84a4-cdb31529fb4c",
        "message": "Change Pending",
        "passingValidation": true,
        "propagationStatus": "PENDING",
        "propagationStatusDate": "2014-04-08T13:44:53.000+0000",
        "links": [
            {
                "href": "/config-gtm/v1/domains/example.akadns.net/status/current",
                "rel": "self"
            }
        ]
    }
}

UpdateResponse members

Member Type Description
UpdateResponse: Returns information about updates made to the domain, and tracks the update’s status.
resource Object Represents the object you updated.
status Status Indicates the status of the updated resource.

Hypermedia

Lists navigable URLs to resources.

Download schema: link.json

Hypermedia members

Member Type Description
Hypermedia: Lists navigable URLs to resources.
href String Provides a hypermedia link to the complete URL that uniquely defines a resource.
rel String Indicates the link relationship of the object.

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

The format of error response objects follows the JSON Problem Details standard, and are identified with the application/api-problem+json MIME type.

This example shows a GTM error response to a request when the loadImbalanceFactor is less than 1.0:

  {
  "status": 400,
  "title": "Domain Validation Failure",
  "type": "https://problems.luna.akamaiapis.net/config-gtm/v1/domainValidationFailed",
  "errors": [
    {
      "detail": "loadImbalanceFactor needs to be at least 1.0",
      "title": "Domain Validation Error",
      "type": "https://problems.luna.akamaiapis.net/config-gtm/v1/domainValidationError"
    }
  ]
}

Error types

This table provides details for many of the errors you may encounter and the HTTP status codes they share. Note that this is not an exhaustive listing. Each problem object’s type member corresponds to distinct error cases. Problem types reported in HTTP error responses follow this URI pattern, where the type value appends after the common prefix string:

https://problems.luna.akamaiapis.net/config-gtm/{version}/{type}
Code Type Description
400 acgInvalid The request’s Domain representation contains an invalid acgId, or one the client does not have access to. You can leave this field blank. The server assigns an appropriate ID automatically.
400 contractMustBeSpecified Returned when a client has access to multiple contracts and attempts to create a domain but does not specify which contractId to tie the domain to.
400 datacenterInUse Returned when a client requests to Remove a data center, but that data center is in use by one or more properties or one or more resources. Reassign such properties or resources to use alternate data centers, at which point a subsequent request to DELETE is allowed and processed.
400 defaultDatacenterId Returned when creating a CidrMap. Ensure that the request’s JSON representation has left the defaultDatacenter object’s datacenterId field blank, as it is assigned by the server.
400 domainNameMismatch Returned when a client PUTs a JSON representation to a Domain resource of a name (for example, /domains/mydomain.akadns.net), but the JSON’s name field does not match that resource name (for example, {"name": "myotherdomain.akadns.net", ...}).
400 domainTypeInvalid Returned when creating a domain, if the JSON specifies a domain type which is not permitted due to contractual restrictions. For instance, if Weighted Load Balancing has been purchased, only Failover and Weighted domains are allowed.
400 domainTypeRequired Returned when creating a domain. The JSON representation’s type field is one of the four valid domain types: failover-only, static, weighted, or basic.
400 domainValidationError Returned when input for any POST, PUT, or DELETE operation does not fully meet all product requirements.
400 groupMustBeSpecified Returned when a client has access to multiple groups and attempts to create a domain but does not specify which groupId to tie the domain to.
400 invalidDNSName Returned if a domain or property name is not a valid DNS name.
400 invalidEntity Returned when the request entity failed validation of one form or another. The response entity’s detail field contains a message describing what failed validation, and in most cases gives a hint on how to correct the problematic value.
400 malformedRequestEntity Returned when the server could not parse the JSON entity sent by the client. The response entity’s detail field contains the message returned from the JSON parsing library, but it may not contain enough information on what is wrong. The best course of action is for the client to validate the JSON payload using the appropriate JSON schema to identify the problem.
400 mapNameMismatch Returned when a client PUTs a JSON representation to a GeographicMap or CidrMap resource of a name (for example, /geographic-maps/mymap), but the JSON’s name field does not match that resource name (for example, {"name": "myothermap", ...}).
400 modifiedImmutableField Returned if a client attempts to modify a field that is immutable.
400 performancePlusDomainsCanNotBeCreated Returned when creating a domain. If the JSON specifies a type of full, this error is returned as domains of this type can not be created with this API. Contact Akamai customer support for assistance in creating such domains.
400 propertyNameMismatch Returned when a client PUTs a JSON representation to a Property resource of a name (for example, /properties/foo), but the JSON’s name field does not match that resource name (for example, {"name": "baz", ...}).
400 regionMustBeAssigned Returned when a client POSTs a JSON representation to Create a data center, but the JSON’s datacenterId is not blank. This field needs to be blank, as a datacenterId is assigned by the server.
400 regionNumberMismatch Returned when a client PUTs a JSON representation to a Datacenter resource of a datacenterId (for example, /datacenters/3131), but the JSON’s datacenterId field does not match that resource’s ID (for example, {"datacenterId": 3231, ...}).
400 resourceNameMismatch Returned when a client PUTs a JSON representation to a Resource resource of a name (for example, /resources/cpu), but the JSON’s name field does not match that resource’s name (for example, {"name": "disk", ...}).
400 typeMismatch Returned if a query string can not be parsed into the expected type (for example, if the parameter expects an integer, and contains alphabetic characters). The response entity’s invalidValue field contains the value that could not be parsed.
403 accessDenied Returned when the client’s credentials were verified, but did not have authorization to access the requested resource.
403 contractAccessProblem Returned when a client attempts to create a domain under a contract that the client lacks access to.
403 groupAccessProblem Returned when a client attempts to create a domain under a Group that the client lacks access to.
404 notfound Returned when a named resource, be it a domain, data center, property, resource, geographic map, CIDR map, or status does not exist.
405 httpRequestMethodNotSupported Returned when the server does not support a specific request method. The response entity’s detail field contains a list of supported methods for the Resource, for reference.
406 featureNotSupportedByMediaType Returned when the server can not represent a resource using the requested media type. The response entity’s minimumMediaTypeRequired field lists the minimum version media type needed to successfully render the resource. See API versioning for more information.
409 datacenterConflict Returned when a request to create a data center with a specific datacenterId, but a data center with that ID already exists.
415 httpMediaTypeNotAcceptable Returned when the server cannot generate a response that is acceptable by the client. For version 1, application/json, application/vnd.config-gtm.v1.0+json (both are synonymous) and for version 2, application/vnd.config-gtm.v1.1+json, are supported.
415 unsupportedMediaType Returned when a client POSTs, PUTs, or PATCHes content of a type that is not supported. For version 1, application/json, application/vnd.config-gtm.v1.0+json (both are synonymous) and for version 2, application/vnd.config-gtm.v1.1+json, are supported.
500 serverError Returned when there is an issue on the server side for which the server does not have a modified state. Safeguards are in place to make sure everything is as it was when the request began. You can retry the request but it may not resolve the problem, in which case contact Akamai customer support for assistance.

Last modified: 7/25/2019