# Class AbstractSchemaResource

Class that represents abstracted functionality for JSON schema objects. Because the nature of these objects is so dynamic (i.e. their structure is determined by an API-generated schema document), they implement the \ArrayAccess SPL interface. This allows them to be accessed as arrays - which is very useful for undefined properties.

  OpenCloud\Common\Base
  OpenCloud\Common\Resource\BaseResource
  OpenCloud\Image\Resource\AbstractSchemaResource implements ArrayAccess

#### Direct known subclasses

OpenCloud\Image\Resource\Image, OpenCloud\Image\Resource\Member
Abstract
Namespace: OpenCloud\Image\Resource
Package: OpenCloud\Images\Resource
CodeCoverageIgnore
Located at OpenCloud/Image/Resource/AbstractSchemaResource.php

Methods summary
`public` | # `setData( array $data )` #### Parameters $data `array` $data
`public array` | # `getData( )` #### Returns `array`
`public` | # `setId( mixed $id )` #### Parameters $id `mixed` $id
`public string` | # `getId( )` #### Returns `string`
`public` | # `offsetSet( mixed $offset, mixed $value )` Sets a value to a particular offset. Sets a value to a particular offset. #### Parameters $offset `mixed` $offset $value `mixed` $value #### Implementation of `ArrayAccess::offsetSet()`
`public boolean` | # `offsetExists( mixed $offset )` Checks to see whether a particular offset key exists. Checks to see whether a particular offset key exists. #### Parameters $offset `mixed` $offset #### Returns `boolean` #### Implementation of `ArrayAccess::offsetExists()`
`public` | # `offsetUnset( mixed $offset )` Unset a particular key. Unset a particular key. #### Parameters $offset `mixed` $offset #### Implementation of `ArrayAccess::offsetUnset()`
`public mixed|null` | # `offsetGet( mixed $offset )` Get the value for a particular offset key. Get the value for a particular offset key. #### Parameters $offset `mixed` $offset #### Returns `mixed|null` #### Implementation of `ArrayAccess::offsetGet()`

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 summary
`protected string` | $id | `` | # The ID of this resource The ID of this resource
`protected array` | $data | `array()` | # The internal elements of this model The internal elements of this model

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

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