# Images v1

## Setup

### Rackspace setup

The first step is to pass in your credentials and set up a client. For Rackspace users, you will need your username and API key:

    use OpenCloud\Rackspace;

    $client = new Rackspace(Rackspace::US_IDENTITY_ENDPOINT, array(
      'username' => '{username}',
      'apiKey'   => '{apiKey}',
    ));

### OpenStack setup

If you’re an OpenStack user, you will also need to prove a few other configuration parameters:

    $client = new OpenCloud\OpenStack('{keystoneUrl}', array(
      'username' => '{username}',
      'password' => '{apiKey}',
      'tenantId' => '{tenantId}',
    ));

### Images service

Now to instantiate the Images service:

    $service = $client->imageService(null, '{region}');

## Operations

- Images
  - List images
  - Get image details
    - A note on schema classes
  - Update image
  - Delete image
- JSON schemas
  - Schema types
  - Example response from the API
  - JSON Patch
- Sharing images
  - Typical workflow
    - Additional notes
  - Setup
  - List image members
  - Create image member
  - Delete image member
  - Update image member status
- Image tags
  - Setup
  - Add image tag
  - Delete image tag

## Glossary

> image
>   A virtual machine image is a single file which contains a virtual disk that has an installed bootable operating system. In the Cloud Images API, an image is represented by a JSON-encoded data structure (the image schema) and its raw binary data (the image file).
> schema
>   The Cloud Images API supplies JSON documents describing the JSON-encoded data structures that represent domain objects, so that a client knows exactly what to expect in an API response.
> tag
>   An image tag is a string of characters used to identify a specific image or images.

## Further Links

> - Getting Started Guide for the API
> - API Developer Guide