Metadata-Version: 2.4
Name: octodns-opusdns
Version: 1.0.0
Summary:  OpusDNS provider for octoDNS
Home-page: https://github.com/relkian/octodns-opusdns
Author: Jonathan Leroy
Author-email: jonathan@relkian.com
License: MIT
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: octodns>=1.16.0
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: pytest-network; extra == "dev"
Requires-Dist: requests-mock; extra == "dev"
Requires-Dist: black<27.0.0,>=26.0.0; extra == "dev"
Requires-Dist: build>=0.7.0; extra == "dev"
Requires-Dist: isort>=5.11.5; extra == "dev"
Requires-Dist: proviso; extra == "dev"
Requires-Dist: pyflakes>=2.2.0; extra == "dev"
Requires-Dist: readme_renderer[md]>=26.0; extra == "dev"
Requires-Dist: twine>=3.4.2; extra == "dev"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: pytest-network; extra == "test"
Requires-Dist: requests-mock; extra == "test"
Dynamic: author
Dynamic: author-email
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

## OpusDNS provider for octoDNS

An [octoDNS](https://github.com/octodns/octodns/) provider that targets
[OpusDNS](https://developers.opusdns.com/).

### Installation

#### Command line

```
pip install octodns-opusdns
```

#### requirements.txt/setup.py

Pinning specific versions or SHAs is recommended to avoid unplanned upgrades.

##### Versions

```
# Start with the latest versions and don't just copy what's here
octodns==1.16.0
octodns-opusdns==1.0.0
```

##### SHAs

```
# Start with the latest/specific versions and don't just copy what's here
-e git+https://git@github.com/octodns/octodns.git@dc75b60b0dbb4b627422588efe2473522dd1f797#egg=octodns
-e git+https://git@github.com/octodns/octodns-opusdns.git@f76930cceaa1c0399ac123fa1bdd565a09e19a0d#egg=octodns_opusdns
```

### Configuration

```yaml
providers:
  opusdns:
    class: octodns_opusdns.OpusDNSProvider
    client_id: env/OPUSDNS_CLIENT_ID
    client_secret: env/OPUSDNS_CLIENT_SECRET
    # Remove the line below to use the production environment.
    sandbox: true
```

### Support Information

#### Records

This provider supports `A`, `AAAA`, `ALIAS`, `CAA`, `CNAME`, `DS`, `HTTPS`,
`MX`, `NAPTR`, `NS`, `PTR`, `SRV`, `SSHFP`, `SVCB`, `TLSA`, `TXT` and `URI`
records.

It does not supports `CERT`, `DNSKEY`, `SOA` and `SMIMEA` records as octoDNS
doesn't handle them.

`URI` records support requires octoDNS >= `1.17.0` (unrelased, current Git
trunk).

> [!NOTE]
> Currently, the creation and editing of `DS`, `HTTPS`, `NAPTR`, `SSHFP`,
> `SVCB`, `TLSA` and `URI` records isn't implemented in OpusDNS zones
> management interface.
> This means that records of these types can be viewed and deleted but not
> created or edited through it.

#### Dynamic

This provider does not support dynamic records.

### Development

See the [/script/](/script/) directory for some tools to help with the
development process. They generally follow the
[Script to rule them all](https://github.com/github/scripts-to-rule-them-all)
pattern.
Most useful is `./script/bootstrap` which will create a venv and install both
the runtime and development related requirements. It will also hook up a
pre-commit hook that covers most of what's run by CI.
