The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

WWW::MediaTemple - A Perl interface to the Media Temple API

VERSION

Version 0.02

SYNPOSIS

    use WWW::MediaTemple;

    my $api = WWW::MediaTemple->new(
        api_key => 'your_api_key'
    );

    $api->setRootPasswd( serviceId => '000001',
                         password  => '!f4k3p455w0rd'
    );

DESCRIPTION

This module is intended to provide an interface between Perl and the Media Temple API. The Media Temple API is a RESTful web service. In order to use this module you must provide an api key which requires a valid account. For more information please see http://wiki.mediatemple.net/w/Category:API

CONSTRUCTOR

new()

Creates and returns a new WWW::MediaTemple object

    my $api= WWW::MediaTemple->new()
  • api_key => [your_api_key]

    The api_key parameter is required. You must provide a valid key.

  • pretty_print => [true|false}

    This parameter allows you to enable the pretty print function of the API. By default this parameter is set to true

  • wrap_root => [true|false]

    This parameter defaults to 'true'. It wraps the json object with the root object name. Specifying 'false' will not wrap the object.

  • format => [json|xml]

    The data format you intend PUT, POST and GET. Currently defaults to JSON

  • raw_data => [true|false]

    Return raw data in xml and or json format opposed to an object

SUBROUTINES/METHODS

$obj->services

get the service info for all services

$obj->serviceIds

get a list of all service ids

$obj->service(...)

get the service info for a single service

* serviceId (integer, required: true, default: none)

    $obj->service( serviceId => 000001 );

$obj->serviceTypes

get a list of valid service types

$obj->serviceOSTypes

get a list of OS's that can be installed on a (ve)

$obj->addService(...)

create a new service

* serviceType (integer, required: true, default: none)

* primaryDomain (string, required: true(dv only), default: none, (ve) autogenerates a domain)

* operatingSystem (integer, required: true, default: Ubuntu 9.10 (16) )

    $obj->addService( operatingSystem => 16, 
                      serviceType     => 000001,
                      primaryDomain   => 'snakeoil.dom'
    );

$obj->reboot(...)

reboot the specified service

* serviceId integer, required: true, default: none

    $obj->reboot( serviceId => 000001 );

$obj->flushFirewall(...)

flushes the firewall rules on the specified service

* serviceId integer, required: true, default: none

    $obj->flushFirewall( serviceId => 000001 );

$obj->addTempDisk(...)

adds temporary disk space for the specified service

* serviceId integer, required: true, default: none

    $obj->addTempDisk( serviceId => 000001 );

$obj->pleskPassword(...)

set plesk password for the specified service

* serviceId integer, required: true, default: none

    $obj->pleskPassword( serviceId => 000001 );

$obj->setRootPass(...)

set the root password for the specified service

* serviceId integer, required: true, default: none

    $obj->setRootPass( serviceId => 000001 );

$obj->stats(...)

get the stats for a single service

* start (integer, required: false, default: none, beginning range in epoch seconds)

* end (integer, required: false, default: none, end range in epoch seconds

* resolution (integer, required: false, default: 15, The interval of data points in seconds to request

* precision (integer, required: false, default: 2, Digits to the right of the decimal

* predefined (integer, required: false, default: get stats over a predefined range (5min, 1year)

* NOTE: When using a predefined range the start option will be ignored

    $obj->stats( predefined => '5min', 
                 resolution => 10,
                 precision  => 5
    );

$obj->warnings

get the service warnings for an account

$obj->thresholds

get the service warning thresholds

_dumper

convert API output into XML, JSON or raw output based on constructor parameters

DIAGNOSTICS

N/A at the current point in time

CONFIGURATION AND ENVIRONMENT

No special configuration and or configuration files are needed. This module is intended to run in any and all environment.

INCOMPATIBILITIES

This package is intended to be compatible with Perl 5.008 and beyond.

BUGS AND LIMITATIONS

Please use https://forums.mediatemple.net to provide bug reports and or feedback concerning the API.

DEPENDENCIES

REST::Client, XML::Simple, JSON

SEE ALSO

http://mediatemple.net/api

SUPPORT

The module is provided free of support however feel free to contact the author or current maintainer with questions, bug reports, and patches.

Considerations will be taken when making changes to the API. Any changes to its interface will go through at the least one deprecation cycle.

LICENSE AND COPYRIGHT

Copyright (c) 2011 (mt) Media Temple, INC.

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

This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.

Author

Casey Vega <cvega@mediatemple.net>