NAME

WWW::DNSMadeEasy - Accessing DNSMadeEasy API

VERSION

version 0.100

SYNOPSIS

  use WWW::DNSMadeEasy; # or WWW::DME as shortname

  # v2 api examples
  my $dme = WWW::DNSMadeEasy->new({
      api_key     => '1c1a3c91-4770-4ce7-96f4-54c0eb0e457a',
      secret      => 'c9b5625f-9834-4ff8-baba-4ed5f32cae55',
      sandbox     => 1,     # defaults to 0
      api_version => '2.0', # defaults to '1.0'
  });
  my @managed_domains = $dme->managed_domains;
  my $managed_domain  = $dme->get_managed_domain('example.com');
  my @records         = $domain->records;
  my $record          = $domain->create_record(
      ttl          => 120,
      gtd_location => 'DEFAULT',
      name         => 'www',
      data         => '1.2.3.4',
      type         => 'A',
  );
  $record->delete;
  $domain->delete;

  # v1 api examples
  my $dme = WWW::DNSMadeEasy->new({
      api_key => '1c1a3c91-4770-4ce7-96f4-54c0eb0e457a',
      secret  => 'c9b5625f-9834-4ff8-baba-4ed5f32cae55',
      sandbox => 1, # defaults to 0
  });
  my @domains = $dme->all_domains;
  my $domain  = $dme->create_domain('example.com');
  my @records = $domain->all_records;
  my $record = $domain->create_record({
      ttl => 120,
      gtdLocation => 'DEFAULT',
      name => 'www',
      data => '1.2.3.4',
      type => 'A',
  });
  $record->delete;
  $domain->delete;

DESCRIPTION

This distribution gives you easy access to the DNSMadeEasy API. You require a business or corporate account to use this. You can't use it with the free test account neither with the small business account. This module doesnt check any input values, I suggest so far that you know what you do.

ATTRIBUTES

api_key

The API key which you can obtain from this page https://cp.dnsmadeeasy.com/account/info.

secret

The secret can be found on the same page as the API key.

sandbox

If set to true, this will activate the usage of the sandbox, instead of the live system.

http_agent_name

Here you can set a different http useragent for the requests, it defaults to the package name including the distribution version.

METHODS

create_managed_domain($name)

Creates the domain $name and returns a WWW::DNSMadeEasy::ManagedDomain object.

get_managed_domain($name)

Searches for a domain with the name $name and returns a WWWW::DNSMadeEasy::ManagedDomain object.

managed_domains()

Returns a list of WWWW::DNSMadeEasy::ManagedDomain objects representing all domains.

$obj->create_domain

Arguments: $name

Return value: WWW::DNSMadeEasy::Domain

Will be creating the domain $name on your account and returns the WWW::DNSMadeEasy::Domain for this domain.

$obj->domain

Arguments: $name

Return value: WWW::DNSMadeEasy::Domain

Returns the WWW::DNSMadeEasy::Domain of the domain with name $name.

$obj->all_domains

Arguments: None

Return value: Array of WWW::DNSMadeEasy::Domain

Returns an array of WWW::DNSMadeEasy::Domain objects of all domains listed on this account.

METHODS FOR API V2

METHODS FOR API V1

SEE ALSO

DNSMadeEasy REST API landing page
http://www.dnsmadeeasy.com/services/rest-api/

DNSMadeEasy documentation for v2.0
http://www.dnsmadeeasy.com/wp-content/uploads/2014/07/API-Docv2.pdf

DNSMadeEasy documentation for v1.2
http://www.dnsmadeeasy.com/wp-content/themes/appdev/pdf/API-Documentation-DM_20110921.pdf

SUPPORT

IRC

Join #duckduckgo on irc.freenode.net and highlight Getty or /msg me.

Repository

http://github.com/Getty/p5-www-dnsmadeeasy
Pull request and additional contributors are welcome

Issue Tracker

http://github.com/Getty/p5-www-dnsmadeeasy/issues

SUPPORT

Source Code

The code is open to the world, and available for you to hack on. Please feel free to browse it and play with it, or whatever. If you want to contribute patches, please send me a diff or prod me to pull from your repository :)

https://github.com/Getty/p5-www-dnsmadeeasy

git clone https://github.com/Getty/p5-www-dnsmadeeasy.git

AUTHOR

Torsten Raudssus <torsten@raudssus.de>

COPYRIGHT AND LICENSE

This software is copyright (c) 2012 by Torsten Raudssus.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.