# Zone Transfers # Force AXFR ## Force AXFR `dns.zone_transfers.force_axfr.create(ForceAXFRCreateParams**kwargs) -> ForceAXFR` **post** `/zones/{zone_id}/secondary_dns/force_axfr` Sends AXFR zone transfer request to primary nameserver(s). ### Parameters - `zone_id: str` - `body: object` ### Returns - `str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) force_axfr = client.dns.zone_transfers.force_axfr.create( zone_id="269d8f4853475ca241c4e730be286b20", body={}, ) print(force_axfr) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": "OK" } ``` ## Domain Types ### Force AXFR - `str` When force_axfr query parameter is set to true, the response is a simple string. # Incoming ## Secondary Zone Configuration Details `dns.zone_transfers.incoming.get(IncomingGetParams**kwargs) -> IncomingGetResponse` **get** `/zones/{zone_id}/secondary_dns/incoming` Get secondary zone configuration for incoming zone transfers. ### Parameters - `zone_id: str` ### Returns - `class IncomingGetResponse: …` - `id: Optional[str]` - `auto_refresh_seconds: Optional[float]` How often should a secondary zone auto refresh regardless of DNS NOTIFY. Not applicable for primary zones. - `checked_time: Optional[str]` The time for a specific event. - `created_time: Optional[str]` The time for a specific event. - `modified_time: Optional[str]` The time for a specific event. - `name: Optional[str]` Zone name. - `peers: Optional[List[str]]` A list of peer tags. - `soa_serial: Optional[float]` The serial number of the SOA for the given zone. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) incoming = client.dns.zone_transfers.incoming.get( zone_id="269d8f4853475ca241c4e730be286b20", ) print(incoming.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "269d8f4853475ca241c4e730be286b20", "auto_refresh_seconds": 86400, "checked_time": "2019-10-24T17:09:42.883908+01:00", "created_time": "2019-10-24T17:09:42.883908+01:00", "modified_time": "2019-10-24T17:09:42.883908+01:00", "name": "www.example.com.", "peers": [ "23ff594956f20c2a721606e94745a8aa", "00920f38ce07c2e2f4df50b1f61d4194" ], "soa_serial": 2019102400 } } ``` ## Create Secondary Zone Configuration `dns.zone_transfers.incoming.create(IncomingCreateParams**kwargs) -> IncomingCreateResponse` **post** `/zones/{zone_id}/secondary_dns/incoming` Create secondary zone configuration for incoming zone transfers. ### Parameters - `zone_id: str` - `auto_refresh_seconds: float` How often should a secondary zone auto refresh regardless of DNS NOTIFY. Not applicable for primary zones. - `name: str` Zone name. - `peers: SequenceNotStr[str]` A list of peer tags. ### Returns - `class IncomingCreateResponse: …` - `id: Optional[str]` - `auto_refresh_seconds: Optional[float]` How often should a secondary zone auto refresh regardless of DNS NOTIFY. Not applicable for primary zones. - `checked_time: Optional[str]` The time for a specific event. - `created_time: Optional[str]` The time for a specific event. - `modified_time: Optional[str]` The time for a specific event. - `name: Optional[str]` Zone name. - `peers: Optional[List[str]]` A list of peer tags. - `soa_serial: Optional[float]` The serial number of the SOA for the given zone. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) incoming = client.dns.zone_transfers.incoming.create( zone_id="269d8f4853475ca241c4e730be286b20", auto_refresh_seconds=86400, name="www.example.com.", peers=["23ff594956f20c2a721606e94745a8aa", "00920f38ce07c2e2f4df50b1f61d4194"], ) print(incoming.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "269d8f4853475ca241c4e730be286b20", "auto_refresh_seconds": 86400, "checked_time": "2019-10-24T17:09:42.883908+01:00", "created_time": "2019-10-24T17:09:42.883908+01:00", "modified_time": "2019-10-24T17:09:42.883908+01:00", "name": "www.example.com.", "peers": [ "23ff594956f20c2a721606e94745a8aa", "00920f38ce07c2e2f4df50b1f61d4194" ], "soa_serial": 2019102400 } } ``` ## Update Secondary Zone Configuration `dns.zone_transfers.incoming.update(IncomingUpdateParams**kwargs) -> IncomingUpdateResponse` **put** `/zones/{zone_id}/secondary_dns/incoming` Update secondary zone configuration for incoming zone transfers. ### Parameters - `zone_id: str` - `auto_refresh_seconds: float` How often should a secondary zone auto refresh regardless of DNS NOTIFY. Not applicable for primary zones. - `name: str` Zone name. - `peers: SequenceNotStr[str]` A list of peer tags. ### Returns - `class IncomingUpdateResponse: …` - `id: Optional[str]` - `auto_refresh_seconds: Optional[float]` How often should a secondary zone auto refresh regardless of DNS NOTIFY. Not applicable for primary zones. - `checked_time: Optional[str]` The time for a specific event. - `created_time: Optional[str]` The time for a specific event. - `modified_time: Optional[str]` The time for a specific event. - `name: Optional[str]` Zone name. - `peers: Optional[List[str]]` A list of peer tags. - `soa_serial: Optional[float]` The serial number of the SOA for the given zone. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) incoming = client.dns.zone_transfers.incoming.update( zone_id="269d8f4853475ca241c4e730be286b20", auto_refresh_seconds=86400, name="www.example.com.", peers=["23ff594956f20c2a721606e94745a8aa", "00920f38ce07c2e2f4df50b1f61d4194"], ) print(incoming.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "269d8f4853475ca241c4e730be286b20", "auto_refresh_seconds": 86400, "checked_time": "2019-10-24T17:09:42.883908+01:00", "created_time": "2019-10-24T17:09:42.883908+01:00", "modified_time": "2019-10-24T17:09:42.883908+01:00", "name": "www.example.com.", "peers": [ "23ff594956f20c2a721606e94745a8aa", "00920f38ce07c2e2f4df50b1f61d4194" ], "soa_serial": 2019102400 } } ``` ## Delete Secondary Zone Configuration `dns.zone_transfers.incoming.delete(IncomingDeleteParams**kwargs) -> IncomingDeleteResponse` **delete** `/zones/{zone_id}/secondary_dns/incoming` Delete secondary zone configuration for incoming zone transfers. ### Parameters - `zone_id: str` ### Returns - `class IncomingDeleteResponse: …` - `id: Optional[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) incoming = client.dns.zone_transfers.incoming.delete( zone_id="269d8f4853475ca241c4e730be286b20", ) print(incoming.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "269d8f4853475ca241c4e730be286b20" } } ``` ## Domain Types ### Incoming - `class Incoming: …` - `id: Optional[str]` - `auto_refresh_seconds: Optional[float]` How often should a secondary zone auto refresh regardless of DNS NOTIFY. Not applicable for primary zones. - `checked_time: Optional[str]` The time for a specific event. - `created_time: Optional[str]` The time for a specific event. - `modified_time: Optional[str]` The time for a specific event. - `name: Optional[str]` Zone name. - `peers: Optional[List[str]]` A list of peer tags. - `soa_serial: Optional[float]` The serial number of the SOA for the given zone. ### Incoming Get Response - `class IncomingGetResponse: …` - `id: Optional[str]` - `auto_refresh_seconds: Optional[float]` How often should a secondary zone auto refresh regardless of DNS NOTIFY. Not applicable for primary zones. - `checked_time: Optional[str]` The time for a specific event. - `created_time: Optional[str]` The time for a specific event. - `modified_time: Optional[str]` The time for a specific event. - `name: Optional[str]` Zone name. - `peers: Optional[List[str]]` A list of peer tags. - `soa_serial: Optional[float]` The serial number of the SOA for the given zone. ### Incoming Create Response - `class IncomingCreateResponse: …` - `id: Optional[str]` - `auto_refresh_seconds: Optional[float]` How often should a secondary zone auto refresh regardless of DNS NOTIFY. Not applicable for primary zones. - `checked_time: Optional[str]` The time for a specific event. - `created_time: Optional[str]` The time for a specific event. - `modified_time: Optional[str]` The time for a specific event. - `name: Optional[str]` Zone name. - `peers: Optional[List[str]]` A list of peer tags. - `soa_serial: Optional[float]` The serial number of the SOA for the given zone. ### Incoming Update Response - `class IncomingUpdateResponse: …` - `id: Optional[str]` - `auto_refresh_seconds: Optional[float]` How often should a secondary zone auto refresh regardless of DNS NOTIFY. Not applicable for primary zones. - `checked_time: Optional[str]` The time for a specific event. - `created_time: Optional[str]` The time for a specific event. - `modified_time: Optional[str]` The time for a specific event. - `name: Optional[str]` Zone name. - `peers: Optional[List[str]]` A list of peer tags. - `soa_serial: Optional[float]` The serial number of the SOA for the given zone. ### Incoming Delete Response - `class IncomingDeleteResponse: …` - `id: Optional[str]` # Outgoing ## Primary Zone Configuration Details `dns.zone_transfers.outgoing.get(OutgoingGetParams**kwargs) -> OutgoingGetResponse` **get** `/zones/{zone_id}/secondary_dns/outgoing` Get primary zone configuration for outgoing zone transfers. ### Parameters - `zone_id: str` ### Returns - `class OutgoingGetResponse: …` - `id: Optional[str]` - `checked_time: Optional[str]` The time for a specific event. - `created_time: Optional[str]` The time for a specific event. - `last_transferred_time: Optional[str]` The time for a specific event. - `name: Optional[str]` Zone name. - `peers: Optional[List[str]]` A list of peer tags. - `soa_serial: Optional[float]` The serial number of the SOA for the given zone. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) outgoing = client.dns.zone_transfers.outgoing.get( zone_id="269d8f4853475ca241c4e730be286b20", ) print(outgoing.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "269d8f4853475ca241c4e730be286b20", "checked_time": "2019-10-24T17:09:42.883908+01:00", "created_time": "2019-10-24T17:09:42.883908+01:00", "last_transferred_time": "2019-10-24T17:09:42.883908+01:00", "name": "www.example.com.", "peers": [ "23ff594956f20c2a721606e94745a8aa", "00920f38ce07c2e2f4df50b1f61d4194" ], "soa_serial": 2019102400 } } ``` ## Create Primary Zone Configuration `dns.zone_transfers.outgoing.create(OutgoingCreateParams**kwargs) -> OutgoingCreateResponse` **post** `/zones/{zone_id}/secondary_dns/outgoing` Create primary zone configuration for outgoing zone transfers. ### Parameters - `zone_id: str` - `name: str` Zone name. - `peers: SequenceNotStr[str]` A list of peer tags. ### Returns - `class OutgoingCreateResponse: …` - `id: Optional[str]` - `checked_time: Optional[str]` The time for a specific event. - `created_time: Optional[str]` The time for a specific event. - `last_transferred_time: Optional[str]` The time for a specific event. - `name: Optional[str]` Zone name. - `peers: Optional[List[str]]` A list of peer tags. - `soa_serial: Optional[float]` The serial number of the SOA for the given zone. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) outgoing = client.dns.zone_transfers.outgoing.create( zone_id="269d8f4853475ca241c4e730be286b20", name="www.example.com.", peers=["23ff594956f20c2a721606e94745a8aa", "00920f38ce07c2e2f4df50b1f61d4194"], ) print(outgoing.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "269d8f4853475ca241c4e730be286b20", "checked_time": "2019-10-24T17:09:42.883908+01:00", "created_time": "2019-10-24T17:09:42.883908+01:00", "last_transferred_time": "2019-10-24T17:09:42.883908+01:00", "name": "www.example.com.", "peers": [ "23ff594956f20c2a721606e94745a8aa", "00920f38ce07c2e2f4df50b1f61d4194" ], "soa_serial": 2019102400 } } ``` ## Update Primary Zone Configuration `dns.zone_transfers.outgoing.update(OutgoingUpdateParams**kwargs) -> OutgoingUpdateResponse` **put** `/zones/{zone_id}/secondary_dns/outgoing` Update primary zone configuration for outgoing zone transfers. ### Parameters - `zone_id: str` - `name: str` Zone name. - `peers: SequenceNotStr[str]` A list of peer tags. ### Returns - `class OutgoingUpdateResponse: …` - `id: Optional[str]` - `checked_time: Optional[str]` The time for a specific event. - `created_time: Optional[str]` The time for a specific event. - `last_transferred_time: Optional[str]` The time for a specific event. - `name: Optional[str]` Zone name. - `peers: Optional[List[str]]` A list of peer tags. - `soa_serial: Optional[float]` The serial number of the SOA for the given zone. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) outgoing = client.dns.zone_transfers.outgoing.update( zone_id="269d8f4853475ca241c4e730be286b20", name="www.example.com.", peers=["23ff594956f20c2a721606e94745a8aa", "00920f38ce07c2e2f4df50b1f61d4194"], ) print(outgoing.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "269d8f4853475ca241c4e730be286b20", "checked_time": "2019-10-24T17:09:42.883908+01:00", "created_time": "2019-10-24T17:09:42.883908+01:00", "last_transferred_time": "2019-10-24T17:09:42.883908+01:00", "name": "www.example.com.", "peers": [ "23ff594956f20c2a721606e94745a8aa", "00920f38ce07c2e2f4df50b1f61d4194" ], "soa_serial": 2019102400 } } ``` ## Delete Primary Zone Configuration `dns.zone_transfers.outgoing.delete(OutgoingDeleteParams**kwargs) -> OutgoingDeleteResponse` **delete** `/zones/{zone_id}/secondary_dns/outgoing` Delete primary zone configuration for outgoing zone transfers. ### Parameters - `zone_id: str` ### Returns - `class OutgoingDeleteResponse: …` - `id: Optional[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) outgoing = client.dns.zone_transfers.outgoing.delete( zone_id="269d8f4853475ca241c4e730be286b20", ) print(outgoing.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "269d8f4853475ca241c4e730be286b20" } } ``` ## Disable Outgoing Zone Transfers `dns.zone_transfers.outgoing.disable(OutgoingDisableParams**kwargs) -> DisableTransfer` **post** `/zones/{zone_id}/secondary_dns/outgoing/disable` Disable outgoing zone transfers for primary zone and clears IXFR backlog of primary zone. ### Parameters - `zone_id: str` - `body: object` ### Returns - `str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) disable_transfer = client.dns.zone_transfers.outgoing.disable( zone_id="269d8f4853475ca241c4e730be286b20", body={}, ) print(disable_transfer) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": "Disabled" } ``` ## Enable Outgoing Zone Transfers `dns.zone_transfers.outgoing.enable(OutgoingEnableParams**kwargs) -> EnableTransfer` **post** `/zones/{zone_id}/secondary_dns/outgoing/enable` Enable outgoing zone transfers for primary zone. ### Parameters - `zone_id: str` - `body: object` ### Returns - `str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) enable_transfer = client.dns.zone_transfers.outgoing.enable( zone_id="269d8f4853475ca241c4e730be286b20", body={}, ) print(enable_transfer) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": "Enabled" } ``` ## Force DNS NOTIFY `dns.zone_transfers.outgoing.force_notify(OutgoingForceNotifyParams**kwargs) -> OutgoingForceNotifyResponse` **post** `/zones/{zone_id}/secondary_dns/outgoing/force_notify` Notifies the secondary nameserver(s) and clears IXFR backlog of primary zone. ### Parameters - `zone_id: str` - `body: object` ### Returns - `str` When force_notify query parameter is set to true, the response is a simple string. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.dns.zone_transfers.outgoing.force_notify( zone_id="269d8f4853475ca241c4e730be286b20", body={}, ) print(response) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": "OK" } ``` ## Domain Types ### Disable Transfer - `str` The zone transfer status of a primary zone. ### Enable Transfer - `str` The zone transfer status of a primary zone. ### Outgoing - `class Outgoing: …` - `id: Optional[str]` - `checked_time: Optional[str]` The time for a specific event. - `created_time: Optional[str]` The time for a specific event. - `last_transferred_time: Optional[str]` The time for a specific event. - `name: Optional[str]` Zone name. - `peers: Optional[List[str]]` A list of peer tags. - `soa_serial: Optional[float]` The serial number of the SOA for the given zone. ### Outgoing Status - `Optional[str]` The zone transfer status of a primary zone. ### Outgoing Get Response - `class OutgoingGetResponse: …` - `id: Optional[str]` - `checked_time: Optional[str]` The time for a specific event. - `created_time: Optional[str]` The time for a specific event. - `last_transferred_time: Optional[str]` The time for a specific event. - `name: Optional[str]` Zone name. - `peers: Optional[List[str]]` A list of peer tags. - `soa_serial: Optional[float]` The serial number of the SOA for the given zone. ### Outgoing Create Response - `class OutgoingCreateResponse: …` - `id: Optional[str]` - `checked_time: Optional[str]` The time for a specific event. - `created_time: Optional[str]` The time for a specific event. - `last_transferred_time: Optional[str]` The time for a specific event. - `name: Optional[str]` Zone name. - `peers: Optional[List[str]]` A list of peer tags. - `soa_serial: Optional[float]` The serial number of the SOA for the given zone. ### Outgoing Update Response - `class OutgoingUpdateResponse: …` - `id: Optional[str]` - `checked_time: Optional[str]` The time for a specific event. - `created_time: Optional[str]` The time for a specific event. - `last_transferred_time: Optional[str]` The time for a specific event. - `name: Optional[str]` Zone name. - `peers: Optional[List[str]]` A list of peer tags. - `soa_serial: Optional[float]` The serial number of the SOA for the given zone. ### Outgoing Delete Response - `class OutgoingDeleteResponse: …` - `id: Optional[str]` ### Outgoing Force Notify Response - `str` When force_notify query parameter is set to true, the response is a simple string. # Status ## Get Outgoing Zone Transfer Status `dns.zone_transfers.outgoing.status.get(StatusGetParams**kwargs) -> EnableTransfer` **get** `/zones/{zone_id}/secondary_dns/outgoing/status` Get primary zone transfer status. ### Parameters - `zone_id: str` ### Returns - `str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) enable_transfer = client.dns.zone_transfers.outgoing.status.get( zone_id="269d8f4853475ca241c4e730be286b20", ) print(enable_transfer) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": "Enabled" } ``` # ACLs ## List ACLs `dns.zone_transfers.acls.list(ACLListParams**kwargs) -> SyncSinglePage[ACL]` **get** `/accounts/{account_id}/secondary_dns/acls` List ACLs. ### Parameters - `account_id: str` ### Returns - `class ACL: …` - `id: str` - `ip_range: str` Allowed IPv4/IPv6 address range of primary or secondary nameservers. This will be applied for the entire account. The IP range is used to allow additional NOTIFY IPs for secondary zones and IPs Cloudflare allows AXFR/IXFR requests from for primary zones. CIDRs are limited to a maximum of /24 for IPv4 and /64 for IPv6 respectively. - `name: str` The name of the acl. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.dns.zone_transfers.acls.list( account_id="01a7362d577a6c3019a474fd6f485823", ) page = page.result[0] print(page.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "23ff594956f20c2a721606e94745a8aa", "ip_range": "192.0.2.53/28", "name": "my-acl-1" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 100 } } ``` ## ACL Details `dns.zone_transfers.acls.get(stracl_id, ACLGetParams**kwargs) -> ACL` **get** `/accounts/{account_id}/secondary_dns/acls/{acl_id}` Get ACL. ### Parameters - `account_id: str` - `acl_id: str` ### Returns - `class ACL: …` - `id: str` - `ip_range: str` Allowed IPv4/IPv6 address range of primary or secondary nameservers. This will be applied for the entire account. The IP range is used to allow additional NOTIFY IPs for secondary zones and IPs Cloudflare allows AXFR/IXFR requests from for primary zones. CIDRs are limited to a maximum of /24 for IPv4 and /64 for IPv6 respectively. - `name: str` The name of the acl. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) acl = client.dns.zone_transfers.acls.get( acl_id="23ff594956f20c2a721606e94745a8aa", account_id="01a7362d577a6c3019a474fd6f485823", ) print(acl.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "23ff594956f20c2a721606e94745a8aa", "ip_range": "192.0.2.53/28", "name": "my-acl-1" } } ``` ## Create ACL `dns.zone_transfers.acls.create(ACLCreateParams**kwargs) -> ACL` **post** `/accounts/{account_id}/secondary_dns/acls` Create ACL. ### Parameters - `account_id: str` - `ip_range: str` Allowed IPv4/IPv6 address range of primary or secondary nameservers. This will be applied for the entire account. The IP range is used to allow additional NOTIFY IPs for secondary zones and IPs Cloudflare allows AXFR/IXFR requests from for primary zones. CIDRs are limited to a maximum of /24 for IPv4 and /64 for IPv6 respectively. - `name: str` The name of the acl. ### Returns - `class ACL: …` - `id: str` - `ip_range: str` Allowed IPv4/IPv6 address range of primary or secondary nameservers. This will be applied for the entire account. The IP range is used to allow additional NOTIFY IPs for secondary zones and IPs Cloudflare allows AXFR/IXFR requests from for primary zones. CIDRs are limited to a maximum of /24 for IPv4 and /64 for IPv6 respectively. - `name: str` The name of the acl. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) acl = client.dns.zone_transfers.acls.create( account_id="01a7362d577a6c3019a474fd6f485823", ip_range="192.0.2.53/28", name="my-acl-1", ) print(acl.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "23ff594956f20c2a721606e94745a8aa", "ip_range": "192.0.2.53/28", "name": "my-acl-1" } } ``` ## Update ACL `dns.zone_transfers.acls.update(stracl_id, ACLUpdateParams**kwargs) -> ACL` **put** `/accounts/{account_id}/secondary_dns/acls/{acl_id}` Modify ACL. ### Parameters - `account_id: str` - `acl_id: str` - `ip_range: str` Allowed IPv4/IPv6 address range of primary or secondary nameservers. This will be applied for the entire account. The IP range is used to allow additional NOTIFY IPs for secondary zones and IPs Cloudflare allows AXFR/IXFR requests from for primary zones. CIDRs are limited to a maximum of /24 for IPv4 and /64 for IPv6 respectively. - `name: str` The name of the acl. ### Returns - `class ACL: …` - `id: str` - `ip_range: str` Allowed IPv4/IPv6 address range of primary or secondary nameservers. This will be applied for the entire account. The IP range is used to allow additional NOTIFY IPs for secondary zones and IPs Cloudflare allows AXFR/IXFR requests from for primary zones. CIDRs are limited to a maximum of /24 for IPv4 and /64 for IPv6 respectively. - `name: str` The name of the acl. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) acl = client.dns.zone_transfers.acls.update( acl_id="23ff594956f20c2a721606e94745a8aa", account_id="01a7362d577a6c3019a474fd6f485823", ip_range="192.0.2.53/28", name="my-acl-1", ) print(acl.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "23ff594956f20c2a721606e94745a8aa", "ip_range": "192.0.2.53/28", "name": "my-acl-1" } } ``` ## Delete ACL `dns.zone_transfers.acls.delete(stracl_id, ACLDeleteParams**kwargs) -> ACLDeleteResponse` **delete** `/accounts/{account_id}/secondary_dns/acls/{acl_id}` Delete ACL. ### Parameters - `account_id: str` - `acl_id: str` ### Returns - `class ACLDeleteResponse: …` - `id: Optional[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) acl = client.dns.zone_transfers.acls.delete( acl_id="23ff594956f20c2a721606e94745a8aa", account_id="01a7362d577a6c3019a474fd6f485823", ) print(acl.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "23ff594956f20c2a721606e94745a8aa" } } ``` ## Domain Types ### ACL - `class ACL: …` - `id: str` - `ip_range: str` Allowed IPv4/IPv6 address range of primary or secondary nameservers. This will be applied for the entire account. The IP range is used to allow additional NOTIFY IPs for secondary zones and IPs Cloudflare allows AXFR/IXFR requests from for primary zones. CIDRs are limited to a maximum of /24 for IPv4 and /64 for IPv6 respectively. - `name: str` The name of the acl. ### ACL Delete Response - `class ACLDeleteResponse: …` - `id: Optional[str]` # Peers ## List Peers `dns.zone_transfers.peers.list(PeerListParams**kwargs) -> SyncSinglePage[Peer]` **get** `/accounts/{account_id}/secondary_dns/peers` List Peers. ### Parameters - `account_id: str` ### Returns - `class Peer: …` - `id: str` - `name: str` The name of the peer. - `ip: Optional[str]` IPv4/IPv6 address of primary or secondary nameserver, depending on what zone this peer is linked to. For primary zones this IP defines the IP of the secondary nameserver Cloudflare will NOTIFY upon zone changes. For secondary zones this IP defines the IP of the primary nameserver Cloudflare will send AXFR/IXFR requests to. - `ixfr_enable: Optional[bool]` Enable IXFR transfer protocol, default is AXFR. Only applicable to secondary zones. - `port: Optional[float]` DNS port of primary or secondary nameserver, depending on what zone this peer is linked to. - `tsig_id: Optional[str]` TSIG authentication will be used for zone transfer if configured. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.dns.zone_transfers.peers.list( account_id="01a7362d577a6c3019a474fd6f485823", ) page = page.result[0] print(page.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "23ff594956f20c2a721606e94745a8aa", "name": "my-peer-1", "ip": "192.0.2.53", "ixfr_enable": false, "port": 53, "tsig_id": "69cd1e104af3e6ed3cb344f263fd0d5a" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 100 } } ``` ## Peer Details `dns.zone_transfers.peers.get(strpeer_id, PeerGetParams**kwargs) -> Peer` **get** `/accounts/{account_id}/secondary_dns/peers/{peer_id}` Get Peer. ### Parameters - `account_id: str` - `peer_id: str` ### Returns - `class Peer: …` - `id: str` - `name: str` The name of the peer. - `ip: Optional[str]` IPv4/IPv6 address of primary or secondary nameserver, depending on what zone this peer is linked to. For primary zones this IP defines the IP of the secondary nameserver Cloudflare will NOTIFY upon zone changes. For secondary zones this IP defines the IP of the primary nameserver Cloudflare will send AXFR/IXFR requests to. - `ixfr_enable: Optional[bool]` Enable IXFR transfer protocol, default is AXFR. Only applicable to secondary zones. - `port: Optional[float]` DNS port of primary or secondary nameserver, depending on what zone this peer is linked to. - `tsig_id: Optional[str]` TSIG authentication will be used for zone transfer if configured. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) peer = client.dns.zone_transfers.peers.get( peer_id="23ff594956f20c2a721606e94745a8aa", account_id="01a7362d577a6c3019a474fd6f485823", ) print(peer.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "23ff594956f20c2a721606e94745a8aa", "name": "my-peer-1", "ip": "192.0.2.53", "ixfr_enable": false, "port": 53, "tsig_id": "69cd1e104af3e6ed3cb344f263fd0d5a" } } ``` ## Create Peer `dns.zone_transfers.peers.create(PeerCreateParams**kwargs) -> Peer` **post** `/accounts/{account_id}/secondary_dns/peers` Create Peer. ### Parameters - `account_id: str` - `name: str` The name of the peer. ### Returns - `class Peer: …` - `id: str` - `name: str` The name of the peer. - `ip: Optional[str]` IPv4/IPv6 address of primary or secondary nameserver, depending on what zone this peer is linked to. For primary zones this IP defines the IP of the secondary nameserver Cloudflare will NOTIFY upon zone changes. For secondary zones this IP defines the IP of the primary nameserver Cloudflare will send AXFR/IXFR requests to. - `ixfr_enable: Optional[bool]` Enable IXFR transfer protocol, default is AXFR. Only applicable to secondary zones. - `port: Optional[float]` DNS port of primary or secondary nameserver, depending on what zone this peer is linked to. - `tsig_id: Optional[str]` TSIG authentication will be used for zone transfer if configured. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) peer = client.dns.zone_transfers.peers.create( account_id="01a7362d577a6c3019a474fd6f485823", name="my-peer-1", ) print(peer.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "23ff594956f20c2a721606e94745a8aa", "name": "my-peer-1", "ip": "192.0.2.53", "ixfr_enable": false, "port": 53, "tsig_id": "69cd1e104af3e6ed3cb344f263fd0d5a" } } ``` ## Update Peer `dns.zone_transfers.peers.update(strpeer_id, PeerUpdateParams**kwargs) -> Peer` **put** `/accounts/{account_id}/secondary_dns/peers/{peer_id}` Modify Peer. ### Parameters - `account_id: str` - `peer_id: str` - `name: str` The name of the peer. - `ip: Optional[str]` IPv4/IPv6 address of primary or secondary nameserver, depending on what zone this peer is linked to. For primary zones this IP defines the IP of the secondary nameserver Cloudflare will NOTIFY upon zone changes. For secondary zones this IP defines the IP of the primary nameserver Cloudflare will send AXFR/IXFR requests to. - `ixfr_enable: Optional[bool]` Enable IXFR transfer protocol, default is AXFR. Only applicable to secondary zones. - `port: Optional[float]` DNS port of primary or secondary nameserver, depending on what zone this peer is linked to. - `tsig_id: Optional[str]` TSIG authentication will be used for zone transfer if configured. ### Returns - `class Peer: …` - `id: str` - `name: str` The name of the peer. - `ip: Optional[str]` IPv4/IPv6 address of primary or secondary nameserver, depending on what zone this peer is linked to. For primary zones this IP defines the IP of the secondary nameserver Cloudflare will NOTIFY upon zone changes. For secondary zones this IP defines the IP of the primary nameserver Cloudflare will send AXFR/IXFR requests to. - `ixfr_enable: Optional[bool]` Enable IXFR transfer protocol, default is AXFR. Only applicable to secondary zones. - `port: Optional[float]` DNS port of primary or secondary nameserver, depending on what zone this peer is linked to. - `tsig_id: Optional[str]` TSIG authentication will be used for zone transfer if configured. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) peer = client.dns.zone_transfers.peers.update( peer_id="23ff594956f20c2a721606e94745a8aa", account_id="01a7362d577a6c3019a474fd6f485823", name="my-peer-1", ) print(peer.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "23ff594956f20c2a721606e94745a8aa", "name": "my-peer-1", "ip": "192.0.2.53", "ixfr_enable": false, "port": 53, "tsig_id": "69cd1e104af3e6ed3cb344f263fd0d5a" } } ``` ## Delete Peer `dns.zone_transfers.peers.delete(strpeer_id, PeerDeleteParams**kwargs) -> PeerDeleteResponse` **delete** `/accounts/{account_id}/secondary_dns/peers/{peer_id}` Delete Peer. ### Parameters - `account_id: str` - `peer_id: str` ### Returns - `class PeerDeleteResponse: …` - `id: Optional[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) peer = client.dns.zone_transfers.peers.delete( peer_id="23ff594956f20c2a721606e94745a8aa", account_id="01a7362d577a6c3019a474fd6f485823", ) print(peer.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "23ff594956f20c2a721606e94745a8aa" } } ``` ## Domain Types ### Peer - `class Peer: …` - `id: str` - `name: str` The name of the peer. - `ip: Optional[str]` IPv4/IPv6 address of primary or secondary nameserver, depending on what zone this peer is linked to. For primary zones this IP defines the IP of the secondary nameserver Cloudflare will NOTIFY upon zone changes. For secondary zones this IP defines the IP of the primary nameserver Cloudflare will send AXFR/IXFR requests to. - `ixfr_enable: Optional[bool]` Enable IXFR transfer protocol, default is AXFR. Only applicable to secondary zones. - `port: Optional[float]` DNS port of primary or secondary nameserver, depending on what zone this peer is linked to. - `tsig_id: Optional[str]` TSIG authentication will be used for zone transfer if configured. ### Peer Delete Response - `class PeerDeleteResponse: …` - `id: Optional[str]` # TSIGs ## List TSIGs `dns.zone_transfers.tsigs.list(TSIGListParams**kwargs) -> SyncSinglePage[TSIG]` **get** `/accounts/{account_id}/secondary_dns/tsigs` List TSIGs. ### Parameters - `account_id: str` ### Returns - `class TSIG: …` - `id: str` - `algo: str` TSIG algorithm. - `name: str` TSIG key name. - `secret: str` TSIG secret. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.dns.zone_transfers.tsigs.list( account_id="01a7362d577a6c3019a474fd6f485823", ) page = page.result[0] print(page.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "69cd1e104af3e6ed3cb344f263fd0d5a", "algo": "hmac-sha512.", "name": "tsig.customer.cf.", "secret": "caf79a7804b04337c9c66ccd7bef9190a1e1679b5dd03d8aa10f7ad45e1a9dab92b417896c15d4d007c7c14194538d2a5d0feffdecc5a7f0e1c570cfa700837c" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 100 } } ``` ## TSIG Details `dns.zone_transfers.tsigs.get(strtsig_id, TSIGGetParams**kwargs) -> TSIG` **get** `/accounts/{account_id}/secondary_dns/tsigs/{tsig_id}` Get TSIG. ### Parameters - `account_id: str` - `tsig_id: str` ### Returns - `class TSIG: …` - `id: str` - `algo: str` TSIG algorithm. - `name: str` TSIG key name. - `secret: str` TSIG secret. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) tsig = client.dns.zone_transfers.tsigs.get( tsig_id="69cd1e104af3e6ed3cb344f263fd0d5a", account_id="01a7362d577a6c3019a474fd6f485823", ) print(tsig.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "69cd1e104af3e6ed3cb344f263fd0d5a", "algo": "hmac-sha512.", "name": "tsig.customer.cf.", "secret": "caf79a7804b04337c9c66ccd7bef9190a1e1679b5dd03d8aa10f7ad45e1a9dab92b417896c15d4d007c7c14194538d2a5d0feffdecc5a7f0e1c570cfa700837c" } } ``` ## Create TSIG `dns.zone_transfers.tsigs.create(TSIGCreateParams**kwargs) -> TSIG` **post** `/accounts/{account_id}/secondary_dns/tsigs` Create TSIG. ### Parameters - `account_id: str` - `algo: str` TSIG algorithm. - `name: str` TSIG key name. - `secret: str` TSIG secret. ### Returns - `class TSIG: …` - `id: str` - `algo: str` TSIG algorithm. - `name: str` TSIG key name. - `secret: str` TSIG secret. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) tsig = client.dns.zone_transfers.tsigs.create( account_id="01a7362d577a6c3019a474fd6f485823", algo="hmac-sha512.", name="tsig.customer.cf.", secret="caf79a7804b04337c9c66ccd7bef9190a1e1679b5dd03d8aa10f7ad45e1a9dab92b417896c15d4d007c7c14194538d2a5d0feffdecc5a7f0e1c570cfa700837c", ) print(tsig.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "69cd1e104af3e6ed3cb344f263fd0d5a", "algo": "hmac-sha512.", "name": "tsig.customer.cf.", "secret": "caf79a7804b04337c9c66ccd7bef9190a1e1679b5dd03d8aa10f7ad45e1a9dab92b417896c15d4d007c7c14194538d2a5d0feffdecc5a7f0e1c570cfa700837c" } } ``` ## Update TSIG `dns.zone_transfers.tsigs.update(strtsig_id, TSIGUpdateParams**kwargs) -> TSIG` **put** `/accounts/{account_id}/secondary_dns/tsigs/{tsig_id}` Modify TSIG. ### Parameters - `account_id: str` - `tsig_id: str` - `algo: str` TSIG algorithm. - `name: str` TSIG key name. - `secret: str` TSIG secret. ### Returns - `class TSIG: …` - `id: str` - `algo: str` TSIG algorithm. - `name: str` TSIG key name. - `secret: str` TSIG secret. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) tsig = client.dns.zone_transfers.tsigs.update( tsig_id="69cd1e104af3e6ed3cb344f263fd0d5a", account_id="01a7362d577a6c3019a474fd6f485823", algo="hmac-sha512.", name="tsig.customer.cf.", secret="caf79a7804b04337c9c66ccd7bef9190a1e1679b5dd03d8aa10f7ad45e1a9dab92b417896c15d4d007c7c14194538d2a5d0feffdecc5a7f0e1c570cfa700837c", ) print(tsig.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "69cd1e104af3e6ed3cb344f263fd0d5a", "algo": "hmac-sha512.", "name": "tsig.customer.cf.", "secret": "caf79a7804b04337c9c66ccd7bef9190a1e1679b5dd03d8aa10f7ad45e1a9dab92b417896c15d4d007c7c14194538d2a5d0feffdecc5a7f0e1c570cfa700837c" } } ``` ## Delete TSIG `dns.zone_transfers.tsigs.delete(strtsig_id, TSIGDeleteParams**kwargs) -> TSIGDeleteResponse` **delete** `/accounts/{account_id}/secondary_dns/tsigs/{tsig_id}` Delete TSIG. ### Parameters - `account_id: str` - `tsig_id: str` ### Returns - `class TSIGDeleteResponse: …` - `id: Optional[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) tsig = client.dns.zone_transfers.tsigs.delete( tsig_id="69cd1e104af3e6ed3cb344f263fd0d5a", account_id="01a7362d577a6c3019a474fd6f485823", ) print(tsig.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "69cd1e104af3e6ed3cb344f263fd0d5a" } } ``` ## Domain Types ### TSIG - `class TSIG: …` - `id: str` - `algo: str` TSIG algorithm. - `name: str` TSIG key name. - `secret: str` TSIG secret. ### TSIG Delete Response - `class TSIGDeleteResponse: …` - `id: Optional[str]`