Metadata-Version: 2.4
Name: bunnydns
Version: 0.1.0
Summary: Python SDK for the Bunny.net DNS API
Project-URL: Homepage, https://github.com/franzs/bunnydns
Project-URL: Documentation, https://bunnydns.readthedocs.io
Project-URL: Repository, https://github.com/franzs/bunnydns
Project-URL: Issues, https://github.com/franzs/bunnydns/issues
Project-URL: Changelog, https://github.com/franzs/bunnydns/blob/main/CHANGELOG.md
Author-email: Your Name <you@example.com>
License-Expression: MIT
License-File: LICENSE
Keywords: api,bunny,bunnycdn,dns,sdk
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: Name Service (DNS)
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: requests>=2.28.0
Provides-Extra: dev
Requires-Dist: mypy>=1.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: responses>=0.23; extra == 'dev'
Requires-Dist: ruff>=0.4.0; extra == 'dev'
Requires-Dist: types-requests; extra == 'dev'
Provides-Extra: docs
Requires-Dist: sphinx-autodoc-typehints>=2.0; extra == 'docs'
Requires-Dist: sphinx-rtd-theme>=2.0; extra == 'docs'
Requires-Dist: sphinx>=7.0; extra == 'docs'
Description-Content-Type: text/markdown

# bunnydns

[![PyPI version](https://badge.fury.io/py/bunnydns.svg)](https://pypi.org/project/bunnydns/)
[![Tests](https://github.com/franzs/bunnydns/actions/workflows/tests.yml/badge.svg)](https://github.com/franzs/bunnydns/actions/workflows/tests.yml)
[![Documentation](https://readthedocs.org/projects/bunnydns/badge/?version=latest)](https://bunnydns.readthedocs.io)
[![License: GPL](https://img.shields.io/badge/License-GPL-yellow.svg)](https://www.gnu.org/licenses/gpl-3.0.html)

A Python SDK for the [Bunny.net  DNS API](https://docs.bunny.net/api-reference/core/dns-zone/).

## Installation

```bash
pip install bunnydns
```

## Quick Start

```Python
#!/usr/bin/env python3

from bunnydns import BunnyDNS, DnsRecordInput, RecordType

client = BunnyDNS(access_key="your-api-key")

# List all zones
zones = client.list_dns_zones()
for zone in zones.items:
    print(zone.domain)

# Create a zone
zone = client.add_dns_zone(domain="example.com")

# Add a record
record = client.add_dns_record(
    zone_id=zone.id,
    record=DnsRecordInput(
        type=RecordType.A,
        name="www",
        value="1.2.3.4",
        ttl=300,
    ),
)

# Export zone file
zone_file = client.export_dns_zone(zone_id=zone.id)

# Enable DNSSEC
ds = client.enable_dnssec(zone_id=zone.id)
print(ds.ds_record)
```

## Documentation

Full documentation is available at bunnydns.readthedocs.io.

## License

GPL License. See [LICENSE](./LICENSE) for details.
