# ZoneFiles

related to zone files

## Retrieve a zone file

> Returns an exported zone file in BIND format (RFC 1035).

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - DNS API","version":"1.18.0"},"tags":[{"name":"ZoneFiles","description":"related to zone files"}],"servers":[{"url":"https://dns.de-fra.ionos.com","description":"Frankfurt"}],"security":[{"tokenAuth":[]}],"components":{"securitySchemes":{"tokenAuth":{"type":"apiKey","description":"Please provide header value as 'Bearer <token>' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.","name":"Authorization","in":"header"}},"responses":{"BadRequest":{"description":"### Bad Request\nThe request send to the API was malformed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"### Unauthorized\nThe request is missing authorization information or the authorization information provided are expired.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowed":{"description":"### Not Allowed\nThe user issuing the request does not have the needed permissions.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"### Not Found\nThe resource that was requested could not be found.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"### Internal Server Error\nAn internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"type":"object","additionalProperties":false,"properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation as specified by [RFC 7231](https://datatracker.ietf.org/doc/html/rfc7231#section-6).\n"},"messages":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"errorCode":{"type":"string","description":"Internal error code.\n"},"message":{"type":"string","description":"Human readable explanation of the issue.\n"}}}}}}}},"paths":{"/zones/{zoneId}/zonefile":{"get":{"operationId":"zonesZonefileGet","summary":"Retrieve a zone file","tags":["ZoneFiles"],"description":"Returns an exported zone file in BIND format (RFC 1035).","parameters":[{"name":"zoneId","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"description":"The ID (UUID) of the DNS zone."}],"responses":{"200":{"description":"Successful operation.","content":{"text/plain":{}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/NotAllowed"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}}}}
```

## Updates a zone with a file

> Updates a zone with zone file in BIND format (RFC 1035). All records in the zone are replaced with the ones provided.

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - DNS API","version":"1.18.0"},"tags":[{"name":"ZoneFiles","description":"related to zone files"}],"servers":[{"url":"https://dns.de-fra.ionos.com","description":"Frankfurt"}],"security":[{"tokenAuth":[]}],"components":{"securitySchemes":{"tokenAuth":{"type":"apiKey","description":"Please provide header value as 'Bearer <token>' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.","name":"Authorization","in":"header"}},"schemas":{"RecordReadList":{"type":"object","required":["id","type","href","items","offset","limit","_links"],"properties":{"id":{"type":"string","format":"uuid","description":"The resource's unique identifier.","readOnly":true},"type":{"type":"string","enum":["collection"]},"href":{"type":"string","format":"uri","readOnly":true},"items":{"type":"array","items":{"$ref":"#/components/schemas/RecordRead"}},"offset":{"$ref":"#/components/schemas/Offset"},"limit":{"$ref":"#/components/schemas/Limit"},"_links":{"$ref":"#/components/schemas/Links"}}},"RecordRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","format":"uuid","description":"The record ID (UUID).","readOnly":true},"type":{"type":"string","enum":["record"]},"href":{"type":"string","format":"uri","readOnly":true},"metadata":{"$ref":"#/components/schemas/MetadataWithStateFqdnZoneId"},"properties":{"$ref":"#/components/schemas/Record"}}},"MetadataWithStateFqdnZoneId":{"allOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"object","required":["state","fqdn","zoneId"],"properties":{"state":{"$ref":"#/components/schemas/ProvisioningState"},"fqdn":{"type":"string","readOnly":true,"description":"A fully qualified domain name. FQDN consists of two parts - the hostname and the domain name."},"zoneId":{"$ref":"#/components/schemas/zoneId"}}}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","readOnly":true,"format":"date-time","description":"The creation date formatted as yyyy-MM-dd'T'HH:mm:ss.SSS'Z'."},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"The unique ID of the user who created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","readOnly":true,"format":"date-time","description":"The date of the last change formatted as yyyy-MM-dd'T'HH:mm:ss.SSS'Z'."},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"The unique ID of the user who last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"ProvisioningState":{"type":"string","description":"The list of possible provisioning states in which DNS resource could be at the specific time.\n* AVAILABLE - resource exists and is healthy.\n* PROVISIONING - resource is being created or updated.\n* DESTROYING - delete command was issued, the resource is being deleted.\n* FAILED - creation of the resource failed.\n","enum":["PROVISIONING","DESTROYING","AVAILABLE","FAILED"]},"zoneId":{"type":"string","readOnly":true,"format":"uuid","description":"The ID (UUID) of the DNS zone of which record belongs to."},"Record":{"type":"object","required":["name","type","content"],"properties":{"name":{"type":"string"},"type":{"$ref":"#/components/schemas/RecordType"},"content":{"type":"string"},"ttl":{"type":"integer","default":3600,"minimum":60,"maximum":604800,"description":"Time to live for the record, recommended 3600."},"priority":{"type":"integer","default":3600,"minimum":0,"maximum":65535,"description":"Priority value is between 0 and 65535. Priority is mandatory for MX, SRV and URI record types and ignored for all other types."},"enabled":{"type":"boolean","default":true,"description":"When true - the record is visible for lookup."}}},"RecordType":{"type":"string","description":"Holds supported DNS resource record types. In the DNS context a record is a DNS resource record.","enum":["A","AAAA","CNAME","ALIAS","MX","NS","SRV","TXT","CAA","SSHFP","TLSA","SMIMEA","DS","HTTPS","SVCB","OPENPGPKEY","CERT","URI","RP","LOC"]},"Offset":{"type":"number","description":"Pagination offset.","readOnly":true},"Limit":{"type":"number","description":"Pagination limit.","readOnly":true},"Links":{"description":"URLs to navigate the different pages. As of now we always only return a\nsingle page.\n","type":"object","properties":{"prev":{"description":"URL (with offset and limit parameters) of the previous page; only\npresent if offset is greater than 0.\n","type":"string","format":"uri","readOnly":true},"self":{"description":"URL (with offset and limit parameters) of the current page.\n","type":"string","format":"uri","readOnly":true},"next":{"description":"URL (with offset and limit parameters) of the next page; only\npresent if offset + limit is less than the total number of elements.\n","type":"string","format":"uri","readOnly":true}}},"Error":{"type":"object","additionalProperties":false,"properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation as specified by [RFC 7231](https://datatracker.ietf.org/doc/html/rfc7231#section-6).\n"},"messages":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"errorCode":{"type":"string","description":"Internal error code.\n"},"message":{"type":"string","description":"Human readable explanation of the issue.\n"}}}}}}},"responses":{"BadRequest":{"description":"### Bad Request\nThe request send to the API was malformed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"### Unauthorized\nThe request is missing authorization information or the authorization information provided are expired.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowed":{"description":"### Not Allowed\nThe user issuing the request does not have the needed permissions.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"### Internal Server Error\nAn internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/zones/{zoneId}/zonefile":{"put":{"operationId":"zonesZonefilePut","summary":"Updates a zone with a file","tags":["ZoneFiles"],"description":"Updates a zone with zone file in BIND format (RFC 1035). All records in the zone are replaced with the ones provided.","parameters":[{"name":"zoneId","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"description":"The ID (UUID) of the DNS zone."}],"requestBody":{"description":"Zone file in BIND format (RFC 1035). In order to support import files from other sources, the bind zone file can contain SOA and NS records, but these records will be ignored.","required":true,"content":{"text/plain":{"schema":{"type":"string"}}}},"responses":{"200":{"description":"Successful operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordReadList"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/NotAllowed"},"500":{"$ref":"#/components/responses/InternalError"}}}}}}
```
