Skip to main content

DnsUpdater

Enum DnsUpdater 

Source
#[non_exhaustive]
pub enum DnsUpdater {
Show 69 variants Rfc2136(Rfc2136Provider), Cloudflare(CloudflareProvider), DigitalOcean(DigitalOceanProvider), Desec(DesecProvider), Constellix(ConstellixProvider), DnsMadeEasy(DnsMadeEasyProvider), Exoscale(ExoscaleProvider), Nifcloud(NifcloudProvider), Ovh(OvhProvider), OracleCloud(OracleCloudProvider), Bunny(BunnyProvider), Linode(LinodeProvider), Porkbun(PorkBunProvider), Spaceship(SpaceshipProvider), WebSupport(WebSupportProvider), DNSimple(DNSimpleProvider), GandiV5(GandiV5Provider), Godaddy(GodaddyProvider), Hetzner(HetznerProvider), NameDotCom(NameDotComProvider), NameSilo(NameSiloProvider), DuckDns(DuckDnsProvider), FreeMyIp(FreeMyIpProvider), Ipv64(Ipv64Provider), Ddnss(DdnssProvider), Dynu(DynuProvider), Plesk(PleskProvider), Cpanel(CpanelProvider), GoogleCloudDns(GoogleCloudDnsProvider), Ionos(IonosProvider), HostingDe(HostingDeProvider), Infomaniak(InfomaniakProvider), Netcup(NetcupProvider), Netlify(NetlifyProvider), HuaweiCloud(HuaweiCloudProvider), BaiduCloud(BaiduCloudProvider), AzureDns(AzureDnsProvider), IbmCloud(IbmCloudProvider), Hurricane(HurricaneProvider), Hostinger(HostingerProvider), Autodns(AutodnsProvider), Lightsail(LightsailProvider), EdgeDns(EdgeDnsProvider), Route53(Route53Provider), Scaleway(ScalewayProvider), Gcore(GcoreProvider), Vercel(VercelProvider), Vultr(VultrProvider), BluecatV2(BluecatV2Provider), EasyDns(EasyDnsProvider), Joker(JokerProvider), MythicBeasts(MythicBeastsProvider), Namecheap(NamecheapProvider), Transip(TransipProvider), Ns1(Ns1Provider), LuaDns(LuaDnsProvider), ClouDns(ClouDnsProvider), Glesys(GlesysProvider), Dreamhost(DreamhostProvider), Alidns(AlidnsProvider), TencentCloud(TencentCloudProvider), Volcengine(VolcengineProvider), YandexCloud(YandexCloudProvider), Domeneshop(DomeneshopProvider), Safedns(SafeDnsProvider), ArvanCloud(ArvanCloudProvider), Inwx(InwxProvider), UltraDns(UltraDnsProvider), Infoblox(InfobloxProvider),
}

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Rfc2136(Rfc2136Provider)

§

Cloudflare(CloudflareProvider)

§

DigitalOcean(DigitalOceanProvider)

§

Desec(DesecProvider)

§

Constellix(ConstellixProvider)

§

DnsMadeEasy(DnsMadeEasyProvider)

§

Exoscale(ExoscaleProvider)

§

Nifcloud(NifcloudProvider)

§

Ovh(OvhProvider)

§

OracleCloud(OracleCloudProvider)

§

Bunny(BunnyProvider)

§

Linode(LinodeProvider)

§

Porkbun(PorkBunProvider)

§

Spaceship(SpaceshipProvider)

§

WebSupport(WebSupportProvider)

§

DNSimple(DNSimpleProvider)

§

GandiV5(GandiV5Provider)

§

Godaddy(GodaddyProvider)

§

Hetzner(HetznerProvider)

§

NameDotCom(NameDotComProvider)

§

NameSilo(NameSiloProvider)

§

DuckDns(DuckDnsProvider)

§

FreeMyIp(FreeMyIpProvider)

§

Ipv64(Ipv64Provider)

§

Ddnss(DdnssProvider)

§

Dynu(DynuProvider)

§

Plesk(PleskProvider)

§

Cpanel(CpanelProvider)

§

GoogleCloudDns(GoogleCloudDnsProvider)

§

Ionos(IonosProvider)

§

HostingDe(HostingDeProvider)

§

Infomaniak(InfomaniakProvider)

§

Netcup(NetcupProvider)

§

Netlify(NetlifyProvider)

§

HuaweiCloud(HuaweiCloudProvider)

§

BaiduCloud(BaiduCloudProvider)

§

AzureDns(AzureDnsProvider)

§

IbmCloud(IbmCloudProvider)

§

Hurricane(HurricaneProvider)

§

Hostinger(HostingerProvider)

§

Autodns(AutodnsProvider)

§

Lightsail(LightsailProvider)

§

EdgeDns(EdgeDnsProvider)

§

Route53(Route53Provider)

§

Scaleway(ScalewayProvider)

§

Gcore(GcoreProvider)

§

Vercel(VercelProvider)

§

Vultr(VultrProvider)

§

BluecatV2(BluecatV2Provider)

§

EasyDns(EasyDnsProvider)

§

Joker(JokerProvider)

§

MythicBeasts(MythicBeastsProvider)

§

Namecheap(NamecheapProvider)

§

Transip(TransipProvider)

§

Ns1(Ns1Provider)

§

LuaDns(LuaDnsProvider)

§

ClouDns(ClouDnsProvider)

§

Glesys(GlesysProvider)

§

Dreamhost(DreamhostProvider)

§

Alidns(AlidnsProvider)

§

TencentCloud(TencentCloudProvider)

§

Volcengine(VolcengineProvider)

§

YandexCloud(YandexCloudProvider)

§

Domeneshop(DomeneshopProvider)

§

Safedns(SafeDnsProvider)

§

ArvanCloud(ArvanCloudProvider)

§

Inwx(InwxProvider)

§

UltraDns(UltraDnsProvider)

§

Infoblox(InfobloxProvider)

Implementations§

Source§

impl DnsUpdater

Source

pub fn new_rfc2136_tsig( addr: impl TryInto<DnsAddress>, key_name: impl AsRef<str>, key: impl Into<Vec<u8>>, algorithm: TsigAlgorithm, ) -> Result<Self>

Create a new DNS updater using the RFC 2136 protocol and TSIG authentication.

Source

pub fn new_cloudflare( secret: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Cloudflare API.

Source

pub fn new_digitalocean( auth_token: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the DigitalOcean API.

Source

pub fn new_desec( auth_token: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Desec.io API.

Source

pub fn new_constellix( api_key: impl AsRef<str>, secret_key: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Constellix API.

Source

pub fn new_dnsmadeeasy( api_key: impl AsRef<str>, api_secret: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the DNSMadeEasy API.

Source

pub fn new_ovh( application_key: impl AsRef<str>, application_secret: impl AsRef<str>, consumer_key: impl AsRef<str>, endpoint: OvhEndpoint, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the OVH API.

Source

pub fn new_oraclecloud(config: OracleCloudConfig) -> Result<Self>

Create a new DNS updater using the Oracle Cloud Infrastructure DNS API.

Source

pub fn new_bunny( api_key: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Bunny API.

Source

pub fn new_linode( auth_token: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Linode API.

Source

pub fn new_porkbun( api_key: impl AsRef<str>, secret_api_key: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Porkbun API.

Source

pub fn new_exoscale( api_key: impl AsRef<str>, api_secret: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Exoscale DNS API.

Source

pub fn new_nifcloud( access_key: impl AsRef<str>, secret_key: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Nifcloud DNS API.

Source

pub fn new_websupport( api_key: impl AsRef<str>, secret: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the WebSupport API.

Source

pub fn new_spaceship( api_key: impl AsRef<str>, api_secret: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Spaceship API.

Source

pub fn new_dnsimple( auth_token: impl AsRef<str>, account_id: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the DNSimple API.

Source

pub fn new_gandiv5( personal_access_token: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Gandi LiveDNS API (v5).

Source

pub fn new_godaddy( api_key: impl AsRef<str>, api_secret: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the GoDaddy API.

Source

pub fn new_hetzner( api_token: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Hetzner Cloud DNS (v1) API.

Source

pub fn new_namedotcom( username: impl AsRef<str>, api_token: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Name.com v4 API.

Source

pub fn new_namesilo( api_key: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the NameSilo API.

Source

pub fn new_duckdns( token: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the DuckDNS API.

Source

pub fn new_freemyip( token: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the freemyip.com API.

Source

pub fn new_ipv64( api_key: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the IPv64 API.

Source

pub fn new_ddnss( key: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the DDNSS.de API.

Source

pub fn new_dynu( api_key: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Dynu API.

Source

pub fn new_google_cloud_dns(config: GoogleCloudDnsConfig) -> Result<Self>

Create a new DNS updater using the Google Cloud DNS API.

Source

pub fn new_route53(config: Route53Config) -> Result<Self>

Create a new DNS updater using the Route53 API.

Source

pub fn new_vultr( api_key: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Vultr API.

Source

pub fn new_scaleway( api_token: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Scaleway Domains API.

Source

pub fn new_gcore( api_token: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Gcore DNS API.

Source

pub fn new_vercel( auth_token: impl AsRef<str>, team_id: Option<impl AsRef<str>>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Vercel API.

Source

pub fn new_ionos( api_key: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the IONOS DNS API.

Source

pub fn new_hostingde( api_key: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the hosting.de API.

Source

pub fn new_domeneshop( api_token: impl AsRef<str>, api_secret: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Domeneshop API.

Source

pub fn new_safedns( auth_token: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the ANS SafeDNS API.

Source

pub fn new_arvancloud( api_key: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the ArvanCloud API.

Source

pub fn new_infomaniak( access_token: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Infomaniak API.

Source

pub fn new_ns1( api_key: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the NS1 API.

Source

pub fn new_luadns( api_username: impl AsRef<str>, api_token: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the LuaDNS API.

Source

pub fn new_netcup( customer_number: impl AsRef<str>, api_key: impl AsRef<str>, api_password: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Netcup CCP API.

Source

pub fn new_netlify( access_token: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Netlify API.

Source

pub fn new_inwx( username: impl Into<String>, password: impl Into<String>, shared_secret: Option<String>, sandbox: bool, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the INWX JSON-RPC API.

Source

pub fn new_alidns( access_key: impl AsRef<str>, secret_key: impl AsRef<str>, region: Option<impl AsRef<str>>, security_token: Option<impl AsRef<str>>, line: Option<impl AsRef<str>>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Alibaba Cloud DNS API.

Source

pub fn new_huaweicloud( access_key: impl AsRef<str>, secret_key: impl AsRef<str>, region: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Huawei Cloud DNS API.

Source

pub fn new_cloudns( auth_id: Option<impl AsRef<str>>, sub_auth_id: Option<impl AsRef<str>>, auth_password: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the ClouDNS API.

Source

pub fn new_tencentcloud( secret_id: impl AsRef<str>, secret_key: impl AsRef<str>, region: Option<impl AsRef<str>>, session_token: Option<impl AsRef<str>>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Tencent Cloud DNSPod API.

Source

pub fn new_baiducloud( access_key: impl AsRef<str>, secret_key: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Baidu Cloud DNS API.

Source

pub fn new_easydns( token: impl AsRef<str>, key: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the EasyDNS REST API.

Source

pub fn new_joker(auth: JokerAuth, timeout: Option<Duration>) -> Result<Self>

Create a new DNS updater using the Joker DMAPI.

Source

pub fn new_mythicbeasts( username: impl AsRef<str>, password: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Mythic Beasts DNSv2 API.

Source

pub fn new_namecheap( api_user: impl AsRef<str>, api_key: impl AsRef<str>, client_ip: impl AsRef<str>, username: Option<impl AsRef<str>>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Namecheap XML API.

Source

pub fn new_transip( login: impl AsRef<str>, private_key_pem: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the TransIP v6 API.

Source

pub fn new_bluecatv2(config: BluecatV2Config) -> Result<Self>

Create a new DNS updater using the Bluecat Address Manager v2 REST API.

Source

pub fn new_glesys( api_user: impl AsRef<str>, api_key: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the GleSYS API.

Source

pub fn new_dreamhost( api_key: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Dreamhost API.

Source

pub fn new_volcengine(config: VolcengineConfig) -> Result<Self>

Create a new DNS updater using the Volcano Engine API.

Source

pub fn new_yandexcloud(config: YandexCloudConfig) -> Result<Self>

Create a new DNS updater using the Yandex Cloud DNS API.

Source

pub fn new_azuredns(config: AzureDnsConfig) -> Result<Self>

Create a new DNS updater using the Azure DNS REST API with OAuth2 client credentials.

Source

pub fn new_ibmcloud( username: impl AsRef<str>, api_key: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the IBM Cloud (SoftLayer classic) DNS API.

Source

pub fn new_hurricane( credentials: HashMap<String, String>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Hurricane Electric free DNS service.

Source

pub fn new_hostinger( api_token: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Hostinger DNS API.

Source

pub fn new_autodns( username: impl AsRef<str>, password: impl AsRef<str>, context: Option<u32>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the InterNetX AutoDNS API.

Source

pub fn new_plesk( base_url: impl AsRef<str>, api_key: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the Plesk REST API (X-API-Key auth).

Source

pub fn new_cpanel( base_url: impl AsRef<str>, username: impl AsRef<str>, token: impl AsRef<str>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the cPanel UAPI (API token auth).

Source

pub fn new_lightsail(config: LightsailConfig) -> Result<Self>

Create a new DNS updater using the AWS Lightsail DNS API.

Source

pub fn new_edgedns(config: EdgeDnsConfig) -> Result<Self>

Create a new DNS updater using the Akamai EdgeDNS API.

Source

pub fn new_ultradns( username: impl Into<String>, password: impl Into<String>, endpoint: Option<String>, timeout: Option<Duration>, ) -> Result<Self>

Create a new DNS updater using the UltraDNS REST API.

Source

pub fn new_infoblox(config: InfobloxConfig) -> Result<Self>

Create a new DNS updater using the Infoblox NIOS WAPI.

Source

pub async fn create( &self, name: impl IntoFqdn<'_>, record: DnsRecord, ttl: u32, origin: impl IntoFqdn<'_>, ) -> Result<()>

Create a new DNS record.

Source

pub async fn update( &self, name: impl IntoFqdn<'_>, record: DnsRecord, ttl: u32, origin: impl IntoFqdn<'_>, ) -> Result<()>

Update an existing DNS record.

Source

pub async fn delete( &self, name: impl IntoFqdn<'_>, origin: impl IntoFqdn<'_>, record: DnsRecordType, ) -> Result<()>

Delete an existing DNS record.

Trait Implementations§

Source§

impl Clone for DnsUpdater

Source§

fn clone(&self) -> DnsUpdater

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more