1 unstable release

0.1.0 Apr 2, 2024

#1139 in Asynchronous

Apache-2.0

25KB
369 lines

Gandi V5 LiveDNS API Library

Provides an abstration on top of Gandi LiveDNS RESTful Api.

A personal access token is required

This library is asynchronous.

Examples

The Api is the main entrypoint to communicate with Gandi LiveDNS Api.

use std:env;
use gandi_v5_livedns_api::{Api, Endpoint};

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let personal_access_token = env::var("GANDI_V5_PAT")?;

    let api = Api::build(Endpoint::Prod, &personal_access_token)?;
}

Calls Supported

  • TSIG keys
  • Manage TSIG keys
  • Software configuration information
  • List accepted record types
  • Domains
    • List of domains handled by LiveDNS
    • Add a new domain to LiveDNS
  • Domain information
    • Show domain's properties
    • Update domain's properties
  • Zone transfer slaves
  • Zone slaves'IP
  • TSIG keys associated with a domain
  • Manage TSIG key association
  • DNSSEC keys
  • Manipulate a specific DNSSEC key
  • Domain's nameserver information
  • Domain's records
    • List records associated with a domain
    • Creates a new record
    • Replace the whole zone with new records
    • Delete all records
  • Domain's records, by name
    • List records named {rrset_name} associated with this domain
    • Create a new record whose name is defined by the path
    • Replace all records named {rrset_name}
    • Delete all records named {rrset_name}
  • Single domain's record, by name and type
    • Get a single single record with its name and type
    • Create a new record whose name and type are defined by the path
    • Overwrites a single record with {rrset_name} and {rrset_type}
    • Delete record with {rrset_name} and {rrset_type}
  • Snapshots of a domain
  • Snapshots operations
  • Generic nameservers

Dependencies

~4–15MB
~198K SLoC