In this document:
The “DNSRecord” type represents the interface for a resource record (RR) of a domain name as defined in http://tools.ietf.org/html/rfc1035, but without destination (RDATA) and type (TYPE). A DNS record requires a DNS zone (Hosted Domain) and must have a source and TTL. It must be possible to activate/deactivate an existing DNS record by defining the “RRState” property. The RR must be added to/removed from the hosted domain during this operation.
DNSRecord type schema: download
{
"apsVersion": "2.0",
"name": "DNSRecord",
"id": "http://aps-standard.org/types/dns/record/1.0",
"properties": {
"source": { "type": "string" },
"TTL": { "type": "integer" },
"RRState": { "type": "string", "required": true }
},
"relations": {
"zone": {
"type": "http://aps-standard.org/types/dns/zone/1.0",
"required": true
},
"replaces": {
"type": "http://aps-standard.org/types/dns/record/1.0",
"collection": true
},
"replacedBy": {
"type": "http://aps-standard.org/types/dns/record/1.0",
"collection": true
}
}
}
The properties have to be filled with the following data:
Property |
Description |
---|---|
RRState |
State of a RR.
RRs in active and inactive states must be displayed to the user. |
source |
Name of the record. It must be compliant with NAME from http://tools.ietf.org/html/rfc1035. |
During provisioning, a resource may replace existing RR(s) if it specifies link(s) to existing RR(s) in a “replaces” relation. In this case, creation of the resource must switch the linked RR(s) to a “RRstate” different from “active”, a back link for the replaced RR(s) must be specified in a “replacedBy” relation. One RR may be linked to another RR using a “replaces” relation after provisioning. In this case, creation of the link must switch the linked RR to a “RRstate” different from “active” similarly to the provisioning case. One RR could be replaced by several RRs. When the replaced RR is unlinked from the last RR replacing it, the replaced RR must be switched back to “RRstate” = “active”.
Several types of RRs are defined below.
A resource of the “DNSRecordA” type represents the “A” type of RR.
To prevent conflicts of DNS records, existence of multiple resources of the “DNSRecordA” type with the same “source” property and “RRstate” = “active” is prohibited, unless they are all required by a single resource.
DNSRecordA type schema: download
{
"apsVersion": "2.0",
"name": "DNSRecordA",
"id": "http://aps-standard.org/types/dns/record/a/1.0",
"implements": [ "http://aps-standard.org/types/dns/record/1.0" ],
"properties": {
"address": {
"type": "string",
"format": "ipv4",
"required": true
}
}
}
The “address” property must be compliant with http://tools.ietf.org/html/rfc1035 for the RR type.
A resource of the “DNSRecordAAAA” type represents the “AAAA” type of RR.
To prevent conflicts of DNS records, existence of multiple resources of the “DNSRecordAAAA” type with the same “source” property and “RRstate” = “active” is prohibited, unless they are all required by a single resource.
DNSRecordAAAA type schema: download
{
"apsVersion": "2.0",
"name": "DNSRecordAAAA",
"id": "http://aps-standard.org/types/dns/record/aaaa/1.0",
"implements": [ "http://aps-standard.org/types/dns/record/1.0" ],
"properties": {
"address": {
"type": "string",
"format": "ipv6",
"required": true
}
}
}
The “address” property must be compliant with http://tools.ietf.org/html/rfc3596 for the RR type.
A resource of the “DNSRecordMX” type represents the “MX” type of RR and contains its priority.
To prevent conflicts of DNS records, existence of multiple resources of the “DNSRecordMX” type with the same “source” property and “RRstate” = “active” is prohibited, unless they are all required by a single resource.
DNSRecordMX type schema: download
{
"apsVersion": "2.0",
"name": "DNSRecordMX",
"id": "http://aps-standard.org/types/dns/record/mx/1.0",
"implements": [ "http://aps-standard.org/types/dns/record/1.0" ],
"properties": {
"priority": {
"type": "integer",
"required": true
},
"exchange": {
"type": "string",
"format": "host-name",
"required": true
}
}
}
The properties have to be filled with the following data:
Property |
Description |
---|---|
exchange |
Host of the mail exchange according to http://tools.ietf.org/html/rfc1035 for MX RR type. |
A resource of the “DNSRecordCNAME” type represents the “CNAME” type of RR.
DNSRecordCNAME type schema: download
{
"apsVersion": "2.0",
"name": "DNSRecordCNAME",
"id": "http://aps-standard.org/types/dns/record/cname/1.1",
"implements": [ "http://aps-standard.org/types/dns/record/1.0" ],
"properties": {
"cname": {
"type": "string",
"format": "domain-name",
"required": true
}
}
}
The “cname” property must be compliant with http://tools.ietf.org/html/rfc1035 for the RR type.
A resource of the “DNSRecordNS” type represents the “NS” type of RR.
DNSRecordNS type schema: download
{
"apsVersion": "2.0",
"name": "DNSRecordNS",
"id": "http://aps-standard.org/types/dns/record/ns/1.0",
"implements": [ "http://aps-standard.org/types/dns/record/1.0" ],
"properties": {
"nsdname": {
"type": "string",
"format": "host-name",
"required": true
}
}
}
The “nsdname” property must be compliant with http://tools.ietf.org/html/rfc1035 for the RR type.
A resource of the “DNSRecordTXT” type represents the “TXT” type of RR.
DNSRecordTXT type schema: download
{
"apsVersion": "2.0",
"name": "DNSRecordTXT",
"id": "http://aps-standard.org/types/dns/record/txt/1.0",
"implements": [ "http://aps-standard.org/types/dns/record/1.0" ],
"properties": {
"txt_data": {
"type": "string",
"required": true
}
}
}
A resource of the “DNSRecordSRV” type represents the “SRV” type of RR. Its “RR type” property must be “SRV”. The “source” property must contain a service and protocol according to http://tools.ietf.org/html/rfc2782.
It must be allowed to create a resource which decidedly means absence of a service (according to http://tools.ietf.org/html/rfc2782). In this case the “priority”, “port”, “weight” properties must contain zero and the “target” property must contain “.”.
To prevent conflicts of DNS records, existence of multiple resources of the “DNSRecordSRV” type with the same “source” property and “RRstate” = “active” is prohibited, unless they are all required by a single resource.
DNSRecordSRV type schema: download
{
"apsVersion": "2.0",
"name": "DNSRecordSRV",
"id": "http://aps-standard.org/types/dns/record/srv/1.0",
"implements": [ "http://aps-standard.org/types/dns/record/1.0" ],
"properties": {
"priority": {
"type": "integer",
"required": true
},
"weight": {
"type": "integer",
"required": true
},
"port": {
"type": "integer",
"required": true
},
"target": {
"type": "string",
"required": true
}
}
}