O:39:"phpDocumentor\Descriptor\FileDescriptor":20:{s:7:" * hash";s:32:"10cc18aa60dcf52dbed441082e850088";s:9:" * source";s:7195:"<?php
/**
 * The Rackspace Cloud DNS service
 *
 * @copyright 2012-2013 Rackspace Hosting, Inc.
 * See COPYING for licensing information
 *
 * @package phpOpenCloud
 * @version 1.0
 * @author Glen Campbell <glen.campbell@rackspace.com>
 */

namespace OpenCloud\DNS;

use OpenCloud\Common\Service as AbstractService;
use OpenCloud\Common\Lang;
use OpenCloud\Common\Exceptions;
use OpenCloud\OpenStack;
use OpenCloud\Compute\Server;

class Service extends AbstractService
{

    /**
     * creates a new DNS object
     *
     * @param \OpenCloud\OpenStack $conn connection object
     * @param string $serviceName the name of the service
     * @param string $serviceRegion (not currently used; DNS is regionless)
     * @param string $urltype the type of URL
     */
    public function __construct(
        OpenStack $connection,
        $serviceName,
        $serviceRegion,
        $urltype
    ) {
        $this->debug(Lang::translate('initializing DNS...'));
        parent::__construct(
            $connection,
            'rax:dns',
            $serviceName,
            $serviceRegion,
            $urltype
        );
    }

    /**
     * returns a DNS::Domain object
     *
     * @api
     * @param mixed $info either the ID, an object, or array of parameters
     * @return DNS\Domain
     */
    public function Domain($info = null)
    {
        return new Domain($this, $info);
    }

    /**
     * returns a Collection of DNS::Domain objects
     *
     * @api
     * @param array $filter key/value pairs to use as query strings
     * @return \OpenCloud\Collection
     */
    public function DomainList($filter = array())
    {
        $url = $this->Url(Domain::ResourceName(), $filter);
        return $this->Collection('\OpenCloud\DNS\Domain', $url);
    }

    /**
     * returns a PtrRecord object for a server
     *
     * @param mixed $info ID, array, or object containing record data
     * @return Record
     */
    public function PtrRecord($info = null)
    {
        return new PtrRecord($this, $info);
    }

    /**
     * returns a Collection of PTR records for a given Server
     *
     * @param \OpenCloud\Compute\Server $server the server for which to
     *      retrieve the PTR records
     * @return Collection
     */
    public function PtrRecordList(Server $server)
    {
        $service_name = $server->Service()->Name();
        $url = $this->Url('rdns/' . $service_name) . '?' . $this->MakeQueryString(array('href' => $server->Url()));
        return $this->Collection('\OpenCloud\DNS\PtrRecord', $url);
    }

    /**
     * performs a HTTP request
     *
     * This method overrides the request with JSON content type
     *
     * @param string $url the URL to target
     * @param string $method the HTTP method to use
     * @param array $headers key/value pairs for headers to include
     * @param string $body the body of the request (for PUT and POST)
     * @return \OpenCloud\HttpResponse
     */
    public function Request(
    	$url,
    	$method = 'GET',
    	array $headers = array(),
    	$body = null
    ) {
        $headers['Accept'] = RAXSDK_CONTENT_TYPE_JSON;
        $headers['Content-Type'] = RAXSDK_CONTENT_TYPE_JSON;
        return parent::Request($url, $method, $headers, $body);
    }

    /**
     * retrieves an asynchronous response
     *
     * This method calls the provided `$url` and expects an asynchronous
     * response. It checks for various HTTP error codes and returns
     * an `AsyncResponse` object. This object can then be used to poll
     * for the status or to retrieve the final data as needed.
     *
     * @param string $url the URL of the request
     * @param string $method the HTTP method to use
     * @param array $headers key/value pairs for headers to include
     * @param string $body the body of the request (for PUT and POST)
     * @return DNS\AsyncResponse
     */
    public function AsyncRequest($url, $method = 'GET', $headers = array(), $body = null)
    {
        // perform the initial request
        $resp = $this->Request($url, $method, $headers, $body);

        // check response status
        if ($resp->HttpStatus() > 204) {
            throw new Exceptions\AsyncHttpError(sprintf(
                Lang::translate('Unexpected HTTP status for async request: URL [%s] method [%s] status [%s] response [%s]'),
                $url,
                $method,
                $resp->HttpStatus(),
                $resp->HttpBody()
            ));
        }

        // debug
        $this->debug('AsyncResponse [%s]', $resp->HttpBody());

        // return an AsyncResponse object
        return new AsyncResponse($this, $resp->HttpBody());
    }

    /**
     * imports domain records
     *
     * Note that this function is called from the service (DNS) level, and
     * not (as you might suspect) from the Domain object. Because the function
     * return an AsyncResponse, the domain object will not actually exist
     * until some point after the import has occurred.
     *
     * @api
     * @param string $data the BIND_9 formatted data to import
     * @return DNS\AsyncResponse
     */
    public function Import($data)
    {
        // determine the URL
        $url = $this->Url('domains/import');

        // create the JSON object
        $object = new \stdClass;
        $object->domains = array();

        $domains = new \stdClass;
        $domains->contents = $data;
        $domains->contentType = 'BIND_9';
        $object->domains[] = $domains;

        // encode it
        $json = json_encode($object);

        // debug it
        $this->debug('Importing [%s]', $json);

        // perform the request
        return $this->AsyncRequest($url, 'POST', array(), $json);
    }

    /**
     * returns a list of limits
     *
     */
    public function Limits($type = null)
    {
        $url = $this->url('limits');

        if ($type !== null) {
            $url .= '/' . $type;
        }

        // perform the request
        $object = $this->SimpleRequest($url);
        return ($type !== null) ? $object : $object->limits;
    }

    /**
     * returns an array of limit types
     *
     * @return array
     */
    public function LimitTypes()
    {
        $object = $this->SimpleRequest($this->Url('limits/types'));
        return $object->limitTypes;
    }

    /**
     * performs a simple request and returns the JSON as an object
     *
     * @param string $url the URL to GET
     */
    public function SimpleRequest($url)
    {
        // perform the request
        $response = $this->Request($url);

        // check for errors
        if ($response->HttpStatus() > 202) {
            throw new Exceptions\HttpError(sprintf(
                Lang::translate('Unexpected status [%s] for URL [%s], body [%s]'),
                $response->HttpStatus(),
                $url,
                $response->HttpBody()
            ));
        }

        // decode the JSON
        $json = $response->HttpBody();
        $this->debug(Lang::translate('Limit Types JSON [%s]'), $json);

        $object = json_decode($json);

        if ($this->CheckJsonError()) {
            return false;
        }

        return $object;
    }

}
";s:20:" * namespace_aliases";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:11:" * includes";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:12:" * constants";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:12:" * functions";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:10:" * classes";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:7:"Service";O:40:"phpDocumentor\Descriptor\ClassDescriptor":17:{s:9:" * parent";s:25:"\OpenCloud\Common\Service";s:13:" * implements";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:11:" * abstract";b:0;s:8:" * final";b:0;s:12:" * constants";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:13:" * properties";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:10:" * methods";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:11:{s:11:"__construct";O:41:"phpDocumentor\Descriptor\MethodDescriptor":16:{s:9:" * parent";r:14;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:4:{s:11:"$connection";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:20:"\OpenCloud\OpenStack";}s:10:" * default";N;s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:11:"$connection";s:12:" * namespace";N;s:10:" * package";N;s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:7:" * path";s:0:"";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:12:"$serviceName";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:6:"string";}s:10:" * default";N;s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:12:"$serviceName";s:12:" * namespace";N;s:10:" * package";N;s:10:" * summary";s:0:"";s:14:" * description";s:23:"the name of the service";s:7:" * path";s:0:"";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:14:"$serviceRegion";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:6:"string";}s:10:" * default";N;s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:14:"$serviceRegion";s:12:" * namespace";N;s:10:" * package";N;s:10:" * summary";s:0:"";s:14:" * description";s:39:"(not currently used; DNS is regionless)";s:7:" * path";s:0:"";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:8:"$urltype";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:6:"string";}s:10:" * default";N;s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:8:"$urltype";s:12:" * namespace";N;s:10:" * package";N;s:10:" * summary";s:0:"";s:14:" * description";s:15:"the type of URL";s:7:" * path";s:0:"";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:8:" * fqsen";s:37:"\OpenCloud\DNS\Service::__construct()";s:7:" * name";s:11:"__construct";s:12:" * namespace";N;s:10:" * package";s:12:"phpOpenCloud";s:10:" * summary";s:24:"creates a new DNS object";s:14:" * description";s:0:"";s:7:" * path";s:0:"";s:7:" * line";i:32;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:4:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":4:{s:15:" * variableName";s:5:"$conn";s:8:" * types";a:1:{i:0;s:20:"\OpenCloud\OpenStack";}s:7:" * name";s:5:"param";s:14:" * description";s:17:"connection object";}i:1;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":4:{s:15:" * variableName";s:12:"$serviceName";s:8:" * types";a:1:{i:0;s:6:"string";}s:7:" * name";s:5:"param";s:14:" * description";s:23:"the name of the service";}i:2;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":4:{s:15:" * variableName";s:14:"$serviceRegion";s:8:" * types";a:1:{i:0;s:6:"string";}s:7:" * name";s:5:"param";s:14:" * description";s:39:"(not currently used; DNS is regionless)";}i:3;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":4:{s:15:" * variableName";s:8:"$urltype";s:8:" * types";a:1:{i:0;s:6:"string";}s:7:" * name";s:5:"param";s:14:" * description";s:15:"the type of URL";}}}s:8:"internal";N;}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:6:"Domain";O:41:"phpDocumentor\Descriptor\MethodDescriptor":16:{s:9:" * parent";r:14;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:5:"$info";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:5:"mixed";}s:10:" * default";s:4:"null";s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:5:"$info";s:12:" * namespace";N;s:10:" * package";N;s:10:" * summary";s:0:"";s:14:" * description";s:48:"either the ID, an object, or array of parameters";s:7:" * path";s:0:"";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:8:" * fqsen";s:32:"\OpenCloud\DNS\Service::Domain()";s:7:" * name";s:6:"Domain";s:12:" * namespace";N;s:10:" * package";s:12:"phpOpenCloud";s:10:" * summary";s:28:"returns a DNS::Domain object";s:14:" * description";s:0:"";s:7:" * path";s:0:"";s:7:" * line";i:55;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:4:{s:3:"api";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:38:"phpDocumentor\Descriptor\TagDescriptor":2:{s:7:" * name";s:3:"api";s:14:" * description";s:0:"";}}}s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":4:{s:15:" * variableName";s:5:"$info";s:8:" * types";a:1:{i:0;s:5:"mixed";}s:7:" * name";s:5:"param";s:14:" * description";s:48:"either the ID, an object, or array of parameters";}}}s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":3:{s:8:" * types";a:1:{i:0;s:25:"\OpenCloud\DNS\DNS\Domain";}s:7:" * name";s:6:"return";s:14:" * description";s:0:"";}}}s:8:"internal";N;}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:10:"DomainList";O:41:"phpDocumentor\Descriptor\MethodDescriptor":16:{s:9:" * parent";r:14;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:7:"$filter";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:5:"array";}s:10:" * default";s:7:"array()";s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:7:"$filter";s:12:" * namespace";N;s:10:" * package";N;s:10:" * summary";s:0:"";s:14:" * description";s:39:"key/value pairs to use as query strings";s:7:" * path";s:0:"";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:8:" * fqsen";s:36:"\OpenCloud\DNS\Service::DomainList()";s:7:" * name";s:10:"DomainList";s:12:" * namespace";N;s:10:" * package";s:12:"phpOpenCloud";s:10:" * summary";s:43:"returns a Collection of DNS::Domain objects";s:14:" * description";s:0:"";s:7:" * path";s:0:"";s:7:" * line";i:67;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:4:{s:3:"api";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:38:"phpDocumentor\Descriptor\TagDescriptor":2:{s:7:" * name";s:3:"api";s:14:" * description";s:0:"";}}}s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":4:{s:15:" * variableName";s:7:"$filter";s:8:" * types";a:1:{i:0;s:5:"array";}s:7:" * name";s:5:"param";s:14:" * description";s:39:"key/value pairs to use as query strings";}}}s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":3:{s:8:" * types";a:1:{i:0;s:21:"\OpenCloud\Collection";}s:7:" * name";s:6:"return";s:14:" * description";s:0:"";}}}s:8:"internal";N;}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:9:"PtrRecord";O:41:"phpDocumentor\Descriptor\MethodDescriptor":16:{s:9:" * parent";r:14;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:5:"$info";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:5:"mixed";}s:10:" * default";s:4:"null";s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:5:"$info";s:12:" * namespace";N;s:10:" * package";N;s:10:" * summary";s:0:"";s:14:" * description";s:43:"ID, array, or object containing record data";s:7:" * path";s:0:"";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:8:" * fqsen";s:35:"\OpenCloud\DNS\Service::PtrRecord()";s:7:" * name";s:9:"PtrRecord";s:12:" * namespace";N;s:10:" * package";s:12:"phpOpenCloud";s:10:" * summary";s:39:"returns a PtrRecord object for a server";s:14:" * description";s:0:"";s:7:" * path";s:0:"";s:7:" * line";i:79;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:3:{s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":4:{s:15:" * variableName";s:5:"$info";s:8:" * types";a:1:{i:0;s:5:"mixed";}s:7:" * name";s:5:"param";s:14:" * description";s:43:"ID, array, or object containing record data";}}}s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":3:{s:8:" * types";a:1:{i:0;s:21:"\OpenCloud\DNS\Record";}s:7:" * name";s:6:"return";s:14:" * description";s:0:"";}}}s:8:"internal";N;}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:13:"PtrRecordList";O:41:"phpDocumentor\Descriptor\MethodDescriptor":16:{s:9:" * parent";r:14;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:7:"$server";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:25:"\OpenCloud\Compute\Server";}s:10:" * default";N;s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:7:"$server";s:12:" * namespace";N;s:10:" * package";N;s:10:" * summary";s:0:"";s:14:" * description";s:53:"the server for which to
     retrieve the PTR records";s:7:" * path";s:0:"";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:8:" * fqsen";s:39:"\OpenCloud\DNS\Service::PtrRecordList()";s:7:" * name";s:13:"PtrRecordList";s:12:" * namespace";N;s:10:" * package";s:12:"phpOpenCloud";s:10:" * summary";s:54:"returns a Collection of PTR records for a given Server";s:14:" * description";s:0:"";s:7:" * path";s:0:"";s:7:" * line";i:91;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:3:{s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":4:{s:15:" * variableName";s:7:"$server";s:8:" * types";a:1:{i:0;s:25:"\OpenCloud\Compute\Server";}s:7:" * name";s:5:"param";s:14:" * description";s:53:"the server for which to
     retrieve the PTR records";}}}s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":3:{s:8:" * types";a:1:{i:0;s:25:"\OpenCloud\DNS\Collection";}s:7:" * name";s:6:"return";s:14:" * description";s:0:"";}}}s:8:"internal";N;}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:7:"Request";O:41:"phpDocumentor\Descriptor\MethodDescriptor":16:{s:9:" * parent";r:14;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:4:{s:4:"$url";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:6:"string";}s:10:" * default";N;s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:4:"$url";s:12:" * namespace";N;s:10:" * package";N;s:10:" * summary";s:0:"";s:14:" * description";s:17:"the URL to target";s:7:" * path";s:0:"";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:7:"$method";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:6:"string";}s:10:" * default";s:5:"'GET'";s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:7:"$method";s:12:" * namespace";N;s:10:" * package";N;s:10:" * summary";s:0:"";s:14:" * description";s:22:"the HTTP method to use";s:7:" * path";s:0:"";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:8:"$headers";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:5:"array";}s:10:" * default";s:7:"array()";s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:8:"$headers";s:12:" * namespace";N;s:10:" * package";N;s:10:" * summary";s:0:"";s:14:" * description";s:38:"key/value pairs for headers to include";s:7:" * path";s:0:"";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:5:"$body";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:6:"string";}s:10:" * default";s:4:"null";s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:5:"$body";s:12:" * namespace";N;s:10:" * package";N;s:10:" * summary";s:0:"";s:14:" * description";s:42:"the body of the request (for PUT and POST)";s:7:" * path";s:0:"";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:8:" * fqsen";s:33:"\OpenCloud\DNS\Service::Request()";s:7:" * name";s:7:"Request";s:12:" * namespace";N;s:10:" * package";s:12:"phpOpenCloud";s:10:" * summary";s:23:"performs a HTTP request";s:14:" * description";s:56:"This method overrides the request with JSON content type";s:7:" * path";s:0:"";s:7:" * line";i:109;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:3:{s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:4:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":4:{s:15:" * variableName";s:4:"$url";s:8:" * types";a:1:{i:0;s:6:"string";}s:7:" * name";s:5:"param";s:14:" * description";s:17:"the URL to target";}i:1;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":4:{s:15:" * variableName";s:7:"$method";s:8:" * types";a:1:{i:0;s:6:"string";}s:7:" * name";s:5:"param";s:14:" * description";s:22:"the HTTP method to use";}i:2;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":4:{s:15:" * variableName";s:8:"$headers";s:8:" * types";a:1:{i:0;s:5:"array";}s:7:" * name";s:5:"param";s:14:" * description";s:38:"key/value pairs for headers to include";}i:3;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":4:{s:15:" * variableName";s:5:"$body";s:8:" * types";a:1:{i:0;s:6:"string";}s:7:" * name";s:5:"param";s:14:" * description";s:42:"the body of the request (for PUT and POST)";}}}s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":3:{s:8:" * types";a:1:{i:0;s:23:"\OpenCloud\HttpResponse";}s:7:" * name";s:6:"return";s:14:" * description";s:0:"";}}}s:8:"internal";N;}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:12:"AsyncRequest";O:41:"phpDocumentor\Descriptor\MethodDescriptor":16:{s:9:" * parent";r:14;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:4:{s:4:"$url";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:6:"string";}s:10:" * default";N;s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:4:"$url";s:12:" * namespace";N;s:10:" * package";N;s:10:" * summary";s:0:"";s:14:" * description";s:22:"the URL of the request";s:7:" * path";s:0:"";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:7:"$method";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:6:"string";}s:10:" * default";s:5:"'GET'";s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:7:"$method";s:12:" * namespace";N;s:10:" * package";N;s:10:" * summary";s:0:"";s:14:" * description";s:22:"the HTTP method to use";s:7:" * path";s:0:"";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:8:"$headers";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:5:"array";}s:10:" * default";s:7:"array()";s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:8:"$headers";s:12:" * namespace";N;s:10:" * package";N;s:10:" * summary";s:0:"";s:14:" * description";s:38:"key/value pairs for headers to include";s:7:" * path";s:0:"";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:5:"$body";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:6:"string";}s:10:" * default";s:4:"null";s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:5:"$body";s:12:" * namespace";N;s:10:" * package";N;s:10:" * summary";s:0:"";s:14:" * description";s:42:"the body of the request (for PUT and POST)";s:7:" * path";s:0:"";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:8:" * fqsen";s:38:"\OpenCloud\DNS\Service::AsyncRequest()";s:7:" * name";s:12:"AsyncRequest";s:12:" * namespace";N;s:10:" * package";s:12:"phpOpenCloud";s:10:" * summary";s:34:"retrieves an asynchronous response";s:14:" * description";s:246:"This method calls the provided `$url` and expects an asynchronous
response. It checks for various HTTP error codes and returns
an `AsyncResponse` object. This object can then be used to poll
for the status or to retrieve the final data as needed.";s:7:" * path";s:0:"";s:7:" * line";i:134;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:3:{s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:4:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":4:{s:15:" * variableName";s:4:"$url";s:8:" * types";a:1:{i:0;s:6:"string";}s:7:" * name";s:5:"param";s:14:" * description";s:22:"the URL of the request";}i:1;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":4:{s:15:" * variableName";s:7:"$method";s:8:" * types";a:1:{i:0;s:6:"string";}s:7:" * name";s:5:"param";s:14:" * description";s:22:"the HTTP method to use";}i:2;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":4:{s:15:" * variableName";s:8:"$headers";s:8:" * types";a:1:{i:0;s:5:"array";}s:7:" * name";s:5:"param";s:14:" * description";s:38:"key/value pairs for headers to include";}i:3;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":4:{s:15:" * variableName";s:5:"$body";s:8:" * types";a:1:{i:0;s:6:"string";}s:7:" * name";s:5:"param";s:14:" * description";s:42:"the body of the request (for PUT and POST)";}}}s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":3:{s:8:" * types";a:1:{i:0;s:32:"\OpenCloud\DNS\DNS\AsyncResponse";}s:7:" * name";s:6:"return";s:14:" * description";s:0:"";}}}s:8:"internal";N;}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:6:"Import";O:41:"phpDocumentor\Descriptor\MethodDescriptor":16:{s:9:" * parent";r:14;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:5:"$data";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:6:"string";}s:10:" * default";N;s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:5:"$data";s:12:" * namespace";N;s:10:" * package";N;s:10:" * summary";s:0:"";s:14:" * description";s:35:"the BIND_9 formatted data to import";s:7:" * path";s:0:"";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:8:" * fqsen";s:32:"\OpenCloud\DNS\Service::Import()";s:7:" * name";s:6:"Import";s:12:" * namespace";N;s:10:" * package";s:12:"phpOpenCloud";s:10:" * summary";s:22:"imports domain records";s:14:" * description";s:254:"Note that this function is called from the service (DNS) level, and
not (as you might suspect) from the Domain object. Because the function
return an AsyncResponse, the domain object will not actually exist
until some point after the import has occurred.";s:7:" * path";s:0:"";s:7:" * line";i:169;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:4:{s:3:"api";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:38:"phpDocumentor\Descriptor\TagDescriptor":2:{s:7:" * name";s:3:"api";s:14:" * description";s:0:"";}}}s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":4:{s:15:" * variableName";s:5:"$data";s:8:" * types";a:1:{i:0;s:6:"string";}s:7:" * name";s:5:"param";s:14:" * description";s:35:"the BIND_9 formatted data to import";}}}s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":3:{s:8:" * types";a:1:{i:0;s:32:"\OpenCloud\DNS\DNS\AsyncResponse";}s:7:" * name";s:6:"return";s:14:" * description";s:0:"";}}}s:8:"internal";N;}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:6:"Limits";O:41:"phpDocumentor\Descriptor\MethodDescriptor":16:{s:9:" * parent";r:14;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:5:"$type";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:0:{}s:10:" * default";s:4:"null";s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:5:"$type";s:12:" * namespace";N;s:10:" * package";N;s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:7:" * path";s:0:"";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:8:" * fqsen";s:32:"\OpenCloud\DNS\Service::Limits()";s:7:" * name";s:6:"Limits";s:12:" * namespace";N;s:10:" * package";s:12:"phpOpenCloud";s:10:" * summary";s:24:"returns a list of limits";s:14:" * description";s:0:"";s:7:" * path";s:0:"";s:7:" * line";i:197;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:5:"param";a:0:{}s:8:"internal";N;}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:10:"LimitTypes";O:41:"phpDocumentor\Descriptor\MethodDescriptor":16:{s:9:" * parent";r:14;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:8:" * fqsen";s:36:"\OpenCloud\DNS\Service::LimitTypes()";s:7:" * name";s:10:"LimitTypes";s:12:" * namespace";N;s:10:" * package";s:12:"phpOpenCloud";s:10:" * summary";s:31:"returns an array of limit types";s:14:" * description";s:0:"";s:7:" * path";s:0:"";s:7:" * line";i:215;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":3:{s:8:" * types";a:1:{i:0;s:5:"array";}s:7:" * name";s:6:"return";s:14:" * description";s:0:"";}}}s:8:"internal";N;}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:13:"SimpleRequest";O:41:"phpDocumentor\Descriptor\MethodDescriptor":16:{s:9:" * parent";r:14;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:4:"$url";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:6:"string";}s:10:" * default";N;s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:4:"$url";s:12:" * namespace";N;s:10:" * package";N;s:10:" * summary";s:0:"";s:14:" * description";s:14:"the URL to GET";s:7:" * path";s:0:"";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:8:" * fqsen";s:39:"\OpenCloud\DNS\Service::SimpleRequest()";s:7:" * name";s:13:"SimpleRequest";s:12:" * namespace";N;s:10:" * package";s:12:"phpOpenCloud";s:10:" * summary";s:59:"performs a simple request and returns the JSON as an object";s:14:" * description";s:0:"";s:7:" * path";s:0:"";s:7:" * line";i:226;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":4:{s:15:" * variableName";s:4:"$url";s:8:" * types";a:1:{i:0;s:6:"string";}s:7:" * name";s:5:"param";s:14:" * description";s:14:"the URL to GET";}}}s:8:"internal";N;}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:8:" * fqsen";s:22:"\OpenCloud\DNS\Service";s:7:" * name";s:7:"Service";s:12:" * namespace";s:14:"\OpenCloud\DNS";s:10:" * package";s:12:"phpOpenCloud";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:7:" * path";r:1;s:7:" * line";i:21;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:40:"phpDocumentor\Descriptor\Validator\Error":4:{s:11:" * severity";s:5:"error";s:7:" * code";s:13:"PPC:ERR-50005";s:7:" * line";i:21;s:10:" * context";a:1:{i:0;s:22:"\OpenCloud\DNS\Service";}}}}}}}s:13:" * interfaces";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * traits";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:10:" * markers";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:8:" * fqsen";s:0:"";s:7:" * name";s:11:"Service.php";s:12:" * namespace";N;s:10:" * package";s:12:"phpOpenCloud";s:10:" * summary";s:31:"The Rackspace Cloud DNS service";s:14:" * description";s:0:"";s:7:" * path";s:25:"OpenCloud/DNS/Service.php";s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:4:{s:9:"copyright";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:38:"phpDocumentor\Descriptor\TagDescriptor":2:{s:7:" * name";s:9:"copyright";s:14:" * description";s:71:"2012-2013 Rackspace Hosting, Inc.
See COPYING for licensing information";}}}s:7:"package";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:38:"phpDocumentor\Descriptor\TagDescriptor":2:{s:7:" * name";s:7:"package";s:14:" * description";s:12:"phpOpenCloud";}}}s:7:"version";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:38:"phpDocumentor\Descriptor\TagDescriptor":2:{s:7:" * name";s:7:"version";s:14:" * description";s:0:"";}}}s:6:"author";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\AuthorDescriptor":2:{s:7:" * name";s:6:"author";s:14:" * description";s:43:"Glen Campbell <glen.campbell@rackspace.com>";}}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}