# Class AbstractResource

The root class for all other objects used or defined by this SDK.

It contains common code for error handling as well as service functions that are useful. Because it is an abstract class, it cannot be called directly, and it has no publicly-visible properties.

  OpenCloud\Common\Base
  OpenCloud\Common\Resource\BaseResource
  OpenCloud\Common\Resource\PersistentResource
  OpenCloud\DNS\Resource\AbstractResource

#### Direct known subclasses

OpenCloud\DNS\Resource\Domain, OpenCloud\DNS\Resource\Record

#### Indirect known subclasses

OpenCloud\DNS\Resource\PtrRecord, OpenCloud\DNS\Resource\Subdomain
Abstract
Namespace: OpenCloud\DNS\Resource
Located at OpenCloud/DNS/Resource/AbstractResource.php

Methods summary
`public Guzzle\Http\Message\Response` | # `create( array $params = array() )` Create a new resource Create a new resource #### Parameters $params `array` $params #### Returns `Guzzle\Http\Message\Response` #### Overrides `OpenCloud\Common\Resource\PersistentResource::create()`
`public Guzzle\Http\Message\Response` | # `update( array $params = array() )` Update a resource Update a resource #### Parameters $params `array` $params #### Returns `Guzzle\Http\Message\Response` #### Overrides `OpenCloud\Common\Resource\PersistentResource::update()`
`public Guzzle\Http\Message\Response` | # `delete( )` Delete this resource Delete this resource #### Returns `Guzzle\Http\Message\Response` #### Overrides `OpenCloud\Common\Resource\PersistentResource::delete()`
`protected object` | # `createJson( )` Provides JSON for create request body Provides JSON for create request body #### Returns `object` #### Throws ``RuntimeException`` #### Overrides `OpenCloud\Common\Resource\PersistentResource::createJson()`
`protected` | # `updateJson( mixed $params = array() )` Provides JSON for update request body Provides JSON for update request body #### Overrides `OpenCloud\Common\Resource\PersistentResource::updateJson()`
`public array|false` | # `getCreateKeys( )` Retrieve the keys which are required when the object is created. Retrieve the keys which are required when the object is created. #### Returns `array|false`
`public array|false` | # `getUpdateKeys( )` Retrieve the keys which are required when the object is updated. Retrieve the keys which are required when the object is updated. #### Returns `array|false`

Methods inherited from OpenCloud\Common\Resource\PersistentResource
`checkExtension(), getAlias(), noCreate(), noDelete(), noUpdate(), refresh(), refreshFromLocationUrl(), waitFor()`

Methods inherited from OpenCloud\Common\Resource\BaseResource
`__construct(), findLink(), getClient(), getMetadata(), getParent(), getService(), getUrl(), jsonCollectionElement(), jsonCollectionName(), jsonName(), parseResponse(), primaryKeyField(), resourceName(), setMetadata(), setParent(), setService()`

Methods inherited from OpenCloud\Common\Base
`__call(), checkJsonError(), generateUuid(), getInstance(), getJsonHeader(), getLogger(), getProperty(), makeResourceIteratorOptions(), populate(), propertyExists(), setLogger(), setProperty(), stripNamespace(), toCamel(), toUnderscores()`

Properties inherited from OpenCloud\Common\Resource\BaseResource
`$metadata, $parent, $service`

Properties inherited from OpenCloud\Common\Base
`$aliases`