PAHostedDomain

The PAHostedDomain APS Type is used to create and manage DNS zones for the hosted domains.

GraphViz

Schema

The considered APS type (download) extends the HostedDomain, HostService APS type(s) and looks as follows:

{
  "name": "PAHostedDomain",
  "id": "http://parallels.com/aps/types/pa/dns/zone/1.1",
  "apsVersion": "2.0",
  "implements": [
    "http://aps-standard.org/types/dns/zone/1.1",
    "http://www.parallels.com/pa/pa-core-services/host-management/HostService/1.0"
  ],
  "relations": {
    "registrationInfo": {
      "type": "http://parallels.com/aps/types/pa/dns/zoneinfo/1.0"
    },
    "account": {
      "type": "http://parallels.com/aps/types/pa/account/1.0",
      "required": true
    }
  },
  "properties": {
    "zoneId": {
      "type": "integer",
      "final": true
    },
    "nameServers": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "dsRecord": {
      "type": "DSRecord"
    }
  },
  "structures": {
    "DSRecord": {
      "type": "object",
      "properties": {
        "algorithm": {
          "type": "integer"
        },
        "digestId": {
          "type": "integer"
        },
        "digest": {
          "type": "string"
        },
        "tag": {
          "type": "integer"
        }
      }
    }
  }
}

Properties

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

zoneId

Integer

Not Required Final

Domain Zone id

nameServers

Array of String

Not Required

List of name servers

dsRecord

DSRecord

Not Required

DSRecord DSRecord

Relationship

NAME

TYPE

REQUIRED

DESCRIPTION

registrationInfo

DomainRegistrationInfo

No

Registration information related to this domain DomainRegistrationInfo

account

PAAccount

Yes

Account related to this domain PAAccount

Structures

DSRecord

DSRecord.

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

algorithm

Integer

Not Required

Algorithm.

digestId

Integer

Not Required

Dicest id

digest

String

Not Required

Digest.

tag

Integer

Not Required

Tag.

Examples

Create Domain Zone

Create a domain zone isv1.test:

POST /aps/2/resources
"APS-Subscription-ID": "93959b89-365f-46e9-b838-8bb1f445cfa3"

{
   "aps": {
      "type": "http://parallels.com/aps/types/pa/dns/zone/1.1"
   },
   "name": "isv1.test",
   "hosting": {
      "aps": {
         "link": "weak",
         "id": "93959b89-365f-46e9-b838-8bb1f445cfa3"
      }
   }
}

A typical response looks as follows:

HTTP/1.1 200 OK

{
  "aps": {
    "type": "http://parallels.com/aps/types/pa/dns/zone/1.1",
    "id": "21947ac1-6509-4629-95c3-62151fd65a9d",
    "status": "aps:ready",
    "revision": 4,
    "modified": "2016-10-03T10:15:11Z",
    "subscription": "93959b89-365f-46e9-b838-8bb1f445cfa3",
    "package": {
      "id": "e86ef200-5751-4c2c-b342-e65483ede6d0",
      "href": "/aps/2/packages/e86ef200-5751-4c2c-b342-e65483ede6d0"
    }
  },
  "hosts": [
      "857afca8-cc8e-4067-b3a2-5cbb9a8e3b22"
  ]
  "name": "isv1.test",
  "nameServers": [
      "a.isv1.apsdemo.org"
  ]
  "serviceDescription": "Domain subscription isv1.test",
  "serviceName": "Domains",
  "zone": {
    "TTL": 3600,
    "adminEmail": "isv1@aps.test",
    "expire": 2419200,
    "refresh": 14400,
    "retry": 7200
  },
  "zoneId": 1,
  "account": {
    "aps": {
      "link": "strong",
      "href": "/aps/2/resources/e489cb96-e988-475a-854b-0d0a67a18aed",
      "id": "e489cb96-e988-475a-854b-0d0a67a18aed"
    }
  },
  "hosting": {
      "aps": {
         "link": "weak",
         "href": "/aps/2/resources/93959b89-365f-46e9-b838-8bb1f445cfa3",
         "id": "93959b89-365f-46e9-b838-8bb1f445cfa3"
      }
  },
  "records": {
    "aps": {
      "link": "collection",
      "href": "/aps/2/resources/21947ac1-6509-4629-95c3-62151fd65a9d/records"
    }
  },
  "subdomains": {
    "aps": {
      "link": "collection",
      "href": "/aps/2/resources/21947ac1-6509-4629-95c3-62151fd65a9d/subdomains"
    }
  }
}

Create DNS Record

In the isv1.test domain zone, create an A record for the VPS:

POST /aps/2/resources
"APS-Subscription-ID": "93959b89-365f-46e9-b838-8bb1f445cfa3"

{
   "aps": {
      "type":"http://parallels.com/aps/types/pa/dns/record/a/1.0"
   },
   "zone": "isv1.test",
   "source": "vps1001.isv1.test.",
   "address" : "10.10.10.111"
}

A typical response looks as follows:

HTTP/1.1 200 OK

{
   "aps": {
      "type": "http://parallels.com/aps/types/pa/dns/record/a/1.0",
      "id": "d1d3800b-0f4f-48da-86a3-2244085cec5a",
      "status": "aps:ready",
      "revision": 4,
      "modified": "2016-10-03T11:22:24Z",
      "subscription": "93959b89-365f-46e9-b838-8bb1f445cfa3",
      "package": {
         "id": "e86ef200-5751-4c2c-b342-e65483ede6d0",
         "href": "/aps/2/packages/e86ef200-5751-4c2c-b342-e65483ede6d0"
      }
   },
   "RRState": "active",
   "TTL": 0,
   "address": "10.10.10.111",
   "data": "10.10.10.111",
   "recordId": 1,
   "source": "vps1001",
   "sourceFQN": "vps1001.isv1.test.",
   "replacedBy": {
      "aps": {
         "link": "collection",
         "href": "/aps/2/resources/d1d3800b-0f4f-48da-86a3-2244085cec5a/replacedBy"
      }
   },
   "replaces": {
      "aps": {
         "link": "collection",
         "href": "/aps/2/resources/d1d3800b-0f4f-48da-86a3-2244085cec5a/replaces"
      }
   },
   "zone": {
      "aps": {
         "link": "strong",
         "href": "/aps/2/resources/21947ac1-6509-4629-95c3-62151fd65a9d",
         "id": "21947ac1-6509-4629-95c3-62151fd65a9d",
         "subscription": "93959b89-365f-46e9-b838-8bb1f445cfa3"
      }
   }
}